Python Slithers into Systems

ITA Software is using the Python language for its airline reservation system, proving that sometimes snakes and planes do mix.

Last summers box office hit "snakes on a plane" was the unlikely story of a batch of snakes getting loose in flight on a 747. In what some might view as just as unlikely, ITA Software is using the Python language to empower its airline reservation system.

Many computer language purists say that languages such as Java, C++ or C should be used for enterprise applications. However, ITA, a Cambridge, Mass., provider of airline IT software and services, is proving that dynamic languages such as Python can be rock-solid for enterprise work.

Indeed, ITA in September 2006 announced an agreement with Montreal-based Air Canada, a subsidiary of ACE Aviation Holdings, to develop a new reservation management system for the airline. Air Canadas next-generation reservation system will include reservations, inventory control and seat availability, along with airport check-in and airport operations modules.

Sean Menke, Air Canadas executive vice president and chief commercial officer, said the new system "will be a key instrument in Air Canadas strategy to maintain market leadership through product and customer differentiation. Moreover, it will provide unprecedented flexibility and significant cost savings."

Leaving Legacy Behind

Dan Kelley, director of application integration at ITA, said ITA will deliver the system to Air Canada next year, and it will be deployed across the entire Air Canada network, including reservation call centers and airport locations throughout the world.

The reservation system will be delivered as an application hosted by ITA Software.

ITA Software was founded in 1996 by computer scientists from the Massachusetts Institute of Technology. The company provides airlines and travel distribution companies with airfare pricing, shopping and availability management systems and other technology.

ITA Softwares customers include Air Canada, Alaska Airlines, Alitalia, Continental Airlines, US Airways, Star Alliance, Galileo International, Kayak, Orbitz and others.

Like many of ITAs customers,, a comparison-shopping Web site for airfares, uses ITA Softwares QPX airfare pricing and shopping system. Unlike the traditional mainframe-based systems empowering most airline software systems, QPX uses large numbers of commodity Linux-based PCs and employs a component-based architecture that has no single point of failure and that scales linearly.

"What ITA did historically is we did search," Kelley said. "Think of us as Google for airfares. So if somebody like Orbitz, who is a customer of ours, used us, theyd write a bunch of Java code that displays their Web sites and does their front end. And they write a bunch of code that actually does reservations on one of the big mainframes that maintains the information about who bought what ticket. And the only thing we were providing was search."

However, ITAs contract with Air Canada will have the company pulling Air Canadas systems off the mainframe and onto a farm of Linux PCs.

"With Air Canada right now, were building an airline reservation system that is going to replace their mainframe-based system, which does 95 percent of what they do as a business," Kelley said.

/zimages/6/28571.gifYahoo delivers resource for Python developers. Click here to read more.

"When you go and you check in on a kiosk at an airport, or you check a bag, or buy a ticket through a travel agent or Web site, youre talking to this one mainframe that right now sits in Winnipeg, [Manitoba]."

Instead of one monolithic system, ITA is writing a series of components that are all going to be Linux processes running on different machines. Kelleys unit is taking a group of 30 to 50 components and combining them into a cohesive operating environment. Some of the key components are written in Python. The Air Canada system has 110 interfaces, or ways that people can interact with the system.

"And its hooked up to like 500 different computers here and elsewhere," Kelley said.

Yet, "in addition to being a huge technical challenge, nobody in the history of airline computing has ever swapped out a mainframe-based reservation system for something else," he said.

Next Page: Dynamic Python.