Air Traffic Control on the NetBeans Platform
Last week I spent some days in Geneva, Switzerland, with Anton ("Toni") Epple, from Eppleton (a NetBeans Platform consultancy in Munich), giving a NetBeans Platform Certified Training to the development team at Skyguide, who are responsible for software relating to air traffic control for the Swiss airspace. The team is planning to port several applications to the NetBeans Platform and wanted a training so that they'd be "ready for take off", I guess!
Below, a brief report, first focusing on the applications-to-be-ported and then on the training course itself.
Overview of Skyguide Swing Applications to be Ported to the NetBeans Platform
What kind of applications are involved in air traffic control? First of all, and most importantly for Skyguide, there's this application:
This is a Swing application used by air traffic controllers to provide the most up to date info on the current weather conditions, together with the most current status of flying objects (i.e., airplanes, as well as gliders), so that the correct data can be communicated to pilots.
How does the application above look "in the field"? Well, thanks to a very interesting tour that the developers gave us (in the control room, which is right above where the developers create the above application), I can report that this is how the application is used in real life:
Look closely at the panels above the traffic controllers' work spaces and you'll see the application. Or look here, where it's even clearer:
However, this is NOT an application the developers want to move to the NetBeans Platform! Why? Because their users don't like change (at all). Imagine you're an air traffic controller. All you really want is consistency and stability. You'd be more than happy to debate for hours about the color of a button, but you'd never want a new feature (or any kind of change) unless you'd absolutely need it. That's the kind of environment that applies to the above application.
Nevertheless, it is an application in Java and in Swing and it is therefore useful to mention it in this context! It was interesting to hear about the discussions the developers have with the users (i.e., the air traffic controllers). The developers would like a more aesthetically pleasing application, while the users simply want everything to remain the same, since so much depends on everything being exactly where they were the last time they had an emergency of some kind or other!
This, on the other hand, IS one of the applications scheduled to be moved to the NetBeans Platform:
This is a monitoring tool for a distributed Java application, based on JMS. The monitoring is done using JMX. There is a tree-view representation of the components of the distributed application. When selecting a component, its configuration parameters are shown, together with the current application and audit logs. The monitoring tools also contains other tabs for direct access to the persistent storage database, to the configuration repository, and to the JMS message broker monitoring.
As one can imagine, there are several limitations to the current implementation of the tool. For example, it is only possible to follow the logs, or view the configurations, of one component at a time. And extensions to the tool are not very easy to handle. A modular approach, with a window system, based on the NetBeans Platform, would be the ideal solution for this tool.
Another application that is planned to be ported is a flight plan data visualization tool. It is a multi window desktop application with several views of the same data-set (map view, Vertical cut, 3D view using Java3D). It is used in an earlier phase in the process, i.e., not by the controllers above, but by planners who need to view the trajectories that flights are taking. Hence the application is called "Trajectory Viewer":
And here is another application that the team is planning to port to the NetBeans Platform. I.e., it is a Scrum tool that is used internally. Plus, it is open sourced, here! The tabbed panes, in particular, would be much better as TopComponents in the NetBeans window system, plus the modularity that the NetBeans Platform offers would be a benefit to developers and users alike (who are the same people, in this case):
So, those are some of the applications to be ported. There's also a plan for a completely new development on the NetBeans Platform. This would be a rich client application for visualizing histograms and statistics of flight plan data.
The developers at Skyguide clearly have some very cool plans for the NetBeans Platform! They've also got the basic NetBeans Platform books and then asked Toni and I to come around and get them started, by teaching them the basic principles, via lectures and workshops.
Overview of NetBeans Platform Certified Training at Skyguide
Since we were at a customer, we spent quite some time looking at their existing applications and offering suggestions for how various parts would be ported to the NetBeans Platform. The topics covered in the three days are listed below and the slides are available on the NetBeans Platform Teaching Resources page.
Below you see the agenda of the topics we completed each day (together with 'Show and Tell', where they showed us their applications and took us on a tour to the control room), together with Jean-Marc Borer, one of the students, who was very knowledgeable already (and who is great at explaining Lookup):
The t-shirt you see being worn above is... the official NetBeans IDE 6.7 t-shirt! And here's the whole group, plus me (minus Toni, who took the pic), pretending to be studying a problem on the board:
All the best to the Skyguide team. Looking forward to seeing their applications on the NetBeans Platform sometime in the future!