A few days ago, not long after flying with Delta to Atlanta for DevNexus, and benefiting from a Delta upgrade and bathing in the luxury of Delta business class, I spent some time at Delta's Operational Control Center (OCC).
I was able to do that thanks to Graeme Ingleby, a senior developer at Delta who has been exploring the benefits of the NetBeans Platform for quite some time and has attended JavaOne over the past years, including related events such as NetBeans Day and other NetBeans social events at JavaOne.
Delta, of course, is one of the key international organizations based in Atlanta, as well as Coca Cola and CNN. The terrain of the OCC is large and diverse and includes a museum being built within a Delta plane, shown below:
I was given an inspiring tour throughout the OCC, by Ben Shermer, General Manager, Flight Control. The OCC handles absolutely everything you can think of in relation to Delta operations. Everything, absolutely everything, in relation to aircraft, crew, and passengers is managed from the OCC, a very small part of which is shown below:
For example, the OCC handles aircraft maintenance, hotel bookings for aircraft crew, emergencies such as death or illness of passengers on planes, boarding procedures, and more. Much more. Everything, in fact, all over the world, connected to anything to do with Delta is handled in the OCC in Atlanta.
Each computer in the OCC has a light on top of it which, when switched on, indicates that the operator is on the phone. I was told during the tour that the head of the OCC is happiest when all the lights are switched off and when all the operators have their feet up on their desks while reading their newspapers—since that means that there isn't an emergency of some kind being handled.
For me, as a developer, the most interesting part of the day was seeing the application below:
What you see above is, yes, a Java Swing application. The dominant elements are a JTable and, along the bottom, some JFreeCharts. All the data of all planes, crews, and passengers are received and monitored in this application. Someone sick on a plane? Flight delays? Snow storms? Crew hotel bookings? Current percentage of boarded passengers? Everything is displayed in one of the columns of this highly customized JTable.
The application above is named "Bridge Desktop". It is one of dozens of applications in use at the OCC. And that's precisely the problem of the OCC. The software across the OCC handles multiple different use cases and the applications have multiple different histories, coming from a variety of different organizations historically over time. Some duplicate the functionality of other software. Cut/paste and drag/drop between these applications is difficult to impossible, while multiple monitor support is an essential requirement, since as you can imagine, each operator is looking at about six different screens all at the same time.
How to integrate these different applications is the big problem of Delta. Some of the applications are Java, some C/C++, some web-based, etc. Each has different requirements and demands. Bridge Desktop, for example, has as its central component a highly customized JTable, which has taken years to develop to the point where it is now, both in terms of content and functionality. For example, multi-select across rows in tables has been built in, with a rules engine underneath it all, and features for comparing disparate data sets. There's no point in moving this application to JavaFX, since that JTable would need to be rewritten and the benefit of JavaFX in this context is severely limited, especially when weighed against the cost of the rewrite.
And a web-based solution would also not bring anything of benefit versus the cost of moving the application into the browser. One could imagine an interactive dashboard of some kind, to replace the JTable. In principle that sounds like a cool thing, while in reality that isn't a requirement for this piece of software. The operators using the JTable-based solution know how it works and understand it. The slick look and feel that a web-based dashboard would provide sounds completely valid in principle, as would purchasing an off-the-shelf solution sound like a logical thing to do. However, off-the-shelf solutions don't work in these highly customized contexts and, though attempts are always being made along those lines, they inevitably fail. Of course, there's continual pressure for a web-based solution, not from users or developers, but from managers. Not a new story at all, though interesting to see replicated again at Delta.
After discussing all these kinds of interesting challenges, I was given a tour of the flight simulators, see below:
It was a brilliant time and I learned a lot and came out of it affirmed in several opinions I've had for many years. Of course, the NetBeans Platform is being evaluated as a mechanism for integrating the variety of software solutions throughout Delta. It's simply the right tool for the job in this context.
Thanks again Graeme Ingleby as well as Ben Shermer for the inspiring and enthusiastic tour around the OCC.