Roger Brinkley: Welcome to the 17th editions of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence Barr: And I'm Terrence Barr.
Roger: And in this edition of the podcast we'll do a feature interview with ND SatCom, a company that does Java development in Germany. This week, two guests. Simon Ritter, welcome back. And Alexis is back with us again. Let's go to the news. I think the interesting thing in the new this week is Nokia. It's looks like they're abandoning their direction as far as their underlying platform and moving to a Windows platform as a base platform.
I guess we can go to our resident expert, as someone used to work at a company very close to that name, and see if we get an opinion from there.
Simon Ritter: It's interesting. The one thing that hasn't been covered is that, from what I can tell, on the feature phone side of things, they're still going to be using the Series 40 platform and they'll still be doing Java. So for the time being, that's not going affect the feature phone market for Nokia. They still will be doing a Java application development. This is purely on the smartphone side of things.
Roger: What about the Series 60, has that kind of dropped down as well, though?
Simon: It's not clear. They say they're going to continue selling Symbian. They're talking about another 150 million Symbian phones this year. It's certainly not my position to be able to second guess what they're going to do in that space.
Roger: Since the news was short this week, let's turn to the events section. The Oracle WebLogic server, the OTN Virtual Developer Days, again on the 17th and the 24th. If you're in Sweden for Jfokus, which is on the 14th through the 16th. And then also we've got some free workshops that are going on at Mobile World Congress this week. So there's 25 free Java workshops going on from the 14th through the 16th down in Barcelona, Spain.
And then on February 15th, our boss will actually being doing a "Java and Oracle: One Year Later" special techcast, so something good to listen to there.
And then, Alexis, you're going to be traveling up to St. Petersburg doing Java Day in St. Petersberg And then finally we've got Java in the smart grid, an online webcast for that.
Alexis Moussine-Pouchkine: And then there's also the Embedded World Show and Conference in Nuremberg, Germany, which is March 1st through the 3rd. I will be there together with a couple of my colleagues. We'll do some sessions on various topics around embedded Java. We'll have a booth there, we'll do some demos on some of our products. So it should be very interesting. Embedded World is one of the largest embedded conferences focused on embedded. So if you're in the area, please stop by.
Roger: Let's turn to our feature segment. In this particular segment, Terrence had an opportunity to interview Sven Reimers and Florian Folger, who work with ND SatCom. So let's go directly in that interview.
Terrence: I'm here with Florian Fogler and Sven Reimers from the ND SatCom Defense based in Germany. We're here at JavaOne Sao Paolo. I bumped into you yesterday and we got to talk, and it turns out you have some pretty interesting technology in your products and you also want to know more. Maybe you can briefly introduce yourself and talk about your company, and we'll take it from there.
Sven Reimers: I'm Sven Reimers, and I'm the lead software architect in system engineering for the network management solution.
Florian Fogler: And I'm Florian Fogler, and I am a software engineer, and I'm working mainly on the network management application.
Terrence: And ND SatCom Defense is a small or mid-size company down in the south of Germany. What do you specialize in?
Sven: We are specialized in ground station equipment for satellite communications. So we provide customers with modem technologies, with amplifiers, converters. We build it in turnkey solutions.
Terrence: Cool. And you were the winner of the Duke's Choice 2009 in JavaOne at San Francisco. Do you want to tell us something about that particular piece of technology?
Florian: Yeah, that's a large network management solution that won the aware, 2009. It's an all-in-one software, completely integrated. There's a planning aspect for resource management inside the network. It does monitoring and control of elements inside the network for ground stations and the equipment there. And it has a solution for operational control of transmissions that are sent across satellite. So you can get from one part of the application pretty easy.
Terrence: And you have various component or various modules where you use Java. You have a desktop or a rich client part of it, I think server-side.
Florian: Yes. Actually we do a virtualized application for desktop. And it's based on NetBeans RCP. For the server part of the large application, we use the NetBeans runtime container that's just the large-client platform without the UI. And it's probably built up of about 1, 300 modules. So both service-side and direct line to Java. Just for interaction with devices, we still have C++. We do monitoring of the parameters of those devices, so we can figure out if anything goes wrong. You can control them. And typically they have probably have a TCP/IP-based communication protocol. Sometimes over serial, or they have parallel things. So everything you can imagine is there in the market, so we have to adopt the special implementations of the different vendors.
Terrence: And you're not only selling turnkey solutions, but also individual components as well, right?
Florian: Yeah, we do sell individual components as well. Off-the-shelf, right.
Terrence: You mentioned that you have a large repository of different modules. Can you explain why you need that, what you do in particular, and how the NetBeans RCP plays into that?
Sven: There are different angles to this problem. One is that different customers require different solutions, so we just have to make sure that all the customers can get what they want and not have to buy things they don't need. We just try to keep the features separated from each other, so we can deliver each feature separate to each customer. And on the other hand, there is a software architecture view on the modulizatoin of the software, where we try to enforce rules and coupling for the developers.
So we still tend to say, OK, we can switch implementations and do stuff different without breaking APIs. We keep these a bit small. We do compilers, so we get a good turnaround. There's integration and you don't have to turn around the complete application on each desktop machine.
Terrence: So you can basically slice your modules in a vertical or horizontal manner to customize for a particular installation.
Sven: Yeah. We can do standalone variation, or we can do multiuser/multiclient variation of the system. We can just to planning or just do modular end control, or just do the communication satellite monitoring stuff. So there are three big areas, and if you have the planning for the networks, you can differentiate between different network types you can support for. So, yeah. It's just a lot of building blocks.
Terrence: And you use the NetBeans module support to do that, or do you use a different mechanism?
Sven: No, one of the reasons we got into NetBeans RCP was we didn't like to a lot of the maintenance for a framework for ourselves. So probably we started with looking at the Windows system stuff and such things. And then growing the application, realized that the module system from NetBeans really helps us in doing these modulizations.
Terrence: And so on the devices side, on the embedded side, you said you still have legacy devices, C++ code. Have you been looking into potentially using Java in that space as well? And what are the benefits you think you would get out of that?
Sven: It would probably be interesting to investigate how to use, and by the Java firmware part for our devices, it would help so we just don't have to specialize into too many different programming languages and dialects and stuff. I suppose there will still be areas where there's no easy migration path for the existing solutions, but investigating and figuring out what could be the benefits on the hardware side, integration, logic, migration paths from the hardware.
If you get your code separated from the hardware, you can more easily change hardware configurations and look into other processes. And probably you would find better, powerful solutions that are easier to maintain or cost less.
Terrence: As well as development productivity.
Sven: Yeah. Sure.
Terrence: As soon as you have a couple thousand C++ lines of code, it gets difficult to maintain. And I think you mentioned yesterday that these systems are deployed and then they stay deployed for many, many years and are just expected to work reliably.
Sven: That's it, yeah. We deploy them and they run.
Terrence: Is there anything else that would be of interest to our listeners, todevelopers?
Sven: Using the NetBeans platform, we've found different modules and different things what were of interest. And one of the really big parts was Visual Library. The library was a tool that helps you build Swing-based. It's Java 2D-based, but it's not Swing components. But you can build really nice - it's kind of a scene graph. It's not like the Java back scene graph, but it's a more graph-based scene graft. So we did big Visual Library stuff. So, probably, Florien, he's the guy who implemented all this, can tell more about it.
Florien: OK. About the visual library, it's a nice API to escape the Swing restrictions, with layouting, all the stuff. And we use it heavily to layout the stations. We layout the plan, with all the devices on it, showing the states, if there are errors are not, and it's like a dashboard of the station. And on the planning aspect, we make path analysis of the stations, calculate all the HF signals are passing through. And with the Visual Library, it's very easy to get that visible to the user, in a very easy way.
Terrence: Very cool. Thank you, Sven. Thank you, Florien. Well, we'll see you around.
Sven: Thanks, Terrence.
Terrence: I think the ND SatCom application and their environment and their module system that they're offering is actually a really good example of a lot of the vertical applications, very sophisticated applications, built for specific customers and specific market needs where NetBeans RCP is really strong. We spoke to Gertran Valenga the other week about the generic NetBeans RCP Platform, and he also mentioned that it's really interesting to see all the things that people are doing. And the NetBeans RCP Platform is really a perfect match for many of these scenarios.
And again, if you go to netbeans.org and you click on the NetBeans RCP Platform, you'll see a long list of very interesting examples of vertical applications that you can click at, find out more information, and ND SatCom just happens to be one of the largest of those installations.
Roger: So let's turn now to the mailbag segment. And while I was on my way over here, I had an opportunity to go speak at COJUG, which is the Columbus Java users group, and also at JavaBin, which is the Norway users group, and had a few questions that came up from there. So, Alexis, going to put you in the hot seat here for a little bit. So let's go to the COJUG questions first. One of the questions that came up, we were talking about GlassFish EE six and WebLogic EE 5, and how can you do this type of migration back and forth? If we can migrate between the two, how can you do that if one of the systems is on five and the other one is on 6?
Alexis: So, a couple things here. The first thing is any Java EE five application will run in a Java EE six container. That's by design. Actually, even a J2EE application will run just fine in the very latest GlassFish. So that's one part of the answer. The other part is that you can actually restrain yourself to Java EE five APIs. because you know one of your runtimes is only to the Java EE five level. And you can do so, in terms of APIs and packaging, by using the verifier tool, which we provide with GlassFish, which will make sure you're only using those Java EE five APIs.
And finally, WebLogic is scheduled to release a Java EE six version later this year. That's in 2011. And WebLogic Server, in its latest 10.3.4 release, actually has preliminary support for JAX-RS 1.1, JSF 2.0, and has had JSF for a while now, and JPA 2.0. So hopefully you can find some interesting configuration for yourself. And wait for WebLogic to be EE 6, and at that time, EE six will be a safe choice for any of your applications.
Roger: So, a second question that came up while I was there was, what's the status of OpenMQ?
Alexis: So OpenMQ is an open-source implementation. Actually, it's the reference implementation of JMS, and that's what GlassFish ships with. And just like GlassFish, it goes way beyond what the reference implementation requires, because it offers high availability, with message storing, with HA, at all levels. So the home for this, after the migration of java.net to the Kenai infrastructure, is mq.java.net. So drop the https and drop the dev, just mq.java.net. And I've actually posted some screencasts recently on the YouTube GlassFish channel.
And OpenMQ is doing just great. It's still being used in some cases standalone, in most cases as part of a GlassFish install. And it's being revved to a new version for the release of GlassFish 3.1, which we're about to ship.
Roger: So let's turn then to the questions that I had when I was in JavaBin which is Norway JUG. They asked, "What was not included in Java EE six and why wasn't it included?"
Alexis: You know, if I was to name just one, that would have been modularity. I know a number of licensees and people involved in expert groups were really willing to do much more than what we have today in terms of modularity. It's very primitive. We only have a few ways to deal with modules and express dependencies in the Java EE platform. We do a little bit more than just relying on the class path but not a lot more. That has to do with packaging essentially. Hopefully, at some point we'll have something in the platform itself and in the SE version of Java that will do a lot of the heavy lifting for us. We probably don't want to do this ourself and probably wait for Java SE 8, which is the one targeted with this feature.
We'll probably have to wait a bit more before we have full modularity. But we have good ideas on how we can improve the situation as part of EE seven already.
Roger: OK. So what API's are planned to be pruned from Java EE 7?
Alexis: Pruning has to do with how you mark an API as being no longer relevant for new development, because it was superseded by something else, another better API if you want. As part of EE6, EJB CMP. Container management persistence, JaxR, which had to do with talking to UDDI and other registries. JAX-RPC which was effectively replaced by JAX-WS. All of these three have been marked as prune. Whether these will be actually removed from the platform is a question up for the EE seven expert group which has just started working, so no answers there.
But these three are the likely ones to be no longer required as part of the implementation. Some vendors will decide to keep them in for compatibility issues, but clearly EJB CMP has been replaced by JPA. JAXR, nobody uses it basically and JAX-RPC, clearly JAX-WS is a better way of dealing with web services.
Roger: One of the questions that came up was we added a lot of things from JAVA EE one through Java EE five -- and it looks like you've added some additional things. One of the things we talked about in that presentation is the fact that now with Java EE 5, you've got everything that you need to be able to run your enterprise application within EE 6. But one of the questions that came up was, isn't EE six too bloated if everything is added to that environment?
Alexis: Yeah, that's a good question. For the longest time we've been just adding and piling stuff on top of what was already there. Eventually, Java E five was the time we decided to take the developers perspective into consideration. Make them be able to do the exact same things - I'm probably thinking about EJB's in particular - but only in such much simpler way. An EJB was really just two Java files. No more XML and the two files were just implementation and the interface. So that was EE 5.
EE 6, we still had to add a few things such as restful web services with JAX-RS. We improved a lot of other things. But we've also introduced pruning, which we just mentioned in the previous question. That in itself is actually removing some of the bloat. We also introduced the web profile.
The web profile is a right size platform if you will which is not the kitchen sink, but it's also not just a servlet container. It's way more than that. You can actually build some serious applications with that.
I think it's not bloated. We realize there's a risk that it becomes so so... That's why pruning and the web profile were introduced. The web profile is really something that people enjoy very much and see as one of the top features of EE 6.
They call it lightweight. We think it's right size in terms of features. If the implementation is done right, it's really lightweight. Hopefully it's not too bloated.
Roger: Let's turn now to our "What's Cool" section. On the what's cool side, I picked up a new Kindle this last week. This is a version three Kindle. The cool part about it is that you can actually put PDF presentations on it along with the audio for the PDF presentation. You can actually take a look at what you're going to be presenting in the next couple of days or the next few hours or something along those lines. Given this is an implementation that's all in Java using Java & Me, it's kind of an interesting implementation there and quite a boon for those of us that are speaking out and going off doing evangelism type of events. It does a pretty good job. I can tell you that if you're looking at the combination of the presentation ant the notes, it's a little more difficult. But the presentation by itself turns out quite well.
Thanks for listening to the 17th edition of the Java Spotlight podcast. I'm Roger Brinkley.
Terrance: I'm Terrance Barr.
Roger: And send your feedback to email@example.com.