Alex has joined Orbitz in 2004 and is responsible for providing technical leadership and guidance in the development of foundational technologies, core libraries and APIs for the enterprise-wide use, as well as establishing and maintaining common design principles and standards used within the company and integration of new software development practices within the development community.
Previously Alex was a Lead Engineer on the same team responsible for web application frameworks and developing common practices and additional functionality on top of Spring MVC & Webflow.
Alex is a graduate of Loyola University of Chicago, with a B.S. in Computer Science and M.S. in Computer Science specializing in Software Architecture. He currently resides in Evanston, IL and when not coding, Alex enjoys playing tennis, hiking, skiing, and traveling.
In the beginning Orbitz had a Jini based distributed system. The system design provided easy scalability and stability, but at the cost of tight coupling because of many shared modules and components, as well as Java serialization rules. In order to improve cohesion between individual services the decision has been made to migrate to a RESTful web services architecture. The new design is based on Google Protocol Buffers to define message formats and Spring/Spring MVC to handle client-server interaction. This resulted in a loosely coupled federation of services, each with its individual release and deployment schedule, which enabled more developer innovation and easier access to more data in a uniform fashion.
The audience will be shown in detail how to deal with Google Protocol Buffers, how to define and consume the messages, how to implement the client and the server sides using Spring and Spring MVC (showing custom Views, DataBinders and other Protobuf specific implementations of Spring/MVC components) and a demo building an actual client and a server in under 15 minutes.
What you will get from this session: - using Google Protocol Buffers to constitute language neutral contracts - using standard HTTP plumbing and intermediaries - designing a reverse proxy for request routing based on RESTful URLs - establishing OLAs for governance and service isolation - utilizing the power of Spring/Spring MVC to create client/server end-point implementations for handling the request/response