For online travel leader priceline.com, Java provides the maximum connectivity, flexibility, performance, and portability.
Making online travel reservations seems straightforward enough: the prospective traveler enters a desired itinerary and is typically presented with a screenful of options, including choices, prices, photos, and more—all in a matter of seconds. From these options, the traveler makes a decision. Simple enough, right?
For online travel sites, however, that up-front simplicity belies the complexity behind the screen. At priceline.com, for example, a simple query sets off a complex series of hundreds of interactions and connections to multiple hotel, airline, and other reservation systems around the world, explains Michael Diliberto, CIO for the North America division of the Norwalk, Connecticut–based firm.
“We work with thousands of suppliers and affiliates over multiple distribution platforms,” says Diliberto. “We need to connect our system to the appropriate supply inventory, so that means direct connections to rental car companies such as Hertz, Avis, Alamo and to large global distribution systems [GDSs] such as Travelport or even a smaller new GDS such as Farelogix, to get access to the freshest inventory for hotels, rental cars, and airline seats.”
“A search for hotel deals in New York City can generate up to 500 simultaneous requests to suppliers’ systems,” Diliberto adds. Multiply that by thousands of customers querying the system simultaneously, and it’s easy to see that the core of priceline’s business is its ability to manage the complex matrix of connections between priceline.com’s customers and suppliers. And the secret to making those connections work so seamlessly and to making it all look so easy in near real time is Java. “For us, Java has become a way of life,” says Diliberto. “Java provides us the ability to connect with other travel resources around the world more effectively and efficiently.”
Priceline CIO Michael Diliberto (left) and Vice President of Engineering Amit Poddar discuss project status in front of the company’s analytics dashboards.
In the late 1990s, there were a number of technologies available for building dynamic, interactive websites. These included Java as well as Perl, PHP, and Microsoft’s COM and Active Server Pages (ASP). Although Although Java was not as mature as the others, Diliberto saw great potential in the language and the development platform, not the least of which was its promise of portability and vendor independence. In the end, the company chose a three-tier design: Java at the back end, Oracle for database management, and COM and ASP at the front end.
According to Diliberto, Java was ideal for the back-end inventory search engines because of its exceptional connectivity and multithreading capabilities.
A single user query on priceline.com can generate up to 500 simultaneous requests to suppliers.
“Right from the very beginning, our back-end communications to our suppliers has been designed and developed on a Java platform,” says Diliberto. “Java supports a variety of different communication protocols to interface with suppliers, so that we can go where the data is—in our case, connecting to GDSs, airlines, hotel partners, and chains—to get the freshest inventory at the best price.”
The combination of Java and Microsoft technologies worked fine for the first few years, but priceline.com had a change of heart in 2000.
“We realized that having different technology platforms for front- and back-end was not the way to go,” explains Amit Poddar, vice president of engineering at priceline.com. “We needed to consolidate on one platform to avoid unnecessary overhead of data transformations and to utilize our talent pool more effectively.” The priceline.com team evaluated multiple enterprise platforms for performance, interoperability, and availability of tools and programmers. Java was the clear winner. Since then, all major enhancements to the priceline.com website have been coded in Java.
For Diliberto and Poddar, Java was the answer to consolidation needs at priceline.com
Over the years, Priceline grew from its travel bidding model into a full-service online travel company that includes published price and Name Your Own Price travel services. “Priceline.com is the only travel site on the internet to offer both options for travelers,” notes Diliberto.
To present various travel options to their consumers in real time, Priceline developed a proprietary “smart search” system using Java’s multithreading framework. The system acts like an inventory switch, says Poddar. “On one side are our customers, including Priceline-owned websites, affiliates, search engines such as Google, and more recently mobile phones and tablets such as iPad,” he continues. “On the other side are hotels, airlines, car rental companies, and GDSs such as Travelport, Sabre, and Pegasus, as well as startups like Farelogix.”
When a customer is searching for the best hotel deals on priceline.com, says Poddar, behind the scenes the Priceline's smart search concurrently fetches data from various suppliers in real time, sorts and filters the combined data, and presents the best options to the customer.
“It’s very important that the inventory we are presenting is fresh,” Poddar adds, “because there’s a lot of competition in the online travel space, and if a customer finds that our inventories are stale, they’ll go to another travel site and book there.”
Not all suppliers have the same interface, Poddar explains, but Java supports a vast array of data formats, transformation tools, and communication protocols.
Priceline has been committed to both Oracle and Java technologies since the website was launched. Currently, the site’s core production transactional database is a 2 TB Oracle database, and it also maintains a 17 TB Oracle data warehouse. In total, the company has 96 unique instances of Oracle Database in its IT shop, a configuration that provides both high performance and high availability.
That’s why Diliberto, the company’s CIO, North America, sees Oracle’s acquisition of Sun and its Java technologies as a good deal for both Java users and the future of the platform.
“From the beginning, Oracle was committed to the internet as a business platform,” says Diliberto. “[Oracle CEO] Larry Ellison saw the power of the internet and knew it was going to be a major piece of the economy going forward, and he wanted to prepare for it. And from a database standpoint, there was always a solid commitment to creating the biggest, best-performing, and most scalable database there could be.”
“We’ve always been big fans of Java as a technology but had always been a little bit concerned about its survival,” Diliberto continues. “With Oracle having a solid track record of turning products into profit, we’ve been encouraged that Oracle’s leadership sees a future in Java and is willing to invest in it and drive it forward, to keep it alive and to keep it growing. The company has proven that over the last two years. We’re very happy with the continued investment that Oracle has been making in the Java platform.”
“With Java we can easily receive data from suppliers either in SOAP wrapped XML using HTTPS or in structured data records over JMS,” he says. “We can then transform that data using JAXB or other Java APIs into JavaBeans. Then we compare those beans to hundreds of other responses and create a single response formatted in one of several presentation mechanisms. We could send the response as a JSON object consumed by Priceline’s app on a customer’s iPad, or ship it in XML format to one of Priceline’s affiliates.”
For this reason, adds Poddar, “Java turns out to be the perfect technology for a flexible inventory switch.”
Priceline.com has migrated its Java applications across three different hardware architectures and three different operating systems.
Vendor independence was another key criterion when selecting technology—and that’s where competing technologies fell short. “Instead of building a specific product, Java defines a specification and lets multiple vendors in the industry provide an implementation. This gives choice to customers,” says Poddar.
From the start, Priceline's back-end database has been an Oracle database. But back in 2000, Oracle didn’t have what Priceline considered a viable Java driver for that database. “We started using drivers from one company,” says Poddar. “The performance was OK, but we didn’t really like it, so we moved to a second company. Eventually, Oracle came out with their own drivers and we moved to them.”
“We were able to successfully replace one implementation of the driver with another— without modifying a single line of code,” Poddar says. “And that was possible because of Java’s philosophy that you define a specification and let the vendors do the implementation. This puts the customer in full control and gives them the ability to find the right itinerary for them.”
As Priceline’s needs have changed over the years, Java has also enabled the company to migrate its IT infrastructure across three different hardware architectures and three different operating systems with little effort, Poddar adds. The company launched in 1998 running on a Digital Equipment Corporation AlphaServer with Windows NT, then migrated to SPARC-based servers running Solaris (now Oracle Solaris), and today operates on an array of HP Intel-based blade servers running 64-bit Red Hat Linux.
“Java has enabled us to move from one hardware platform to another quite easily,” says Poddar. “We didn’t have to involve any of the Java programming teams for the migration. It was completely done by the support staff.”
Another important benefit is that Java is open source. “Priceline.com is committed to open source technology wherever and whenever possible as a way to maintain vendor independence,” explains Diliberto.
Besides Java, the company’s IT infrastructure uses the Apache Tomcat web server and the Linux operating system. “Going with open source technologies such as Java as much as possible puts us in a good position,” says Diliberto. “We feel that it gives us an opportunity to select implementations that are best of breed and the most effective solutions.”
Philip J. Gill is a San Diego, California–based writer and editor who has followed Java technology for more than 20 years.
Article originally written for Java Magazine