On The Fly
Plans were laid out for IntelliJet II in the fall of 1998. Once again, Midkiff couldnt find commercial software offering the features the company wanted. So he quickly built a 50-person software-development team to perform the task in-house.
At the time, the company had three primary goals in mind:
- Capture and smartly manage more information about customers, operations and business partners such as airports, catering firms and limousine operators. When a customer books a flight by phone, NetJets will typically set up services, such as meal catering, hotel reservations and ground transportation provided by other firms. On any given flight, however, those services may need to be changed. If a passenger runs late, for example, the in-flight meal should automatically switch from a breakfast order to a preferred lunch order.
- Monitor flights, weather and operations, and automatically make smart decisions on routes or factors that might affect safety. Prior to IntelliJet II, it was up to the companys flight-operations staff to recognize when changes needed to be made, and then take action, such as rerouting a plane to another airport. With IntelliJet II, the company wanted to automate many of those processes.
- Make sure IntelliJet II could grow with the company. When the first IntelliJet application was built, the companys annual revenues totaled some $200 million. Today, its a $2 billion global operation with aggressive plans for growth.
Early in the planning process, two key technology decisions were made. The first: To write applications in Java and Visual Basic programming languages. Midkiff and his team didnt have a lot of experience with Java, but after investigating alternatives, Java appeared to offer the best opportunity to build a system that could easily grow and distribute information globally. The team looked at Sybases PowerBuilder, but chose Microsofts Visual Basic for the front end because of its market acceptance. The other option considered was building the application front to back in Microsofts C++, but Midkiff says the complexities of the language compared with Java drove the development team into the Java camp.
The second decision: To use a data-services architecture—that is, a platform that reaches into a central database and operates as a broker to distribute information to multiple applications. After researching alternatives, Midkiff selected Persistence Softwares platform, which had proved itself in the demanding financial services arena. The company needed data within the system to be updated as close to instantaneously as possible so that every application would have the same current information about customers, planes and crews. That would mean that when a customer called in a flight change, the system could push the change out to schedulers, flight crews, caterers and maintenance personnel.
Persistences platform essentially sits between a companys database and the applications feeding off that database, and forms the guts of financial-trading systems for clients such as Citigroup, says Chris Keene, Persistences chief executive. With IntelliJet II, Persistences platform sits between an Oracle database and 20 different applications, running off a server farm of about 25 Dell computers.
Persistences software allows planners to explore scenarios without changing the host data. For example, in the event of a possible scheduling change, a query can be sent to the database to check if a pilot can be reassigned. The database might register that such a change is feasible, but Persistence keeps that information in cache or in a virtual database. Other elements can also be checked, such as meal plans, flight crews, airport curfews and ground transportation, without affecting the host data.
Once a scenario is approved, the changes are synchronized with the database and the updated information can then be pushed out to the affected parties. NetJets has outfitted its pilots and flight crews with Research In Motions BlackBerry wireless devices to deliver scheduling changes via e-mail.
IntelliJet II also constantly monitors every flight to check for changes that might require attention. It checks such factors as the sunrise and sunset restrictions for airports and runway length necessary for each aircraft. The system then delivers alerts to the appropriate people for action.