290 likes | 386 Views
IBM TravelFrame. Arvind Viswanathan arvind@ca.ibm.com. Any references to future plans are for planning purposes only. IBM reserves the right to change those plans at its discretion.
E N D
IBM TravelFrame Arvind Viswanathan arvind@ca.ibm.com Any references to future plans are for planning purposes only. IBM reserves the right to change those plans at its discretion. Any reliance on such a disclosure is solely at your own risk. IBM makes no commitment to provide additional information in the future.
What is TravelFrame? • An IBM e-business architecture that leverages travel industry specific frameworks and standards • A Java and XML based toolkit for building travel-related e-business applications • An integration platform to allow aggregation of disparate travel applications
What Business Issues Does TravelFrame Address? • Create solutions at lower cost • Faster Time to Market • Create solutions that can interoperate more easily • Adherence to Industry Standards for application compatibility. • Flexible, scalable implementation; ability to maintain and enhance in-house • Build travel solutions at lower cost using industry standard frameworks/components
IBM TravelFrame • Travel specific and Infrastructure tooling • Vertical Services • Air, Car, Hotel Reservation Systems • Affinity, Profile Services • Geography and Vehicle Information Services • Infrastructure tooling • “Generation X” • XML/Java/SQL bindings from Rose/XIDL • XML over HTTP between tiers • Programming model • Infrastructure can be used in any industry
TravelFrame Vertical Services • Reservation System Framework - Host • connectors to Sabre, Galileo (planned) supporting Air, Car, Hotel • Works with but not limited to IBM connectivity products (A2CS/ACSA) • Mid Tier Business Logic • e.g. Site specific rules, Journey Management • Geography Services - Connects locations to services provided • Affinity Services - Basic functionality for loyalty applications • Profile Services - Customer Profile Support • Developed to Open Travel Alliance specs.
TravelFrame Vertical Services • Personalization • Export customer data for processing by external DSS • Blaze integration (prototyping) • Allows business users to define system behavior
ISV Application Software Domain and IBM Solutions Engagements TravelFrame Domain Core Travel Industry Standard Content Java Objects and XML Cross-Industry Standard Java Objects and XML HTTP Application JVM XML JNDI LDAP Database JDBC Server Horizontal Distributed Middleware Servers: AIX Solaris NT Platforms Logical Layering ReservationSystemFramework User Profile Loyalty Framework ReservationServices GeographyService VehicleService ManagementService ConfigurationService
Architecture Goals • Robust operational architecture • Simple, mature infrastructure • Comprehensive security model • Reliable • Adaptable • Scalable • Standards-based
Requirements • Open products for load-balancing/fault tolerance • High performance/scalability/reliability • Web Server, App Server, Database, OS agnostic • Set foundation for future clients • Make simple path easy • Request followed by persistence or backend access • Flexible service deployment • Many developers, test environments, deployment environment • Lower the bar for developer entry • Simplify debugging, testing and maintenance • Consistent programming model
Server Configuration Servlet Engine Services HTTP Server Backend Communications XML over HTTP XML over HTTP Internet ... XML over MQ XML over MQ Channel Tier Middle Tier Reservation System Framework Tier Reservation and Loyalty Systems Clients
eXtensible Markup Language • Extensible • Tag set is not fixed • Structural • Deep, hierarchical nesting of structures • Can infer meaning from structure • Valid document requirement • Can check structure against a schema
eXtensible Markup Language • Portable • Text-based Unicode • All parsers must support UTF-8 (US-ASCII) • Parsers may support: UTF-16, EBCDIC, etc • Human readable • Machine understandable • W3C standard • Rich set of emerging tools
UserID, password, ACLs User profiles Geography and vehicle services Backend Communications • Presentation • Authentication of clients • Authorization of clients • Calls mid-tier services only • Stateful • Profile services • Shoppers • Loyalty • Access to RSF • Exports to DSS • Stateless (but potentially stateful) • Consistent interfaces to backend systems • Stateless (but potentially stateful) Inter-tier communications Inter-tier communications Internet ... Reservation and Loyalty Systems Clients Extra-tier communications DSS system Business Partners Channel Tier Middle Tier RSF Tier
<SOAP:ENVELOPE> • <SOAP:BODY> • <FAREQUOTERESPONSE> <RETURN> • 2349.68 • </RETURN> • </FAREQUOTERESPONSE> • </SOAP:BODY> • </SOAP:ENVELOPE> XML/HTTP Communication Request Message XML4J Input DOM Marshal • <SOAP:ENVELOPE> <SOAP:BODY> • <FAREQUOTE> • <CSTNO> 123456789 • </CSTNO> • <BOOKINGCODE> SD123457 • </BOOKINGCODE> • </FAREQUOTE> • </SOAP:BODY> • </SOAP:ENVELOPE> Router Service Logic HTTP Client Service Request Java Objects Output DOM Server Client Client Service Response Java Objects Output DOM HTTP Unmarshal XML4J Reply Message
Service C Service A Reservation System Service D Client Service B Persistent Store
SOAP • Simple Object Access Protocol • Emerging industry standard for exchanging structured & typed information using XML • Specifies how to perform Remote Procedure Calls • Platform and programming language independent • Wire Protocol independent (HTTP, MQ….)
Technical Strategies • Asynchronous, Service oriented architecture • Eases development and debugging • XML used in: • Services API • XML server architecture • Configuration • Master copy available using HTTP • Rendering • Persistence and Type System Conversion
XMLSession Object HttpServlet XmlService XML Server Architecture new(), handleServiceRequest() Further XML/HTTP service requests Service instance XmlRPCServlet XML/HTTP Service Request Typically Java, JSP or XSLT templates XML/HTTP Service Response Web Server Servlet Engine
XML Marshalling • The problem: conversion between object graphs and XML • <MESSAGE> • <COMMAND> • Authenticate • </COMMAND> • <CSTNO> • 123456789 • </CSTNO> • <PIN> • secret • </PIN> • </MESSAGE>
Generation X genesis • UML Modeling has become the central part of designing • Provides a language independent representation • Provides a single repository for all information, single point of update • Sending objects or data through the wire, persisting object in RDB are standards • Getting the most from the model by generating most of the code needed • Based upon Java/SQL Data Object generation in previous asset - Student Server • Shipped Oct 98 • Solves particular Java/SQL access issues
Generation X • Generates from a UML model: • Java beans • Marshalling/unmarshalling code • XML DTD / Schema • SQL persistence code • Generates up to 75 % of the code
Generation X principles • Developer creates Rose Model of structures and graphs • Augment model with type system bindings • Model to Java, XML, SQL • graphs for serialization • Tools Generate: • Java Class definition, XML DTD • For each structure and method • Java to XML and XML to Java conversion • Java to RDB and RDB to Java • XML to RDB and RDB to XML
Generation X Types Persistence Generate Home and Graphs using Model2RDBBindings XML RDB Model Generate Helpers and Graphs using Model2XML bindings Persistence Generate Interface and Bean using Model2Java bindings Generate Helpers and Graphs using Java2XML, XML2Java bindings Java
Generated files • For one class XYZ in the model, the DO and Binding Generator produces the following files : • XYZ.java • XYZBean.java • XYZHome.java Proprietary interface for persisting/accessing RDB • XYZKey.java • XYZJava2XML.java • XYZXML2Java.java • XYZ.DTD • A graph describes the tree of associations for one object. It defines which association to follow to serialize the object. For one graph ABC in the graphs section, the Generator produces the following java files : • ABCJava2XML.java • ABCXML2Java.java • ABC.DTD
Generation X with XML/HTTP Create Model DO Generator Binding Generator Bindings - java Beans, DTDs Create Client Code java Create Server Code java or XSLT Compile/Deploy Web Server + Servlet Engine Client App XMLRPCServlet SOAP Client Code DOs, Bindings Services Router DOs, Bindings
Generation X Advantages • Simpler than writing backend API code • More maintainable and consistent generation • Faster generation of data objects • Allows optimizations of code in the future • Easier to retarget for a different backend • Allows generation of test suites • Extensible
Infrastructure Deliverables • Runtime Java Classes • XMLRPCServlet • MessageRouter • Tooling • Generation X • Type conversions between Java, RDB, XML • Security, Logging, Systems Management, Connection Management, Rendering, State management, etc.. • Can be deployed on any environment that supports Java Servlets
Summary • Architecture • Vertical Services • Leverage existing enterprise data and business rules using: • Reservation, Profile, Affinity Services • Provide an integrated view of backend systems • Track industry standards bodies such as Open Travel Alliance • Integration with personalization products will allow easier configuration of business rules • Infrastructure • Build travel solutions at lower cost using industry standard frameworks / components
Contacts • Arvind Viswanathan • arvind@ca.ibm.com • Bruce Gobioff • gobioff@us.ibm.com