Sabre® Web ServicesGuide to Accessing and Consuming Services March 03, 2011 v1.25 1 Sabre® Web Services: Guide to Accessing and Consuming Services, March 03, 2011 v1.25 © 2003-2011 Sabre Holdings Inc. All rights reserved. This documentation is the confidential and proprietary information of Sabre Inc. Any unauthorized use, reproduction, preparation of derivative works, performance, or display of this document, or software represented by this document, without the express written permission of Sabre Inc., is strictly prohibited. Sabre, Sabre Holdings, Sabre Travel Network, and Sabre Web Services are trademarks and/or service marks of an affiliate of Sabre Holdings Corporation. All other trademarks, service marks, and trade names are the property of their respective owners. Disclaimer of Warranty and Limitation of Liability This software and any compiled programs created using this software are furnished “as is” without warranty of any kind, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. No oral or written information or advice given by Sabre, its agents or employees shall create a warranty or in any way increase the scope of this warranty, and you may not rely on any such information or advice. Sabre does not warrant, guarantee, or make any representations regarding the use, or the results of the use, of this software, compiled programs created using this software, or written materials in terms of correctness, accuracy, reliability, currentness, or otherwise. The entire risk as to the results and performance of this software and any compiled applications created using this software is assumed by you. Neither Sabre nor anyone else who has been involved in the creation, production or delivery of this software shall be liable for any direct, indirect, consequential, or incidental damages (including damages for loss of business profits, business interruption, loss of business information, and the like) arising out of the use of or inability to use such product even if Sabre has been advised of the possibility of such damages. Sabre Holdings Inc. 3150 Sabre Drive, Southlake, TX 76092 Tel: 682 605 1000 www.sabre-holdings.com Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 2 Table of Contents Preface ........................................................................................................................................................................... 5 . Sabre Web Services Usage Requirements ................................................................................................................ 10 Resources for Using Sabre Web Services ................................................................................................................. 14 External Resources for Internet and Web Services Technologies ............................................................................ 17 Technical Support ..................................................................................................................................................... 19 Chapter 1: ..................................................................................................................................................................... 20 Introduction to Sabre Web Services ............................................................................................................................. 20 About Sabre Web Services ....................................................................................................................................... 21 . Types of Web Services ............................................................................................................................................. 23 . Benefits of Client Application Development Using TPF Connector‐Based Sabre Web Services .............................. 25 Standards and Specifications ................................................................................................................................... 27 Requesting Payload Content .................................................................................................................................... 30 Security ..................................................................................................................................................................... 30 Network Connectivity ............................................................................................................................................... 32 Sabre Web Services Connections ............................................................................................................................. 32 Errors ........................................................................................................................................................................ 33 Chapter 2: ..................................................................................................................................................................... 34 SOAP Messaging Formats/Requirements .................................................................................................................... 34 SOAP Message Overview.......................................................................................................................................... 34 SOAP Message Sequence and Format ..................................................................................................................... 38 Chapter 3 ...................................................................................................................................................................... 59 Sabre XML Specifications ............................................................................................................................................. 59 WSDL Documents for Sabre XML ............................................................................................................................. 60 Sabre XML Schemas ................................................................................................................................................. 66 Connection Management Messages ........................................................................................................................ 70 Versioning of Sabre XML Schema and WSDL Documents ........................................................................................ 70 Chapter 4 ...................................................................................................................................................................... 74 Managing Connections ................................................................................................................................................. 74 Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 3 ...................................................................................................................... 145 Identifying Documents for Sabre Web Services ........................................................... 114 Chapter 6 .................................................. Environments for Using Sabre Web Services................................................................. 116 ................................................................................................................................................................ 100 TPF Connector‐Based Workflows ..................................................... 174 Sabre Web Services ................................................................................................... 127 Troubleshooting Tips ................................................................................................................ v1......... 129 Application Errors .................................................................................................................................................................................................................................................................................................................................................................................................................................. Confidential Page 4 ........... 115 Deploying Clients to Production .............................................................................................. 98 Business and Application Logic ................................25 Sabre Holdings Inc....................................................................................................................................................................................................................................................................... 138 Appendices .......Sabre Web Services Connections ............................................................................................................................ 107 Retrieving Content from the Business Application ............................ 98 Maintaining Session State ................................................ 115 Testing .................................................... 144 SOAP Message Tag Reference and Guide to Use ................................................................................................................................................................... 109 Debug Logging ..................................................................... 127 Troubleshooting and System Error Handling ............. 166 Glossary ............................................ 115 Consuming Sabre Web Services .................................................................................................................................................... 127 Web Services Errors ............................................................................................................................................................... 105 Minimizing Scans ..................................................................................................................................... 115 Connecting ................................................................................................................................................................................................................................................................. 123 Chapter 7 ............................................................................................................................................................ 117 Technologies for Working with Web Services ......................................Guide to Accessing and Consuming Services..................................................................................................................................................................................................................................................... 74 Chapter 5 ........................................... Preface About This Guide This document provides guidance in developing, accessing, and consuming Sabre Web Services. Advisories To assist with capacity planning, advanced notification is required for the following activities. Please contact technical support for: • Performance and heavy load testing. These types of tests require notification a minimum of 5 business days before conducting the tests. This notification is restricted to the Production environment. Planned production dates and projected volumes. Notification must be a minimum of 120 business days prior moving to production. Changes to production volumes on an ongoing basis. • • For complete information about the systems and environments available for client use, please refer to the section of this document titled, “Environments for Using Sabre Web Services.” Precaution When utilizing the customer acceptance testing URL that points to the back-end production system (https://sws-res.cert.sabre.com), or when utilizing the production URL (https://webservices.sabre.com/websvc) for testing, transactions are occuring in the real-time, live production Sabre® global distribution system (Sabre® system). Please be sure to cancel any bookings created for test purposes. If these bookings are not canceled, you and possibly your customers will be billed by suppliers or other vendors for all associated fees. Precaution Scan charges may apply whenever a client application interacts with any of the environments established for Sabre Web Services. Please consult your contract for a description of these charges. For tips on minimizing scans please refer to the section of this document titled, “Minimizing Scans.” Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 5 Organization The preface outlines the recommended background for developing clients that consume Sabre Web Services, system requirements, and resources. The preface also outlines where to find information about Web services, standards, and other Internet technologies. Chapter one introduces the Sabre Web Services product, the standards and specifications the product is designed to meet, the versioning strategy for the TPF Connector-based Sabre Web Services, and includes a discussion related to connectivity and security. Chapter two describes the format and sending sequence of the SOAP messages used to connect to the Sabre Web Services gateway to consume Sabre Web Services. Complete requirements are also provided in Appendix B. Chapter three discusses the Sabre® XML specifications, versioning of the WSDL and schema documents, as well as the versioning system that is applied to the TPF Connector-based Sabre Web Services.. Chapter four presents Sabre Web Services connection strategies and implementation, including connection pools and Sabre sessions. Chapter five includes topics related to business and application logic, workflows that use TPF Connector-based Sabre Web Services, managing content in a Sabre session, and requesting service versions. Chapter six describes the environments that are available for consuming Sabre Web Services, as well as the technologies that clients can use, such as WSDL and XML. Chapter seven includes information related to troubleshooting general and system errors. Appendix A contains the SOAP message tag reference. Appendix B illustrates how to identify the URLs for WSDL documents and their associated schema documents, and how to find them on the Developer Resource Center. In the Glossary, the terms and acronyms that this document uses are defined. Use Prior to designing and developing Web services-based clients or other solutions using Sabre Web Services, it is strongly recommended that application developers first read this document. This document discusses topics of great importance, such as the SOAP message requirements, connection strategies, and environments for consuming Sabre Web Services. In addition to this document, it is also important to study the documentation available on the Sabre Web Services Developer Resource Center, commonly referred to as the “DRC,” which can be accessed via https://drc.sabre.com. The Developer Resource Center contains service descriptions, design documents, as well as schema documentation which are all essential to successfully utilize the product. Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 6 Note: The design documents provide the valid list of data elements for the request and response messages. Use the request and response schema documents for the data formats and to validate payloads. Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 7 send the value you are given for Domain when you are set up to access Sabre Web Services. When the documentation references a domain. Application developers are given a value for Organization as part of the IPCC security credentials provided for accessing Sabre Web Services. v1.Document Conventions Terms The use of terminology in this document is defined in the following table. Web services that obtain their content with direct connections to a variety of open systems of service providers within Sabre Holdings. For additional terms and information please refer to the glossary. Confidential Page 8 .25 Sabre Holdings Inc. These services include those that obtain their content from the Sabre global distribution system or Sabre open systems as well as services used to connect to the Sabre Web Services infrastructure. and disconnect from the Sabre Web Services infrastructure An abbreviation for request and response message pairs A terminal address or TA TPF Connector-based Sabre Web Services Open systems-based Sabre Web Services Session management Sabre Web Services RQ/RS Sabre session Sabre Web Services . also referred to as the Sabre host system or PSS (Passenger Service System). The code may or may not be an IPCC—it may be a PCC or other identifier. Sabre Web Services All Web services provided by Sabre Holdings. verify. It is the requester of a service. Web services managed by the Sabre Web Services gateway (also referred to as the USG) that connect to. This term… Refers to… Client Connection Developer Resource Center (DRC) Domain An application that uses or consumes a Web service. An open channel to the Sabre Web Services infrastructure The private registry and repository of artifacts and information for all Sabre Web Services One of the security credentials used to establish a connection with Sabre Web Services.Guide to Accessing and Consuming Services. Internet Pseudo City Code or The code that identifies your organization. Web services that retrieve content from the Sabre global distribution system. The Agent Assembly Area (AAA) or buffer in the Sabre system where data is retained while a Sabre session is active Sabre XML specifications are the WSDL and schema documents for Sabre Web Services which have been modified from the OpenTravel specifications to accommodate proprietary data in the Sabre system and other Sabre li ti The binary security token that is returned to the client after successfully connecting to the Sabre Web Services gateway with the SessionCreateRQ Service. This system is the source of the travelrelated content for TPFC Sabre Web Services and other systems and applications.Sabre system The Sabre GDS or “host” system. v1. Confidential Page 9 . Sabre subscribers include businesses or other entities such as travel agencies. travel suppliers (including airlines) and travel software development organizations who are involved with travel marketing and/or travel distribution. Sabre subscribers must have a valid Sabre access agreement to use Sabre Web Services. Sabre work area Sabre XML Security token Subscriber Sabre Web Services . This security token is returned in the wsse:BinarySecurityToken element in the SessionCreateRS response message. A travel organization that is a contracted customer of Sabre Holdings and Sabre Web Services.Guide to Accessing and Consuming Services. on-line travel providers. the system that stores travel inventory and itineraries.25 Sabre Holdings Inc. Guide to Accessing and Consuming Services. 1. 1.4.sabre.25 Sabre Holdings Inc. There are several general requirements for being successful in developing with Sabre Web Services: • Access to a Sabre Subject Matter Expert (SME).3. and libraries that support Java development.1_04 is the minimal version required. • Communications and connectivity that provide Internet access.2_03 and later Page 10 Sabre Web Services .4.com . For more information. If the application being developed is behind a corporate firewall. This is because Sabre Web Services are not typical of other software products. the application developer needs the following proxy server-related information to be able to access the Internet: • • • • • Proxy host name Proxy port Proxy user name Proxy password If developing with Java.1_10 and later. the hardware.1_06 and later. The following is also required: • • • • Java Secure Sockets Extension (JSSE) and related JAR files Java Web Services Developer Pack and related JAR files XML parser and related JAR file For Java-based clients using SSL. nor is there anything for us to deploy to client systems. please refer to the “Critical Success Factors for Projects That Consume Sabre Web Services” document located on the Developer Resource Center. Confidential . operating systems. and Sabre system knowledge. v1. files. there is nothing that clients need to deploy to our system. While Sabre Web Services masks many of the complexities related to accessing content within the various Sabre Holdings’ systems it is important to consult with an SME to ensure that the client application being developed utilizes the most effective workflows and processes. developer skills. Java Runtime Environment versions 1. https:// drc. Java Software Development Kit (J2SE) Version 1. Technical and System Access Specific system requirements for developing and deploying clients to use Sabre Web Services cannot be stated.Sabre Web Services Usage Requirements Requirements are organized by technical.3. files. Microsoft .apache.0 with Visual Studio 2005 to generate proxy code. the hardware.NET Framework 2.1 . Confidential Page 11 . These resources may be shared among multiple Sabre Web Services environments. Please note that each IPCC comes with a finite number of session-related resources.NET Framework 2.NET Framework 1.1 and 1. see http://msdn. An account’s security credentials consist of the following: • • • • Username Password Organization Domain • Session Resources Each IPCC comes with an associated pool of session-related resources commonly referred to as a TAM pool.NET Framework. • Apache Axis version 1. Download Axis versions from the following URLs: http://archive.1 Requirements • • • • Microsoft . The Microsoft Windows operating platform must be one of the following: Windows XP Professional or Home edition with Service Pack 1 or Windows 2000 with Service Pack 3 or greater.NET development.Guide to Accessing and Consuming Services.org/dyn/closer.cgi/ws/axis/1_1 • One or more accounts previously set up for client access to Sabre Web Services. see the Sun Microsystems Web site at the following URL: http://java.exe Service Pack 1 patch KB892202 – This patch fixes proxy client generation for Service Pack 1. see the start-up kit.25 Sabre Holdings Inc. Microsoft . Special instructions for Sabre Web Services are not necessary.1 of the framework can be used to consume Sabre Web Services.apache.1.NET Framework. v1.sun. • If developing with Microsoft .org/dist/ws/axis http://www.0 Requirements It is possible to use the .com/j2se/downloads.NET Framework 1. For more information about . so it is important to confirm the Sabre Web Services .microsoft. and libraries that support .com/ netframework/.KB823639-X86-Enu.For the development kits. (Optional) Visual Studio 2003 Visual Studio patch VS7.html For information about setting up your development environment. Minimum requirements to generate proxy classes from the WSDL documents for Sabre Web Services are listed below. such as CERT and PROD. operating systems.1 Service Pack 1 – The WSDL documents require SP1. • (Optional) Sabre Travel Network-based customers who want to use Format Finder require a login ID for the Sabre system. Confidential Page 12 . The administrative account can be used to change the passwords of non-administrative user accounts. schema. and design documents Developers are encouraged to refer to these documents to develop payloads and travel workflows available via https:// drc. “Allocation of User Names to Connections and Sessions. Appendix B walks through identifying the schemas and their corresponding URLs. customers receive this user name and password. • URLs of the WSDL documents and common schemas Developers can obtain and download these files via https:// drc. commonly referred to as the “DRC. (Remember that Sabre sessions are also referred to as TAs.sabre.sabre. • Each IPCC is allocated one administrative user account (sometimes.) Recommendations about the use of these user names are discussed in the section of this document titled. whether they are used in robotic applications or not. this user name is referred to as a user sign or Sabre sign). Format Finder is available via https://eservices.com.” Note: • The passwords of user IDs for connecting to Sabre Web Services do not expire because they are set up as robotic passwords. Each IPCC is allocated 1 non-administrative account for every 50 Sabre sessions in its session pool.” • Time-out value for Sabre Web Services connections Application developers need to confirm the time-out value for their Sabre Web Services connections and sessions. For information about Sabre Web Services environments. “Environments for Using Sabre Web Services.Guide to Accessing and Consuming Services.com. v1.25 Sabre Holdings Inc.quantity of sessions in the session or TAM pool for each of your IPCCs.sabre. and the session pool and TAM pool are the same. This is needed to implement a connection manager and keep the sessions in the session pool alive. • A user name and password for access to the Sabre Web Services Developer Resource Center. This way. Sabre Web Services . please refer to the section of this document titled. Sabre Web Services security credentials can be used to log into this system. • Sabre XML WSDL.” When accounts for Sabre Web Services are created. please refer to chapter four.com. it is not necessary to change them every 90 days. For complete information about connection and session management. Confidential Page 13 .25 Sabre Holdings Inc. It is written with the assumption that developers have the following skills: • Proficiency with the programming language and development platform they plan to use to code their client application.NET Framework Understanding of the core enabling technologies of XML. test. Sabre Web Services .Guide to Accessing and Consuming Services.Skills and Background for Developers This document is for application developers who want to create client applications that use Sabre Web Services. or Microsoft® . it is also important for application developers to have access to a Sabre subject matter expert (SME) who is knowledgeable about the Sabre system. v1. Technical consulting is available at an additional charge to customers whose knowledge of the Sabre system and the travel industry are insufficient to successfully complete their applications and projects. and HTTP Familiarity with OpenTravel™ specifications and electronic business using extensible markup language (ebXML) ebXML is an enabling technology sponsored by UN/CEFACT and OASIS. such as Java™ or C#. as well as the travel industry. Sabre data. Apache Axis. servlets. and SOAP Knowledge about other Internet technologies such as Web services. Please contact your Sabre account representative for more information. and implement a client application using TPF Connector-based Web services. Sabre processes. and the OpenTravel specifications are based on OASIS and UN/CEFACT. • • • Sabre Host System Knowledge To successfully design. schemas. v1. Note: The majority of Sabre Web Services are based on OpenTravel specifications. Confidential .25 Sabre Holdings Inc. and consequently.Guide to Accessing and Consuming Services. but the content is incorporated into this guide. and to validate XML payloads Intermediate XSD schema document – This schema imports the request and response schemas for the payloads • A set of common schemas that are shared by all of the Sabre Web Services. This kit contains all Sabre Web Services consumer documentation that is not specific to any of the Sabre Web Services and the sample client applications. it is important to format request payloads to use only the elements and attributes that are present in the request and response design XML documentation. This includes the following set of documents: • A pair of request and response design XML documents for every Web service version Note: Please consult these documents for the valid list of elements and attributes that are included in the service. information about URLs and environments for Sabre Web Services.com. Therefore. Accessing this resource center requires a user name and password.sabre. Web service Documentation. Sabre Web Services® Getting Started. The information in this kit helps developers get started quickly. The set of documents is described as follows: • • • WSDL document – This is used to generate proxy code for clients to use Request and response Sabre XML schema documents – These are used to gather data formats and values. The URL is https:// drc. the associated schemas may contain elements and attributes defined by OpenTravel that Sabre Web Services do not use.Resources for Using Sabre Web Services Sabre Web Services Developer Resource Center (DRC). for example. • WSDL and schema documents for every Web service The software development tools used to consume Web services with WSDL must point to the URL where the WSDL document for each Web service resides. available on the DRC in the “Sabre Web Services® – Getting Started” and “Common Schemas” Page 14 Sabre Web Services . Some of the documents are also provided as stand-alone. They also contain the equivalent Sabre formats for users familiar with native Sabre. along a brief description and sample values. This is the private registry and repository where all Sabre Web Services service-related information resides. The design documents list the valid elements and attributes for the Web service and version. This has the components and patches required by the Microsoft Windows platform and environment (run-time and Sabre Web Services . Confidential Page 15 . Each sample is contained in a ZIP file which describes the sample. The detailed samples include explanations about the effect of each service message on the AAA. It also includes the necessary Axis JAR files needed to run this client. and body. These documents present solutions to a particular set of problems. Sample clients. and any required JAR files. TPF Connector-Based Services Workflows. This document explains the requirements for implementing a session manager. All Sabre Web Services use a set of common schemas for the SOAP wrapper. Microsoft .Guide to Accessing and Consuming Services. Sample workflows have been created that to assist application developers with designing effective travel workflows and orchestrated business transactions. in sequence. the Sabre system. Development patterns. The following samples are available: • Sample Java test client for non-WSDL consumption This client can execute any of the session management services and TPF Connectorbased Web Services. Sample Java client code that consumes a TPF Connector-based Web service with WSDL using Apache Axis This has three source code files that consume both the session management messages and a TPF Connector-based Web service.NET Framework. • • Sample C# client code that consumes a TPF Connector-based Web service with WSDL using the Microsoft® . one at a time. v1. They are available on the Developer Resource Center as separate assets. This has suggestions for working with various programming languages. "Managing Connections with Sabre Web Services. headers. Sabre Web Services FAQs. This information also appears in chapter four. and tools in addition to other types of tips. The basic samples list TPF Connector-based Web service messages that are used in the workflow.25 Sabre Holdings Inc. They assist with developing and consuming the session management and TPF Connector-based Sabre Web Services. it is also provided as a separate document.1 SP1 Installation Guidelines.NET Framework 1. has installation information for the platform of the sample.assets. steps for running the sample. • A common schema for Sabre Web Services with hotel-based content Sabre Web Services Connection Management: Best Practices and Strategies. Some complex payloads are also included. development platforms. This has the JAR files needed to run the sample and the licenses. The following sample clients are available on the DRC. and the PNR. The suggestions originate from customer requests for technical support. The purpose of this utility is to demonstrate how to connect to Sabre Web Services." Because of its importance/criticality. sabre. testing. and choose FormatFinder from the Support menu. This is an accumulation of multiple responses returned by the Sabre system that the TPF Connector-based Web services discard. Help on Sabre system formats. To access or download this reference system. Please note that a Sabre system login ID is required to log in. Sabre Airline Solutions® customers can consult FOCUS. Multiple Responses Table. developing. Sabre Web Services Critical Success Factors. Sabre Web Services . Transaction Categories. and deploying client applications that consume Sabre Web Services. This is helpful for knowing which category of scan charge applies to each of the services. visit https://eservices. v1. Sabre® Travel Network™ customers can consult Sabre® FormatFinderSM. Confidential Page 16 . Sabre Web Services release notes. and how to verify successful installation. This is available on the DRC. and functionality. The editions for the current release in production and testing as well as archived editions are available on the Release Notes Archive asset on the DRC. The login ID for the Sabre system is the same as your Sabre Web Services security credentials. roles. the Automated Reference System.development). Access to this reference system is available via any Sabre terminal emulator by simply typing “FOCUS” on the command line. This document discusses the process.Guide to Accessing and Consuming Services. the order of their installation. This lists each of the TPF Connector-based Web services and their transaction type in the Sabre system for billing purposes.com. keywords. and responsibilities for successfully designing.25 Sabre Holdings Inc. opentravel.org and http://www.0 WSDL Information about SOAP Technology updates. including Web and Web services information http://www. including tutorials OpenTravel specifications and information about creating and implementing industrywide applications using these open e-business specifications Information about vendors of Web services. XML schema.org http://www.w3c.ws-i. and industry updates.Guide to Accessing and Consuming Services.webservices.org http://www.org http://www.com Sabre Web Services .w3c. OpenTravel.org/specs http://www.. industry news and articles. best practices. the W3C.org http://www. XLink. especially ebXML Message Service Specification V2. and other related technologies and organizations. and developing with Web services Information about working groups for architecture. Information about the global consortium that develops e-business standards. SOAP..w3c. Web services.oasis-open..25 Sabre Holdings Inc.ebxml..zdnet. Information about XML and its components. information about working groups. v1.org http://www. such as XSLT.org/XML/Schema http://www.ebxml.w3c. WSDL.External Resources for Internet and Web Services Technologies To learn more about XML. protocols. and choreography of Web services Specifications. Visit this Web site. and resources for developing solutions with Web services This site also has samples of implementations of Web services created by various vendors. including ebXML Guidance. descriptions. please visit the Web sites below: To obtain this.org http://www.org http://www. Confidential Page 17 . in particular.html http://ws.org/axis/index.apache.. Axis Reference Guide: WSDL2Java Reference Information about WSDL and Microsoft .NET Framework tools.. Apache Axis software development tools Apache Web services Axis project site. Visual Studio.To obtain this..microsoft.org/axis/java/ reference.apache.com/downloads Sabre Web Services .Guide to Accessing and Consuming Services.. Confidential Page 18 .25 Sabre Holdings Inc. Visit this Web site. Information from The Apache Software Foundation about open source software.html http://msdn. including the SDK.apache.microsoft. where you can read about Apache Axis and select software tools The Axis binary file needed to consume Web services with Apache Axis is available on this page. and code samples http://www.com/netframework http://msdn. v1.org http://ws.NET Framework from the developer center Downloads of Microsoft . Note: When reporting production or other critical issues. Email is monitored Monday through Friday during extended business hours. Sabre Web Services .25 Sabre Holdings Inc. v1.Guide to Accessing and Consuming Services. Telephone 24 x 7 800-678-9460 (USA) 682-605-5570 (Canada) 598-2-518-6020 (International) Or call your regional Sabre software help desk Email Send email to the following address: webservices. Do not send email. Please note that a Pseudo city code. Confidential Page 19 .Technical Support There are several ways to obtain technical support. is required. use the telephone. or
[email protected]. umbrella via SOAP/XML-based Web services messaging. a Web service is a software system that uses XML to define the format and data in messages. The messages are sent over the Internet. Chapter one also discusses the standards and specifications that Sabre Web Services are designed to meet. XML is used to define and describe the format of the data. programming language. and outlines the features and benefits related to utilizing Sabre Web Services. including the Sabre XML specification. Confidential Page 20 .Guide to Accessing and Consuming Services. Software programs are usually written to transform this XML-formatted Sabre Web Services . Web Services Web services are programmatic interfaces for application-to-application communication exposed via the Internet. or platform. and the Web service infrastructure returns an XML response to the client. XML XML is the basis for Web services and Web services technologies that exchange data.25 Sabre Holdings Inc. a Web service is not tied to any particular operating system. Chapter one introduces Web services technology. A client application calls a Web service by sending an XML message as a request. Because all communication is formatted in XML. and its logical structure through a schema. its layout.Chapter 1 Chapter 1: Introduction to Sabre Web Services Sabre Web Services makes it possible for organizations to integrate their business processes and applications with systems and data centers under the Sabre Holdings Inc. More specifically. v1. The Sabre Web Services infrastructure returns a security token to the client. A SOAP message is an XML document that is composed of the following parts: • • • An envelope that contains communication information A header with attributes that describe the communication A body that contains the message or information about the message WSDL WSDL uses a common format to describe and publish the formats.25 Sabre Holdings Inc. Sabre Web Services .data to formats that other software applications and systems can understand. which is part of the Sabre Web Services infrastructure. Service providers expose the content and functionality in their applications in the form of structured XML messages through a common access gateway. SOAP SOAP is a mechanism for transporting data from one network to another. The description of the data tells the receiver how to process the data. WSDL is usually used with SOAP. and the binding to a protocol or transport instructs the sender how to send the data. When the Sabre Web Services infrastructure receives a SessionCreateRQ request message from a client for a connection to Sabre Web Services. The infrastructure creates the connection to Sabre Web Services and a new Sabre session. and routing of messages. security. Confidential Page 21 . These schemas are passed to the Web service. This infrastructure manages sessions. the infrastructure does the following: • • • Validates the security credentials and message format Authenticates the message Authorizes access to applications within Sabre Holdings based upon the user ID in the security credentials 2. and protocols of a Web service. operations. About Sabre Web Services Sabre Web Services is the preferred programmatic method for subscribers to access the content and functionality of business applications and data centers of Sabre Holdings Inc. and then to transform the data back to XML. logging. 1. Both parties must have access to the same XML schema. WSDL elements describe data using one or more XML schemas. 3. v1.Guide to Accessing and Consuming Services. Sabre Web Services . The client sends a Web service request for travel-related content to a business application within Sabre Holdings.Guide to Accessing and Consuming Services.” The Services Model In the Sabre Web Services world access to Sabre systems. which is an extension of the OpenTravel specifications. The service provider maps the message from the Sabre XML format of the request to the native format required by its own business application (if required). URLs for several environments are available for client testing and production. Sabre Web Services are delivered over HTTPS. and is much more modern and cost-effective than accessing and integrating data using legacy binary protocols such as Sabre® Data Source (SDS) or Sabre® Do-it-yourself Tools (Sabre DIY Tools). The infrastructure ends the Sabre session and closes the connection. 5.” Sabre Web Services use document style information for the messages. such as the WSDL and schema documents. consume all Sabre Web Services via XML/SOAP. Clients. Sabre Web Services utilize the Sabre XML specifications. specifically tailored to meet the needs to Sabre and its clients. it returns a response to the client in Sabre XML format. For details about the environments and the URLs. and routes the request to the appropriate Sabre Holdings business application. systems via a URL utilizing Web services-based messaging. All requests are sent to a URL that is the single endpoint into Sabre Web Services. 7. then. 9. The services model allows client applications access and utilize content in an extendable fashion. and data is based on a services model. The Web services artifacts. The document style is used with both XML and WSDL. In this services model.25 Sabre Holdings Inc. 8. please refer to the section of this document titled. v1.4. “Environments for Using Sabre Web Services. Confidential Page 22 . and their URLs are available to subscribers via a private repository called the “Developer Resource Center. The client continues to send requests and service providers respond in the same way. The client includes the conversation ID extracted from the SessionCreateRQ message that opened the connection and the security token returned in the response. applications. When the client wants to close the connection. This simplifies the integration of data with other applications and business processes. The infrastructure obtains the existing Sabre session. 6. the client sends the SessionCloseRQ request. external organizations access data contained within the Sabre Holdings Inc. SOAP is the message protocol that encodes Web services messages before they are sent. After the service provider fulfills the request. TPF Connector-Based Sabre Web Services TPF Connector-based Sabre Web Services retrieve their content from the Sabre legacy host system. please refer to chapter two. commonly referred to as a TAM pool. car. please refer to chapter four. For the format of the session messages. they are actually using multiple types of services: Web services that manage connections along with Web services that retrieve travel. four general types exist: Session manangement services. Session Management-Based Sabre Web Services Messages that are used to establish and manage connections to the Sabre Web Services infrastructure are referred to as session management-based Sabre Web Services. Please note that Sabre Web Services sessions and Sabre host sessions remain active until they are explicitly closed or time out. open systems-based services. ending the allocated Sabre session behind the scenes. as well as screen scraping where applicable. validate existing sessions. and other miscellaneous processing. These services are used to request new Sabre Web Services sessions. thereby eliminating the need for developers to deal with these aspects of the legacy Sabre host system. Of the travel-related Sabre Web Services currently in place.related content. Confidential Page 23 . These Web services contain little to no business logic. Passenger Name Records. Within the TAM pool there are a finite number of sessions available to each user so it is critical that the client application manages them efficiently by not exceeding the maximum number of sessions available at any given time. Sabre Web Services . hotel.25 Sabre Holdings Inc. Being that these services utilize the legacy Sabre host system behind the scenes there are several important concepts to be aware of when using them. v1. Whenever a client application configured to access the TPF Connector-based services signs into the Sabre Web Services infrastructure a host session is allocated from the pool of available sessions associated with the particular point of sale location. reliable mechanism for accessing content in the Sabre legacy host system. These services are a fast. such as queues and customer profiles (STARs) functionality within the legacy Sabre host system. TPF Connector-based services.Guide to Accessing and Consuming Services. SDS conversion. and close existing sessions. where each individual Web service request represents a single Sabre system command. and orchestrated services. These Web services represent a powerful set of Sabre system commands. similar to building blocks. The most important thing to be aware of is session management. handling the complexities of HSSP connection management. For information about connection management. and by explicitly closing sessions that are not needed rather than letting them time out on their own.Types of Web Services When clients are developed to consume Sabre Web Services. TPF Connector-based Sabre Web Services provide access to air. PassengerDetailsRQ. Once the content is loaded into the Sabre work area it can then be modified via subsequent service calls. Enhanced_AirBookWithTaxRQ combines several TPF Connector-based services for booking and pricing flight segments. which causes the legacy Sabre system to load the content into the Sabre work area. The Sabre work area retains the content that is retrieved by the TPF Connector-based services. There are several instances where TPF Connector-based services depend on the presence of previously retrieved content in the Sabre work area.Guide to Accessing and Consuming Services. These Web services provide access to functionality that is not available in the host system. and for discussions regarding workflow and content management. outside of the legacy Sabre host system. PassengerDetailsRQ combines several TPF Connector-based services to create a basic Passenger Name Record. Enhanced_AirBookRQ. which is used to retrieve tax-related information for a specified fare basis code/flight leg. please refer to chapter five. Open Systems-Based Sabre Web Services Open systems-based Sabre Web Services obtain their content from various back-end systems under the Sabre Holdings umbrella.Another important item that client applications need to be aware of is the host buffer. v1. Sabre Web Services . An excellent example of an open systems-based Web service is OTA_AirTaxRQ. The most common illustration of this is modifying an existing Passenger Name Record (PNR). and also includes the open systems-based OTA_AirTaxRQ for retrieving tax-related information for a specified fare basis code/flight leg. or until the client saves and finalizes the content within the work area via the EndTransactionLLSRQ service. Enhanced_AirBookRQ combines several TPF Connector-based services for booking and pricing flight segments. There are presently several orchestrated services available for consumption. Orchestrated Sabre Web Services Orchestrated Sabre Web Services combine multiple operations into a single service call. In order to modify an existing PNR the client application must first explicitly retrieve the record. commonly referred to as the Sabre work area.25 Sabre Holdings Inc. please refer to chapter four. Confidential Page 24 . For a more details regarding connection strategies. The content remains in the Sabre work area while the session is active. and Enhanced_AirBookWithTaxRQ. or AAA. The TPF Connector-based services provide requests and responses based upon industry standard message specifications. Please note that a dedicated connection to the Sabre system is not needed. Sabre Web Services make it easier to integrate Sabre system functionality and content into clients. the client can use the results of the final response any way it chooses. rules. The TPF Connector-based services help reduce the complexity of working with the legacy Sabre system. It is easier to migrate to Sabre Web Services from an existing application. except when using the SabreCommandLLSRQ service: • Have extensive knowledge of Sabre system formats. however. Developing clients with Web Services shortens the development cycle and reduces development costs. Developers do not need detailed knowledge about system commands and formats to interact with the Sabre system via Sabre Web Services. • • In addition to the benefits mentioned previously. Because of this. than it is to migrate from other types of applications that are not based on Web services.25 Sabre Holdings Inc.Benefits of Client Application Development Using TPF Connector‐Based Sabre Web Services Developing clients utilizing Sabre Web Services has many advantages for developers. Basic knowledge of Sabre system formats. Parse native or SDS Sabre system responses. Manage host connectivity and terminal addresses within the Sabre system. The client sends Web service requests that represent a single Sabre system command. developing and consuming Sabre Web Services also have the benefits listed below: • • Being XML-based. When the desired content is obtained and the workflow is ended. Requesting content via a Web service is easier than with other. Confidential Page 25 . The content is retained in the Sabre work area within a specific Sabre Web Services session. The XML messages perform similar functions and return similar information as Sabre system commands. Sending a Web service request via the Internet is a reliable mechanism for accessing the Sabre system. such as one that uses other Sabre DIY Tools. application developers are not required to do the following. v1. which provides greater flexibility when combining services to perform booking activities. more complex tools. Please note that applicaton developers need enough knowledge of Sabre system formats and their functionality to request and obtain the content they want. • • Sabre Web Services . to format XML payloads that use the services.Guide to Accessing and Consuming Services. and functionality is needed. The services have minimal business logic. The TPF Connector-based Sabre Web Services help to reduce the complexity normally required to interact with the legacy Sabre host system. This method also provides the convenience and simplicity of a single point of access. the payload is included inside the SOAP wrapper. The SOAP with Attachments protocol is used to format the messages for Java clients. For the format and sending sequence of the SOAP envelopes and payloads. The fact that the services are granular lets application developers control which functions to perform as well as in what sequence.NET Framework are used to format messages. The SOAP with Attachments protocol is a MIME multipart message with the following MIME parts: • • The header container – This is a SOAP envelope.25 Sabre Holdings Inc. and it is formatted as Sabre XML. and the MIME mail extensions. Confidential Page 26 . The payload container – This is the application payload. Message Structure The messages for Sabre Web Services conform to the following two specifications: • • The ebXML of the SOAP envelope conforms to SOAP with Attachments The content of the payload attachments conforms to Sabre XML The structure of the messages is based on Internet standards such as HTTP. it can instead be included inside the SOAP wrapper. Sabre Web Services . Instead of sending the payload as an attachment. If WSDL and Microsoft . For specific tag requirements. HTTPS. v1. please refer to Appendix A. which is an XML document. HTTPS is the communications protocol. and the payload is sent as an attachment. please refer to chapter two.Guide to Accessing and Consuming Services.• • System performance is enhanced because of the decrease in business logic. Java Axis clients include the payload inside the SOAP wrapper. however. 0 Specification. W3C XML 1. • • Sabre Web Services .org/ specs/ebMS2. MIME specifications [RFC2045].pdf) – This is used for the header containers. which include the header and payload containers.0 (http://www. v1.1 [RFC2616] – This is used for the transport protocol. and W3C XML standards – These are used to define and describe the SOAP messages.1. and [RFC2387] – These are used for the message headers and instructions.1 [SOAP] – This is used for the ebXML message packaging.0 WSDL 1. [RFC2046]. Load balancing for the Sabre Web Services infrastructure closely adheres to this protocol. The majority of them are based on OpenTravel message specifications.Guide to Accessing and Consuming Services. Sabre XML schema documents – These are the schemas that validate the payloads in all Sabre Web Services. SOAP Messages with Attachments specification [SOAPAttach] – This is used for the ebXML messages. hence HTTP messages headers that connect to Sabre Web Services must conform to this. When consuming Sabre Web Services with WSDL. SOAP. Confidential Page 27 .25 Sabre Holdings Inc. SOAP 1. they are required to generate proxy code. • • • • WS-Security – WS-Security standards have been partially adopted for some security elements. ebXML.ebxml. • • • • • OpenTravel and Sabre Web Services have adopted ebXML messaging infrastructure for the packaging because ebXML specifies well-defined semantics for various messaging exchange patterns in the area of messaging over the Internet and Intranet. WSDL documents for Sabre XML – The WSDL documents are based on recommendations from the W3C. The Organization for the Advancement of Structured Information Standards (OASIS) drafts and maintains the ebXML standard. The ebXML Message Service Specification Version 2. OpenTravel specifications (http://www. Sabre Web Services are updated as needed to meet the newest OpenTravel specifications.1 – Sabre XML schemas have been simplified to comply with WSDL version 1.org) – These are the basis for the travel-based request and response XML payloads.Standards and Specifications The standards and specifications that Sabre Web Services are based upon are listed below: • HTTP/1. and conform to WS-I Basic Profile 1.opentravel. some of the Sabre XML schemas have undergone slight modifications. such as generating proxy classes. please refer to chapter four. please refer to the section of this document titled. Sabre XML specifications are created utilizing the best practices concepts of OpenTravel. In the absence of approved specifications by OpenTravel.Guide to Accessing and Consuming Services.” For more information related to managing Web Services connections and sessions. Constraints on data types New elements For information about working with WSDL. “Working with WSDL. Sabre Web Services .25 Sabre Holdings Inc. please refer to Appendix A. For specific tag requirements. Confidential Page 28 . please refer to chapter two. v1. The types of modifications include the following: • • • The use of TPA_Extensions – These are elements that are added to the OpenTravel specifications. Therefore.Sabre XML Specifications As mentioned previously the majority of the Sabre Web Services messages are based on OpenTravel specifications. For the format and sending sequence of the SOAP envelopes and payloads. and future versions are based on the content in the baseline. such as bug fixes or enhanced content in a response.25 Sabre Holdings Inc. The first version of a Web service includes basic content.Guide to Accessing and Consuming Services.Versioning Strategy for Sabre Web Services This versioning strategy applies to the TPF Connector-based Sabre Web Services. Whenever changes are made to a service the second or middle part number is incremented. upgraded version of a Web service. Eventually. When Web Services are upgraded. The services that are frequently upgraded have more versions available for consumption than those services which are seldom upgraded. and unavailable for client consumption.TsabreXML1. A new version of a Web service is created whenever any of the following occurs: • • • Changes are made to a service that require modifications to the structure of the XML request or response Changes are made to a service that require modifications to the client Changes.1. and upgraded versions include enhancements to existing content. Confidential Page 29 . v1. older versions will be deprecated. new content. Bug fixes and other corrections are incorporated into a new. as well as corrections. are made to a service that do not require changes to an existing client or XML structure Subscribers who want to use the changes upgrade their clients as necessary to consume the new service version. even when only one version of a Web service exists. their corresponding WSDL and schema documents are also versioned in the same manner. Individual.TsabreXML + three-part version number Sabre Web Services . The first release of a Web service is assigned an initial version of 2003A. Sabre Web Services simultaneously support up to five versions of every Web service as needed. The new version becomes the baseline. The request payloads of the TPF Connector-based Web services must include a version number that is valid for the service being consumed. The client calls a service version by specifying the desired version in the request payload at run time. and subscribers who do not want to upgrade their clients immediately continue to consume the same version. unsupported.0. The number must be in the correct and complete format. TPF Connector-based Sabre Web Services are versioned to distinguish changes that are made to the payload content of a Web service from one release to another. shown as follows: 2003A. “Basis for Payload Content” and “Using Action Codes. “Versioning of Sabre XML Schema and WSDL Documents. Payloads for a given version can vary slightly. v1. Line Security Line security is the layer that secures the data traveling on the line over the Internet between Sabre data centers and external systems. For information related to the numbering scheme and file naming conventions as related to Web Services versions please refer to the section of this document titled. “Requesting Web Service Versions. please refer to the section of this document titled. The name of a particular Web service and its action code. The URL for consuming Sabre Web Services and security credentials provides authentication. Authentication Authentication is the layer that allows consuming applications access to Web Services. Sabre Web Services .” The action codes for each service are stated in the service overview documentation provided for all Sabre Web Services. Confidential Page 30 .TsabreXML1. authentication.1 Note: TPF Connector-based services do not default to any version of a Web service. A unique action code identifies the request and response payloads for every one of the Sabre Web Services. Clients that consume Sabre Web Services must implement line security with a secure sockets layer. The client provides the value for the action in the SOAP envelope. For more information about actions. Sabre Web Services support point-to-point synchronous transport HTTPS using SSL with 128-bit encryption. The payload requests of TPF Connector-based Web services must also include the desired version of the Web service being consumed.0.Example: 2003A. so it is important to consult the Developer Resource Center and service documentation for the differences among versions. are the same. authorization.” For information related to how to request specific Web service versions. Each of the TPF Connector-based Web services has at least one version. please refer to the sections of this document titled. and can have multiple supported versions at a given time. and confidentiality. and they must secure the payloads with HTTPS. Security Sabre Web Services has implemented multiple layers of security for client applications.25 Sabre Holdings Inc.” Requesting Payload Content Payload content is requested by including the action code that corresponds to the service being called and the desired version number of the Web service itself. represented by the eb:Action element.Guide to Accessing and Consuming Services. These layers include line security. Organization. and Domain elements present in the SOAP envelope in the request message of the SessionCreateRQ service. Confidentiality The confidentiality layer maintains the privacy of the data in a payload during its transmission. “SessionCreateRQ Request Message. For a detailed description of the SOAP envelopes which includes this node. please refer to the section of this document titled. An example of the wsse:Security node that shows the security credentials is shown in Figure 1. the Sabre Web Services infrastructure authorizes access to all services in the product packages to which an organization has subscribed. The Sabre Web Services infrastructure authenticates the requestor of the service or consuming client using the security credentials in the request. Application developers receive the values for these elements when they are set up to use Sabre Web Services. Sabre Web Services use HTTPS with 128-bit SSL encryption.org/ws/2002/12/utility"> <wsse:UsernameToken> <wsse:Username>USERNAME</wsse:Username> <wsse:Password>PASSWORD</wsse:Password> <Organization>IPCC</Organization> <Domain>DEFAULT</Domain> </wsse:UsernameToken> </wsse:Security> Figure 1. Confidential Page 31 . wsse:Password. When a client sends a request.org/ws/2002/12/secext" xmlns:wsu="http://schemas.Security credentials are the wsse:Username.xmlsoap.” <wsse:Security xmlns:wsse="http://schemas. Security Credentials in the wsse:Security node of SessionCreateRQ Authorization The authorization layer gives clients access to specific services or product packages.xmlsoap. v1.25 Sabre Holdings Inc. Sabre Web Services .Guide to Accessing and Consuming Services. If the client is maintaining a connection pool. the client returns the connection ID to the pool when it ends the workflow. A simplified example showing the flow of a Sabre Web Services connection and session follows: More details about connections and sessions. which is associated with the connection being used. such as the Sabre system. 1.25 Sabre Holdings Inc. and Domain elements. Sabre Web Services . 4. When an exchange of messages between a client and a business application. creates a connection. The client and business application exchanges one or more Sabre Web Services messages that represent a business workflow with the service provider to retrieve travel-related content. wsse:Password. For more information regarding network connectivity.Guide to Accessing and Consuming Services. and a binary security token (security token) is returned. and the role of the client are provided in chapter four. This is the only request message that includes the security credentials. v1. Consequently.” Sabre Web Services Connections A Sabre Web Services connection is created when a correctly formatted SessionCreateRQ request is sent to the Sabre Web Services infrastructure. Organization. The client stores the connection ID. consisting of the security token and conversation ID from the response in a connection pool or elsewhere for use when it sends a business workflow. processes it. The infrastructure also returns the same conversation ID sent in the request. A conversation ID and security token identify the connection. “Connecting. 3. and returns the security token with the SessionCreateRS message. The client includes the connection ID with each SOAP request in the messages in the workflow. 2. resources used to develop and deploy production applications must have Internet access. the client also generates and includes a conversation ID. In addition to these credentials. authenticates and authorizes it. and are used together throughout the Sabre Web Services session.Network Connectivity Access to Sabre Web Services for external clients is available through the Internet. The client opens a connection to Sabre Web Services by sending the SessionCreateRQ service request. Confidential Page 32 . please refer to the section of this document titled. a Sabre Web Services session is also allocated. The Sabre Web Services gateway receives the request. takes place. Security credentials in the SessionCreateRQ message (of the SessionCreateRQ Service) consist of the wsse:Username. “Web Services Errors. please refer to the section of this document titled. an HTTP status code of 500 is returned. All request messages in a particular session include the connection ID. and are caused either by clients or Sabre Web Services. the Sabre Web Services connection is not guaranteed to be alive.” Sabre Web Services . When the business workflow is sent. and returns them as SOAP faults. • Sabre Web Services errors – These types of errors occur within the Sabre Web Services infrastructure. When a client connects to Sabre Web Services using security credentials that require a TA. When a Sabre Web Services connection is in use. Business application errors – Business applications that are situated behind the Sabre Web Services infrastructure generate errors which are caused by clients or the Sabre system. the infrastructure allocates a Sabre session at the same time. v1.” For a list of Sabre Web Services error codes. The infrastructure detects and generates these errors. a Sabre Web Services connection and a Sabre session are treated the same. the client closes the connection by sending the SessionCloseRQ service request with the conversation ID and security token of the connection it is closing. They occur in the development environment. They are returned to clients in ErrorRS format. (The connection ID consists of the conversation ID and security token. “Error Messages Returned to Clients. when the Sabre Web Services connection ID is returned to a connection pool. and are returned to the client.Guide to Accessing and Consuming Services.5. • • When a response contains the <soap-env:fault> node. with or without ebXML headers. For more information about error handling. HTTP Status Code 200 is returned. When the Sabre Web Services connection is no longer needed. With this type of user ID. If activity has not occurred within the pre-determined time-out limit. Errors Several types of errors are possible. Confidential Page 33 .25 Sabre Holdings Inc. the Sabre session is returned to the session pool. If no SOAP fault exists. a Sabre host session is allocated.) Only one conversation ID must exist per business workflow. System errors generated by clients – Clients cause these errors which are external to Sabre Web Services. the Sabre host session is active. please refer to the section of this document titled. Some of this information is the conversation ID and the action code that references the payload. The payload is based on approved Sabre XML vocabularies for clients that consume Sabre Web Services.Chapter 2 Chapter 2: SOAP Messaging Formats/Requirements Chapter two illustrates the sequence and format of the SOAP messages used to successfully connect to and consume Sabre Web Services.25 Sabre Holdings Inc. Depending upon how the client consumes Sabre Web Services. SOAP Envelopes The ebXML MessageHeader inside the SOAP envelope contains routing information for the message as well as other important information. Confidential Page 34 . v1. Payloads The payload is the business or application content of the message. which is the payload attachment. this document refers to these two MIME parts as the SOAP envelope and payload. which is the SOAP envelope. and the payload container. "Sabre XML Specifications. For simplicity. the payload is either sent as an attachment or included inside the envelope.Guide to Accessing and Consuming Services. the payload can be included inside the envelope. (Sabre XML specifications are discussed in chapter three. SOAP Message Overview The SOAP Message with Attachments specification has two MIME parts: the header container. It corresponds to the request for the service being called. Sabre Web Services . For those software development tools that do not support attachments.") Sabre XML messages support one payload per envelope. please consult the description documents that correspond to the Web services on the Developer Resource Center. and availability. Services with read functionality are for viewing data. Services which are based on write functionality create or add to something in the Sabre system.” The Sabre XML schemas define the required formats for the content in the message payloads. The basic types of functionality available in these messages is as follows: • Read functionality. the messages must conform to the WSDL standard by including the payload inside the SOAP envelope.Guide to Accessing and Consuming Services.NET Framework or Apache Axis. These types of messages find information and retrieve it for display. such as PNRs or customer profiles (STARs). Write functionality. While it is preferable to send the message as an attachment. and the response is the message that Sabre Web Services return to the client for consumption. For this information. The schemas provide the formats and constraints for the data elements themselves. For an example of an envelope that includes the payload. “Payloads Formatted Inside SOAP Envelopes. vehicle rates and rules. including the extended elements and attributes that are defined for use with the Sabre system and other Sabre applications. the payload is a MIME part following the SOAP with Attachments Specification. For the valid list of elements and attributes in a Web service. • Sabre Web Services . including clients that are developed with Microsoft . air schedules. The request is the message that a client sends to the appropriate Sabre system or application for processing. consult the design documents.) Note: Each Web service has unique service-specific values for the SOAP envelopes and payloads.For Java clients.25 Sabre Holdings Inc. For clients that consume Web services with WSDL. v1. please refer to the section of this document titled. it is possible to format the payload inside the SOAP envelope when using Java. Confidential Page 35 . such as fare displays. These messages create or modify records in the Sabre system. (These are child elements of the TPA_Extensions nodes. XML Request and Response Message Pairs Each Web service consists of an XML request and an XML response. Figure 2. SOAP-ENV: Body eb: Manifest eb: Etc. HTTPS is the communications protocol. v1. as shown in Figure 2.Guide to Accessing and Consuming Services. other: Etc. HTTPS. The structure of the messages is based on Internet standards such as HTTP.Message Structure The messages for Sabre Web Services conform to the following specifications: • • The ebXML of the SOAP envelope conforms to SOAP with Attachments. and the MIME mail extensions.25 Sabre Holdings Inc. The SOAP with Attachments protocol is used to format the messages. The content of the payload attachments conforms to Sabre XML. Confidential Page 36 . Structure of an ebXML Message with a Payload Attachment4 Communication Protocol Envelope (HTTPS) SOAP with Attachments MIME Envelope MIME Part SOAP-ENV: Envelope SOAP-ENV: Header eb: MessageHeader eb: Action eb: Etc. The preferred format has the payload as an attachment. other: Etc. HTTPS is the transport protocol. MIME Part Payload (Sabre XML) Payload contain Sabre Web Services . it can be included inside the SOAP wrapper. Structure of an ebXML Message with the Payload Inside the SOAP Body Communication Protocol Envelope (HTTPS) SOAP with Attachments MIME Envelope MIME Part SOAP-ENV: Envelope SOAP-ENV: Header eb: MessageHeader eb: Action eb: Etc. replacing eb:Manifest inside the SOAP envelope. The content is either the business logic or data without business logic. SOAP body – This is the container for the control data of the message service handler and information about the payload parts of the message. • Header container The header container has a SOAP envelope. v1. other: Etc. SOAP-ENV: Body Payload (Sabre XML) other: Etc. the ebXML <eb:Manifest> element references the attached payload in the SOAP body. Figure 3. which is an XML document. This is shown in Figure 3. If the payload is sent as an attachment. the payload is included inside the SOAP wrapper.Guide to Accessing and Consuming Services. Confidential Page 37 . It is formatted as Sabre XML. Sabre Web Services .The SOAP Messages with Attachments specification is a multipart message with two MIME parts: the header container and payload container. • Payload container The payload container is the application payload. This SOAP message consists of the following elements: • • SOAP header – This is the mechanism to add features to the SOAP message.25 Sabre Holdings Inc. If WSDL is used to format the messages. Instead of sending the payload as an attachment. including header elements that are specific to ebXML. please consult the service description and developer notes available on the Developer Resource Center.” Please read these topics carefully. and attributes that these standards and specifications require. Some nodes and requirements in the SOAP messages are the same for all Sabre Web Services. “Workflows Using TPF Connector-Based Sabre Web Services. while other requirements are specific to the specific Web service itself. Some fields have maximum lengths. For all service. Confidential Page 38 . For information related to the maximum field size of these data elements please refer to Appendix A. and “RS” represents the response.25 Sabre Holdings Inc. elements.SOAP Message Sequence and Format When clients consume Sabre Web Services.Guide to Accessing and Consuming Services. the SOAP envelopes contain namespaces. Sabre Web Services conform to many standards and specifications. they use two types of messages: session management messages and travel content-related messages. Any data values exceeding the maximum number of characters results in an error which is returned to the client. v1. preventing the client from creating a connection. For any values not specifically described in “SOAP Message Tag Reference and Guide to Use. This topic reviews the message formats and use in a conversational style connection.” please format the messages as shown in the examples that are presented in the following topics. where “RQ” represents the request. Sabre Web Services . For the standards and specifications please refer to the section of this document titled. SessionCreateRQ Request Message Consumers of all types of Sabre Web Services use the same SessionCreateRQ/RS messages to open connections to the Sabre Web Services gateway.specific values. including ebXML and WS-Security. “Standards and Specifications. please refer to Appendix A. The session management services also have some unique nodes and formats in the SOAP envelopes.” Note: More complete discussions about the required sequence of messages in a Sabre Web Services connection can be found in the section of this document titled. Therefore. “Approaches for Handling Connectivity. The names of the message pairs for each Web service end with RQ and RS.” The sequence of messages in travel workflows is illustrated in the section of this document titled. The messages are presented in their required sending sequence. For detailed requirements about formatting the data elements in the messages and values. SessionCreateRQ Payload Message (040) <SessionCreateRQ> (041) <POS> (042) <Source PseudoCityCode="yourIPCC"/> (043) </POS> (044) </SessionCreateRQ> Sabre Web Services .org/1999/xlink" (005) xmlns:xsd="http://www.org/namespaces/messageHeader" (004) xmlns:xlink="http://www.sabre. SessionCreateRQ SOAP Envelope (001) <?xml version='1.w3. Confidential Page 39 .25 Sabre Holdings Inc.xmlsoap.org/ws/2002/12/utility"> (026) <wsse:UsernameToken> (027) <wsse:Username>USERNAME</wsse:Username> <wsse:Password>PASSWORD</wsse:Password> (028) (029) <Organization>yourIPCC</Organization> (030) <Domain>DEFAULT</Domain> (031) </wsse:UsernameToken> (032) </wsse:Security> (033) </SOAP-ENV:Header> (034) <SOAP-ENV:Body> (035) <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2.org:IO5:01">webservices.org:IO5:01">clientURL</eb:PartyId> (011) </eb:From> (012) <eb:To> (013) <eb:PartyId type="urn:x12.ebxml.org/soap/envelope/" (003) xmlns:eb="http://www.0"> (036) <eb:Reference xmlns:xlink="http://www.Guide to Accessing and Consuming Services.w3.0' encoding='UTF-8'?> (002) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas. v1.0"> <eb:ConversationId>
[email protected]</eb:ConversationId> (008) (009) <eb:From> (010) <eb:PartyId type="urn:x12.w3.org/ws/2002/12/secext" (025) xmlns:wsu="http://schemas.org/1999/XMLSchema"> (006) <SOAP-ENV:Header> (007) <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="2.org/1999/xlink" xlink:href="cid:SessionCreateRQ" xlink:type="simple"/> (037) </eb:Manifest> (038) </SOAP-ENV:Body> (039) </SOAP-ENV:Envelope> Example 2.com</ eb:PartyId> (014) </eb:To> (015) <eb:CPAId>yourIPCC</eb:CPAId> (016) <eb:Service eb:type="sabreXML">Session</eb:Service> (017) <eb:Action>SessionCreateRQ</eb:Action> (018) <eb:MessageData> (019) <eb:MessageId>mid:20031209-133003-2333@clientURL</eb:MessageId> (020) <eb:Timestamp>2003-12-09T11:15:12Z</eb:Timestamp> (021) <eb:TimeToLive>2003-12-09T11:15:12Z</eb:TimeToLive> (022) </eb:MessageData> (023) </eb:MessageHeader> (024) <wsse:Security xmlns:wsse="http://schemas.Example 1.xmlsoap.xmlsoap. Specifies the document root element. the IPCC in POS/Source/PseudoCityCode In the SOAP envelope. either as an attachment or included in the SOAP body.Guide to Accessing and Consuming Services. Note: In all request messages using the same connection. It is recommended that this value match the value for content ID in the MIME Header and eb:Reference/xlink:href (line 036). and eb:Action (line 017) Includes security credentials in the wsse:Security node (lines 024–032) (Payloads sent as attachments) Sets the reference to the payload attachment in the xlink:href attribute of the eb:Reference element (line 036) (Payloads included in SOAP envelopes) Substitutes the payload for eb:Manifest in the first MIME part SessionCreateRQ Payload The client creates the payload.SessionCreateRQ SOAP Envelope Format the SOAP envelopes and payloads for the requests as shown in Examples 1 and 2. The client application does the following for each connection: • • • • • • • • • Generates a globally unique value for eb:ConversationId (line 008) Generates a value for eb:MessageId (line 019) Generates values for eb:Timestamp (lines 020 and 021) Includes the appropriate values for eb:From and eb:To (lines 009–014) Includes the required value for eb:CPAId (line 015). eb:type (line 016). This must match the value of xlink:href in eb:Reference in the SOAP envelope. v1.25 Sabre Holdings Inc. include the value for the content ID. • • • In the MIME Header. Includes the service specific values for eb:Service. the values for the following must be the same: In the payload. Passes the value for Source/PseudoCityCode (line 042). The is the same value sent with eb:CPAId and Organization in the SOAP envelope. the Organization element Sabre Web Services . eb:CPAId In the SOAP envelope of SessionCreateRQ. respectively. Confidential Page 40 . This is the same value as <Organization>. v1.org/ws/2002/12/secext"> (023) <wsse:BinarySecurityToken valueType="String" (024) EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.com</eb:MessageId> (018) <eb:Timestamp>2003-12-09T11:15:13Z</eb:Timestamp> (019) </eb:MessageData> (020) <RefToMessageId>mid:20031209-133003-2333@clientURL</RefToMessageId> (021) </eb:MessageHeader> (022) <wsse:Security xmlns:wsse="http://schemas.0.w3.xmlsoap.ebxml.org/1999/xlink"> (004) <SOAP-ENV:Header> (005) <eb:MessageHeader xmlns:eb="http://www.IDL/Common/ !ICESMS\/RESA!ICESMSLB\/RES.LB!-4845652307057192441!339520!0</ wsse:BinarySecurityToken> (025) </wsse:Security> (026) </SOAP-ENV:Header> (027) <SOAP-ENV:Body> (028) <eb:Manifest xmlns:eb=”http://www.sabre.0" SOAP-ENV:mustUnderstand="1"> (006) <eb:ConversationId>
[email protected]</eb:PartyId> (009) </eb:From> (010) <eb:To> (011) <eb:PartyId>clientURL</eb:PartyId> (012) </eb:To> (013) <eb:CPAId>yourIPCC</eb:CPAId> (014) <eb:Service eb:type=”sabreXML”>Session</eb:Service> <eb:Action>SessionCreateRS</eb:Action> (015) (016) <eb:MessageData> (017) <eb:MessageId>mid:
[email protected]/namespaces/messageHeader” eb:version="2.ebxml.org/namespaces/ messageHeader" eb:version="2.SessionCreateRS Response Message Example 3.xmlsoap.Guide to Accessing and Consuming Services.org/soap/envelope/" (003) xmlns:xlink="http://www. Confidential Page 41 .25 Sabre Holdings Inc. SessionCreateRS SOAP Envelope with wsse:BinarySecurityToken (001) <?xml version='1.sabre.0"> (029) <eb:Reference eb:id=”SessionCreateRS” xlink:type="simple" xlink:href="cid:SessionCreateRS" (030) <eb:Description xml:lang=”en-US”>Response Message</eb:Description>"/> (031) </eb:Reference> (032) </eb:Manifest> (033) </SOAP-ENV:Body> (034) </SOAP-ENV:Envelope> Sabre Web Services .0' encoding='UTF-8'?> (002) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.com</eb:ConversationId> (007) <eb:From> (008) <eb:PartyId>webservices. please refer to the section of this document titled. Note the following in the SessionCreateRS response: • • • The Sabre Web Services infrastructure returns a security token in wsse:BinarySecurityToken. The connection ID consists of the returned security token and the conversation ID.opentravel. and creates a connection. it allocates a Sabre session upon authorization. but this version is independent of the versioning strategy for TPF Connector-based or open systems-based Sabre Web Services (line 034). • Consuming the SessionCreateRQ Service The client sends the SessionCreateRQ request message to the endpoint for consuming Sabre Web Services over HTTPS. see Examples 3 and 4. v1. the client parses the eb:ConversationId and the entire wsse:Security node with wsse:BinarySecurityToken and stores them for subsequent use in Sabre Web Services . a child of wsse:Security (lines 022–025). The payloads of the session request messages do not have an xmlns attribute with the document root element.25 Sabre Holdings Inc.org/OTA/2002/11”version=”1” status="Approved"> (036) <ConversationId>ABC123@clientURL. encrypted security token to the requester on the client side in wsse:BinarySecurityToken in the SOAP envelope of the SessionCreateRS response. This is a reference to the message ID of the corresponding request (line 020). “Environments for Using Sabre Web Services. but this attribute is returned in the payload of the responses (line 034). (For complete information about the URLs and environments. Its return means the connection to the Sabre Web Services infrastructure is alive and a Sabre Web Services session (also called a TA) is allocated.Example 4. It also returns the same conversation ID and a reference to the message ID in the request. SessionCreateRS Payload Message (035) <SessionCreateRS xmlns=”http://www. The infrastructure then authorizes the security credentials.com</ConversationId> (037) </SessionCreateRS> SessionCreateRS Response Format For the format of the response.”) The Sabre Web Services gateway receives and authenticates the request. Confidential Page 42 .Guide to Accessing and Consuming Services. The infrastructure returns a unique message ID in <eb:RefToMessageId>. If required. For every connection it creates. The infrastructure returns a unique. The eb:version attribute returns a number. the following values must match the values that were used to open the connection with SessionCreateRQ: eb:ConversationId. eb:CPAId (eb:Organization). see chapter four.Guide to Accessing and Consuming Services.requests for travel content that use the connection and Sabre session. Note: Remember that when using a specific Sabre Web Services connection and session. Sabre Web Services .25 Sabre Holdings Inc. PseudoCityCode. v1. This makes it possible to reuse the connection when a connection pool is implemented. Confidential Page 43 . The same value returned in wsse:BinarySecurityToken in SessionCreateRS must be sent in all messages using the connection. and in the payload. For complete information about techniques for handling connectivity. please refer to the service documents published on the Developer Resource Center. The use of the eb:Timeout tag itself is implemented by the a service provider. v1. Sabre Web Services . and the value for eb:ConversationId. Examples that can be cited include the value for eb:Action. which is a unique. is used in Examples 5 and 6. connection.25 Sabre Holdings Inc. but some tags and values in the SOAP envelopes are specific to the Web service. The <HostCommand> element is returned in the responses of TPF Connector-based Sabre Web Services. Some of the exceptions are noted as follows: • • Each service provider specifies how to use the Version and PseudoCityCode attributes. and service provider. For the service-specific payload messages and formats. The TPF Connector-based Web service. Currently this tag is read only by the TPF Connector. Confidential Page 44 . and so it can be included in the SOAP envelopes of TPF Connector-based Sabre Web Services. as shown in the following examples. service-specific value. which is unique to a Sabre Web Services connection and session.Request Messages for Travel Content All open systems and TPF Connector-based Sabre Web Services adhere to the same model for the SOAP envelopes of the requests and responses.Guide to Accessing and Consuming Services. The payload messages for all TPF Connector-based and open systems-based Sabre Web Services follow similar models. OTA_HotelAvailLLSRQ. w3.Example 5.<eb:TimeToLive>2003-12-09T11:16:12Z</eb:TimeToLive> --> (022) <eb:Timeout>50</eb:Timeout> (023) </eb:MessageData> (024) </eb:MessageHeader> (025) <wsse:Security xmlns:wsse="http://schemas.0"> (032) <eb:Reference xmlns:xlink="http://www.org:IO5:01">clientURL</eb:PartyId> (011) </eb:From> (012) <eb:To> (013) <eb:PartyId type="urn:x12.com</eb:ConversationId> <eb:From> (009) (010) <eb:PartyId type="urn:x12.xmlsoap.LB!-4845652307057192441!339520!0</ wsse:BinarySecurityToken> (028) </wsse:Security> (029) </SOAP-ENV:Header> (030) <SOAP-ENV:Body> (031) <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2.Guide to Accessing and Consuming Services.org/soap/envelope/" (003) xmlns:eb="http://www.0.ebxml.IDL/Common/ !ICESMS\/RESA!ICESMSLB\/RES.xmlsoap.org/1999/xlink" (005) xmlns:xsd="http://www.org/namespaces/messageHeader" (004) xmlns:xlink="http://www.org:IO5:01">webservices.25 Sabre Holdings Inc.0" encoding="UTF-8"?> (002) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.0"> (008) <eb:ConversationId>
[email protected]/1999/XMLSchema"> (006) <SOAP-ENV:Header> (007) <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="2.org/1999/xlink" (033) xlink:href="cid:OTA_HotelAvailRQ" (034) xlink:type="simple"/> (035) </eb:Manifest> (036) </SOAP-ENV:Body> (037) </SOAP-ENV:Envelope> Sabre Web Services .sabre.com</ eb:PartyId> (014) </eb:To> (015) <eb:CPAId>yourIPCC</eb:CPAId> (016) <eb:Service eb:type="sabreXML"> OTA_HotelAvailLLSRQ</eb:Service> (017) <eb:Action>OTA_HotelAvailLLSRQ</eb:Action> (018) <eb:MessageData> (019) <eb:MessageId>mid:20031209-133003-2334@clientURL</eb:MessageId> (020) <eb:Timestamp>2003-12-09T11:15:14Z</eb:Timestamp> (021) <!-. Confidential Page 45 .org/ws/2002/12/ secext"> (026) <wsse:BinarySecurityToken valueType="String" (027) EncodingType="wsse:Base64Binary">SShared/IDL:IceSess\/SessMgr:1\. v1.w3. SOAP Envelope of a Request for Travel Content (001) <?xml version="1.w3. 0" encoding="UTF-8"?> (039) <OTA_HotelAvailRQ xmlns="http://webservices. exclude eb:TimeToLive because these are mutually Page 46 • Sabre Web Services .org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2001-12-17T09:30:4705:00" Target="Production" Version="2003A. If the value is greater than the default value on the service.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> (040) <POS> (041) <Source PseudoCityCode="yourIPCC"/> (042) </POS> (043) <AvailRequestSegments> (044) <AvailRequestSegment> (045) <StayDateRange Start="2006-11-22T00:00:00" End="2006-11-25T00:00:00"/> (046) <RoomStayCandidates> (047) <RoomStayCandidate> (048) <GuestCounts> (049) <GuestCount Count="2"/> (050) </GuestCounts> (051) </RoomStayCandidate> (052) </RoomStayCandidates> (053) <HotelSearchCriteria> (054) <Criterion> (055) <HotelRef HotelCityCode="DFW" ChainCode="MC"/> (056) </Criterion> (057) </HotelSearchCriteria> (058) </AvailRequestSegment> (059) </AvailRequestSegments> (060) </OTA_HotelAvailRQ> Request SOAP Envelopes Format the SOAP envelopes and payloads for the request as shown in Examples 5 and 6. eb:Timeout (lines 019–020) Optionally. This value must be less than the system default value on the service. respectively. the TPF Connector ignores it and uses the default. the generated value for eb:Timeout.25 Sabre Holdings Inc. Payload of a Request for Travel Content (038) <?xml version="1.org/2001/XMLSchema" xmlns:xsi="http://www. only the TPF connector has implemented this for TPF Connector-based Sabre Web Services and orchestrated Web services.sabre.w3.TsabreXML1. using service-specific data values and formats. For detailed common requirements.Example 6.com/sabreXML/2003/07" xmlns:xs="http://www.w3. v1. The client includes the following: • • • • The value for eb:ConversationId which is extracted from the connection being used The same value for eb:CPAId that was used to open the connection (line 015) Values for <eb:MessageId> and eb:Timestamp. Confidential .Guide to Accessing and Consuming Services. and optionally. Currently. please refer to Appendix A.4. (line 022) If sending a time-out value. (line 039) The value for the Source/PseudoCityCode. This must match the value of xlink:href in eb:Reference (line 032) The document root element. eb:Service. (line 041) The values for the following three must be the same: • • • In all payloads.exclusive. see “eb:Timeout. the Organization element • • Remember that for all messages sent in a given connection. This value must match the values sent with eb:CPAId and Organization in the SOAP envelope of the SessionCreateRQ message that opened the connection. (line 021) For more information about the service time-outs. service descriptions. which includes wsse:BinarySecurityToken. the value for PseudoCityCode and eb:CPAId must match the value in the SessionCreateRQ message that was used to create the Web Services connection being used. eb:CPAId In the SOAP envelope of SessionCreateRQ. eb:type (line 016). please consult the design documents. and developer notes. Confidential Page 47 .” • • Appropriate values for eb:From and <eb:To> (lines 009–014).25 Sabre Holdings Inc. MDR subsets. the value for the content ID. Note. v1. the IPCC in POS/Source/PseudoCityCode In all SOAP envelopes. also. that TimeToLive is not supported. eb:CPAId (line 015). and eb:Action (line 017) The wsse:Security node. It is recommended that this value match the value for content ID in the MIME Header and eb:Reference /xlink:href. and document root elements. For the valid version attribute values. Obtain the applicable versions and correct format in the service documentation on the Developer Resource Center.Guide to Accessing and Consuming Services. (line 039) A value for the Version attribute that is applicable to the version of the Web service your client is consuming. extracted from the SessionCreateRQ request that opened the Web Services connection being used (lines 025–028) (Payloads sent as attachments) The reference to the payload attachment in the xlink:href attribute of the eb:Reference element (line 032) (Payloads included in SOAP envelopes) The payload in place of the eb:Manifest element in the first MIME part • • Request Payloads The client includes the following: • • • In the MIMEHeader. (line 039) The value for the xmlns attribute of the document root element. Sabre Web Services . Application developers need to refer to the developer notes for the Web service being used. 0"> (027) <eb:Reference xmlns:xlink="http://www.com</eb:ConversationId> (012) (013) <eb:Service eb:type=”sabreXML”>Hotel Availability</eb:Service> (014) <eb:Action>OTA_HotelAvailLLSRS</eb:Action> (015) <eb:MessageData> (016) <eb:MessageId>mid:
[email protected] to Accessing and Consuming Services.com</ eb:PartyId> (007) </eb:From> (008) <eb:To> (009) <eb:PartyId eb:type="urn:x12.com</ eb:RefToMessageId> (018) <eb:Timestamp>2003-12-09T11:15:15Z</eb:Timestamp> (019) </eb:MessageData> (020) </eb:MessageHeader> (021) <wsse:Security xmlns:wsse="http://schemas.IDL/Common/ !ICESMS\/RESA!ICESMSLB\/RES.sabre.0" encoding="UTF-8"?> (002) <soap-env:Envelope xmlns:soap-env="http://schemas. shown in examples 7 and 8.sabre.ebxml.LB!-4845652307057192441!339520!0</ wsse:BinarySecurityToken> (023) </wsse:Security> (024) </soap-env:Header> (025) <soap-env:Body> (026) <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2.org/namespaces/ messageHeader" eb:version="2. Example 7.org/ws/2002/12/secext"> (022) <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.xmlsoap.org:IO5:01">clientURL</eb:PartyId> (010) </eb:To> <eb:CPAId>yourIPCC</eb:CPAId> (011) <eb:ConversationId>ABC123@clientURL. SOAP Envelope of a Response for Travel Content (001) <?xml version="1.Response Messages with Travel Content Responses of all TPF Connector-based Sabre Web Services conform to the following format.org/1999/xlink" (028) xlink:href="cid:OTA_HotelAvailRS" (029) xlink:type="simple"/> (030) </eb:Manifest> (031) </SOAP-ENV:Body> (032) </SOAP-ENV:Envelope> Sabre Web Services .org:IO5:01">webservices. Confidential Page 48 .com</eb:MessageId> (017) <RefToMessageId>mid:20031209-133003-2334@clientURL. v1.xmlsoap.25 Sabre Holdings Inc.0" soap-env:mustUnderstand="1"> <eb:From> (005) (006) <eb:PartyId eb:type="urn:x12.0.org/soap/envelope/ "> (003) <soap-env:Header> (004) <eb:MessageHeader xmlns:eb="http://www. N2Q. v1.com/sabreXML/2003/07" xmlns:xs="http://www.TsabreXML1. (047) </RoomRates> (048) <BasicPropertyInfo ChainCode="HI" HotelCode="51645" HotelName="HOLIDAY INN EX STES DFW" HotelCityCode="DFW" AreaID="003NW"> (049) <TPA_Extensions> (050) <Line RPH="001"/> (051) <Distance Ind="M"/> (052) <CurrencyCode>USD</CurrencyCode> (053) <MinRate Amount="94.org/2001/ XMLSchema-instance" Version="2003A.25 Sabre Holdings Inc.org/2001/XMLSchema" xmlns:xsi="http://www.. Confidential Page 49 .NS1" RatePlanCode="GRT"/> .1"> (035) <Success/> (036) <RoomStays MoreIndicator="Y"> (037) <RoomStay> (038) <RoomRates> (039) <RoomRate RPH="001" RoomTypeCode="STD" RatePlanCode="RAC"/> (040) <RoomRate RPH="001" RoomTypeCode="C1D" RatePlanCode="COR"/> (041) <RoomRate RPH="001" RoomTypeCode="STD" RatePlanCode="GRR"/> (042) <RoomRate RPH="001" RoomTypeCode="A1K.w3.w3...Example 8.C1D.0" encoding="UTF-8"?> (034) <OTA_HotelAvailRS xmlns="http://webservices..00" CurrencyCode="USD" DecimalPlaces="2"/> (055) <DirectConnect> (056) <DCSellParticipant Ind="true"/> (057) <DCAvailParticipant Ind="true"/> (058) <UnAvail Ind="false"/> (059) <RequestFail Ind="false"/> (060) </DirectConnect> (061) <LocationDescription Code="G"> (062) <Text>GRAPEVINE</Text> (063) </LocationDescription> (064) </TPA_Extensions> (065) <Position Latitude="32.Guide to Accessing and Consuming Services. Payload of a Response for Travel Content (033) <?xml version="1.sabre.N1K.921900" Longitude="-97.00" CurrencyCode="USD" DecimalPlaces="2"/> (054) <MaxRate Amount="159.4.080400"/> (066) <Address> (067) <TPA_Extensions> (068) <AddressLine>309 STATE HWY 114 WEST</AddressLine> (069) <AddressLine>GRAPEVINE TX 76051</AddressLine> (070) </TPA_Extensions> (071) </Address> (072) <ContactNumbers> (073) <ContactNumber PhoneNumber="817-442-5919"/> (074) <TPA_Extensions> (075) <FaxNumber PhoneNumber="817-442-5960"/> (076) </TPA_Extensions> (077) </ContactNumbers> (078) </BasicPropertyInfo> Sabre Web Services .B2Q. (043) <RoomRate RPH="011" RoomTypeCode="STD" RatePlanCode="RAC"/> (044) <RoomRate RPH="011" RoomTypeCode="STD" RatePlanCode="BBA"/> (045) <RoomRate RPH="011" RoomTypeCode="STD" RatePlanCode="COR"/> (046) <RoomRate RPH="011" RoomTypeCode="STD" RatePlanCode="GRR"/> . 827000"/> <Address> <TPA_Extensions> <AddressLine>4960 ARAPAHO ROAD</AddressLine> <AddressLine>ADDISON TX 75001</AddressLine> </TPA_Extensions> </Address> <ContactNumbers> <ContactNumber PhoneNumber="1-972-490-1212"/> <TPA_Extensions> <FaxNumber PhoneNumber="1-972-233-4283"/> </TPA_Extensions> </ContactNumbers> </BasicPropertyInfo> .. Confidential Page 50 .25 Sabre Holdings Inc.00" CurrencyCode="USD" DecimalPlaces="2"/> <DirectConnect> <DCSellParticipant Ind="true"/> <DCAvailParticipant Ind="true"/> <UnAvail Ind="false"/> <RequestFail Ind="false"/> </DirectConnect> <LocationDescription Code="G"> <Text>ADDISON TX</Text> </LocationDescription> </TPA_Extensions> <Position Latitude="32.958500" Longitude="-96.(079) (080) (081) (082) (083) (084) (085) (086) (087) (088) (089) (090) (091) (092) (093) (094) (095) (096) (097) (098) (099) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) <BasicPropertyInfo ChainCode="HI" HotelCode="53766" HotelName="HOLIDAY INN ADDISON" HotelCityCode="DFW" AreaID="013E"> <TPA_Extensions> <Line RPH="011"/> <Distance Ind="M"/> <CurrencyCode>USD</CurrencyCode> <MinRate Amount="117.. v1. (110) </RoomStay> (111) </RoomStays> (112) <TPA_Extensions> (113) <HostCommand>ARS01S093HOTDFW/22NOV-25NOV2/MC</HostCommand> (114) </TPA_Extensions> (115)</OTA_HotelAvailRS> Sabre Web Services .Guide to Accessing and Consuming Services.99" CurrencyCode="USD" DecimalPlaces="2"/> <MaxRate Amount="139. the Version attribute of the document root element returns the service version requested (line 034). v1. the business application returns the Sabre system command used to format the request in <HostCommand> (line 113). Sabre Web Services . Confidential Page 51 .Guide to Accessing and Consuming Services.Consuming a Travel-Based Service Please note the following in the response: SOAP Envelope • • The Sabre Web Services gateway returns a unique message ID and a reference to the message ID of the corresponding request in <eb:RefToMessageId> (lines 016–017). The security token is returned in wsse:BinarySecurityToken (line 022). Payload • • For TPF Connector-based Sabre Web Services.25 Sabre Holdings Inc. For TPF Connector-based Sabre Web Services. org/namespaces/messageHeader" (004) xmlns:xlink="http://www.LB!-4845652307057192441!339520!0</ wsse:BinarySecurityToken> (027) </wsse:Security> (028) </SOAP-ENV:Header> (029) <SOAP-ENV:Body> (030) <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2.SessionCloseRQ Message The model for the SessionCloseRQ message.0"> (031) <eb:Reference xmlns:xlink="http://www. which is required to close Sabre Web Services connections.org:IO5:01">webservices.com</eb:ConversationId> (008) <eb:From> (009) (010) <eb:PartyId eb:type="urn:x12.org:IO5:01">clientURL</eb:PartyId> (011) </eb:From> (012) <eb:To> (013) <eb:PartyId type="urn:x12.25 Sabre Holdings Inc.0.IDL/Common/ !ICESMS\/RESA!ICESMSLB\/RES.org/1999/XMLSchema"> (006) <SOAP-ENV:Header> (007) <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="2.Guide to Accessing and Consuming Services. is shown in examples 9 and 10.org/1999/xlink" (032) xlink:href="cid:SessionCloseRQ" xlink:type="simple"/> (033) </eb:Manifest> (034) </SOAP-ENV:Body> (035) </SOAP-ENV:Envelope> Sabre Web Services .org/ws/2002/12/secext"> (025) <wsse:BinarySecurityToken valueType="String" (026) EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\. SessionCloseRQ SOAP Envelope (001) <?xml version='1.com</ eb:PartyId> (014) </eb:To> (015) <eb:CPAId>yourIPCC</eb:CPAId> (016) <eb:Service eb:type="sabreXML">Session</eb:Service> (017) <eb:Action>SessionCloseRQ</eb:Action> (018) <eb:MessageData> (019) <eb:MessageId>mid:20031209-133003-2335@clientURL</eb:MessageId> (020) <eb:Timestamp>2003-12-09T11:15:16Z</eb:Timestamp> (021) <eb:TimeToLive>2003-12-09T11:15:16Z</eb:TimeToLive> (022) </eb:MessageData> (023) </eb:MessageHeader> (024) <wsse:Security xmlns:wsse="http://schemas.xmlsoap.0"> <eb:ConversationId>
[email protected]. v1. Example 9.w3.org/soap/envelope/" (003) xmlns:eb="http://www.org/1999/xlink" (005) xmlns:xsd="http://www.xmlsoap. Confidential Page 52 .sabre.ebxml.w3.0' encoding='UTF-8'?> (002) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas. either as an attachment or included in the SOAP body. Specifies the document root element. Includes the service specific values for eb:Service. SessionCloseRQ Message Payload (036) <SessionCloseRQ> (037) <POS> (038) <Source PseudoCityCode="yourIPCC"/> (039) </POS> (040) </SessionCloseRQ> SessionCloseRQ SOAP Envelope Format the SOAP envelopes and payloads for the requests as shown in examples 9 and 10. The client does the following: • In the MIME Header. It is recommended that this value match the value Page 53 • Sabre Web Services . see Appendix A. includes the value for the content ID. and <eb:Action> (line 017) Passes the security token of the connection to close in wsse:Security@wsse:BinarySecurityToken (lines 024–027) (Payloads sent as attachments) Sets the reference to the payload attachment in the xlink:href attribute of the <eb:Reference element (line 032) (Payloads included in SOAP envelopes) Substitutes the payload for <eb:Manifest in the first MIME part SessionCloseRQ Payload The client creates the payload.Guide to Accessing and Consuming Services. Your client does the following for each connection: • • • • • • • • Passes the conversation ID of the connection to close for <eb:ConversationId> (line 008) Generates a value for <eb:MessageId> and eb:Timestamp (lines 019–020) Includes the appropriate values for <eb:From> and eb:To (lines 009–014) Includes the required value for eb:CPAId (line 015). eb:type (line 016). respectively. For detailed common requirements. Note: For any values not specifically called out or described in the reference section. Confidential . This must match the value of xlink:href in eb:Reference in the SOAP envelope.25 Sabre Holdings Inc. v1. This is the same value as <Organization> in the SessionCreateRQ used to open the connection.Example 10. format the messages as shown. the values for following must be the same: In payloads.25 Sabre Holdings Inc.Guide to Accessing and Consuming Services. • Passes the value for Source/PseudoCityCode (line 042). Note: In all request messages using a given connection. the Organization element Sabre Web Services . v1. The is the same value sent with eb:CPAId and Organization in the SOAP envelope. the IPCC in POS/Source/PseudoCityCode In SOAP envelopes. Confidential Page 54 . eb:CPAId In SOAP envelope of SessionCreateRQ.for content ID in the MIME Header and eb:Reference / xlink:href (line 036). ebxml.0" soap-env:mustUnderstand="1" xmlns:eb="http://www.opentravel. v1.xmlsoap.org/OTA/2002/11”version="1" status="Approved" /> Sabre Web Services .0" encoding="UTF-8"?> (002) <soap-env:Envelope xmlns:soap-env="http://schemas.org/OTA/2002/11"/> (028) </soap-env:Body> (029) </soap-env:Envelope> Example 12. Example 11. SessionCloseRS SOAP Envelope (001) <?xml version="1.com</eb:PartyId> (007) </eb:From> (008) <eb:To> (009) <eb:PartyId eb:type="URI">clientURL</eb:PartyId> (010) </eb:To> (011) <eb:CPAId>yourIPCC</eb:CPAId> (012) <eb:ConversationId>ABC123@clientURL. and renders the security token invalid.com</eb:ConversationId> (013) <eb:Service eb:type="sabreXML">Session</eb:Service> (014) <eb:Action>SessionCloseRS</eb:Action> (015) <eb:MessageData> (016) <eb:MessageId>mid:
[email protected]!-4845652307057192441!339520!0</ wsse:BinarySecurityToken> (024) </wsse:Security> (025) </soap-env:Header> (026) <soap-env:Body> (027) <SessionCloseRS status="Approved" version="1" xmlns="http:// www.IDL/Common/ !ICESMS\/RESA!ICESMSLB\/RES.25 Sabre Holdings Inc.Guide to Accessing and Consuming Services.opentravel.sabre. Confidential Page 55 .com</eb:MessageId> (017) <eb:Timestamp>2006-06-23T15:29:09</eb:Timestamp> (018) <RefToMessageId>mid:20031209-133003-2335@clientURL</eb:RefToMessageId> (019) </eb:MessageData> (020) </eb:MessageHeader> (021) <wsse:Security xmlns:wsse="http://schemas.SessionCloseRS Message The SessionCloseRQ service terminates both the Sabre Web Services connection and its associated Sabre Web Services session. SessionCloseRS Message Payload (030) <?xml version=”1.0” encoding=”UTF-8” ?> (031) <SessionCloseRS xmlns=”http://www.org/ws/2002/12/secext"> (022) <wsse:BinarySecurityToken valueType="String" (023) EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.org/soap/envelope/ "> (003) <soap-env:Header> (004) <eb:MessageHeader eb:version="1.org/namespaces/messageHeader"> (005) <eb:From> (006) <eb:PartyId eb:type="URI">webservices. Sabre Web Services . If a Sabre session or TA was allocated. (line 030) Only the root element and attributes are returned when a connection is closed properly. the following happens: • • • • The associated Sabre session is released The SessionCloseRS MessageHeader is returned to the requester The security token becomes invalid. The eb:version attribute returns a number. For an example of the response payload.SessionCloseRQ Response Format If the connection is closed successfully. (lines 016–017) The payloads of the session request messages do not have an xmlns attribute with the document root element. see example 12. Confidential Page 56 . but this attribute is returned in the payload of the responses. Please note the following in the responses: • • • • The Sabre Web Services gateway returns a unique message ID with a reference to the message ID of the corresponding request in <eb:RefToMessageId>. (line 030) Consuming the SessionCloseRQ Service When a Sabre Web Services connection is closed successfully.25 Sabre Holdings Inc.Guide to Accessing and Consuming Services. the SOAP envelope and payload messages are returned. the content in the Sabre work area is discarded and the Sabre session is returned to the session pool. but this independent of the versioning standards of TPF Connector-based Sabre Web Services. v1. it must include the payload inside the body of the first MIME part or SOAP envelope. If the client consumes services with WSDL.25 Sabre Holdings Inc. Remove the eb:Manifest node from the SOAP envelope. Provide requirements that are specified by Sabre Web Services for the envelopes and payloads. 2. This is shown in example 13. Lines 28 through 49 represent the payload.Guide to Accessing and Consuming Services.org/ws/2002/12/secext"> (023) <wsse:BinarySecurityToken valueType="String" Sabre Web Services . Example 13.org/1999/xlink xmlns:xsd="http://www. it is also possible to send the payload inside the envelope.sabre. sending the payload as an attachment to the SOAP envelope is preferred.xmlsoap.org:IO5:01">webservices. 3.org/soap/envelope/" (002) xmlns:eb="http://www. To include the payload inside the SOAP envelope.xmlsoap.Payloads Formatted Inside SOAP Envelopes For Java clients that consume Web services without WSDL.w3. Confidential Page 57 . and insert the payload.w3.com<eb:ConversationId/> (007) <eb:From> (008) <eb:PartyId type="urn:x12.org:IO5:01">clientURL</eb:PartyId> (009) </eb:From> (010) <eb:To> (011) <eb:PartyId type="urn:x12.0"> (006) <eb:ConversationId>ABC123@clientURL. If a particular Web services development tool does not support attachments. Insert the payload of the second MIME part into the first MIME part.ebxml. Modify an existing message using the SOAP with Attachments protocol.org/namespaces/messageHeader" (003) xmlns:xlink=http://www. v1. Message Payload Inside SOAP Envelope Body (001)<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas. do the following: 1.com</ eb:PartyId> (012) </eb:To> (009) <eb:CPAId>yourIPCC</eb:CPAId> (014) <eb:Service eb:type="OTA">Hotel</eb:Service> (015) <eb:Action>OTA_HotelDescriptionRQ</eb:Action> (016) <eb:MessageData> (017) <eb:MessageId>mid:20031209-133003-2333@clientURL</eb:MessageId> (018) <eb:Timestamp>2003-12-09T11:15:12Z</eb:Timestamp> (019) <eb:Timeout>55</eb:Timeout> (020) </eb:MessageData> (021) </eb:MessageHeader> (022) <wsse:Security xmlns:wsse="http://schemas.org/ 1999/XMLSchema"> (004) <SOAP-ENV:Header> (005) <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="2. 0.(024) EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.1"> (029) <POS> (030) <Source PseudoCityCode="yourIPCC"/> (031) </POS> (032) <AvailRequestSegments> (033) <AvailRequestSegment> (034) <StayDateRange Start="2003-10-29" End="2003-10-30"/> (035) <RoomStayCandidates> (036) <RoomStayCandidate> (037) <GuestCounts> (038) <GuestCount Count="2"/> (039) </GuestCounts> (040) </RoomStayCandidate> (041) </RoomStayCandidates> (042) <HotelSearchCriteria> (043) <Criterion> (044) <HotelRef HotelCode="62532"/> (045) </Criterion> (046) </HotelSearchCriteria> (047) </AvailRequestSegment> (048) </AvailRequestSegments> (049) </OTA_HotelAvailRQ> (050) </SOAP-ENV:Body> (051)</SOAP-ENV:Envelope> Sabre Web Services .org/OTA/2002/08" Version="2003A.25 Sabre Holdings Inc.Guide to Accessing and Consuming Services.IDL/Common/ !ICESMS\/RESC!ICESMSLB\/RES.TsabreXML1. v1.0.LB!-4954987477210575357!252506!0</ wsse:BinarySecurityToken> (025) </wsse:Security> (026) </SOAP-ENV:Header> (027) <SOAP-ENV:Body> (028) <OTA_HotelAvailRQ xmlns="http://www. Confidential Page 58 .opentravel. The Sabre XML specifications consist of the following: • • • • • • A unique WSDL document – This is used by WSDL software tools to build proxy classes. A set of Sabre XML request and response XSD schema documents – They validate the XML payloads. An intermediate schema for every Web service – This imports the request and response schemas The content of the payloads Session management messages for connecting to Sabre Web Services A set of common schemas shared by all TPF Connector-based Sabre Web Services Every version of every Web service has its own set of Sabre XML documents. If using WSDL tools.25 Sabre Holdings Inc. Overview The Sabre XML specifications are the WSDL and schema documents tailored specifically for use with Sabre Web Services. The tools reference the WSDL documents at run-time. The payload content is assigned a version number that is incremented whenever the content is Sabre Web Services .Guide to Accessing and Consuming Services. Confidential Page 59 . v1.Chapter 3 Chapter 3 Sabre XML Specifications Chapter three describes the design of the WSDL and schema documents for Sabre XML. the WSDL document references them at run-time. as well as how they are versioned. It also explains the numbering scheme and naming patterns of the WSDL and schema documents. These common schemas are used to build proxy classes. v1.) Sabre Web Services . which is ebXML. By simplifying the data types. <portType>. Confidential Page 60 .Guide to Accessing and Consuming Services. The WSDL documents are based on recommendations from the W3C.enhanced or corrections are made to the code. WSDL documents simplify development of clients by generating proxy classes for the client code. so the SOAP envelope must include the message payload. import statements.0 Specification. Most of the date formats are string types. For more information related to how to download these artifacts. They conform to WSI Basic Profile 1. The schemaLocation attribute of the xsd:import element in the types node has a fully qualified namespace. and parent elements of <message>. please refer to the section of this document titled. The reason for this is various frameworks often define formats for the same data types differently. This schema points to the request and response schemas for the Web service. and <service>. Format and Common Schemas The WSDL document includes a reference to an intermediate schema. All data formats in the Sabre XML WSDL documents are defined as either character strings or integers. <binding>.NET Framework and Apache Axis. The WSDL and schema documents are available by searching Developer Resource Center for the name of the Web service. An example of a WSDL document that conforms to the WS-I recommendation is shown in Figure 4. “Finding WSDL and Schema Documents via a URL. All TPF Connector-based Sabre Web Services can be consumed with Microsoft . a single WSDL document for Sabre XML can accommodate multiple frameworks for WSDL. The proxy classes provide objects that let application developers access and update the underlying structure of the message. (See lines 2–10. and these formats are incompatible among the different frameworks. The WSDL document also imports common Sabre XML schemas that provide instructions and data for consuming the Web service. The Sabre XML WSDL document format does not currently support the SOAP with Attachments model.25 Sabre Holdings Inc.” WSDL Documents for Sabre XML Application developers can use the Sabre XML WSDL documents to develop and consume Sabre Web Services by using development frameworks such as Microsoft . The WSDL document structure has the standard definitions.NET Framework or Apache Axis. Figure 4. WSDL Document That Conforms to WS-I Recommendations <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http:// webservices.sabre.com/sabreXML/2003/07" xmlns:tns="https:// webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/ namespaces/messageHeader" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc"> (002) <types> (003) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> (004) <xsd:import namespace="http://webservices.sabre.com/sabreXML/ 2003/07" schemaLocation="OTA_AirAvailLLS1.10.1RQRS.xsd"/> (005) <xsd:import namespace="http://www.ebxml.org/namespaces/ messageHeader" schemaLocation="msg-header-2_0.xsd"/> (006) <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/> (007) <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> (008) <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/ " schemaLocation="envelope.xsd"/> (009) <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> (010) <xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/ secext" schemaLocation="wsse.xsd"/> (011) </xsd:schema> (012) </types> (013) <message name="OTA_AirAvailInput"> (014) <part name="header" element="eb:MessageHeader"/> (015) <part name="header2" element="wsse:Security"/> (016) <part name="body" element="xsd1:OTA_AirAvailRQ"/> (017) </message> (018) <message name="OTA_AirAvailOutput"> (019) <part name="header" element="eb:MessageHeader"/> (020) <part name="header2" element="wsse:Security"/> (021) <part name="body" element="xsd1:OTA_AirAvailRS"/> (022) </message> (023) <portType name="OTA_AirAvailPortType"> (024) <operation name="OTA_AirAvailRQ"> (025) <input message="tns:OTA_AirAvailInput"/> (026) <output message="tns:OTA_AirAvailOutput"/> (027) </operation> (028) </portType> (029) <binding name="OTA_AirAvailSoapBinding" type="tns:OTA_AirAvailPortType"> (030) <soap:binding style="document" transport="http:// schemas.xmlsoap.org/soap/http"/> (031) <operation name="OTA_AirAvailRQ"> (032) <soap:operation soapAction="OTA"/> (033) <input> (034) <soap:header message="tns:OTA_AirAvailInput" part="header" use="literal"/> (035) <soap:header message="tns:OTA_AirAvailInput" part="header2" use="literal"/> (036) <soap:body parts="body" use="literal"/> Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 61 (001) (037) (038) (039) (040) (041) (042) (043) (044) (045) (046) (047) (048) (049) (050) </input> <output> <soap:header message="tns:OTA_AirAvailOutput" part="header" use="literal"/> <soap:header message="tns:OTA_AirAvailOutput" part="header2" use="literal"/> <soap:body parts="body" use="literal"/> </output> </operation> </binding> <service name="OTA_AirAvailService"> <port name="OTA_AirAvailPortType" binding="tns:OTA_AirAvailSoapBinding"> <soap:address location="https://webservices.sabre.com/websvc"/> </port> </service> </definitions> import Elements The majority of the Sabre Web Services conform to the OpenTravel specifications. Because of the complexity and nesting of the OpenTravel schemas, Sabre Web Services import the schema files inside the WSDL document, which is not a common practice. The following example shows one of the import statements in a Sabre XML WSDL document. <import namespace="http://webservices.sabre.com/sabreXML/2003/07" schemaLocation="OTA_AirAvailLLS1.10.1RQRS.xsd"/> Of particular interest is the OTA_AirAvailLLS1.10.1RQRS.xsd intermediate schema pointed to by the schemaLocation attribute in the first import instruction. This schema serves as a reference to two separate request and response schemas: OTA_AirAvailLLS1.10.1RQ.xsd and OTA_AirAvailLLS1.10.1RS.xsd. The implementation of an intermediate schema is needed for two reasons: 1. The same namespace is defined within the request and response schemas. Within a WSDL document, repeatable namespace imports cannot be defined, and therefore, duplicate namespace imports are not permitted. 2. The intermediate schema enables tools such as wsdl.exe to handle the complexity of WSDL documents so that the documents can be consumed by these tools. Each WSDL document for Sabre Web Services imports an intermediate schema specific to its corresponding Web service. The intermediate schema has references to namespace attributes and references to the request and response schemas specific to the Web service being called. The request and response schemas each define the payloads for the OTA_AirAvailLLSRQ service operation. The WSDL file imports a set of common schemas that provide instructions for building Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 62 proxies and references to other schemas. This single set of common schemas is the same for all TPF Connector-based Sabre Web Services. Most of the common schemas are either imported into the WSDL documents for Sabre XML or referenced by other common schemas. For the list, please refer to the section of this document titled, “Common Schemas for All Travel-Based Sabre Web Services.” message Elements The <message> element defines the data elements of an operation. Each message can be composed of one or more parts, with each part being equivalent to parameters of a function in a software program. An example from a Sabre Web Services WSDL document is shown below. (009) (010) (011) (012) (013) (014) (015) (016) (017) (018) <message name="OTA_AirAvailInput"> <part name="header" element="eb:MessageHeader"/> <part name="header2" element="wsse:Security"/> <part name="body" element="xsd1:OTA_AirAvailRQ"/> </message> <message name="OTA_AirAvailOutput"> <part name="header" element="eb:MessageHeader"/> <part name="header2" element="wsse:Security"/> <part name="body" element="xsd1:OTA_AirAvailRS"/> </message> Sabre Web Services define two message elements in the WSDL documents, one for the request (lines 009–013) and one for the response (lines 014–018). Each message has multiple part elements that create the SOAP message header and body. While there are two major parts, there are actually three part parameters defined for each message because the header section is split into a MessageHeader and Security part. The body part creates the payload. portType Element The <portType> element defines the Web service, the operations that the Web service performs, and the messages that are involved. The portType element is the equivalent to a class in object-oriented programming. The operation is similar to a function call in structured programming. The operation and name combination calls an operation or function, and the function returns data. The request message is like the function and the response is like the data that the function returns. An example from a Sabre Web Services WSDL document is shown below. (019) (020) (021) (022) (023) (024) <portType name="OTA_AirAvailPortType"> <operation name="OTA_AirAvailRQ"> <input message="tns:OTA_AirAvailInput"/> <output message="tns:OTA_AirAvailOutput"/> </operation> </portType> Sabre Web Services - Guide to Accessing and Consuming Services, v1.25 Sabre Holdings Inc. Confidential Page 63 or request-response. The soap:binding element has two attributes—style and transport (line 26). WSDL documents can define several types of operations. Sabre Web Services use the document style. notification.xmlsoap. This is because a client sends a request and receives a response when consuming the Web service. An example from a Sabre Web Services WSDL document is shown below. In the case of Sabre Web Services. In general. the style attribute can be rpc or document. (025) (026) (027) (028) (029) (030) (031) (032) (033) (034) (035) (036) (037) (038) (039) (040) <binding name="OTA_AirAvailSoapBinding" type="tns:OTA_AirAvailPortType"> <soap:binding style="document" transport="http://schemas. In the example. this is HTTP because the transport protocol is SOAP/HTTP.The port defines the connection to a Web service. The transport attribute defines the SOAP protocol to use. and the output or response message. WSDL documents for Sabre Web Services define two messages per operation.25 Sabre Holdings Inc. the corresponding SOAP action is defined. Sabre Web Services . For each operation. v1. The WSDL documents for Sabre Web Services define the request-response type of operation. and the method of encoding for the input and output must be specified.Guide to Accessing and Consuming Services. the port is OTA_AirAvailPortType. The <operation> element defines each operation that the port exposes. binding Elements The <binding> element defines the data format and protocol for each port. such as one-way. In general. Confidential Page 64 . The name attribute defines the name of the binding and the type attribute points to the port for the binding (line 25). Lines 21– 22 represent the input or request message.org/ soap/http"/> <operation name="OTA_AirAvailRQ"> <soap:operation soapAction="OTA"/> <input> <soap:header message="tns:OTA_AirAvailInput" part="header" use="literal"/> <soap:header message="tns:OTA_AirAvailInput" part="header2" use="literal"/> <soap:body parts="body" use="literal"/> </input> <output> <soap:header message="tns:OTA_AirAvailOutput" part="header" use="literal"/> <soap:header message="tns:OTA_AirAvailOutput" part="header2" use="literal"/> <soap:body parts="body" use="literal"/> </output> </operation> </binding> The binding element has two attributes—name and type. and the endpoint. All WSDL documents for Sabre Web Services include the production endpoint or URL (line 043). In terms of object-oriented programming. Common Schemas for All Travel-Based Sabre Web Services Some of the common schemas imported in the WSDL documents provide namespace declarations for the ebXML SOAP extensions for the envelope.sabre. the corresponding SOAP action has to be defined. OTA_AirAvailPortType is a class. and body elements.xsd – Used for the message header xmldsig-core-schema. The parts are soap:header and soap:body (lines 030–032 and 035–037). Confidential Page 65 .The <operation> element (line 27) defines each operation that the port exposes. and attributes define the Web services. and OTA_AirAvailRQ is a function with the parameters OTA_AirAvailInput and OTA_AirAvailOutput. and the method of encoding for the input and output must be specified. the <service> element. For each operation. header. The message elements define parts of each message and their associated data types. (041) (042) (043) (044) (045) <service name="OTA_AirAvailService"> <port name="OTA_AirAvailPortType" binding="tns:OTA_AirAvailSoapBinding"> <soap:address location="https://webservices. One set of common schemas has been created for use by all Sabre Web Services. and an output message.Guide to Accessing and Consuming Services.xsd – Used for NMTOKEN Sabre Web Services . subelements.xsd – Used for XML signatures and encrypting data xlink. The OTA_AirAvailRQ operation has an input message called OTA_AirAvailInput (line 30). service Element In a WSDL document. OTA_AirAvailService. The combination of soap:address and location identify the endpoint into Sabre Web Services. The name attribute (line 041) is the name of the Web service. An example from one of the Sabre Web Services WSDL documents is shown below.25 Sabre Holdings Inc.com/websvc"/> </port> </service> The <service> element in a Sabre XML WSDL document defines a single Web service. Other import elements reference common schemas that are specifications. Brief descriptions of these common schemas follow: • • • msg-header-2_0. OTA_AirAvailOutput (line 35). the port. The specific Web service is defined with the port element and name attribute (line 042). v1. xsd – The data types used in the XML schema documents XMLSchema. Extensions let organizations use proprietary content that is not present in the OpenTravel specifications so that they can exchange content among their trading partners.xsd – Defines attributes and an attribute group wsse. length. xml.xsd.• • • • • envelope.xsd – Used for the WSSE security specification datatypes.xsd. used in the XML schema documents Common Schema for Hotel-Based Services One other common schema has been created for multiple Sabre Web Services that reference common data types named HotelCommonTypes. v1.dtd – The data type definitions. Sabre XML Schemas To provide more content with the Web services and to accommodate the use of proprietary data in Sabre systems and applications. and whether an element or attribute is required or optional. Hotel services within the Sabre Web Services product offering use this common schema. These requirements are referred to as constraints. • Constraints on data types Many Sabre XML schemas have specific requirements for the values that are provided with some of the elements and attributes in the payloads. This file references env. Confidential Page 66 .Guide to Accessing and Consuming Services. Constraints include data types. of definitions of data types. These modifications are minimal. valid Sabre Web Services . • New elements Elements have been added to some requests to make the data conform to the proprietary data format in the Sabre system. Document type definitions are not used. These Sabre XML schemas include the following information about the elements and attributes in the XML requests: data type.xsd – Used for namespaces. restrictions on valid values that the elements and attributes can send. Most Sabre XML schemas incorporate TPA_Extensions. Sabre Web Services use published XML schemas that specify the syntax of the messages. which is used for the SOAP envelope. the Sabre XML request and response schema documents have the following types of modifications that are not present in the OpenTravel specifications: • The use of TPA_Extensions The term “extension” refers to an element or attribute that is added to the OpenTravel specifications.25 Sabre Holdings Inc. The enhanced versions of the WSDL and schema documents for the OTA_HotelResLLSRQ.values.1RS. Many of the Sabre XML schemas are based on a pair of OpenTravel specifications for a request and response message. How to pass the action codes in the SOAP envelopes is shown in the section of this document titled. While designing client applications. Application developers can use these schemas to validate their XML payloads for nonWSDL consumption. The OpenTravel request message is the basis for the request payloads and the responses are based on the OpenTravel responses. The HotelCommonTypes. HotelPropertyDescriptionLLSRQ.xsd schema combines the data types for guarantee information that these hotel-based Web Services share to ensure commonality across all of them. HotelRateDescriptionLLSRQ. they contain many elements and attributes that Sabre Web Services do not use. and minimum and maximum occurrences.10. For example. “OTA_AirAvailLLSRQ” is the action code for the Web service named OTA_AirAvailLLSRQ. For more information. they can use them to review the structure of the data in the payloads.10. Confidential Page 67 .Guide to Accessing and Consuming Services. If application developers are consuming Web Services with WSDL. v1. please see the section of this document titled.1RQ. the action code is also the same as the name of the service. Some exceptions to the request and response pair exist. The design XML documentation for each of the Sabre Web Services lists the elements and attributes that are valid for the particular XML request and response payloads. each request and response message for each Web service has a unique action code. Like OpenTravel. it is important to consult these design XML documents for the valid lists of data. and OTA_HotelAvailLLSRQ services all reference the HotelCommonTypes.25 Sabre Holdings Inc. for example. “Using Action Codes. sending sequence.xsd and OTA_AirAvailLLS1. Note: The majority of the schemas for the Sabre Web Services are based on OpenTravel specifications. the pair of schemas that corresponds to the OTA_AirAvailLLSRQ service are OTA_AirAvailLLS1. Because the content of the payloads varies for each Web service. Several of the TPF Connector-based Sabre Web Services with hotel content share an additional common XSD schema. Request and Response Schemas Each of the Sabre Web Services normally corresponds to one unique pair of request and response Sabre XML schemas.xsd. Consequently.” Sabre Web Services .xsd schema. action codes are used to distinguish the payloads.” Please note that for the TPF Connector-based Sabre Web Services. “eb:Action. Basis for Payload Content The content of the payloads for Sabre Web Services is based on the OpenTravel messages. elements and attributes require valid values to process the requests successfully. In many cases. the service substitutes default values during processing. the services fail. always use the design XML documents. • Data types The data types are defined in the schemas so that they can be validated. and then look in the design XML document for the list of data elements in the request.25 Sabre Holdings Inc. but not required. v1. Occasions occur when an element is optional but its attribute is required. it is recommended that application developers refer to the appropriate Sabre Web Services design documents for required data elements. • • Sequences for sending the data Minimum and maximum occurrences This is the quantity of times the data can be requested in a payload. When this happens. and minimum and maximum occurrences. to process the services successfully. For the complete list of required and optional data to include in the request payloads. 1. such as character type (alphabetic. The schemas also define constraints on the values that are sent in the payloads. • Descriptions of elements and attributes The annotations in the schemas describe elements and attributes present in the schemas. providing valid values is preferred. If valid values are not provided in the requests. and the content in the responses is associated with the substituted values. the payload examples in the service documents show the minimal data in the requests. search the schema for those elements and attributes. numeric. valid values for elements and attributes In some cases. while the design documents list all possible data. sending sequences.Data Types. the attribute is required only if the element is included in the payload. • If applicable. alphanumeric. Most of the data types are text. and Constraints The Sabre XML schema documents provide some or all of the following information about the data to include in the payloads. Sabre Web Services . • Whether the data is required or optional While the schemas often provide this information. and note the data types. Tips for Finding and Formatting Data A starting place for identifying data types is to open the request schema document that is associated with a specific service.Guide to Accessing and Consuming Services. In other cases. Next. If the provided values are not valid. Confidential Page 68 . Descriptions. or other) and length. valid values. 2. Look at the annotations for information. schema documents. types. and the design XML documents list all possible data elements that can be returned. “Extensions” is the term that refers to elements that are added to the OpenTravel specifications. with child elements that are extensions. if they cannot find CodeRef. depending on the elements in the request. They provide descriptions. TPA_Extensions OpenTravel. allows the use of the TPA_Extensions element for accommodating proprietary content that does not exist in its specifications. If application developers require more information or need help finding an element.25 Sabre Holdings Inc. These TPA_Extensions are present in most of the schemas used by Sabre Web Services. Sample request and response payloads are also available. Use the service description. The developer notes on the Developer Resource Center describe the required service-specific values for the SOAP envelopes. design XML. and developer notes for complete information about the Web Services. and sometimes they provide restrictions on valid values. TPA_Extensions is always a parent node. v1. including comparable Sabre system formats for the elements and attributes. which provides standards for the travel industry. The response schemas describe the data elements in the responses. Sabre Web Services . They let the Web services use and exchange the proprietary content in the Sabre system and other applications. 5. 4.Guide to Accessing and Consuming Services. they can try appending the suffix Type to the name of the element. 7. they can try searching for “CodeRefType. F or example.” There may be information about the element in the annotation. The design XML documents have annotations about incompatible combinations of elements and attributes in a request.3. Use an XML editing tool that provides various views. 6. Confidential Page 69 . This means they cannot be combined in a single request payload. and other information A grid view that provides a graphical representation of the elements 8. such as the views described below: • • • A text view that displays all text in hierarchical fashion A schema or design view that expands elements to display associated children. Sabre Web Services connections and sessions are described in chapter four. naming conventions for documents. numbering system for Web Services and documents. SessionValidateRQ. v1. The SessionCreateRQ and SessionCloseRQ services open and close connections explicitly. Some examples of Sabre Web Services artifacts include. but are not limited to. Sabre Web Services . although some minor exceptions exist. Metadata is data about a Web service. Artifacts are not generally shared among Web services. sample payloads. It is important to be able to identify and obtain the artifacts for a specific version of specific Sabre Web Services so that application developers can discover. design XML documents. which obtain content from the legacy Sabre system. More information about these services also appears in the service description and XML design documentation. Versioning of Sabre XML Schema and WSDL Documents This versioning strategy applies to the TPF Connector-based Sabre Web Services.Guide to Accessing and Consuming Services. please refer to chapter two. please refer to Appendix A. so the artifacts for a given Web service are also independent of other Web services. For information about the versioning strategy for TPF Connector-based Sabre Web Services. Sabre XML has added messages for managing Web services connections. Each of these artifacts exists as a separate entity. Confidential Page 70 . respectively. discussions follow on versioning and file naming standards for schema and WSDL documents. please refer to the section of this document titled. “Versioning Strategy for Sabre Web Services. These services use the SessionCreateRQ/RS message pair and the SessionCloseRQ/RS message pair.Connection Management Messages In addition to using OpenTravel specifications for Sabre XML request and response schemas. such as the common schemas that are used across multiple Sabre Web Services. To help. is used to keep the Web services connections alive. and action codes. in the context of Web services. Examples of metadata for a Web service include implementation date and name of the Web service. and naming standards for the corresponding URLs. For specific tag requirements. Another session management service. For the format and sending sequence of the SOAP envelopes and payloads. is anything that assists in the discovery and use of a service.25 Sabre Holdings Inc. Web services have no programmatic dependencies on each other.” An artifact. and troubleshoot them. the WSDL and schema documents. consume. TsabreXML1.Guide to Accessing and Consuming Services. The three-part version number is applied to the file names of the documents as well as the Web services themselves.25 Sabre Holdings Inc. v1.1 = is the version number. The request and response design XML documentation also follows the same model. With the exception of the initial version. and the second digit is incremented Note: The file names of initial releases of the schema and WSDL documents are an exception. either the WSDL or schema document. The format of the version number is 2003A. The version is incremented whenever enhancements or corrections are made to the request or response messages. Version Numbering System for Web Services and Documents The numbering system affects Web service versions. and the changes are made to the artifact requiring the correction. Confidential Page 71 .Versioning and File Naming Standards Sabre Web Services simultaneously supports up to five versions of a particular Web service and its corresponding WSDL and schema documents. These file names do not include a version number. The most recent versions of the schema and WSDL documents for a service that are released in production are maintained along with the most recent versions of the corresponding Web service.0. the file names of WSDL and schema documents. the WSDL and schema document versions match the version numbers of their corresponding Web services.0. where: 1. and the URLs where the WSDL and schema documents reside. a new version of the Web service and its corresponding WSDL and schema documents is created. multiple versions of a specific Web service and its corresponding set of WSDL and schema documents coexist for many of the Web Services. When corrections are necessary. the file names include the three-part version number. Sabre Web Services .1. Therefore. or the Web service itself. When they are upgraded. For the response.0" encoding="UTF-8"?> <schema targetNamespace="http://webservices. Most of the file names in the document sets contain a root that is the “base” action code of the Web service request and response. The examples in the table illustrate the file naming patterns for the OTA_AirPriceLLSRQ service.xsd OTA_AirPriceLLS1. wsdl WSDL document Base action code + version + RQ + wsdl file extension Base action code + version + RQ + RS + xsd file extension Base action code + version + RQ + xsd file extension Base action code + version + RS + xsd file extension Common schema OTA_AirPriceLLSRQRS.1RQR S.1. Schemas with a version number in their file names have been upgraded beyond the initial version.xsd OTA_AirPriceLLS1.1RQ.1. with RQ or RS omitted from the base. <import namespace="http://webservices. new versions include the three-part version number.Guide to Accessing and Consuming Services.1.Naming Conventions for WSDL and Schema Documents Each of the Sabre Web Services has a set of documents and naming conventions that are aligned with the numbering system. v1.1 OTA_AirPriceLLS1. WSDL documents.xsd Request schema OTA_AirPriceLLSRQ. is OTA_AirPriceLLS. the base action code. The file names of additional. which omits a version number in the file.sabre. Therefore. The following line is present in all versions of WSDL documents.1. The file names of the initial versions of WSDL and schema documents are without version numbers. xsd Using File Names to Identify WSDL and Schema Document Versions Version identifiers are present in the WSDL and schema documents. with the RQ or RS omitted.1RQ.1.1RQRS. The combination of include/schemaLocation point to the request and response schemas.1RS.com/sabreXML/2003/07" Sabre Web Services . If the file name does not have a version number.xsd" /> Intermediate schemas. the action code of the request for the OTA_AirPriceLLSRQ service is OTA_AirPriceLLSRQ.xsd OTA_AirPriceLLS1.wsdl Examples of File Names for Version 1. the action code is OTA_AirPriceLLSRS. <?xml version="1.sabre.1. For example. xsd Response schema OTA_AirPriceLLSRS. it indicates the WSDL document is the initial version. Table 1: File Naming Patterns for WSDL and Schema Documents Illustrated Document Type File Naming Convention Examples of File Names for Initial Versions OTA_AirPriceLLSRQ. Confidential Page 72 .com/sabreXML/2003/07" schemaLocation="OTA_AirPriceLLS1.25 Sabre Holdings Inc. 1.Guide to Accessing and Consuming Services. The WSDL and schema documents are also available by directly accessing them via a URL. To obtain the documents.xmlns="http://www. Design.xsd"/> <include schemaLocation="QCountLLS1.com/sabreXML/2003/07" elementFormDefault="qualified" attributeFormDefault="unqualified"> <include schemaLocation="QCountLLS1.1RS.w3." Sabre Web Services .org/2001/XMLSchema" xmlns:tns="http:// webservices. To access them directly.xsd"/> </schema> Obtaining WSDL. and Other Service Documents All documents for all Sabre Web Services are available Developer Resource Center.1. application developers must become familiar with the URL and file naming patterns of the documents.1RQ. which is provided when their user accounts are set up. Schema. v1.sabre. application developers need a user name and password.25 Sabre Holdings Inc. either by viewing them in a browser window or by downloading them. Confidential Page 73 . A description of the URL naming standards and specific instructions on how to identify the WSDL and schema documents appears in Appendix B. "Identifying Documents for Sabre Web Services. Sabre Web Services . When a client requests a connection with Sabre Web Services and the client is authenticated and authorized. The time-out value for a connection and session are synchronized. A connection is on the client side. Confidential Page 74 . and upon success.Chapter 4 Chapter 4 Managing Connections Chapter four discusses connections and connection strategies for Sabre Web Services. as illustrated in Figure 5. it is allocated at the same time. If a Sabre Web Services session is required. an open channel to Sabre Web Services is created. Sabre Web Services Connections Connections are open channels to the Sabre Web Services infrastructure. a Sabre Web Services session is created simultaneously with a business application or data center within Sabre Holdings.25 Sabre Holdings Inc. occurring simultaneously. and a session is on the Sabre side. v1.Guide to Accessing and Consuming Services. The distinction between the terms “connection” and “session” is purely semantic. A client application requests a connection to the Sabre Web Services infrastructure. conversation ID. Flow for Connecting to Sabre Web Services A summary of the process to connect is presented as follows. The return of the security token means a connection has been created successfully. Connecting to Sabre Web Services There is one way to connect to Sabre Web Services. Confidential Page 75 . This flow is depicted in Figure 6. let the gateway authenticate and authorize the security credentials. v1.25 Sabre Holdings Inc. Connection versus Session A connection is not a client side shopping cart and it does not maintain state in the AAA (referred to as the Sabre work area) of the Sabre host system.Figure 5. and receive a security token in the response. (For complete information Sabre Web Services . and other required values.Guide to Accessing and Consuming Services. Figure 6. The general steps are for the client to send the SessionCreateRQ service to request a connection including security credentials. it allocates a Sabre session if required. It also returns the same conversation ID and a reference to the message ID that was in the request. Create the payload. The infrastructure then authorizes access to the business application or system within Sabre Holdings based on the security credentials.Guide to Accessing and Consuming Services. Create the SOAP envelope in the required format for Sabre Web Services. "SOAP Message Format and Requirements. The client extracts and stores the eb:ConversationId and the entire wsse:security@wsse:BinarySecurityToken node for inclusion in subsequent workflows and requests that use this connection. please refer to the section of this document titled. Upon authorization.”) Response 1.25 Sabre Holdings Inc. “Environments for Using Sabre Web Services. whether the client maintains state or not. Its return means the connection to the Sabre Web Services infrastructure is alive and a Sabre session is allocated. (For complete information about the URLs and environments. Ensure the value for eb:Action for this request is SessionCreateRQ. The client can connect to the Production URL or a URL representing one of the certification or development systems. v1. 3. either as an attachment or incorporated into the SOAP body. 1. Sabre sessions are discussed later in this chapter. encrypted security token to the client side in wsse:Security@wsse:BinarySecurityToken in the SOAP envelope of the SessionCreateRS response. and include the values for eb:CPAId and your security credentials in wsse:Security node." For specific tag requirements.about the format of the SessionCreateRQ message. When sending Web service requests for travel content. Confidential Page 76 . and creates a connection. The connection ID consists of the returned security token and the conversation ID. please refer to chapter two. Sabre session is used in this documentation. Send the SessionCreateRQ request message to the endpoint for consuming Sabre Web Services over HTTPS. Generate the value for eb:ConversationId.) The gateway returns a unique. The SOAP message for the SessionCreateRQ service is created on the client side. Include the required values for the SessionCreateRQ Envelope. please refer to Appendix A. (A Sabre session is another name for a TA. the connection ID is needed for all transactions with the Sabre Web Services infrastructure that use a specific connection.) Request 1. 2. The Sabre Web Services gateway receives the request. Sabre Web Services . authenticates it. The type of session depends on the configuration of the user ID that was used to open the connection. please refer to chapter two. 3. The infrastructure closes the connection and returns the previously allocated Sabre session to the session pool. “Environments for Using Sabre Web Services. please refer to the section of this document titled. Include the required values for the SessionCloseRQ SOAP envelope. and the security token of the connection to be closed. the security credentials and user IDs of subscribers who consume TPF Connector-based Sabre Web Services are specifically configured to create sessions with the legacy Sabre host system. 2. The SOAP message for the SessionCloseRQ service is created on the client side. when a requester’s security credentials are authorized.25 Sabre Holdings Inc. the Sabre Web Sabre Web Services . Confidential Page 77 . The Sabre Web Services gateway receives the request. Create the SOAP envelope in the required format for Sabre Web Services.Closing Connections When the client application needs to close a Sabre Web Services connection. It is especially important to include the values for eb:ConversationId. The Sabre work area is cleared. Create the payload. For specific tag requirements.) 1. Ensure the value for eb:Action for this request is SessionCloseRQ. These values were sent in the SessionCreateRQ request and returned in SessionCreateRS response. Request 1. Send the SessionCloseRQ request message to the endpoint for the Sabre Web Services environment where the connection lives. (The TAM pool is referred to as a session pool in this discussion and document.Guide to Accessing and Consuming Services. a Sabre Web Services session is allocated along with the connection. A summary of the process is presented as follows. The MessageHeader of SessionCloseRS message is returned to the client. This type of session is associated with a particular LNIATA residing in the native. (For complete information about the URLs and environments. either as an attachment or incorporated into the SOAP body. The user IDs of the Sabre system require and use LNIATAs or TAs. please refer to Appendix A.) Allocation of Sabre Web Services Sessions Whenever security credentials that require a Sabre session open a connection. eb:CPAId. legacy TPF-based Sabre systems (also referred to as PSS). (For the format and sending sequence of the SOAP envelopes and payloads. Relationship Between Connections and Sessions As stated previously.”) Response 1. They are assigned a finite quantity of TAs in a TAM pool for each IPCC they have. and the security token is rendered invalid. it must include the connection ID of the connection that it wants to close in the SessionCloseRQ message. Sessions with TPF Connector-Based Sabre Web Services The TPF Connector-based Sabre Web Services obtain their content and functionality from the legacy Sabre host system. therefore. A Sabre host session is a specific type of session. v1. the connection remains alive. This Web service is EndTransactionLLSRQ. This prevents mingling content from the new workflow with content from the previous use of the Sabre session. The Sabre session and connection are synchronized. while other services do not have dependencies on services to place content in this work area. The Sabre session becomes active and is no longer available in the session pool until the connection is closed or the connection and session time out. sharing the same time-out values. the client must use the Web service designed to end the transaction when the workflow is completed.25 Sabre Holdings Inc. The Sabre work area provides shopping cart functionality on the client side.Guide to Accessing and Consuming Services.Services gateway creates a new connection to Sabre Web Services and allocates a Sabre session from the subscriber’s session pool. The IgnoreTransactionLLSRQ service can be used to clear the Sabre work area. Sabre sessions in a session pool are also shared across the testing and production environments of Sabre Web Services. By not specifically clearing the work area. If the client or network is brought online before the time-out period expires. the Sabre session is active. recovered connection ID and associated Sabre session with your new workflow. the content for the Sabre session remains in the Sabre work area because the connection was not closed explicitly. the content that was retrieved during the session remains in the work area until it times out. Note: If the client crashes or experiences a network outage while a Sabre session is active. When reusing a connection. The client can use the host content in the Sabre work area in a stateful or stateless way. Sabre Web Services . Shopping Cart Functionality and the Sabre Work Area A Sabre session has an active AAA (the AAA is referred to as the Sabre work area in this discussion and document). and content in the Sabre work area is retained. Some TPF Connector-based Sabre Web Services rely on content placed in the work area by previous service calls in the same session. As long as a client uses the security token and conversation ID from a specific connection and there is activity. if the new client instance re-uses a connection ID that was active before the system outage. Confidential Page 78 . content from the Sabre host system is temporarily placed in the work area. To store transactions in the Sabre work area in a specific Sabre session. When the client calls TPF Connector-based Sabre Web Services. v1. Moreover. the content from the Sabre session remains. the client risks mingling content from the re-used. the client is strongly advised to clear the Sabre work area before sending messages in a new workflow. Letting sessions time out on their own puts client applications in a situation where they will not have any connections available for log in. the client will receive an error message when it tries to log in.TsabreXML1. v1. the Sabre Web Services connection is terminated and the security token is rendered invalid. NORMOAA clears all the AAA’s in Sabre and that logs out any open SWS sessions when AgSS is synchronized with ICE. The warning would look like this if the client sent a request via SabreCommandRQ: <SabreCommandLLSRS xmlns="http://webservices.1"> <Response><![CDATA[SYSTEM HOUSKPING REQUIRES AAA TO BE CLEARED RE-ENTER LAST INPUT THEN COMPLETE OR END TRANSACTIONS IN ALL AREAS ENTER SOALL WITHIN 04 MINUTES AND THEN SIGN BACK IN TO CONTINUE WORKING]]></Response> </SabreCommandLLSRS> The warning would look like this if the client sent most other TPF Connector-based SWS requests: Sabre Web Services . causing them to have to wait until the connections time out before they can log in.com/sabreXML/2003/07" Version="2003A. Sunday System Housekeeping The Sabre system maintenance program known as NORMOAA runs every Sunday morning between 00:15 and 00:20 Central time.Release of Sabre Sessions When a client or connection manager successfully closes a connection using the SessionCloseRQ service. The content in the Sabre work area is discarded.sabre. and the Sabre session (or TA) is released and returned to your session pool.24 Sabre Holdings Inc. There is a window just before NORMOAA runs during which clients with active sessions receive a warning message in response to any command. If the cleint lets unneeded connections time out instead of closing them properly with SessionCloseRQ.Guide to Accessing and Consuming Services. If all Sabre sessions in your session pool are allocated. Confidential Page 79 .6. it is possible that all connections and sessions in the session pool will be in use and unavailable until they time out. Guide to Accessing and Consuming Services.w3. Data in the work area before a PNR has been created will be lost entirely. etc.w3. The client does not need to receive the warning message before refreshing the session. and retrieve the PNR to continue.sabre. i. close and reopen the session. shopping. Confidential Page 80 . Sabre Web Services . building a PNR the client should immediately end transaction.24 Sabre Holdings Inc. If NORMOAA runs before the PNR is closed all changes since the last end transaction will be discarded.<OTA_TravelItineraryRS xmlns="http://webservices.) they should simply close and reopen the session. To refresh all active sessions in use at 00:15 Central time on Sunday the client should send SessionCloseRQ followed by SessionCreateRQ.org/2001/XMLSchema" xmlns:xsi="http://www.com/sabreXML/2003/07" xmlns:xs="http://www. Sabre recommends that clients who maintain a pool of open sessions close and reopen them after 00:15 Central time on Sunday’s as part of routine maintenance.org/2001/XMLSchema-instance"> <TPA_Extensions> <HostCommand>†††A††RS01S093†JX PNR</HostCommand> </TPA_Extensions> <Errors> <Error ErrorCode="SessionFailure-103" Severity="High" ErrorMessage="Parameter not supported"> <ErrorInfo> <Message>SYSTEM HOUSKPING REQUIRES AAA TO BE CLEARED RE-ENTER LAST INPUT THEN COMPLETE OR END TRANSACTIONS IN ALL AREAS ENTER SOALL WITHIN 04 MINUTES AND THEN SIGN BACK IN TO CONTINUE WORKING</Message> </ErrorInfo> </Error> </Errors> </OTA_TravelItineraryRS> The “WITHIN 04 MINUTES” string will vary based on how many minutes are left until NORMOAA runs. v1. If a client receives this response when performing stateless transactions (availability. If they are in a stateful transaction.e. it is recommended for them to rotate user IDs. An example is as follows: If a user ID or password becomes unusable for any reason.Guide to Accessing and Consuming Services. Sabre Web Services . Confidential Page 81 . The purpose of these user IDs is to log in and connect to Sabre Web Services. the client must set up every EPR (user ID) the same way. subscribing organizations receive one non-administrative user ID for every 50 Sabre sessions in the IPCC’s session pool. By anticipating NORMOAA and performing a routine refresh client applications will avoid this inconvenience. as required by business applications and systems of other service providers within Sabre Holdings. v1.If pooled sessions are not refreshed in this way the active binary security tokens will be expired by NORMOAA and the client will receive a USG_INVALID_SECURITY_TOKEN error. a session is created for use. the client application can continue to create new connections with the uncorrupted user IDs. Sessions with Open Systems-Based Sabre Web Services For subscribers who use open systems Sabre Web Services. The sessions with the uncorrupted user IDs remain in use. This session is not necessarily a Sabre host session or TA. using a different user ID for each session to provide for failover. in round-robin fashion. To do this. such as the password is compromised or the ID is corrupted.24 Sabre Holdings Inc. When client applications create Sabre Web Services connections. Allocation of User Names to Connections and Sessions As stated in the requirements. Time-Outs on Sabre Web Services Connections A Sabre Web Services connection remains active until either of the following occurs: • • The SessionCloseRQ service messages are exchanged The period of permitted inactivity has been exceeded for the connection and it times out Each Sabre Web Services connection has a time-out value associated with it. as shown below. It is not advisable to let connections time out. Currently. Every Sabre Web service has a system-defined time-out value which a user cannot override. (For more information. The client application can decrease the default time-out on any individual TPF Connectorbased Web service by passing a value that is less than the default in the SOAP envelope in eb:Timeout. Sabre Web Services connections are not guaranteed to be alive. however. It is the responsibility of the client to either close Sabre Web Services connections explicitly with SessionCloseRQ before the time-out values are reached or to keep their connections alive while they are needed. a client can send any Web service. If activity has not occurred within the pre-determined time-out limit. The TPF Connector. The default timeout value is 15 minutes. Sending the SessionValidateRQ service with a valid conversation ID and security token is recommended for this purpose.24 Sabre Holdings Inc. all TPF Connector-based Web services have a default time-out of 60 seconds. and these values are published on the Developer Resource Center. Confidential Page 82 . The SessionValidateRQ service has no effect on content in the Sabre work area. for some situations.) Note: It is very important for consuming clients and connection managers to know the time-out values associated with their security credentials used for Sabre Web Services. accepts user-defined time-outs on TPF Connector-based Web services that are less than or equal to the system default time-out value on the service.--> Sabre Web Services . The service time-out is a time-out on the Web service transaction. User-Defined Time-Outs on TPF Connector-Based Sabre Web Services A Web service time-out is not to be confused with a system time-out on a connection or session.Guide to Accessing and Consuming Services. The default is set when security credentials are created for client use. This value is in seconds. this value can be set as high as 30 minutes. To prevent an established Sabre Web Services connection and associated Sabre session from timing out. <eb:Timeout>40</eb:Timeout> <!--6 character maximum. contact your Sabre account representative. v1. it stores the new security token. one client equals one connection. The conversation ID can be reused in a new connection. exchanges requests for content and receives the responses (send and receive Sabre Web Services messages in the form of TPF Connectorbased or open systems-based Sabre Web Services). The client application starts a conversation (open a connection with the SessionCreateRQ service). Approaches for Handling Connectivity The following solutions for handling connections using Sabre Web Services are discussed: • • Basic connections – This solution creates a conversation for one time use Connection managers and connection pools – This solution stores and retrieves open connections maintained in a pool Basic Connections Basic connections are the simplest approach for connecting to Sabre Web Services. A basic connection is similar to a conversation. When the client opens a new connection.24 Sabre Holdings Inc. The client can temporarily store the connection ID in memory or elsewhere until it is done using the connection.Guide to Accessing and Consuming Services. Figure 7. it opens a new connection. it is ignored. Confidential Page 83 . If the client application includes eb:Timeout in the SOAP envelope for any of the non-TPF Connector-based Sabre Web Services. This is illustrated in Figure 7. but the client does not store the connection ID for use beyond the current connection.If the client application sends a value greater than the default time-out. v1. and then ends the conversation (close the connection with the SessionCloseRQ service). Sabre Web Services . With this solution. The client to connection ratio is 1:1. the client retains and resends the connection ID in all Sabre Web Services requests in a business workflow. Basic Connection When a client application needs a connection to the Sabre Web Services gateway to send a business workflow. in other words. providers other than the TPF Connector and orchestration engine may ignore it. overwriting the previous one. The Sabre Web Services infrastructure authenticates and authorizes the client. An example of the flow using a single. a. basic connection sending multiple workflows follows. which is the same value as eb:CPAId and Organization in wsse:Security in the SessionCreateRQ SOAP envelope. For specific tag requirements. Request 2. and to close the connection when the workflows are completed. The client sends the remaining requests for travel content in the workflow. requesting travel content. The service provider’s business application within Sabre Holdings retrieves the requested content and returns it in the response payload.” c. In the SOAP envelope of the SessionCreateRS response. and sends it to the endpoint for consuming Sabre Web Services over HTTPS. Upon authorization. including the extracted security token and conversation ID. a Sabre Web Services session is also allocated from the subscriber’s session pool. The client sends the first message in a business workflow. schema. v1. The point of the basic connection is for a single client to open one connection. Response 2. The client creates the SOAP message for the SessionCreateRQ Service in the required format with the required values. as required. b. a unique. consult the design. please refer to Appendix A. which it stores for use in all messages in the workflow. Response 1. The client requests a specific Web service version in the Version attribute. (For the format and sending sequence of the SOAP envelopes and payloads. The client parses the content it wants from the response payload along with the security token and conversation ID. The client includes the IPCC for the PseudoCityCode attribute. The security token and conversation ID in the request are returned. In the SOAP envelope. Confidential Page 84 .Guide to Accessing and Consuming Services.24 Sabre Holdings Inc. Request 3. the client extracts the values for eb:ConversationId and wsse:BinarySecurityToken that were returned in the SessionCreateRS response message. “Request Messages for Travel Content. Sabre Web Services . please refer to chapter two.The client can actually send multiple workflows before closing the connection. The client formats the payload as described in the section of this document titled.) Request 1. and developer notes documents for those Web services on the Developer Resource Center. and creates the connection. and includes them in the request. encrypted security token is returned to the client in wsse:Security@wsse:BinarySecurityToken and the conversation ID is returned. to send one or more workflows using the same connection ID. Note: For the service-specific values and valid data elements in the payload of the Web services you want to send. and includes other service-specific elements and values. formatting the SOAP messages as in Request 2. This simultaneously terminates the Sabre Web Services session allocated with the connection. The client sends the EndTransactionLLSRQ service to save the transaction and PNR that are temporarily in the Sabre work area of the Sabre system. (Optional) The client sends messages in a second workflow. this solution is suggested. The SOAP envelope includes the same values for eb:ConversationId.24 Sabre Holdings Inc. When the client has parsed all content it wants from the payload and is done with the workflow. and eb:CPAId used to open the connection. Low volume is defined by several hundred connections per hour. The client is done with the workflow. Request 6. Response7. The client is ready to close the connection to Sabre Web Services. formatting the messages for travel content the same way as the first travel workflow.Response 3. Confidential Page 85 . it ends the transaction.25 TPS or an average of 900 individual Sabre Web Services calls per hour during peak times. and limited scalability. The business application retrieves the requested content and returns it in the response payload and SOAP message as described previously in Response 2. the client passes the same conversation ID. Response 5. The Sabre Web Services infrastructure ends the session and closes the connection simultaneously. no failover. Because this is a single client using a single connection. The client requests termination of the connection by sending the SessionCloseRQ service. The client parses and stores any content it wants in the responses. It also renders the security token invalid. that is. wsse:BinarySecurityToken. The service provider’s business application obtains the requested content and returns it in the response payloads. Request 4. Response 6. v1. Sabre Web Services . security token. Request 7. Sabre Web Services return a record locator for the PNR to the client. When to Use Basic Connections If the need for connections is low in volume or if the client application is performing batch processing. Request 5. The drawbacks are little or no session recovery.Guide to Accessing and Consuming Services. Advantages and Disadvantages The advantages of implementing basic connections are low cost and simple architecture. The client sends the EndTransactionLLSRQ service to save the transaction and PNR in the Sabre system. and value for eb:CPAId used to open the connection in all requests. fewer than 0. Sabre Web Services return a record locator for the PNR to the client. The SessionCloseRS response message is returned to the client. Response 4. Guide to Accessing and Consuming Services. the connection ID includes the conversation ID and security token. It uses the SessionCreateRQ Service in the required format with the required values. The connection manager is initialized. A connection manager opens and maintains multiple concurrent connections based on projected volumes and business model. the connection manager closes some of the connections.Connection Pools Implementing a pooling design for caching and managing connections is recommended. and sends them to the endpoint for consuming Sabre Web Services over HTTPS. The connection manager refreshes the open connections in the pool to prevent them from timing out. Request 1. Then when traffic volumes are low. It opens multiple connections per the threshold defined at initialization. a time stamp. The details of special values to pass are not included in this example. For this information. generally more open connections than clients. The connection manager sends multiple SessionCreateRQ service requests to create Sabre Web Services connections for the connection pool on the client side. please refer to Appendix A and the service documentation on the Developer Resource Center. a client obtains an available connection from the pool to send Sabre Web Services service requests that make up a business workflow. the SOAP envelopes of all requests include a unique client-generated value for eb:ConversationId. A many-to-one ratio of connections to clients exists. a client retrieves an available connection from the pool. With a connection pool. When needed. As connections are needed. The connection pool is one component of a connection manager. The connection pool has multiple open connections to Sabre Web Services. applications can have multiple clients. and connection status. and tries to maintain the clients needed during the high and low volumes. These connections are stored in a connection pool— a repository of multiple open connections which are kept alive and ready when clients need to send travel workflows. When the client is done. using the TPF Connector-based Sabre Web Services for the travel messages. and the security credentials for Sabre Web Services . With a pool. and passes the connection ID in all messages in the workflow it sends to Sabre Web Services. The connection manager persists the connection IDs so that clients can reuse them. Connection managers are discussed further in the section of this document titled.24 Sabre Holdings Inc. With connection pools. A connection manager has thresholds defined for high and low volume traffic. Connection pooling is a widely-used practice for managing connections effectively. Again.” An example of a workflow that obtains an open connection from a connection pool follows. the connection manager also needs to store a client ID as a reference to the client instance using the connection. v1. the connection ID is returned to the pool for reuse. the assigned value for eb:CPAId. In particular. 1. Designing and implementing a connection manager is more complicated than using the basic connection approach. Confidential Page 86 . a connection manager creates the connections it needs by sending multiple SessionCreateRQ service requests and storing the connection IDs. “Connection Managers. Remember that the connection ID consists of the security token and conversation ID used to create the connection. and Domain. 5. Organization. It also stores the time stamp and creates a client ID.24 Sabre Holdings Inc. 4. waiting for a client to request one. 2. The connection manager stores the connection IDs in the connection pool. The client exchanges Web services messages that represent a travel workflow. v1. waiting for a response before sending the next request. clearing buffers. An example of a travel workflow is an exchange of messages that search for air availability. Response 1. The connection IDs are in the pool. returns a unique security token in the BinarySecurityToken element in the SOAP envelope of each SessionCreateRS response messages Returns the same conversation ID to each request Note: • Remember that when a client uses a specific Sabre Web Services connection and Sabre session. EndTransactionLLSRQ. While it is using the connection. request an air segment. The same value returned in wsse:BinarySecurityToken in SessionCreateRS must be sent in all messages using the connection. and then find lower fares. the client sends the request messages one at a time. the following values must match the values that were used to open the connection with SessionCreateRQ: eb:ConversationId.Guide to Accessing and Consuming Services. When finished with a TPF Connector-based Sabre Web Services workflow. The client requests a connection ID from the connection pool. When the client needs to send a travel workflow. which discards any content that remains from a previous Sabre session that used the connection ID. eb:CPAId (eb:Organization). The connection manager sends the IgnoreTransactionLLSRQ service.consuming Sabre Web Services in the wsse:Security node as follows: wsse:UsernameToken. the client stores the transactions in the Sabre system by sending the appropriate Web service. While using the connection. in this case. allocates one Sabre session per connection For every request. and in the payload. The client includes connection ID information in all request messages in this workflow. the client requests an open connection from the connection pool. Confidential Page 87 . The Sabre Web Services infrastructure receives the request and does the following: • • • Authenticates and authorizes access based on the security credentials in the request For user IDs that require Sabre host access. the client stores the connection ID for use in all requests in the workflow. (For information about storing content. The connection manager clears the Sabre work area before handing over the connection ID to the client. and other activities that Sabre Web Services . wsse:Password. 3. PseudoCityCode. The connection manager extracts and stores the conversation ID and security token from the SessionCreateRS response. v1. A new client requests a connection from the pool. the connection manager closes some connections to maintain the minimum threshold it has defined. 9.24 Sabre Holdings Inc. in this case IgnoreTransactionLLSRQ. the client returns the connection ID to the connection pool. obtain their content from the Sabre host system. This can be any free and available connection in the pool. application developers can clear the work area when a workflow is completed or just before beginning a new one. As many clients as your business model needs and your capacity planning will allow can independently retrieve open connections from the pool and send workflows. “Maintaining Session State in Your Client. The use of a connection pool creates persistent connections and allows for reuse of connections as needed. The client has ended the workflow and returns the connection ID to the pool for reuse by another client. and the current quantity of active Web services sessions is decremented.manipulate content in the Sabre work area. a second client can also request an open connection from the pool. The Sabre session becomes inactive and is returned to the subscriber’s session pool. 10. Depending on your business model. 8.”) 6. The connection manager closes excessive connections. When to Use Connection Pooling When there is a need for multiple clients. this form of management is recommended. When a workflow is complete.Guide to Accessing and Consuming Services. The connection manager clears the work area before it hands a connection ID to a client. requesting a connection again when the need to send a workflow arises. which again. The connection manager refreshes the open connections in the pool to prevent time-outs. and the quantity of connections needed exceeds the quantity of clients available. and return the connection ID when finished with the workflow in similar fashion. When the SessionCloseRQ service is consumed. The connection manager stores the connection IDs and other connection information in the connection pool in a separate database or file. 7. Confidential Page 88 . please refer to the section of this document titled. When traffic volume is low and fewer connections are needed. the client or connection manager has the responsibility of clearing the data in the Sabre work area that lingers from a previous session. The connection manager obtains the connection IDs of the connections to close by using the conversation ID and security token used to open the connections. When the connection manager retrieves an existing connection from the pool. The connection manager keeps the connections open or alive by time stamping them with the SessionValidateRQ service. it retrieves the connection ID and clears the Sabre work area of any content that lingers from the previous Sabre session by sending the appropriate TPF Connector-based service. send a workflow. When calling TPF Connector-based Sabre Web Services. all the internal resources held by the connection and session ae released. For a steady Sabre Web Services . In concurrence with the first client using a connection ID. this technique is suitable. Connection Managers A connection manager. The disadvantages are that additional hardware is required for the connection manager. That is the only way to send simultaneous service calls. while reducing the overhead of excessive requests to open and close connections. If the client’s business process needs multithreaded processes. v1. This saves time and resources by reusing connections instead of creating them every time the client application needs to retrieve travel content. open connections. Confidential Page 89 . is also the most reliable architecture.volume of 1 to 2 transactions per second. the most complex solution. it will need multiple.24 Sabre Holdings Inc. The connection manager includes the following: • • • • • • A strategy for connection management The opening and closing of connections A connection pool The storage of connection IDs and updates about the status Load balancing Failover and connection recovery Sabre Web Services . Advantages and Disadvantages Advantages of a connection pool are the ability to have multiple clients and make simultaneous Sabre Web Services calls.Guide to Accessing and Consuming Services. and the architecture is not as simple or inexpensive to implement and maintain as the basic connection solution. v1. it has no single point of failure. The design can eliminate points of failure by adding redundancy and storing the connection IDs on a separate box so that they can be recovered. The implementation of a connection manager helps ensure that an adequate quantity of available connections is available when needed. that is. If the connection manager is fully redundant.24 Sabre Holdings Inc. the quantity of Sabre Web Services connections and Sabre sessions in your session pool.Guide to Accessing and Consuming Services. enabling multiple clients to request open connections and reuse them. The connection information is also stored separately so that the connection IDs can be recovered in the event of failure. and connections Sabre Web Services . An example of a simple implementation with some built-in redundancy is shown in Figure 9. Multiple simultaneous connections are also needed for multi-threaded processes. eliminating a point of failure. When to Use This If the client application’s environment is high volume. and fast session recovery.A connection pool is a component of a connection manager. implementation of a connection manager with a level of redundancy needed is essential. automated failover. Figure 9. The connection manager opens and maintains multiple. Connection Manager Architecture with Limited Redundancy As shown in Figure 9. multiple clients are routed through a load balancer to the connection manager to request connections. making failover automatic and recovery possible. If the client application cannot afford to have down time. Advantages and Disadvantages This solution has the highest rate of reliability. concurrent connections. A connection manager goes beyond connection pooling by using load balancing. The connection manager is housed on two boxes. without over-allocating your resources. a solution with full redundancy is recommended. and persists the connection IDs. Confidential Page 90 . 24 Sabre Holdings Inc. a session pool was referred to as a TAM pool. This architecture is also highly scalable. The connection manager is responsible for throttling the number of open connections to accommodate fluctuations in traffic volumes. Responsibilities and Duties of a Connection Manager The duties and responsibilities of a connection manager are explained as follows. Sabre Web Services . This information is used by capacity planning to determine the required allocation of Sabre TAs. (If additional resources are justified. The connection manager adjusts the quantity of connections during the day to handle peak and low traffic volumes. and is defined in the Sabre Web Services contract.Guide to Accessing and Consuming Services.) • Create connections to Sabre Web Services The connection manager begins its business logic by initializing the connection pool. Confidential Page 91 . efficient management of connections is essential. To effectively consume Sabre Web Services. v1. but one of the Sabre sessions in the session pool is also allocated and in use. If the client has multiple IPCCs. The quantity of TAs available is based on information provided to the Sabre account representative up front. • Define a specific and configurable quantity of open connections This pool of open connections is designed to grow or shrink to a predefined threshold to accommodate the volume of traffic requesting connections from the pool. not only is one of the connections being used. Efficient connection management has the following benefits: • • • Accelerates or expedites response times Minimizes errors Facilitates recovery from failures on the consumer or business application side In addition to being complex to design and implement. saving time and resources while eliminating overhead. This entails the creation of the predetermined and configurable number of connections by invoking the SessionCreateRQ service. (In legacy systems. please contact your Sabre account representative. • Throttle the quantity of open connections The connection manager ensures the availability of a minimum number of Sabre Web Services connections during the lifetime of the application. other disadvantages are greater cost and the need for additional hardware and systems administration.are used efficiently.) When the connection manager opens a connection. The number of connections also depends on the subscriber's TAM pool size. each IPCC is allocated a quantity of session in its specific session pool. • Clean up connections The connection manager cleans up all live connections before the application is closed. Basic connection information to store includes the security token. the connection manager refreshes the connections by sending the SessionValidateRQ message. which client is using it. and updates the information with a new time stamp and the status. • Destroy connections The connection manager terminates connections when the threshold for low volume traffic is reached. connection status. shut down. The connection manager caches and stores the connection information.24 Sabre Holdings Inc. The job of the connection manager is to monitor activity and refresh sessions efficiently. the connection is no longer usable. time stamp. ensuring that the minimal quantity of Sabre Web Services connections is available for use when needed. This makes the connections available to other instances of the client that use the same security credentials. and client ID. The connection manager uses the SessionCloseRQ service to terminate the connections. The connection manager closes the connections by invoking the SessionCloseRQ service. or another form of storage during application run-time.This throttle should be distributed across the different instances of a client application. that is. Remember that this Web service also terminates the allocated Sabre session. • Manage the connections by storing them in a pool • The connection manager stores and tracks the connection information for each of the live connections. The section of this document titled. the connection manager opens more. “Implementation Scenarios” explains this in greater detail. the minimal threshold of connections should not be exceeded. or when connections need to be cleaned up. and returns the Sabre session to the session pool. therefore. memory. • The connection manager keeps connections alive. or restarted. If the connection manager determines that fewer live connections are needed. If more connections are needed. in other words. conversation ID. All clients must be able to obtain the connections repeatedly with a given Web services connection. Confidential Page 92 . transactions must pass through the connection manager. • The connection manager is a proxy between the client and the network instead of a separate repository of connection information. The connection manager must know the time-out value assigned to the security credentials used to open the connections. The connection manager also closes connections on a regular basis to refresh the pool Sabre Web Services . At any point. To prevent the connections from timing out. whether the connection is free or in use. All data in the work area is discarded. the connection manager closes some connections.Guide to Accessing and Consuming Services. v1. if they do not use a common pool between the application instances. The connection information can be stored in a centralized database. Depending on the error received. they have to be created again.and reinitialize it. v1.24 Sabre Holdings Inc. Doing this depends on your business process. Each entry inside the pool has the format shown in Figure 10. The conversation ID used to create the connection Conversation ID Sabre Web Services . basic connection information must be stored to enable clients to retrieve connections from a pool as needed. • Handle connection-related errors The connection manager handles exceptions and time-outs that occur during the life cycle of all Sabre Web services connections. the result may be the termination of the current connection and the creation of a new one. These errors can be service-specific or connection. Sabre Web Services connections are no longer usable when they time out. Confidential Page 93 .specific.Guide to Accessing and Consuming Services. Figure 10. and to let the connection manager track the connections and keep them alive. Some workflows may be designed to clear the work area after the last transaction in a workflow. the connection manager clears the content in the Sabre work area before giving the connection ID to the client. Connection Information Fields This field… Security Token Time Stamp Is used as follows… The security token returned with the creation of the connection A time and date value that determines when the connection was last used. Connection Manager Implementation To effectively manage Web services connections. • Clean up Sabre sessions When a client requests a connection from the pool. This relieves the client of clearing the work area before sending a workflow. For errors returned by the Sabre Web Services infrastructure. It also enables the Status field to be updated when the connection requires validation. please refer to chapter seven. This can be a fixed. 7. The connection keep alive is used only to maintain a minimum number of connections in the pool. When the client is done and has stored content it wants.24 Sabre Holdings Inc. it is necessary to invoke the SessionCloseRQ service. the connection manager inspects the status indicator of all connections in the pool. The recommended keep-alive value should be less than the connection time-out value. The connection manager sends the IgnoreTransactionLLSRQ service to clear the Sabre work area of content lingering from previous use of the connection ID. Once the connections have been created. keeping connections alive using the SessionValidateRQ service is recommended. The client sends messages representing the travel workflow using the connection ID. connection manager sends the SessionCreateRQ messages the number of times equal to the quantity of connections it is configured to initialize. it is advisable to close the connections until the minimum threshold limit in the pool is reached. v1. the connection manager is ready to begin service requests from the clients in need of connections. The connection manager updates the time stamp of the connection ID. A client instance requests an available or free connection ID from the connection pool. This can be implemented in the connection manager as follows: 1.Guide to Accessing and Consuming Services. This makes all of the connections in the pool available to the client when the client starts up. If the application has low traffic or use. This minimizes the number of orphan connections in the client. All Sabre Web Services requests must obtain a valid connection from the pool. The connection manager provides the connection ID to the client. Even when the client is restarted or stopped.” 3. However. 4. the client returns the connection ID to the pool. This decision is made on the basis of the current connection pool size. The connection manager sets the connection ID status flag to “available” or “free. the connection manager must terminate all active connections in the pool. The connection manager sets the connection ID status flag to “in use.This field… Connection Status Client ID Is used as follows… A value showing whether a connection is free or in use Identifies the client that is using the connection to associate the client instance with a particular connection ID in the pool When the box with the connection pool is started and the pool is opened. 5. All system-related errors and time-outs result in the closing of the connection and the creation of a new connection. 2.” 8. Confidential Page 94 . All free connections with a time stamp older than the time-out value are either revalidated or closed. if the application is running with less than the minimum threshold. Sabre Web Services . automated process or a manual maintenance activity. As part of its clean-up activities. 6. During some configurable interval. Connection Manager Architecture with Full Redundancy Sabre Web Services . and recovery. To eliminate points of failure.Guide to Accessing and Consuming Services. load balancing.24 Sabre Holdings Inc. or can replicate all components. the connection manager stores the connection ID with the corresponding client ID on a different machine from the connection manager and connection pool. as shown in Figure 11. v1. Figure 11. This enables failover. Confidential Page 95 . Business needs dictate how clients design their architecture. the client is restarted with the connection IDs that are stored on the other machine. Clients can choose which components to duplicate. the system architecture should be redundant.Session Recovery and Failover To enable session recovery and failover. To recover connections and active Sabre sessions. Because the time-out is 15 minutes. At any point. Because 11 are fewer than the threshold of 16 open connections. Let us say this quantity is 20. This minimizes the errors the client receives about unavailable resources from the Sabre Web Services infrastructure. The pool size has a maximum value of less than 100 connections. 30 are open. During times of high traffic. the connection manager wants to maintain 10 connections in the pool. If the pool has more than 20 unused connections. The connection manager stores the connection IDs of the open connections that are in the pool. Sabre session creation and removal must be minimized by the reuse of connections. the connection manager sends the SessionCreateRQ messages the number of times equal to the quantity of connections it is configured to initialize.24 Sabre Holdings Inc. and to avoid running out of open connections. Sabre Web Services . This is the low threshold value for the connection pool. the connection manager is configured to close 10 connections. Sixteen connections is close to the threshold of 20. and 19 are unused. and only 11 are in use. the client refreshes the connections by sending the SessionValidateRQ Service. the client calls the SessionCloseRQ service until the threshold of 20 unused connections is reached. If there are less than 20 unused connections. Confidential Page 96 . the connection manager opens 10 more connections. the client can increase the pool size on demand as traffic increases. When the threshold of connections in use is reached (say the threshold is 16).Guide to Accessing and Consuming Services. v1. Scenario 1 When the machine with the connection pool is started and the connection pool is opened.Implementation Scenarios Some sample scenarios are presented in this topic. 11 in use. the connection manager is configured to open 10 more. During times when traffic is very low. monitoring use of the connections. it closes all connections in the pool. A 15 minute time-out value has been assigned to the connections and sessions. the client requires a maximum of 20 sessions. When 30 connections are open. there is no need to have 19 unused connections. Careful study of the scenarios depicted on the connection manager sequence diagram in Figure 12 shows that several Sabre Web Services were invoked before the connection was returned to the pool. therefore 10 are closed. the client refreshes or clears connections in the pool every 13 minutes. When the client shuts down. Scenario 2 This scenario has a client whose IPCC has been allocated a pool of 100 sessions. The connection manager will guarantee that the connection remains active between Sabre session retrieval and removal calls. Sequence Diagram for a Connection Manager Sabre Web Services . v1.Figure 12. Confidential Page 97 .Guide to Accessing and Consuming Services.24 Sabre Holdings Inc. one of which includes the use of a connection pool.) 3. the retrieval of desired content in the requests. Careful design of business workflows to minimize Sabre scans 5. (For the message format. The client does this by maintaining session state.Chapter 5 Chapter 5 Business and Application Logic Chapter five contains topics about travel workflows and the implementation of business and application logic in the client. the storage of content received in the responses. (Connections and Sabre sessions are fully discussed in chapter four. (See chapter seven.) 2. Note: Most of the information in this chapter is written for travel workflows that use TPF Connector-based Sabre Web Services.Guide to Accessing and Consuming Services. enabling clients to reuse Sabre Web Services connections. SOAP messages that conform to required formats and values. Business logic and workflows that incorporate appropriate Sabre Web Services messages in the proper sequence to manage the content during a Sabre Web Services session. saving transactions at the end of the workflow. Debug logging. either in the Sabre system or elsewhere. and clearing the Sabre work area before sending a new workflow. and application error handling.) Generally. the business logic the client application must handle is the maintenance of state as required during the business workflow. v1.24 Sabre Holdings Inc. please refer to Appendix A." For the tag requirements. Several strategies are recommended. A connection strategy for Sabre Web Services. and Sabre Web Services . The design of clients and workflows must implement the following: 1. system error handling. Requests for specific Sabre Web Services versions to obtain the content 6. Confidential Page 98 . see chapter two. 4. but some of the concepts apply to workflows that use open systems Sabre Web Services. "SOAP Message Format and Requirements. Confidential Page 99 .management of the buffers in the Sabre system.24 Sabre Holdings Inc. Sabre Web Services . v1.Guide to Accessing and Consuming Services. Minimizing cost is another factor. The following topics discuss these aspects of business logic. Let us use the OTA_TravelItineraryReadLLSRQ service as an example. The client references the flights it wants in another Web service to obtain fare rules.24 Sabre Holdings Inc. space in the Sabre work area is also allocated. The design of the client and the workflow. While all Sabre Web Services are stateless.” A Sabre Web Services session that sends and receives any of the stateful Web services functions can maintain the last-known or current content in the Sabre work area.Maintaining Session State In addition to designing clients to manage connections. application developers must include business logic to obtain the content desired. It is the client that decides whether to use content retrieved from a previous service or not. It is the client that is using the services in a stateful way. The user IDs of TPF Connector-based Sabre Web Services subscribers require Sabre host access. The term stateful. v1. is “the lastknown or current status of an application or a process. and the sequencing of the services let the client retrieve content from previous services. or a time out occurs. This lets the client talk to the work area. The AAA (referred to as the Sabre work area in this document) is designed for state maintenance in the Sabre host system. The TPF Connector-based Web service that requests air availability. closed. but a client can use other Web services to obtain further information about selected flights placed in the work area by OTA_AirAvailLLSRQ. This Web service simply retrieves a PNR and places it in the work area. A Sabre session has a LNIATA or TA.based Web service is stored in the work area until it is specifically cleared out. The terms maintaining state and/or managing state refer to keeping track of the condition of the process. The Sabre system remembers the flights that it displays via this Sabre format. OTA_AirAvailLLSRQ. This Sabre work area provides shopping cart functionality. a Sabre session is allocated when the connection to Sabre Web Services is authorized. etc. The Sabre system has some functionality that is stateful and other functionality that is stateless. search for lower fares. Confidential Page 100 . is stateless. The Sabre system tracks and maintains the content or state of the Sabre work area when Sabre Web Services . many of the functions associated with Sabre Web Services are stateful. A client can consume TPF Connector-based Sabre Web Services in a stateless or stateful way. The content retrieved via a Sabre format or a related TPF Connector. When a client connects to the Sabre Web Services gateway and a Sabre session is allocated. according to the Webopedia Web site. An example of a stateful function in the Sabre system is the request to search for and display air availability. The command upon which this service is based is a stateless Sabre system command. (The TA is referred to as a Sabre session in this document). therefore.Guide to Accessing and Consuming Services. depending on the specific TPF Connector-based Web services being consumed. and manipulate the business application that provides the content by way of requests. Guide to Accessing and Consuming Services. the content from all requests in a specific Sabre session is stored in the Sabre work area. Application developers must be aware of the content that is being created and stored there at all times. The Sabre work area can be thought of as the session state buffer.24 Sabre Holdings Inc. when the OTA_AirAvailLLSRQ service request is sent. the content from the previously-used session associated with the connection remains in the Sabre work area. This is because stateful functions can create and maintain content in the Sabre work area. is especially important for workflows that use stateful functions. Sabre Web Services functions that are stateless can perform their functions independently of other Web services by sending a valid security token. If this is a new connection. and removed in a single Sabre session. If clients have shopping cart functionality.proper techniques are implemented. Sending a message in the wrong sequence can overwrite the content in this work area.) When finished with a workflow. The responses of stateless functions do not have references to content in other responses. it must ensure the work area is cleared before sending a new workflow. • • When Web services representing stateful functions are called. In both cases. Ending a Sabre session properly with EndTransactionLLSRQ saves the content in the Sabre system and records it in the PNR. Therefore. Confidential Page 101 . The effect of each service on state in a specific Sabre session is dependent on the service. Some services only require a valid security token. before it ends the transaction. The client can parse content from each of the responses. and again. The content in this buffer can be displayed. (For a discussion about connection strategy. created. please refer to chapter four. The proper techniques for maintaining state in a Sabre session are as follows. When client applications start their workflow by retrieving and reusing a connection from the pool. v1. Sabre Web Services functions are either stateless or stateful. Other services depend on the content placed in the Sabre work area by yet other services so they can perform their functions. the shopping cart reflects the content in the Sabre work area. Sending the same conversation ID and security token with every request message in the session maintains state in the Sabre work area. the client stores content or the transaction by sending the EndTransactionLLSRQ service. When a client reuses a connection and its associated Sabre session. include the conversation ID and security token in all requests using the session. updated. • Obtain the conversation ID and security token associated with the Sabre session. extract the wsse:Security node with the BinarySecurityToken from the SessionCreateRS response message. application developers must design their client to clear the Sabre work area before sending the messages that represent a new workflow. the Sabre system processes it and returns a Sabre Web Services . A connection manger can also do this. for example. The sequencing of the messages. referred to as orchestration. 24 Sabre Holdings Inc. The client sends the EndTransactionLLSRQ service to complete the PNR. but it leaves content in the work area that can affect subsequent commands. the TravelItineraryModifyInfoLLSRQ service can modify the content.Guide to Accessing and Consuming Services. Clearing Content in the Sabre Work Area When a connection manager is implemented in a client. 3. This stores the changes in the PNR and assigns a record locator. Parsing and Storing Content To store the transactions in the Sabre work area that occur in a given workflow. The OTA_TravelItineraryReadLLSRQ service request accomplishes this by loading the content from the PNR into the Sabre work area. It parses or extracts any data it needs from the response. To complete a transaction. the client application can clear the Sabre work area by sending the IgnoreTransactionLLSRQ service with Ind=”true”. The TravelItineraryModifyInfoLLSRQ service is a stateful function. This stores a separate record in the Sabre system. The modification of a PNR is presented as an example: 1. the client first reads or displays it in the Sabre work area. When the connection needs to be retrieved from the pool for reuse. the client application can also parse and store other information it receives in any of the responses. When the content is loaded. the client application needs to send the EndTransactionLLSRQ service. Stateful functions depend on content that is placed in the Sabre work area from responses to other Web services. An example of the flow is shown in Figure 13. The service descriptions of Web services note when the services depend on content retrieved from a previous service. and to receive and end the PNR record. for example. Confidential Page 102 . Sabre Web Services . The OTA_AirAvailLLSRQ service does not depend on any content placed in the Sabre work area by other Sabre Web Services. other service requests may need to be sent after a particular service. v1.response. After retrieving a connection from the connection pool. the client must ensure that the Sabre work area is cleared or empty before sending a new workflow. The client sends the TravelItineraryModifyInfoLLSRQ service request with updated content. Clearing the Sabre work area eliminates the possibility of content from a previous Sabre session remaining and becoming intermingled with content in the Sabre session that follows. If needed. 1*. Sabre Web Services connections and the Sabre sessions that are allocated with the connections are reused. and depends on the OTA_TravelItineraryReadLLSRQ Service to load the content into the work area. 2. Assuming a PNR exists. Multiple business workflows can also be sent in a single session. Flow for Clearing the Sabre Work Area Sabre Web Services . v1.Guide to Accessing and Consuming Services.24 Sabre Holdings Inc. Confidential Page 103 .Figure 13. all content in the Sabre work area is removed when one of the following occurs: • • • The client logs out with the SessionCloseRQ service The Web Services connection and session time out The IgnoreTransactionLLSRQ is sent .24 Sabre Holdings Inc.This Web service clears everything associated with a PNR. If the traffic volume is low and it is necessary to close some existing connections. At the end of this workflow. A business workflow that consists of one or more travelbased Sabre Web Services is sent. Sabre Web Services . the client sends the SessionCloseRQ service to close the unneeded connections. clearing the Sabre work area before sending each new workflow. The client clears the Sabre work area with the IgnoreTransactionLLSRQ service. v1. As long as connections are needed. When another connection is needed. but leaves other content. The client retrieves an existing connection from the pool. The SessionCloseRQ service releases the Sabre session and connection associated with the conversation ID and security token. invalidates the security token. Confidential Page 104 . At the end of this workflow.This flow assumes that a new Sabre Web Services connection has already been created and is in the connection pool. The client again sends the IgnoreTransactionLLSRQ service to clear the content from the previous workflow in the Sabre work area.Guide to Accessing and Consuming Services. The client sends another business workflow. along with the conversation ID and security token. the client retrieves one from the pool. and clears the Sabre work area. the client sends the EndTransactionLLSRQ service to save the transaction and record locator in the Sabre system. Regardless of the workflow and commands sent. The client then returns the session along with the conversation ID and security token to the connection pool for reuse. such as availability displays. the client continues to retrieve existing sessions from the pool and send workflows. it sends the EndTransactionLLSRQ service to save the transaction and record locator in the Sabre system. v1. retaining the content in the Sabre work area. please refer to chapter four. the client application can save the content in the Sabre system by ending the transaction with the EndTransactionLLSRQ service or can clear the Sabre work area with the IgnoreTransactionLLSRQ service. This strategy uses connection pools and a connection manager. When designing client applications and travel workflows. When the workflow is complete. when the client application is finished with each workflow. For complete information about Sabre Web Services connection strategies and connection pools.TPF Connector‐Based Workflows The flexible design of Sabre Web Services allows application developers to create travel workflows any way that they want. Some of the ways that can be used to manage workflows are as follows: • • Open a new connection to send a single or multiple workflows in a Sabre session. A number of strategies must be considered with this approach: • • • Clearing the Sabre work area after the completion of each workflow Clearing the Sabre work area at the beginning of the workflow Clearing the Sabre work area at the beginning of the workflow. Sabre Web Services . application developers can consult the request and response design documents.Guide to Accessing and Consuming Services. and which elements to parse and integrate into the client application. and can be obtained via the Developer Resource Center. please refer to the section of this document titled. and sending another workflow using the same Sabre session Note that clearing the work area after completing each workflow is not as reliable a way to clear the content as clearing the work area at the beginning of client workflows. application developers should review the content in the XML payload requests and responses to decide which data elements to send. For more information about this. it can save or ignore the transaction and return the connection to the connection pool for reuse.24 Sabre Holdings Inc. Each client reuses the connections and sessions. “Shopping Cart Functionality and the Sabre Work Area. There are choices for sending workflows with Sabre Web Services. This is the basic connection strategy." Single Workflow Using a Single Sabre Session When a single session contains more than one workflow. application developers must ensure that the work area is clear before sending the next workflow. To determine which of the Sabre Web Services to incorporate into a client. Confidential Page 105 . "Managing Connections with Sabre Web Services. the application developer needs to select the services whose payload messages represent the content that they want to request and retrieve. Reuse connections to send workflows using more than one client. and then close the connection. For a list of the content in the payloads. and determine their sending sequence.” Regardless of how application developers implement workflows. and the needs of the business determine which are most suitable. One pair of request and response design documents and a description document is provided for every Web service. An example of a simple travel workflow that uses one Web service is the use of the OTA_AirFlifoLLSRQ service. In this workflow, the IgnoreTransactionLLSRQ service is consumed, clearing the work area. Then the OTA_AirFlifoRQ/RS messages are exchanged to retrieve information about a specific flight and display the results. In this example, the client does not store any transactions in the Sabre system when it consumes this service, but it parses content it wants, which is the latest flight information, and provides it to an end consumer or other process. Multiple Workflows Re-Using a Sabre Connection To send more than one workflow with a single Sabre Web Services session, the client application must first obtain a connection from the connection pool, followed by the exchange of messages representing the travel workflow. The client application completes the workflow by exchanging messages that store the transaction in the Sabre system. The next choice is to send messages that either clear the work area or represent another travel workflow that uses some content remaining in the work area from the previous workflow. The needs of the business and end users dictate how to design these workflows, and whether it is necessary to clear the work area or retain the content before sending subsequent workflows that use the same Sabre session, before returning it to the pool for reuse. When finished with the workflows, the client application can save the transaction in the Sabre system and return the connection to the connection pool for reuse. This automatically frees up the Sabre session and returns it to your session pool for reuse. Remember that a Sabre Web Services connection and Sabre session are synchronized. They are allocated and released simultaneously. One caveat is that the content remains in the Sabre work area after a Sabre session is released, until the connection is closed or times out. Client applications can repeat this process until they want to terminate the Web Services connection or the connection is no longer usable. Single and Multi-threaded Workflows The client application can also pass the conversation ID and security token among threads, processes, and machines. For example, by replicating and managing connections correctly, you can use a set of machines to provide failover features to a system. • Single threads To minimize the quantity of Sabre sessions used in the session pool in a single process, clients must pass the same conversation ID and security token for the connection they are using in all messages in the thread. Multithreaded processes For multithreaded workflows or processes, use a separate Sabre Web Services connection, each with its own conversation ID and security token, in each thread. If a client is generating multiple, simultaneous requests, either by multiple end consumers or other means, use one connection for each of the requesters. Note: • Do not share the connection, Sabre session, security token, or conversation ID Page 106 Sabre Web Services - Guide to Accessing and Consuming Services, v1.24 Sabre Holdings Inc. Confidential among multiple threads. Minimizing Scans Clients are billed for scan charges whenever their client consumes any of the Sabre Web Services in the production and certification environments. When clients consume Sabre Web Services, three types of scan charges may be applied: basic, fare, and search. Basic type scans cost less than fare or search type scans. Application developers may want to take into account the type of scans that are associated with each Web service. This may help with client design and user interaction by limiting the more expensive searches and caching responses. As an example, application developers may want to impose constraints on the types of searches end consumers can do and the quantity of searches they can perform. Letting end consumers search for all availability and fares without specific dates is more expensive than searches based on specific dates. Developers may also want to cache responses whenever it makes sense, but they must also be aware of limitations on the data retrieved from the Sabre system, such as the length of time for which data is valid. Sabre Web Services does not limit the flexibility when it comes to creating meaningful workflows for organizations and customers. However, there are efficient ways to build client applications and workflows to minimize scans, which helps to minimize costs. The following two examples illustrate workflows that accomplish the same business process, but with differing quantities of scans. In Table 2, the efficient workflow has only 3 scans. The session management services are used only once, to open and close the connection. The same workflow, shown in Table 3, has 9 scans, which is inefficient and more costly. The efficient example assumes the connection has already been created Sabre Web Services - Guide to Accessing and Consuming Services, v1.24 Sabre Holdings Inc. Confidential Page 107 Table 2: Efficient Workflow That Shops for Air, Car, and Hotel Transaction Number Web Service: Request and Response Messages 1 OTA_AirAvailLLSRQ service: OTA_AirAvailRQ/OTA_AirAvailR S OTA_VehAvailRateLLSRQ service: OTA_VehAvailRateRQ/OTA_VehAvailRateR S OTA_HotelAvailLLSRQ service: OTA_HotelAvailRQ/OTA_HotelAvailR S 2 3 Table 3: Inefficient Workflow That Shops for Air, Car, and Hotel Transaction Number Web Service: Request and Response Messages 1 2 3 4 5 6 7 8 9 SessionCreateRQ service: SessionCreateRQ/SessionCreateRS OTA_AirAvailLLSRQ service: OTA_AirAvailRQ/OTA_AirAvailRS SessionCloseRQ service: SessionCloseRQ/SessionCloseRS SessionCreateRQ service: SessionCreateRQ/SessionCreateRS OTA_VehAvailRateLLSRQ service: OTA_VehAvailRateRQ/OTA_VehAvailRateR S SessionCloseRQ service: SessionCloseRQ/SessionCloseRS SessionCreateRQ service: SessionCreateRQ/SessionCreateRS OTA_HotelAvailLLSRQ service: OTA_HotelAvailRQ/OTA_HotelAvailR S SessionCloseRQ service: SessionCloseRQ/SessionCloseRS Reusing connections to send workflows reduces scans because client applications do not send the SessionCreateRQ and SessionCloseRQ services between each workflow. Sending the IgnoreTransactionLLSRQ service before beginning a new workflow may possibly incur fewer transactions than clearing the work area after every workflow. Reducing scans and designing workflows for efficiency not only reduces costs, but it also improves total client response times. Sabre Web Services - Guide to Accessing and Consuming Services, v1.24 Sabre Holdings Inc. Confidential Page 108 Retrieving Content from the Business Application To obtain the content, all SOAP messages must contain the action codes that correspond to the Sabre Web Services the client is calling. Additionally, the Version attribute in every request payload must include the appropriate version of the Web service being called in the correct format. The use of action codes is explained below, and how to request service versions is discussed in the section of this document titled, “Requesting Web Service Versions.” Using Action Codes Action codes are used to distinguish the payloads of each Web service because the content of each Web service varies. Like OpenTravel, the request and response messages for each of the Sabre Web Services have unique action codes. The action codes are often named the same as the OpenTravel request and response messages upon which their payloads are based, with the letters LLS inserted in the action codes of the TPF Connector-based Sabre Web Services. The names of all TPF Connector-based Sabre Web Services are the same as the action codes of their corresponding request messages. For example, the action code for the OTA_AirAvailLLSRQ service is OTA_AirAvailLLSRQ. The name is based on OpenTravel request message OTA_AirAvailRQ. The action codes for most of the responses are the same as for the requests, with RS replacing RQ. In the SOAP envelope of the Web service request, the <eb:Action> element contains the value for the action code. For the service-specific values, see the service description and developer notes for the Web services being requested. Where applicable, these documents also list the OpenTravel specifications that are the basis for the messages. Requesting Web Service Versions This versioning strategy applies to TPF Connector-based Sabre Web Services. For more information about the versioning strategy for Sabre Web Services, please refer to the section of this document titled, “Versioning Strategy for Sabre Web Services.” The request payloads of TPF Connector-based Sabre Web Services must include a version number that is valid for the service being consumed, even when only one version of a Web service exists. The number must be in the correct and complete format, shown as follows: 2003A.TsabreXML + three-part version number Example: Format for request payloads of service version 1.0.1 2003A.TsabreXML1.0.1 TPF Connector-based Sabre Web Services do not default to any version of a Web service. Specifying a service version in the request payload is always required for all platforms used to consume Sabre Web Services. The client references the Web service version at run-time, Sabre Web Services - Guide to Accessing and Consuming Services, v1.24 Sabre Holdings Inc. Confidential Page 109 1" TimeStamp="2001-12-17T09:30:47-05:00" Target="Production" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="enus"> If a valid version is received and Sabre Web Services processes the request successfully.org/2001/XMLSchema" xmlns:xsi="http:// www. Confidential Page 110 .1 and 1.1.” For more information about how the numbering system is applied to TPF Connectorbased Sabre Web Services and the WSDL and schema documents. the requested version number is returned with the Version attribute of the document root element in the response payload.com/sabreXML/2003/07" xmlns:xs="http://www.w3.Guide to Accessing and Consuming Services. please refer to the section of this document titled.1 in a request payload <VendorCodesRQ xmlns="http://webservices.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> Example: Request for version 1. please see the section of this document titled. or if a version is omitted. the client sends a valid version number in the correct format with the Version attribute of the document root element. For examples that show how to identify and obtain documents and other artifacts for Web Services versions.0. Example: Request for version 1.w3.0. The numbering system is explained in the section of this document titled.sabre. application developers need to modify their client to use the enhancements or corrections.1 in a request payload <OTA_AirFlifoRQ xmlns="http://webservices.24 Sabre Holdings Inc. The following examples show requests for versions 1. This table has references to part numbers that compose the numbering system.TsabreXML1. To request a version.” Sabre Web Services .0.org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2001-12-17T09:30:4705:00" Target="Production" Version="2003A." For information about identifying the URLs for schema and WSDL documents that have been versioned. “Version Numbering System for Web Services and Documents. “Versioning of Sabre XML Schema and WSDL Documents.sabre. “Version Numbering System for Web Services and Documents.com/sabreXML/2003/ 07" xmlns:xs="http://www.” When New Service Versions Drive Code Changes When a new version of an existing Web service is introduced.TsabreXML1. v1.1. an error is returned in the Errors node of the response payload.w3.1.1. If an incorrect version.so the version must be present in the payload of the request.org/2001/XMLSchema" xmlns:xsi="http://www. is requested. such as an expired version. please refer to Appendix B. "Identifying Documents for Sabre Web Services.w3.org/2001/XMLSchema-instance" EchoToken="String" Version="2003A. including delivering additional content. however. It is recommended that you upgrade your client as soon as possible to avoid falling behind. You client code is probably compatible with this type of correction. or renamed in a new version of a Web service you are using. A bug fix or other correction that affects the XML structure of the message is implemented in a new version of a Web service you are using.24 Sabre Holdings Inc. If modifications are needed. To obtain the correction. Sabre Web Services .Table 4: Factors for Deciding to Upgrade Clients for New Service Versions Type of Service Upgrade Action Enhancements to content. Elements or attributes in the request or response have been deprecated or removed. Regenerate the proxy classes. You can continue to use the previous service version without upgrading your client. you must upgrade your client. you must upgrade your client and regenerate the proxy classes. upgrade your client. Confidential Page 111 . If you want to use the updates in the new version. you can continue to use the previous service version. the addition of elements and attributes. renamed elements or attributes have been incorporated into a new version of a Web service you are using. v1. If you do not want the correction. it is recommended that you review your client code to assess whether modifications are necessary.Guide to Accessing and Consuming Services. A correction that does not affect the XML structure of the message is implemented in a new version of a Web service. To enable your client to use the changes in current versions. To enable your client to use the changes. but the WSDL or schema documents may have an error. The version of a service your client is using is deprecated. It is not necessary to upgrade your client.Table 4: Factors for Deciding to Upgrade Clients for New Service Versions Type of Service Upgrade Action Changes or additions have been made to the multiple responses table. Confidential Page 112 . regenerate the proxy classes.24 Sabre Holdings Inc. Existing versions of the WSDL or schemas are corrected to match the Web service versions in production. regenerate the proxy classes.Guide to Accessing and Consuming Services. The Web service itself is correct. A WSDL or schema document is upgraded to a new version to incorporate modifications that have been made to its corresponding Web service. A WSDL or schema document is corrected in existing versions to reflect the Web service code in production. You must upgrade your client to consume a newer version. v1. Sabre Web Services . 3. Prepare the new response XML. If the modification to the Web service affects the request. Test the modified client. or both. the general steps for upgrading clients are the following: 1. 2. the following action is recommended: 1. 2.Working with Your Own XML Objects If the client application is coded in a programming language that requires working with its own XML. 5. Prepare the new request XML. re-run the XML data binding for both the request and response. 4. Sabre Web Services . 6. If the modification to the Web service affects the response. 3. Working with WSDL When consuming Web Services with WSDL. Adapt the Version attribute of the document root element in the payload to request the new version. adapt the client to create the new elements or attributes in the request.24 Sabre Holdings Inc. If the XML in the request is modified. your client code must be adapted to handle new or modified elements. Direct the development tool to the URL of the WSDL document that corresponds to the new service version. If the XML in the response is modified. v1. attributes. Adapt the Version attribute of the document root element in the payload to request the new version. attributes. Test the modified client. or both. your client code must be adapted to handle new or modified elements. 5. Confidential Page 113 . Because the request or response XML structure is modified. 4. Run the data binding tool again to use the new request and response structures. parse the new elements or attributes in the response.Guide to Accessing and Consuming Services. Regenerate the proxy classes. and finally examine the data returned in the response.Guide to Accessing and Consuming Services. such as the display sine command using the *S entry. Providing the message ID along with <StackTrace> is helpful if Technical Support needs to be contacted. then provide error handling. see the service description. it is suggested to also include <eb:MessageId> returned with the SOAP envelope of the response. they can send the SabreCommandLLSRQ service to execute any Sabre system commands desired. For more information about system and application errors. By first ensuring that errors are not returned. For more information about using this service. Sabre Web Services . design documents.Obtaining Content When Services Do Not Exist If the application developers wants to execute Sabre system commands that do not have corresponding Sabre Web Services. When the client application captures <faultcode>/<faultstring> in its log files. Debug Logging It is recommended that application developers design their client code to look for system errors first.24 Sabre Holdings Inc. v1. the problem of trying to parse an error instead of response data is avoided. please refer to chapter seven. and sample payloads on the Developer Resource Center. Confidential Page 114 . The Sabre Web Services infrastructure closely adheres to the HTTP/1. “Environments for Using Sabre Web Services. and the policy for deploying clients to production. so application developers must set up an HTTPS connection from their client. the HTTP server processes the request. “Customer Acceptance Testing.1 protocol.” Testing Environments have been established for client testing. testing. It discusses debug logging and summarizes the platforms and tools for consuming Sabre Web Services.24 Sabre Holdings Inc. please refer to the section titiled. scan charges are applied and real-time inventory is affected. Confidential Page 115 . Application developers set the endpoint or URL in their client or development tool to the environment they want. Several environments for consuming Sabre Web Services are available. each with their own URL. whether consuming with or without WSDL. If it is successful. For the URLs or endpoints into Sabre Web Services and complete information about the environments. and consuming Sabre Web Services. HTTP status code 500 is returned when errors occur. For details about these environments. v1. it is recommended that the client application’s HTTP headers comply with this.Guide to Accessing and Consuming Services. Therefore. and final acceptance testing.” Sabre Web Services . including load. HTTP status code 200 is returned. After the connection is made.Chapter 6 Chapter 6 Consuming Sabre Web Services Chapter six describes the systems and environments that are available for developing clients. In these environments. Connecting TCP/IP is the only way to connect to Sabre Web Services. It also explains the requirements for load testing. performance. please refer to the section titiled. 24 Sabre Holdings Inc. a minimum lead time of 5 business days is required. you and possibly your customers will be billed by suppliers or other vendors for all associated fees. and real-time inventory is decremented. please refer to the section of this document titled. it is ready for production. Deploying Clients to Production When the client meets the prep-defined acceptance criteria.” Caution When your client or solution books travel arrangements using the customer acceptance testing or production URLs. the transactions are recorded in the live. Confidential Page 116 .Guide to Accessing and Consuming Services. the services fail. and is it acceptable for your client? Note: Before conducting heavy load testing or performance testing. In other cases. Caution Scan charges may apply whenever a client interacts with any of the environments established for Sabre Web Services. Please consult your contract for a description of these charges.sabre. • Response time – Is the response returned according to your expectations. Sabre Web Services . If the provided values are not valid. If these bookings are not canceled. • Quality of data – Is the data in the response what you want? Does it make sense? Is it what you expected? In some cases.com/websvc Please be sure to cancel any bookings created for test purposes.com https://webservices. production Sabre system.cert. the service substitutes default values during processing. If valid values are not provided in the requests. “Minimizing Scans. For tips on minimizing scans. These URLs are the following: https://sws-res. elements and attributes require valid values to process the requests successfully. providing valid values is preferred but not required to process the services successfully. and the content in the responses is associated with the default values. Please contact Technical Support with your plans. Some test criteria they may want to consider follows.sabre. v1.Recommendations are for application developers to define their own acceptance criteria. 24 Sabre Holdings Inc. If it is necessary to take this system out of service for any reason. 7 days per week. availability is not guaranteed. sabre. The following table and topics fully describe these environments. Yes The system this URL points to is available 24 hours. it is preferred that application developers notify us about planned production dates and projected volumes as far in advance as possible. While every effort is made to have this system available 24 hours. 7 days per week.sabre . A minimum of 20 business days is required.cert. Sabre Web Services .com Production https:// webservices. sabre. customer acceptance testing.com/websvc URL or endpoint for client application access Points to the Production Sabre Web Services application and Sabre system Points to the CERT test Sabre host and associated systems Test PNRs must be cancelled Sabre scan charges apply For tips on minimizing scans.Guide to Accessing and Consuming Services.To assist us with capacity planning. v1. and production. Confidential Page 117 . subscribers receive advance notification.” Production Sabre sessions (TAs) are shared across multiple Sabre Web Services environments No No No https://swscrt. please see “Minimizing Scans. Please contact Technical Support to discuss your plans. Table 5: Features in Sabre Web Services Environments Use and Availability Development https://swssts.cert.cert. sabre.com Customer acceptance testing https://swscrt.com Yes No No No No No Yes Yes No No Yes URL and targeted system is available 24 x 7 x 365 No No. Environments for Using Sabre Web Services We provide several environments for consuming Sabre Web Services for the following general purposes: client development. com/websvc Please be sure to cancel any bookings created for test purposes.24 Sabre Holdings Inc. the transactions are recorded in the live.Guide to Accessing and Consuming Services.sabre. Sabre Web Services . These URLs are the following: https://sws-res. and real-time inventory is decremented. v1. If these bookings are not canceled.Caution When a client or solution books travel arrangements using the customer acceptance testing or production URLs.cert. production Sabre system. Confidential Page 118 .com https://webservices. you and possibly your customers will be billed by suppliers or other vendors for all associated fees.sabre. • • • Active means the service version is available for consumption.sabre. Description of Environment The following are available in both of these Sabre Web Services environments: • All active service versions of the TPF Connector-based Sabre Web Services currently in production.24 Sabre Holdings Inc. v1. All active session management-based Sabre Web Services currently in production. in other words. it has not been deprecated. Confidential Page 119 . The URL containing “sws-sts” points to the TSTS Sabre host and associated systems. These services. These two host systems are totally separate. Environment Use Use the development environment for developing clients. for example.sabre. The code in this environment is subject to change without notice. the PNR. are SessionCreateRQ. Application developers must not use this environment for the following: Sabre Web Services . but please check the Developer Resource Center to confirm availability.cert.com https://sws-sts. and SessionValidateRQ.Customer Development URLs for Consuming Web Services https://sws-crt.com The differences between these two URLs are as follows: • • The URL containing “sws-crt” points to the Certification test Sabre host and associated systems. All new service versions of existing Sabre Web Services in testing. sometimes referred to as USG-based Web services. These include the upgraded TPF Connector-based and session management-based Sabre Web Services with enhancements and corrections.cert. SessionCloseRQ. pricing.Guide to Accessing and Consuming Services. and availability systems are not related to one another. it retrieves content from the Certification version of the Sabre system. When a client connects via this URL. Most of the open systems-based services are also available as well. Some examples are OTA_AirAvailLLSRQ and SabreCommandLLSRQ. Guide to Accessing and Consuming Services. sometimes referred to as USG-based Web services.00/tpf/filename or http://webservices. but please check the Developer Resource Center to confirm availability. Customer Acceptance Testing URL for Consuming Web Services https://sws-res.0.com/wsdl/sabreXML1. These services. Sabre Web Services .sabre. are SessionCreateRQ.0. it has not been deprecated. and SessionValidateRQ.sabre.sabre. in other words. Confidential Page 120 . and is established for customers to test their client applications before the changes are deployed to production. • • • Active means the service version is available for consumption. please refer to Appendix B. All new service versions of existing Sabre Web Services in testing.cert.com Description of Environment This environment reflects Sabre Web Services that are scheduled for the next production release. These include the upgraded TPF Connector-based and session management-based Sabre Web Services with enhancements and corrections. Some examples are OTA_AirAvailLLSRQ and SabreCommandLLSRQ.00/tpf/filename For more information about the URLs. SessionCloseRQ. Most of the open systems-based services are also available as well.• • • Load and performance testing Estimating production response times Production transaction processing Pattern of URL for WSDL Documents The pattern is shown below: http://cert. It is the staging environment for production.24 Sabre Holdings Inc. The following Web Services are available in this environment: • • All active service versions of the TPF Connector-based Sabre Web Services currently in production. v1.webservices. All active session management-based Sabre Web Services currently in production.com/wsdl/sabreXML1. Confidential Page 121 . Test new Sabre Web Services and new versions of existing services Test architectural changes to the Sabre Web Services infrastructure Load testing You must not use this environment for the following: • • • Performance testing. the transactions are recorded in the live.Guide to Accessing and Consuming Services. please refer to Appendix B.The code in this environment is subject to change without notice. Environment Use Use this environment to do the following: • • • • • Client testing during the unit testing phase of a project and for final clean-up before releasing it to production Functional testing of individual Web services. These URLs are the following: https://sws-res. and real-time inventory is decremented.sabre.24 Sabre Holdings Inc. production Sabre system. the client retrieves content from the production Sabre system and it records transactions in the live. v1. CAUTION When a client application or solution books travel arrangements using the customer acceptance testing or production URLs.0. Estimating production response times Production transaction processing Pattern of URL for WSDL Documents The pattern is shown below: http://cert.sabre.cert. If these bookings are not canceled.com/wsdl/sabreXML1. Sabre Web Services . you and possibly your customers will be billed by suppliers or other vendors for all associated fees. This is not permitted without advance notification and approval.com/websvc Please be sure to cancel any bookings created for test purposes. Production inventory is decremented.00/tpf/filename For more information about the URLs.sabre. production Sabre system.com https://webservices.webservices. Fixes to code during the customer acceptance testing phase of the release cycle are possible until code freeze. When a client connects via this URL. This is the most frequent type of testing. CAUTION When your client or solution books travel arrangements using the customer acceptance testing or production URLs. production Sabre system.24 Sabre Holdings Inc. All active service versions of all Sabre Web Services that have been released into production are available. Sabre Web Services .sabre. Confidential Page 122 .Production URL for Consuming Web Services https://webservices. a minimum lead time of 5 business days is required for capacity planning. Transactions are recorded in the live. and real-time inventory is decremented.Guide to Accessing and Consuming Services. and it is also suitable for final acceptance testing of clients and other solutions. or use it for the following types of testing: • • Estimation of production response times Performance testing Before conducting performance testing. production Sabre system. you and possibly your customers will be billed by suppliers or other vendors for all associated fees. If these bookings are not canceled. the transactions are recorded in the live. production environment for live transactions.com https://webservices. These URLs are the following: https://sws-res. and realtime inventory is decremented.sabre.com/websvc Description of Environment This environment is the production version of the Sabre Web Services infrastructure. Environment Use This environment is for production clients. production Sabre system. When a client connects via this URL.cert. Use it to consume Sabre Web Services in a live.sabre. v1.com/websvc Please be sure to cancel any bookings created for test purposes. the client retrieves content from the live. How to set up the development environment for .0_11.24 Sabre Holdings Inc.1_04. such as Microsoft . Working with WSDL Application developers can use tools that are designed to consume Web services at run-time.5.com/wsdl/sabreXML1. v1. These three sample clients that consume Sabre Web Services are available on the Sabre Web Services Developer Resource Center.3. Technologies for Working with Web Services Application developers can create clients and consume Sabre Web Services in the language of their choice. such as Java. Working with WSDL is easier than working directly with XML because WSDL creates a proxy class in the language of your choice. To consume Sabre Web Services and use the sample Java code.sabre. Please contact Technical Support with your plans. The preferred JDK version is 1.1 appears in Microsoft . With tools like these. working directly with XML or with WSDL.NET Framework Installation Guidelines in the Developer Start-up Kit on the Developer Resource Center. Pattern of URL for WSDL Documents The pattern is shown below: http://webservices.0. and a combination of languages and operating platforms can be used to generate proxy code from WSDL documents. With WSDL. Working Directly with XML Application developers can develop clients to consume Web services in the language of their choice. the minimal required version of the Java Software Development Kit (J2SE) is Version 1.NET Framework or Apache Axis. When consuming Sabre Web Services with clients such as Java and XML.Notify us about any changes to your production volumes on an ongoing basis.Guide to Accessing and Consuming Services. which are also available in the Developer Start-Up Kit. Please note that the parser must be namespace aware. clients can consume Web services written in any language that is available with the Web services development framework.00/tpf/filename For more information about the URLs. The client code parses the XML or uses APIs to map the XML to objects. Some information about set-up with Apache Axis and XML-Java appears in the readme files for these respective sample clients. please refer to Appendix B. The proxy class has instructions for mapping Sabre Web Services . Confidential Page 123 . they can create clients using a variety of programming languages. Responses are returned as XML documents. application developers are free to use the parser of their choice.NET Framework 1. and queries the objects for the data. Validation of the XML messages is done remotely at the URL where the WSDL documents for the Web service reside. WSDL was designed to use SOAP as the message transport. Whenever a WSDL or schema document undergoes any modification. Sabre Web Services . but it does not need to map the XML to objects. Another benefit of using tools to consume Web services at run-time is that errors on the client side are minimized.” Generating Proxy Classes and Consuming Services The WSDL and schema documents are used at build time to create proxy classes. For more information about the WSDL documents for the Sabre XML specifications. The WSDL document creates proxy classes that are then used to build client code. “WSDL Documents for Sabre XML. and the application developer wants their client to use the modifications. The following tools are recommended for consuming Sabre Web Services with WSDL: • • Apache Axis for Java clients Microsoft . “Requirements for Using Sabre Web Services. Whenever a schema or WSDL document undergoes a modification. references the appropriate XML schemas. Confidential Page 124 . they must regenerate the proxy classes. The WSDL documents define interfaces to Web services as a collection of operations with an endpoint. they must regenerate the proxy classes at build time to use the changes. the application developer must direct their development tool to the location of the WSDL document. in other words at run-time.Guide to Accessing and Consuming Services. and the schemas determine the format of the messages. and an application developer wants their client to use the modifications. please refer to the section of this document titled. These WSDL documents support the document-oriented style of SOAP binding. A WSDL document is a specific type of XML schema that defines a language for expressing Web services interfaces that XML software understands and uses.” Run-Time References to WSDL Documents The WSDL and schema documents are used at build time to generate proxy classes. v1. in turn. please refer to the section of this document titled.24 Sabre Holdings Inc. The WSDL document. The WSDL documents for Sabre Web Services are simplified Sabre XML schemas.NET Framework and Microsoft Visual Studio when developing C# and Visual Basic clients For the recommended versions of these frameworks. whether major or minor. The client code has to parse the XML. When consuming Web services with WSDL.the XML response to objects. developers can validate their XML payload documents locally. C#. application developers can develop in any language available with the framework.com/netframework Validating XML Payloads It is recommended that application developers validate their XML documents during development and testing. but real-time validation in production is not required. including the wsdl. Confidential Page 125 .When consuming Web services with WSDL. and clients consume Web services with WSDL. Sabre Web Services . and reference guide are required and available on the Apache Software Foundation’s Web site at http://ws. JAR files.NET Framework With . and . Doing so may affect the performance of clients. The URL for the WSDL documents on the Developer Resource Center can be found by searching for the name of the Web service.microsoft. the application developer must direct their development tool to the location of the WSDL document. in other words at run-time.NET tools.24 Sabre Holdings Inc. To do local validation.NET. If the client application is consuming services without WSDL.NET Framework includes all the system tools and files needed for run-time operation. application developers can develop clients with Java.NET Framework. v1. Microsoft . Apache Axis Apache Axis is an implementation of SOAP proposed by the Apache Software Foundation. The Axis binary file. such as C++.Guide to Accessing and Consuming Services. The SDK has the programs and files needed to develop clients.apache. visit the following Microsoft URL: http://msdn. For more information about WSDL and .exe and intermediate disassembler programs.org/axis/. With Axis Framework. or Visual Basic. download the latest schemas that correspond to the Web services. Application developers can use a combination of languages and operating platforms to generate proxy code from WSDLs using . Guide to Accessing and Consuming Services.24 Sabre Holdings Inc. please refer to chapter three. v1. please refer to the section of this document titled.” For a discussion about the Sabre XML specifications. “URLs of TPFC WSDL and Schema Documents. Note: It is useful to be able to identify the URL that corresponds to the correct version of WSDL and schema documents so that you can validate your XML payloads. please refer to “Versioning and File Naming Standards. Sabre Web Services . Confidential Page 126 . they can point to the URL that corresponds to the desired version of the schema.” For information about identifying and obtaining the documents.If application developers need to do run-time validation of your XML documents. For information about the naming patterns for these documents. which includes the Sabre XML schemas and WSDLs. The URLs for the WSDL and schema documents are available on the Sabre Web Services Developer Resource Center. and XML Related Tips 1. ebXML.Chapter 7 Chapter 7 Troubleshooting and System Error Handling Chapter seven provides a list of items that can be used to resolve problems. SOAP. Are the values provided with the wsse:Security node correct (Username. Does the request conform to ebXML standards with Sabre XML requirements? 4. Are all required values provided in the SOAP envelope? Did you provide the correct values for eb:Service. Confidential Page 127 . v1. Are all IPCCs sent with the eb:CPAId and Organization elements in the envelope and the PseudoCityCode attribute in the payload the same? 7. Is the XML document valid? 3. Organization. Troubleshooting Tips If application developers encounter problems.Guide to Accessing and Consuming Services. Is the eb:ConversationId value correct in all messages within the same Web Services session? 6. eb:type. Domain)? 5. If the payload is sent as an attachment. please refer to the section of this document titled.”) 2. Are the name and capitalization of the request message and action code correct? 8. they may want to review the tips listed here. do the following match? The name of the message in xlink:href in the SOAP envelope and the name of the message in the MimeHeader of the payload attachment? Sabre Web Services . as well as a description of system and other errors that are applicable to clients that consume Sabre Web Services. Password. “System Errors Generated by Clients. and eb:Action for the service you called? 9.24 Sabre Holdings Inc. Is the XML document well-formed? (For more information. Payload Related Tips 1. you can compare the Web service response with green screen. 2. Are all required values provided in the payload? If all required values are not sent in the payload. v1.24 Sabre Holdings Inc. Sabre Web Services . and you do not get the response you want. Is the namespace and syntax for the document root element in the payload correct for the service you called? 4. If using TPF Connector-based Sabre Web Services. Does the IPCC for the PseudoCityCode attribute in the payload match the IPCC provided with eb:CPAId and Organization in the SOAP envelope? 5. 2.Guide to Accessing and Consuming Services. If you are successful. you should be able to connect. Are the elements and attributes in the payload formatted according to the requirements of the service you called? Did you consult the appropriate design documents for the valid list of elements and attributes? 3. Paste this command in Sabre green screen and compare the response with the Web service response. an error is returned. Is the Version attribute present in the document root element of the payload? Is the Version attribute specifying the version of the service you want to call? Is the version in the correct format? General Tips 1. You can change your request parameters in the XML and send the request again. Confidential Page 128 . try to ping the URL for Sabre Web Services. If you are having trouble connecting. The host command used to obtain the content is returned in the response in <HostCommand>. xxx</faultcode>.” Errors generated by clients. and they are caused by clients or system-related error conditions within the infrastructure. “Application Errors.24 Sabre Holdings Inc.xxx</faultcode>). For details. HTTP Status Code 200 is returned. but not the server errors (<faultcode>soapenv:Server.Guide to Accessing and Consuming Services. “System Errors Generated by Clients. which happen in the development environment. identified by <faultcode>soapenv:Client. Most of the SOAP messages are returned with ebXML headers. “Sabre Web Services Errors.” • • When the response contains the <soap-env:fault> node. For complete information.Web Services Errors Several types of errors are possible: • Sabre Web Services errors which take place within the Sabre Web Services infrastructure. Sabre Web Services Errors Sabre Web Services errors occur within the Sabre Web Services infrastructure. Please refer to the section of this document titled. Confidential Page 129 . HTTP status code 500 is returned. They are detected and generated by the Sabre Web Services infrastructure. Clients can resolve the client-related errors. please refer to the section of this document titled. v1. although some are returned without these headers.” Business application errors which are generated by the Sabre system or other applications behind the Sabre Web Services infrastructure. which contains error and status information for the SOAP message. Sabre Web Services . If no SOAP fault exists. external to Sabre Web Services. and returned in SOAP fault format in the SOAP Fault element. please refer to the section of this document titled. interceptor.execute(Inter ceptor.InterceptorManager.sabre.InterceptorChain. An example of the SOAP envelope with a SOAP fault and an ebXML header is shown in Figure 15.sabre. Confidential Page 130 .sabre. please refer to the section of this document titled.ebxml.0" encoding="UTF-8"?> <soap-env:Envelope xmlns:soap-env="http://schemas.org/soap/envelope/ "> <soap-env:Header> <eb:MessageHeader xmlns:eb="http://www.Guide to Accessing and Consuming Services.Interceptor.java:116) Sabre Web Services .0" soap-env:mustUnderstand="1"> <eb:From> <eb:PartyId>123123</eb:PartyId> </eb:From> <eb:To> <eb:PartyId>999999</eb:PartyId> </eb:To> <eb:CPAId>TEST</eb:CPAId> <eb:ConversationId/> <eb:Service>Session</eb:Service> <eb:Action>ErrorRS</eb:Action> <eb:MessageData> <eb:MessageId>20050108-213024159TEST.applyInt erceptors(InterceptorChain.universalservices.xmlsoap.universalservices.24 Sabre Holdings Inc.ConversationIdRequired</faultcode> <faultstring>Conversation id required</faultstring> <detail> <StackTrace>com.SecurityInterceptor.base.com</eb:MessageId> <eb:Timestamp>2005-01-08T21:30:24Z</eb:Timestamp> </eb:MessageData> <eb:RefToMessageId>mid:
[email protected]/namespaces/ messageHeader" eb:version="2.gateway.base.control.base.universalservices. v1.java:85) at com.universalservices.Session.java:108) at com.interceptor.java:32) at com.sabre.execut eOnRequest(SecurityInterceptor.” <?xml version="
[email protected] s(InterceptorManager.interceptor.session.com</ eb:RefToMessageId> </eb:MessageHeader> </soap-env:Header> <soap-env:Body> <soap-env:Fault> <faultcode>soap-env:Client.USG_CONVERSATION_ID_REQUIRED at com.base.sabre.session.SessionException: errors.sabre. For a list of the errors. “Error Messages Returned to Clients.universalservices.SOAP Messages with ebXML Header Information Most Sabre Web Services errors are returned as SOAP messages with information in the ebXML header. gateway.sabre.control. “Error Messages Returned to Clients” for the possible condition that generated the error.servlet.java:919) at com.HttpServlet.WSGateway.java:191) at com.invokeServletService(N SServletRunner.universalservices.http. 2.gateway.Service(NSServletRunne r.doPost(WSGateway .iplanet.iplanet. search the envelope for <soap-env:Fault>. review <faultcode> and <faultstring> for the specific error message and description.NSServletRunner.control. 1.handleRequest(WS Gateway.java:483) </StackTrace> </detail> </soap-env:Fault> </soap-env:Body> </soap-env:Envelope> Figure 15.Guide to Accessing and Consuming Services.http. then refer to the section of this document titled.java:160) at javax.WSGateway. To find the error.server. Confidential Page 131 .universalservices.universalservices. The <soap-env:Fault> node inside <soap-env:Body> has the following child elements that provide specific details about the error. note the following: • • The <eb:MessageHeader> node inside <soap-env:Header> returns an error-related value for <eb:Action>.WSGateway.http. In the envelope. complete the following steps.java:258) at com.service(HttpServlet. • • • <faultcode> – Contains the error code <faultstring> – Contains a brief description of the error code <StackTrace> – Contains the stack trace Resolving the SOAP Faults To resolve the errors.servlet. v1. soap-env:Fault Message with ebXML Header In the preceding example.servlet.NSServletRunner.at com.process(WSGatewa y.HttpServlet.sabre.sabre.service(HttpServlet. Sabre Web Services .sabre.java:296) at com.control.gateway.gateway.servlet.http.java:760) at javax.24 Sabre Holdings Inc.onMessage(WSGate way.universalservices.java:853) at com.WSGateway.control.server. java:283) at com.eb:From>.universalservices.HttpServlet.eb:MessageHeader>.control.sabre.org/soap/envelope/"> <soap-env:Header/> <soap-env:Body> <soap-env:Fault> <faultcode>soap-env:Client.universalservices. v1.io. SOAP Messages without ebXML MessageHeader When a client sends a request that does not conform to ebXML standards.java:191) at com.http.sabre.WSGateway.init>.packaging. in <.java:853) Sabre Web Services .soap.servlet.<.(Unknown Source) at com.universalservices.3.WSGateway.java:192) at com.process(WSGateway.universalservices.<.ebxml.HeaderContainer.WSGateway.init>.universalservices.!</ faultstring> <detail> <StackTrace>javax. in <.(Unknown Source) at hk.MessageHeader.gateway.gateway.(Unkno wn Source) at hk.SOAPException: Missing <.phoenix. <?xml version="1.phoenix.java:760) at javax. email <StackTrace> and <eb:MessageId> in the SOAP envelope of the response to Technical Support.handleRequest(WSGat eway. An example of a SOAP Fault without an ebXML header is shown in Figure 16.HttpServlet.gateway.sabre.cecid. The error is caused by a client with a missing <eb:From> in the ebXML header.hku.http.WSGateway.cecid. with information about the error in the <faultcode> and <faultstring> elements.xml.cecid.hku.0" encoding="UTF-8"?> <soap-env:Envelope xmlns:soap-env="http://schemas.Guide to Accessing and Consuming Services.message.j ava:258) at com.EbXMLMessage.! at hk. The SOAP message includes the <soap-env:Fault> node.sabre. Confidential Page 132 . or when system failures occur.control.ja va:160) at javax.message.eb:MessageHeader>.service(HttpServlet.init>.servlet. a SOAP message is returned that is not in ebXML format.control.base.onMessage(WSGateway .message.hku.init>.gateway.packaging.24 Sabre Holdings Inc.InvalidEbXmlMessage</faultcode> <faultstring>Missing <.<.phoenix. If the error persists after correcting the condition.service(HttpServlet.(EbXML Message.control.sabre.packaging.<.doPost(WSGateway.EbxmlMessage.eb:From>.xmlsoap. Example: javax. = > This translates to Missing <eb:From> in <eb:MessageHeader>. 1. ! <. parse the XML document for soap-env:Fault. email <StackTrace> to Technical Support.http.Guide to Accessing and Consuming Services. An example of a SOAP envelope that is the result of a system failure or other system error condition is shown in Figure 17. If you cannot resolve the error. 2.soap.24 Sabre Holdings Inc.NSServletRunner. If the error is in your code. Confidential Page 133 .iplanet. v1. Start with this information to identify the problem. Correct your code and send your message again. Review <faultstring> for the error message. please refer to chapter two. 4.xml. To find the error. = < >.eb:From>. special characters may appear as their HTML equivalents.servlet.eb:MessageHeader>.iplanet.server. For SOAP envelope requirements. Review the <faultcode> element in the SOAP envelope for the general condition that caused the error.invokeServletService(NSSe rvletRunner. 5.Service(NSServletRunner.at com. in &alt. identify and include all required ebXML with the envelope.NSServletRunner.java:919) at com. Sabre Web Services .http. Client soap-env:Fault Message without eb:MessageHeader Resolving Client-Related SOAP Faults If you receive a <soap-env:Fault> with a <faultcode> that begins with soapenv:Client.j ava:483) </StackTrace> </detail> </soap-env:Fault> </soap-env:Body> </soap-env:Envelope> Figure 16.servlet. complete the following steps.SOAPException: Missing &alt. Note: When reviewing the error message.server. 3. sabre.doPost(WSGateway.HttpServlet.WSGateway.java:289) at com. v1.WSGateway.Service(NSServletRunner. Confidential Page 134 .java:919) at com.iplanet.gateway.24 Sabre Holdings Inc.gateway.universalservices.sabre.ThrottleException: errors.http.Guide to Accessing and Consuming Services.servlet.java:853) at com. Be sure it includes eb:MessageId.sabre.service(HttpServlet.org/soap/envelope/"> <soap-env:Header/> <soap-env:Body> <soap-env:Fault> <faultcode>soap-env:Server.http.http.java:760) at javax. Then you can either try to send your message later or contact Technical Support.servlet. If you contact Technical Support.WSGateway.NSServletRunner.</ faultstring> <detail> <StackTrace>com.servlet.HttpServlet.ja va:160) at javax. email the SOAP message you received.<?xml version="1.general.process(WSGateway.SystemFailure in the <faultcode> node.server.service(HttpServlet.control.universalservices.sabre.NSServletRunner.http.onMessage(WSGateway .USG_SERVICE_IS_BUSY at com.sabre.WSGateway.control. To find these types of errors.gateway.server.gateway.control.invokeServletService(NSServl etRunner.universalservices.universalservices. Sabre Web Services .j ava:258) at com.iplanet.0" encoding="UTF-8"?> <soap-env:Envelope xmlns:soap-env="http://schemas.servlet.universalservices.control.control. you can parse the XML document for <soap-env:Fault>.gateway.handleRequest(WSGat eway.SystemFailure</faultcode> <faultstring>System is currently overloaded.java :483) </StackTrace> </detail> </soap-env:Fault> </soap-env:Body> </soap-env:Envelope> Figure 17. Please try again later.xmlsoap. You cannot correct this error.java:191) at com. Server soap-env:Fault Message without eb:MessageHeader Resolving Server-Based SOAP Faults If you receive a <soap-env:Fault> with soap-env:Server. it is because the system is either busy or overloaded. AuthorizationFailed Authorization failed You sent a message without a security token.Guide to Accessing and Consuming Services.ConversationIdRequir ed soapenv:Client. The only message that can be sent without the security token is SessionCreateRQ. Please use SessionCreateRQ Possible reasons are the following: • You sent a message that cannot be authenticated. Confidential Page 135 .24 Sabre Holdings Inc.ActionNodeNotFound soapenv:Client.CpaidNodeNotFound soap-env:Client. The only message that Sabre Web Services can authenticate is SessionCreateRQ. A valid request has been sent without a conversation ID. • soapenv:Client. The eb:CPAId element is not present in the SOAP envelope. The value provided with the eb:Action is not valid for Sabre Web Services.InvalidAction Conversation id required Missing CPAId in EbxmlMessage Action specified in EbxmlMessage does not exist Sabre Web Services . soapenv:Client. The user name sent is not permitted to use the IPCC provided. Any one of the following could have occurred: • • • The user name specified does not exist or is disabled.Error Messages Returned to Clients Table 6: Troubleshooting Fault Codes in SOAP Envelopes Value of <faultcode> soapenv:Client. v1. The password does not match the user name specified.AuthenticationNotAll owed Authentication is not allowed for this service. soapenv:Client. The security credentials associated with the security token do not have access rights to the service called in eb:Action.AuthenticationFailed Value of <faultstring> Missing Action in EbxmlMessage Authentication failed Possible Reasons for the Error The eb:Action element is not present in the SOAP l Authentication fails based on login information in <wsse:Security>. The wsse:BinarySecurityToken value is invalid or expired.InvalidEbXmlMessage soapenv:Client. soapenv:Client. The <wsse:Password> node is not found in the header during the authentication process. A Web Services connection must be opened again. An expired Web Services connection or time-out could be the reason for this error.InvalidSecurityToken soapenv:Client. wsse:Password node not found soap-env:Client. Confidential Page 136 . The manifest in the SOAP envelope and payload attachment do not match.Table 6: Troubleshooting Fault Codes in SOAP Envelopes Value of <faultcode> soapenv:Client. The PseudoCityCode node was not present in wsse:UsernameToken of the SOAP l Invalid or Expired binary security token Manifest and Payload are not consistent Password change required.imacomp any.Guide to Accessing and Consuming Services. soapenv:Client.PasswordNodeNotFound The ebXML message is formatted incorrectly.24 Sabre Holdings Inc.InvalidConversationI dFormat ConversationId format does not comply with OTA standards (example: 20011017161501777@B2Bserver. The conversation ID in the header is not valid and does not exist. v1.ManifestAndPayloadIn consistent soapenv:Client.PCCNodeNotFound PseudoCityCode node not found in wsse:UsernameToken Sabre Web Services .InvalidBinaryToken Value of <faultstring> BinaryToken/Sessionid specified in payload does not exist Invalid conversation id Possible Reasons for the Error An invalid or expired security token was provided.InvalidConversationI d soapenv:Client.PasswordChangeRequir ed soapenv:Client. The password has expired and must be changed.com) Invalid EbxmlMessage The value for eb:ConversationId sent in the SOAP envelope is not formatted as required. v1.UserNameNodeNotFound soapenv:Client. Sabre Web Services search for login information in the <wsse:Security> node to authenticate the request.ToPartyIdNodeNotFoun d soap-env:Client.SessionNotFound Missing Service in EbxmlMessage Session not found The eb:Service element is not present in the SOAP l An invalid or expired security token was provided. The <wsse:Username> node is not found in the header during the authentication process. The IPCC does not have authorization. The <wsse:UsernameToken> node is not found in the header of the SOAP envelope during the authentication process. This usually means that you have sent too many SessionCreateRQ messages and too few SessionCloseRQ messages. soapenv:Client.24 Sabre Holdings Inc. Sabre sessions or TAs are released when the SessionCloseRQ Service is sent or the period of inactivity exceeds the system time-out value. The eb:To and eb:PartyId elements are not present in the SOAP envelope.RequestFormatNotSupp orted soapenv:Client. wsse:Security node not found soapenv:Client.SecurityNodeNotFound Request is not a SOAPMessage The request was not formatted as a SOAP message.Table 6: Troubleshooting Fault Codes in SOAP Envelopes Value of <faultcode> soap-env:Client. If eb:ConversationId is not provided in the header of the SOAP envelope.UserNodeNotFound wsse:UsernameToken node not found Sabre Web Services .ReachedTALimit Value of <faultstring> You have reached the limit of Host TAs allocated to you Possible Reasons for the Error You have used all Sabre sessions or TAs allocated to your organization.ServiceNodeNotFound soap-env:Client.UnauthorizedPCC Missing ToPartyId in EbxmlMessage Unauthorized PseudoCityCode in OTA Message wsse:Username node not found soapenv:Client. The Web Services infrastructure does not find <wsse:Security> in the request. Confidential Page 137 .Guide to Accessing and Consuming Services. soapenv:Client. 10. They are detected and generated by the business applications themselves. “Errors Related to Web Service Versions.Guide to Accessing and Consuming Services.w3.org/2001/XMLSchema" xmlns:xsi="http://www. If the message was successful. such as the Sabre system.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\projects\webservices\wsdl\lowlevel\OTA_Air AvailLLSRQ\OTA_AirAvailLLSRS.0" encoding="UTF-8"?> <OTA_AirAvailRS xmlns="http://webservices.com/sabreXML/2003/07" xmlns:xs="http://www. <?xml version="1.” Examples of an Errors node is shown in Figure 18 and a Success nodes is shown in Figure 19. the <Success> node is returned in the message payload.w3.com/sabreXML/2003/07" xmlns:xsi="http://www. and are returned in the Errors node of the response payload in ErrorRS format. Confidential Page 138 .Application Errors Application errors are caused either by clients or the business applications.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> <Errors> <Error ErrorCode="String" Severity="String" ErrorMessage="String"> <ErrorInfo> <Message>String</Message> </ErrorInfo> </Error> </Errors> </OTA_AirAvailRS> Figure 18.org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2003-10-02T12:35:16" Target="Production" Version="2003A.0" encoding="UTF-8"?> <OTA_AirAvailRS xmlns:="http://webservices.sabre.10.TsabreXML1. v1.TsabreXML1. Errors related to TPF Connector-based Sabre Web Services versions are explained in the section of this document titled.sabre.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> <Success/> <Warnings ShortText="FOR MORE AVAILABILITY SEE BUR LAX LGB ONT SNA"/> <OriginDestinationOptions> <OriginDestinationOption> <TPA_Extensions> <OriginCityTimeZoneCode Code="PDT"/> <DestinationCityTimeZoneCode Code="EDT"/> <TimeZoneDifference Code="_3"/> </TPA_Extensions> <FlightSegment DepartureDateTime="2003-10-02T11:00:00-06:00" ArrivalDateTime="2005-10-02T19:13:00-06:00" StopQuantity="0" RPH="1" FlightNumber="9004"> <DepartureAirport LocationCode="LAX" CodeContext="IATA"/> <ArrivalAirport LocationCode="JFK" CodeContext="IATA"/> <OperatingAirline Code="UA" FlightNumber="9004"/> <Equipment AirEquipType="763"/> <MarketingAirline Code="NZ"/> <MarketingCabin> Sabre Web Services . that are behind the Sabre Web Services infrastructure.xsd" EchoToken="String" TimeStamp="String" Target="Production" Version="2003A. Errors Node in a Response Payload <?xml version="1.24 Sabre Holdings Inc.w3. .24 Sabre Holdings Inc. <BookingClassAvail ResBookDesigCode="T" Availability="7" RPH="12"/> <TPA_Extensions> <ParticipationLevelCode Code="DC"/> </TPA_Extensions> </FlightSegment> </OriginDestinationOption> <OriginDestinationOption> <TPA_Extensions> <OriginCityTimeZoneCode Code="PDT"/> <DestinationCityTimeZoneCode Code="EDT"/> <TimeZoneDifference Code="_3"/> </TPA_Extensions> <FlightSegment DepartureDateTime="2003-10-02T11:00:00-06:00" ArrivalDateTime="2005-10-02T19:13:00-06:00" StopQuantity="0" RPH="2" FlightNumber="904" OnTimeRate="8" Ticket="E"> <DepartureAirport LocationCode="LAX" CodeContext="IATA"/> <ArrivalAirport LocationCode="JFK" CodeContext="IATA"/> <OperatingAirline Code="UA" FlightNumber="904"/> <Equipment AirEquipType="763"/> <MarketingAirline Code="UA"/> <MarketingCabin> <Meal MealCode="L"/> </MarketingCabin> <BookingClassAvail ResBookDesigCode="P" Availability="5" RPH="1"/> <BookingClassAvail ResBookDesigCode="C" Availability="4" RPH="2"/> <BookingClassAvail ResBookDesigCode="Y" Availability="9" RPH="3"/> . <BookingClassAvail ResBookDesigCode="Z" Availability="4" RPH="17"/> <TPA_Extensions> <ParticipationLevelCode Code="DCA"/> </TPA_Extensions> </FlightSegment> </OriginDestinationOption> <OriginDestinationOption> <TPA_Extensions> <OriginCityTimeZoneCode Code="PDT"/> <DestinationCityTimeZoneCode Code="EDT"/> <TimeZoneDifference Code="_3"/> </TPA_Extensions> Sabre Web Services . v1. .Guide to Accessing and Consuming Services. Confidential Page 139 . .<Meal MealCode="L"/> </MarketingCabin> <BookingClassAvail ResBookDesigCode="F" Availability="2" RPH="1"/> <BookingClassAvail ResBookDesigCode="C" Availability="4" RPH="2"/> <BookingClassAvail ResBookDesigCode="D" Availability="4" RPH="3"/> . . .<FlightSegment DepartureDateTime="2003-10-02T12:15:00-06:00" ArrivalDateTime="2005-10-02T20:28:00-06:00" StopQuantity="0" RPH="3" FlightNumber="3233"> <DepartureAirport LocationCode="LAX" CodeContext="IATA"/> <ArrivalAirport LocationCode="JFK" CodeContext="IATA"/> <OperatingAirline Code="AA" FlightNumber="3233"/> <Equipment AirEquipType="762"/> <MarketingAirline Code="QF"/> <MarketingCabin> <Meal MealCode="L"/> </MarketingCabin> <BookingClassAvail ResBookDesigCode="F" Availability="9" RPH="1"/> <BookingClassAvail ResBookDesigCode="A" Availability="9" RPH="2"/> <BookingClassAvail ResBookDesigCode="J" Availability="9" RPH="3"/> . v1.24 Sabre Holdings Inc. . . . <BookingClassAvail ResBookDesigCode="N" Availability="9" RPH="15"/> <TPA_Extensions> <ParticipationLevelCode Code="DCA"/> </TPA_Extensions> </FlightSegment> </OriginDestinationOption> . . .Guide to Accessing and Consuming Services. <OriginDestinationOption> <TPA_Extensions> <OriginCityTimeZoneCode Code="PDT"/> <DestinationCityTimeZoneCode Code="EDT"/> <TimeZoneDifference Code="_3"/> </TPA_Extensions> <FlightSegment DepartureDateTime="2003-10-02T15:00:00-06:00" ArrivalDateTime="2005-10-02T23:11:00-06:00" StopQuantity="0" RPH="12" FlightNumber="22" OnTimeRate="7" Ticket="E"> <DepartureAirport LocationCode="LAX" CodeContext="IATA"/> <ArrivalAirport LocationCode="JFK" CodeContext="IATA"/> <OperatingAirline Code="AA" FlightNumber="22"/> <Equipment AirEquipType="762"/> <MarketingAirline Code="AA"/> <MarketingCabin> <Meal MealCode="D"/> </MarketingCabin> <BookingClassAvail ResBookDesigCode="P" Availability="1" RPH="1"/> <BookingClassAvail ResBookDesigCode="A" Availability="0" RPH="2"/> <BookingClassAvail ResBookDesigCode="C" Availability="0" RPH="3"/> . <BookingClassAvail ResBookDesigCode="O" Availability="7" RPH="19"/> <TPA_Extensions> <ParticipationLevelCode Code="DCA"/> </TPA_Extensions> </FlightSegment> </OriginDestinationOption> </OriginDestinationOptions> <TPA_Extensions> <SabreCommand>†††A†APPLID01†122APRDFWLAX</SabreCommand> Sabre Web Services . Confidential Page 140 . these external errors are detected in the client’s environment and returned to the client. the requested version number is returned with the document root element in the response payload. Success Node in a Response Payload Errors Related to Web Service Versions Request payloads must include the Version attribute and valid versions of the Web services being consumed. v1. If this requirement is not accurately fulfilled. whether using pure Java or the Apache Axis. in the correct format.INVALID_VERSION Cause Returned if the payload sends an invalid version for the Web service Corrective Action Send a valid version for the Web service in the correct format errors. error messages are returned in the <Errors><Error> nodes. These are as follows: Error errors. the SOAP API libraries from Sun Microsystems reject the file and return an error with a response.MISSING_VERSION Returned if a version is not present Include the following in the document root element of the payload: • • The Version attribute A valid version number in the correct format System Errors Generated by Clients When a client has created an error condition in the development environment.24 Sabre Holdings Inc. Sabre Web Services does not handle these types of errors because they are external. If the request is successfully processed. If your client is Java-based. Confidential Page 141 .</TPA_Extensions> </OTA_AirAvailRS> Figure 19. Other types of client-generated or client-detected errors that occur are reported to the client as exceptions. Sabre Web Services .Guide to Accessing and Consuming Services. in the Java environment.com/websvc connects to the Production system and environment https://sws-res.com points to the Certification test Sabre host and associated systems and is used for customer acceptance testing • https://sws-sts. for example.sabre.Guide to Accessing and Consuming Services. “Environments for Using Sabre Web Services. Apache Axis and .Exception Errors Returned within Client Programs If Sabre Web Services cannot handle an error condition. The error depends on the environment or platform of the client.com connects to the Production system and environment. The correct URLs are as follows. please refer to the section of this document titled.cert. eb:MessageId in the response The date and time your client sent the message The error returned to your client program Sabre Web Services .sabre. the client receives the error in the form of an Exception. v1. • • https://webservices. and if available. Troubleshooting Exceptions If you cannot resolve the error and you conclude that the exception is because of Sabre Web Services throwing ServletException.” • • You are not using an SSL connection. the error may be a ServletException.sabre. the reasons could include some of the following: • The URL for consuming Sabre Web Services is incorrect. You are not handling Sabre Web Services connections correctly.24 Sabre Holdings Inc.cert.com points to the TSTS Sabre host and associated systems for client development For more information about these environments. Confidential Page 142 . but it is the customer acceptance testing environment • https://sws-crt. If your client receives an Exception when calling one of the Sabre Web Services.NET Framework also return exceptions.cert.sabre. provide Technical Support with the following information: • • • • The actual message that your client sent to Sabre Web Services in XML format The eb:MessageId in the request. Confidential Page 143 .Debug Logging It is recommended that you capture the following information that is returned with the SOAP envelope of the response in your debug log files: • • <faultcode>/<faultstring> <eb:MessageId> Providing the message ID along with <StackTrace> is helpful if you need to contact Technical Support. v1.Guide to Accessing and Consuming Services. Sabre Web Services .24 Sabre Holdings Inc. Appendices Sabre Web Services . Confidential Page 144 .Guide to Accessing and Consuming Services. v1.24 Sabre Holdings Inc. Syntax <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="2.Guide to Accessing and Consuming Services. and attributes of special significance. elements. The data elements in this Appendix are arranged in the sequence in which they occur in the SOAP envelopes and payloads in a typical conversational style connection: 1.0 Sabre Web Services . Travel-related Sabre Web Services 3. format them as shown in Examples 1–13 in chapter two. Confidential Page 145 .24 Sabre Holdings Inc.Appendix A SOAP Message Tag Reference and Guide to Use This reference includes only nodes.0"> Attribute Values: • • SOAP-ENV:mustUnderstand = 1 eb:version = 2. If any data elements in the SOAP message examples are not included here. You must also obtain additional service-specific requirements by consulting the documentation for every Web service you want to use. v1. SessionCloseRQ/RS SOAP Envelopes eb:MessageHeader Required in SOAP envelope headers of all requests and responses. SessionCreateRQ/RS 2. Guide to Accessing and Consuming Services. If unique per connection and the associated session. The client generates this globally unique value in the following format: • • • A conversation ID number The @ symbol The URL of the sending party In all SOAP messages that use a specific Sabre Web Services connection. Best practices dictate that the value be unique for every connection. Together with the security token.com<eb:ConversationId/> 255 characters Use in Requests This is used to identify the messages that use a specific connection and its associated session. which is also returned in the SOAP envelope of the SessionCreateRS response. and to refresh a connection in a connection pool with SessionValidateRQ.eb:ConversationId Required in SOAP envelope headers of all requests. This value must be paired with the security token that is returned in the SessionCreateRS response. if a connection pool is implemented.24 Sabre Holdings Inc. Use in Responses The SessionCreateRS message returns the value for eb:ConversationId sent in the corresponding SessionCreateRQ message. it is required to include the same value for eb:ConversationId that was used to open the connection in the SessionCreateRQ request. Syntax Max. Sabre Web Services . v1. it can be used to troubleshoot sessions by looking for all messages with a specific value for eb:ConversationId. Confidential Page 146 . Length: <eb:ConversationId>ABC123@clientURL. the conversation ID is also used in the SessionCloseRQ Service request to close a connection to Sabre Web Services. but it must be included. Max. v1.org:IO5:01">webservices. which is webservices. The value of <eb:PartyId> is the URL of the sending party. Length: eb:PartyId = 255 characters. Length: eb:PartyId = 255 characters.Guide to Accessing and Consuming Services.com</eb:PartyId> </eb:To> Use in Requests <eb:To> contains routing information for the messages. The value of <eb:PartyId> is the URL for connecting to Sabre Web Services. Confidential Page 147 .org:IO5:01">clientURL</eb:PartyId> </eb:From> Use in Requests <eb:From> contains routing information for the messages. eb:type = 255 characters Syntax in Requests <eb:From> <eb:PartyId eb:type="urn:x12. The URL provided with <eb:PartyId> does not include a suffix such as / websvc.sabre. eb:type = 255 characters Syntax in Requests <eb:To> <eb:PartyId eb:type="urn:x12. This can be the URL of the subscribing organization or the client. Max. eb:To Required in SOAP envelope headers of all requests.eb:From Required in SOAP envelope headers of all requests.24 Sabre Holdings Inc. Syntax in Responses <eb:From> <eb:PartyId>webservices. Sabre Web Services . Sabre Web Services does not presently use this value.com.com</eb:PartyId> </eb:From> Use in Responses The URL for Sabre Web Services is returned.sabre.sabre. Use in Responses The value that was present in the corresponding request is returned in the response. This value and the value for the Organization element (in the wsse:Security node) in the SessionCreateRQ request are the same in all messages that use a specific connection. this value must be the same value sent with Organization in the SessionCreateRQ message that created the connection. Confidential Page 148 . v1.Syntax in Responses <eb:To> <eb:PartyId>clientURL</eb:PartyId> </eb:To> Use in Responses The URL of the sending party that was included in eb:From@eb:PartyId is returned. eb:CPAId and Organization In all payloads.24 Sabre Holdings Inc. Length: Syntax 20 characters <eb:CPAId>IPCC</eb:CPAId> Use in Requests This identifies the POS location which is participating in the connection.Guide to Accessing and Consuming Services. Sabre Web Services . Sabre Web Services cannot authenticate the request. eb:CPAId Required in SOAP envelope headers of all requests. Max. the following values must be the same: • • In all SOAP envelopes. In a specific transaction. the IPCC in the PseudoCityCode attribute in the POS node When a connection is reused. If any of these values differ. The client includes the valid action code in the request for every service it consumes. eb:Action Required in SOAP envelope headers of all requests and responses. Length: eb:Service = 128 characters. Max. consult the applicable service description document and developer notes. consult the applicable service description document and developer notes. Max. For a discussion about action codes. Syntax Examples <eb:Service eb:type="sabreXML">Session</eb:Service> <eb:Service eb:type="sabreXML">Air</eb:Service> Use in Requests The values are specific to a Web service.eb:Service and eb:type Required in SOAP envelope headers of all requests. v1. “Basis for Payload Content” and “Using Action Codes. Every one of the request and response messages for all Sabre Web Services has a unique action code that identifies the payload. eb:type = 255 characters. Length: 48 characters Syntax Examples <eb:Action>actioncodeoftherequestorresponse</eb:Action> <eb:Action>SessionCreateRQ</eb:Action> <eb:Action>SessionCreateRS</eb:Action> <eb:Action>OTA_AirAvailLLSRQ</eb:Action> <eb:Action>OTA_AirAvailLLSRS</eb:Action> Description and Use in Requests This identifies the action that acts on the service. This value often identifies the service that acts on the message. For the values. Confidential Page 149 . please refer to the sections titled.” Description and Use in Responses The eb:Action element returns the action code of the response message.Guide to Accessing and Consuming Services. For the values. Sabre Web Services .24 Sabre Holdings Inc. eb:MessageId Required in SOAP envelope headers of all requests and responses. Each request and response SOAP message must have a unique value for the message ID within a specific Web services connection.24 Sabre Holdings Inc. Max. It is strongly recommended that the message ID conform to the following format: • • • • The prefix mid: A unique message identification number – This can be a generated timestamp or a random number. and assists Technical Support with problem resolution. Sabre Web Services . v1. The client generates and includes this value in each request.Guide to Accessing and Consuming Services. In your log files. The message ID of the response and <StackTrace> is helpful if you need to contact Technical Support. it is recommended that you include <eb:MessageId> along with the <faultcode>/<faultstring> returned in any response messages where faultcode is present. Description and Use in Responses Sabre Web Services return a unique value for eb:MessageId and a timestamp. The combination of the message ID with the conversation ID uniquely identifies a message. Length: Syntax 255 characters <eb:MessageId>mid:20031209-133003-2333@clientURL</eb:MessageId> Description and Use in Requests This is a globally unique identifier for each message. The @ symbol The URL of the sending party – This can be the URL of a subscriber or client that is requesting the Web service. Confidential Page 150 . and is optional. This an optional ebXML element.eb:Timestamp Required in SOAP envelope headers of all requests and responses. v1. or UTC. Length: Syntax 30 characters <eb:Timestamp>2003-12-09T11:15:12Z</eb:Timestamp> Description and Use in Requests The client generates this value. and is optional. The eb:Timeout and eb:TimeToLive tags are mutually exclusive.Guide to Accessing and Consuming Services. If a value is included.24 Sabre Holdings Inc. The Z represents coordinated universal time. Max. The client generates this value. The following format is required: yyyy-mm-ddThh:mm:ssZ The Z represents coordinated universal time. Sabre Web Services . the following format is required: yyyy-mm-ddThh:mm:ssZ. Confidential Page 151 . Length: Syntax 25 characters <eb:TimeToLive>2001-02-15T11:15:12Z</eb:TimeToLive> Description and Use in Requests This is the time in which to deliver a message. or UTC. Max. eb:TimeToLive This is not supported. therefore. You can include it in the SOAP envelope for any of the Sabre Web Services. Max.sabre. Element is optional in SOAP headers of Web service requests.com</eb:MessageId> <eb:Timestamp>2001-02-15T11:25:12Z</eb:Timestamp> <RefToMessageId>mid:20001209-133003-2333@clientURL</RefToMessageId> 255 characters Description and Use in Responses Sabre Web Services return a reference to the message ID of the corresponding request in the ReftoMessageId element. only the TPF Connector and the orchestration engine have implemented this capability for TPF Connector-based Sabre Web Services. Length: Syntax <eb:MessageId>mid:20030707-12545-1369@webservices. it is ignored and the default is used. If the value passed is greater than the default on the Web service. Length: Syntax: 6 characters <eb:Timeout>45</eb:Timeout> Description and Use in Requests The value is in seconds. Sabre Web Services . the value must be less than the system default value for the service. Confidential Page 152 . but currently. v1. The time-out element is mutually exclusive with eb:TimeToLive.eb:Timeout This value is read by TPF Connector-based Sabre Web Services. It cannot be used to increase the time-out value.Guide to Accessing and Consuming Services. Max. The value in eb:Timeout is used to reduce the time-out from the default value set on a Web service.24 Sabre Holdings Inc. RefToMessageId Element is returned in SOAP envelope headers of all responses. • Sabre Web Services . and UsernameToken groups the security credentials together. depending on the message.Guide to Accessing and Consuming Services. It may be your IPCC.xmlsoap. Length: <wsse:Username> = 20 characters <wsse:Password> = 30 characters <Organization> = 20 characters <Domain> = 20 characters <wsse:BinarySecurityToken> = 200 characters Syntax in SessionCreateRQ message <wsse:Security xmlns:wsse="http://schemas.24 Sabre Holdings Inc. All possibilities appear below. the value is DEFAULT. <wsse:Password> – The value is your password for accessing Sabre Web Services. v1. Child elements vary.org/ws/2002/12/secext" xmlns:wsu="http://schemas. or other value. The security credential consist of the following elements: • • • <wsse:Username> – The value is your user name for accessing Sabre Web Services. PCC.xmlsoap. Sending security credentials with the SessionCreateRQ message is required. but it could be the multihost partition code or another value.org/ws/2002/12/utility"> <wsse:UsernameToken> <wsse:Username>USERNAME</wsse:Username> <wsse:Password>PASSWORD</wsse:Password> <Organization>IPCC</Organization> <Domain>DEFAULT</Domain> </wsse:UsernameToken> </wsse:Security> Description and Use in SessionCreateRQ The child elements of wsse:UsernameToken are present only in the SessionCreateRQ message. Confidential Page 153 . Max. <Domain> – For most subscribers of Sabre Web Services.wsse:Security Node is required in SOAP envelope headers of all requests and responses. The wsse:UsernameToken element is nested inside the <wsse:Security> node. <Organization> – The value is your Internet Pseudo City Code (IPCC) or another value that you have been given when you are set up to use Sabre Web Services. When it uses the connection that corresponds to this security token. Clients must parse and store the entire <wsse:Security> node in SessionCreateRS and send it in the SOAP envelopes of all requests in workflows that use a particular Sabre Web Services connection. Note: Values for the following elements and attributes must be the same for all messages that use a specific Sabre Web Services connection.” Syntax in SessionCreateRS Message <wsse:Security xmlns:wsse="http://schemas.org/ws/2002/12/ utility" wsu:Id="SabreSecurityToken" valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\. Sabre Web Services cannot authenticate the request. the IPCC in POS@Source@PseudoCityCode In all SOAP envelopes. it sends the complete wsse:Security node with wsse:BinarySecurityToken child node in all SOAP messages that use the connection. Sabre Web Services . SessionCreateRS. “Security. and to allocate a Sabre session. eb:CPAId In the SOAP envelope of SessionCreateRQ. Sabre Web Services return the <wsse:BinarySecurityToken> in the <wsse:Security> node in the SOAP envelope of the first response message. If they differ.created Sabre Web Services connection. Sabre Web Services use security credentials to authenticate and authorize a request. The client parses and stores this node. please see the section of this document titled.Guide to Accessing and Consuming Services. • • • In all payloads.24 Sabre Holdings Inc.0. This message is the first response in a newly. the Organization element For a discussion about the layers of security that Sabre Web Services use.Domain and Organization are Sabre XML elements that are used for authentication and authorization.IDL/Common/ !ICESMS\/RESC!ICESMSLB\/RES. Confidential Page 154 . Together with the client-generated value for eb:ConversationId.org/ws/2002/12/secext"> <wsse:BinarySecurityToken xmlns:wsu="http://schemas. v1.xmlsoap.LB!-4954987477210575357!252506!0</ wsse:BinarySecurityToken> </wsse:Security> Description and Use in SessionCreateRS If a client is successfully authenticated and authorized.xmlsoap. to create a Sabre Web Services connection. Syntax in SessionCloseRQ/RS Messages <wsse:Security xmlns:wsse="http://schemas.IDL/Common/ !ICESMS\/RESC!ICESMSLB\/RES. A client retrieves a connection from the connection pool when it sends travel workflows. See wsse:Security.0.org/ws/2002/12/ utility" wsu:Id="SabreSecurityToken" valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.LB!-4954987477210575357!252506!0</ wsse:BinarySecurityToken> </wsse:Security> Description and Use in Travel-Related Messages Do not send security credentials with any message except SessionCreateRQ.IDL/Common/ !ICESMS\/RESC!ICESMSLB\/RES.xmlsoap. The wsse:Security node has the wsse:BinarySecurityToken element that identifies the Sabre Web Services connection. wsse:UsernameToken Included in the SessionCreateRQ message only. v1.Syntax in Travel-Related Request and Response Messages <wsse:Security xmlns:wsse="http://schemas. Confidential Page 155 .xmlsoap.xmlsoap.Guide to Accessing and Consuming Services.org/ws/2002/12/ utility" wsu:Id="SabreSecurityToken" valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.LB!-4954987477210575357!252506!0</ wsse:BinarySecurityToken> </wsse:Security> Description and Use in SessionCloseRQ/RS Substitution of the entire <wsse:Security> node that is extracted from the SessionCreateRS envelope of the connection you want to close is required in SessionCloseRQ request. Sabre Web Services . This node is also returned in the response messages. It includes the entire <wsse:Security> node that was returned in the SessionCreateRS message and sends it in the SOAP envelopes of all requests that use the same Web services connection.xmlsoap.org/ws/2002/12/secext"> <wsse:BinarySecurityToken xmlns:wsu="http://schemas.0.24 Sabre Holdings Inc.org/ws/2002/12/secext"> <wsse:BinarySecurityToken xmlns:wsu="http://schemas. Sabre Web Services use the security token in SessionCloseRQ together with the conversation ID to close the referenced connection. v1. eb:Manifest Required in SOAP envelope headers of all requests and responses that conform to the SOAP with Attachments model. Max. wsse:Password Included in the SessionCreateRQ message only.wsse:Username Included in the SessionCreateRQ message only.24 Sabre Holdings Inc. see wsse:Security. Confidential Page 156 . See wsse:Security. Domain Included in the SessionCreateRQ message only. Length: 200 characters For more information. See wsse:Security. Organization Included in the SessionCreateRQ message only. See wsse:Security.org/1999/xlink" xlink:href="cid:OTA_AirAvailRQ" xlink:type="simple"/> Sabre Web Services . eb:Manifest and eb:Reference are replaced by the message payload when the payload is not sent as an attachment. wsse:BinarySecurityToken Initially returned in wsse:Security of the SessionCreateRS message.Guide to Accessing and Consuming Services.w3. See wsse:Security. The client must include it in all subsequent request and response messages that use the Sabre Web Services connection. Syntax <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2.0"> <eb:Reference xmlns:xlink="http://www. see Example 13. eb:Reference Required in SOAP envelope headers of all requests and responses that conform to the SOAP with Attachments model. Send values for SOAP-ENV:mustUnderstand and eb:version as shown. see eb:Reference.24 Sabre Holdings Inc. Sabre Web Services . This conforms to the ebXML specification. The payload replaces eb:Manifest and eb:Reference. For an example of a SOAP message with the payload inside the SOAP envelope. including the Web service version number and Pseudo City Code. v1. it is incorporated into the body of the SOAP envelope. For more information.</eb:Manifest> Platforms That Do Not Use WSDL It is preferable for Java clients that do not consume Web services with WSDL to send the payload as an attachment. The xlink:type attribute requires the value simple.0"> <eb:Reference xmlns:xlink="http://www. attributes.Guide to Accessing and Consuming Services. eb:Manifest and eb:Reference are not present in the SOAP envelope when the message payload is not sent as an attachment. Syntax in the Request <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="2. The payload must send the required elements. Confidential Page 157 . Platforms That Use WSDL Clients that consume Web services with WSDL must include the payload inside the SOAP envelope. When the payload is not sent as an attachment.w3.org/1999/xlink" xlink:href="cid:OTA_AirAvailRQ" xlink:type="simple"/> </eb:Manifest> Syntax in the Response <eb:Reference eb:id=”SessionCreateRS” xlink:type="simple" xlink:href="cid:OTA_AirAvailRS" <eb:Description xml:lang=”en-US”>Response Message</eb:Description>"/> </eb:Reference> Description and Use in Requests The <eb:Reference> element uses XLink standards that link the envelope and payload attachment. and values for the Web service. The values for the following must be the same in the SOAP messages for a specific Web service: • • • In the SOAP envelope. it returns errors in various ways in the SOAP envelopes. . For the values. and is discussed below. preceded with cid: The value is service-specific.sabre.Guide to Accessing and Consuming Services. Confidential Page 158 . v1.universalservices. "Troubleshooting and System Error Handling.24 Sabre Holdings Inc.ConversationIdRequired</faultcode> <faultstring>Conversation id required</faultstring> <detail> <StackTrace>com. For complete information.session.SessionException: errors. the document root element soap-env:Fault node When the Sabre Web Services infrastructure encounters error conditions. Sabre Web Services .base. consult the applicable service description document and developer notes. . please refer to chapter seven. the content ID for xlink:href in eb:Reference The content ID in the MIME Header of the SOAP attachment In the payload.The xlink:href attribute is a reference to the attached message payload.USG_CONVERSATION_ID_REQUIRED . The required value is the attached payload object.session." Syntax <soap-env:Body> <soap-env:Fault> <faultcode>soap-env:Client. v1. The payload replaces the eb:Manifest and eb:Reference elements. whether attached or included. Sabre Web Services . The SOAP message format for Sabre Web Services supports a single payload. Platforms That Do Not Use WSDL It is preferable for Java clients that do not consume Web services with WSDL to send the payload as an attachment. For information. using tools such as . it is incorporated into the body of the SOAP envelope. consult the service documents for the Web services you are using. must include the payload inside the SOAP envelope.24 Sabre Holdings Inc. the document root element Platforms that Use WSDL Clients that consume Web services with WSDL.Guide to Accessing and Consuming Services. It must include requirements for the payload. The payload must include the required elements. and values for the Web service.NET Framework or Axis.Payload Messages The payload is either sent as a second MIME part or included inside the SOAP body. Confidential Page 159 . attributes. When the payload is not sent as an attachment. The values for the following must be the same in the SOAP messages for a specific Web service: • • • In the SOAP envelope. the content ID for xlink:href in eb:Reference The content ID in the MIME Header of the SOAP attachment In the payload. including a valid Web service version number and Pseudo City Code. see the following descriptions.opentravel.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> Use The document root value is service-specific.w3. The request ends with RQ and the response ends with RS. The values for the following must be the same in the SOAP messages of a particular Web service: • • • In the SOAP envelope. Confidential Page 160 . and it is important to provide correctly formatted values. For the values. it usually begins with OTA_.com/sabreXML/2003/07" xmlns:xs="http:/ /www.TsabreXML1. The root elements in the request payloads of the session messages do not have attributes.Document Root Element Element is required in all payload messages. If the message is based on a specification from OpenTravel. the document root element The attributes vary by message type.10. Syntax in the SessionCreateRS Service <SessionCreateRS xmlns=”http://www.org/OTA/2002/11” version="1" status="Approved" /> Syntax in an Open Systems or TPFC Services <OTA_AirAvailRQ xmlns="http://webservices.org/2001/XMLSchema" xmlns:xsi="http://www.w3. For more information about the attributes and their applicability.org/2001/XMLSchemainstance" EchoToken="String" TimeStamp="2001-12-17T09:30:47-05:00" Target="Production" Version="2003A.0” encoding=”UTF-8” ?> Syntax in the SessionCloseRS Service <SessionCloseRS xmlns=”http://www.Guide to Accessing and Consuming Services.opentravel.org/OTA/2002/11” version=”1” status="Approved"> <?xml version=”1. This is usually the name of the specification or message that is the basis for the payload.24 Sabre Holdings Inc. consult the applicable service description and developer notes. the content ID for xlink:href in eb:Reference (if present) The content ID in the MIME Header of the SOAP attachment (if present) In the payload. v1.sabre. but the responses do. Sabre Web Services . opentravel.org/OTA/2002/11.org/OTA/2002/11” version=”1” status="Approved"> <?xml version=”1.org/OTA/2002/11” version="1" status="Approved" /> Description in SessionCloseRS This attribute is returned with the value http://www. Syntax in an Open Systems or TPF Connector-based Web Service Request <OTA_AirAvailRQ xmlns="http://webservices.w3. The version attribute is independent of open systems and TPF Connector-based Sabre Web Services.0” encoding=”UTF-8” ?> Description in SessionCreateRS This attribute is returned with the value http://www. but is returned in the responses. This is not present in the request payloads of the session management messages.10.opentravel. SessionCreateRQ.org/OTA/2002/11. Syntax in the SessionCreateRS Service <SessionCreateRS xmlns=”http://www.com/sabreXML/2003/07 Sabre Web Services .TsabreXML1.xmlns attribute Element is required in payload request and response messages of TPF Connector-based Sabre Web Services.w3. Syntax in the SessionCloseRS Service <SessionCloseRS xmlns=”http://www. and SessionValidateRQ.sabre. This value is the following: http://webservices.24 Sabre Holdings Inc. the correct value for the xmlns attribute is required. SessionCloseRQ.com/sabreXML/2003/07" xmlns:xs="http://www.opentravel.org/2001/XMLSchema" xmlns:xsi="http://www.org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2001-12-17T09:30:4705:00" Target="Production" Version="2003A. consult the applicable service description and developer notes for the Sabre Web Services you are using.Guide to Accessing and Consuming Services.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> Description and Use in Travel-Based Payloads In TPF Connector-based Sabre Web Services requests. Confidential Page 161 . For the values.opentravel.sabre. v1. w3.0.org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2001-12-17T09:30:4705:00" Target="Production" Version="2003A. A value is returned in the response payloads of the session messages.0” encoding=”UTF-8” ?> Description in SessionCreateRS In the session messages.TsabreXML1. the Version attribute is not included in request payloads.org/OTA/2002/11” version="1" status="Approved" /> Description in SessionCloseRS In the session messages.1.org/OTA/2002/11” version=”1” status="Approved"> <?xml version=”1. although one is returned in the responses. although one is returned in the responses.TsabreXML1.1: Version="2003A.opentravel. the Version attribute is not included in request payloads. It is independent of open systems and TPF Connector-based Sabre Web Services.n.0. The correct format is the following: 2003A. Syntax in the SessionCloseRS Service Response <SessionCloseRS xmlns=”http://www. Confidential Page 162 . SessionCloseRQ.sabre. For the values.Guide to Accessing and Consuming Services. an error is returned in the <Errors> node of the response payload. consult the service description and developer notes documents on the Developer Resource Center for the valid Web service versions and correct formats. and SessionValidateRQ.TsabreXML1. v1.org/2001/XMLSchema" xmlns:xsi="http://www.n If the version is incorrect or omitted.opentravel.24 Sabre Holdings Inc.1" Sabre Web Services .Version attribute Element is required in all payload messages except the session messages.w3. Example that requests an initial version: Version="2003A. Element is required in all TPF Connector-based payload messages.TsabreXMLn.1. Syntax in an Open Systems and TPF Connector-based Service Requests <OTA_AirAvailRQ xmlns="http://webservices. A value is returned in the response payloads of the session messages. It is independent of open systems and TPF Connector-based Sabre Web Services.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> Description and Use in the TPF Connector-based Web Services The Version attribute of the document root element must include a value that is valid for the Web service being consumed.com/sabreXML/2003/07" xmlns:xs="http://www. Syntax in the SessionCreateRS Service Response <SessionCreateRS xmlns=”http://www. SessionCreateRQ.1" Example that requests service version 1. PseudoCityCode attribute POS and PseudoCityCode are required in all payload messages.” Description and Use in Open Systems Sabre Web Services The Version attribute of the document root element and a value must be present. Sabre Web Services . v1. If any of these values differ. eb:CPAId These values must also match the value of the Organization element in the SOAP envelope of the SessionCreateRQ message that was used to create the connection being used. the IPCC in PseudoCityCode In all SOAP envelopes. Confidential Page 163 . “Requesting Web Service Versions. Send the value stated in the documentation or the value that the service provider recommends. In all messages that use a specific Sabre Web Services connection. Sabre Web Services cannot authenticate the request. the values for the following must be the same: • • In all payloads.24 Sabre Holdings Inc. please refer to the section of this document titled.Guide to Accessing and Consuming Services. Source element Element is required in all payload messages. See PseudoCityCode attribute.For more information about requesting versions. Syntax <POS> <Source PseudoCityCode="IPCC"/> </POS> Use in Requests This is an attribute of the Source element. the node is present because TPF Connector-based Sabre Web Services have some common elements which are derived from shared schemas.24 Sabre Holdings Inc.1" SequenceNmbr="1" PrimaryLangID="en-us" AltLangID="en-us"> <Success/> MessagingDetails node Element is optional in some TPF Connector-based Sabre Web Services request message payloads. Syntax <TPA_Extensions> <MessagingDetails> <MDRSubset Code=""/> </MessagingDetails> </TPA_Extensions> This node is functional in selected TPF Connector-based Sabre Web Services. If MDR subsets are supported. Confidential Page 164 .10. consult the design documents for the Sabre Web Services you are using. Syntax <OTA_AirAvailRS xmlns="http://webservices.org/2001/XMLSchema" xmlns:xsi="http://www. v1. application developers can specify an MDR subset to retrieve additional content. Although it is not functional in most of the TPF Connector-based Sabre Web Services.w3.sabre.w3.Guide to Accessing and Consuming Services.TsabreXML1. Specify a code for an MDR subset to retrieve additional content. this element is returned in all payload responses of the TPF Connector-based Sabre Web Services. Sabre Web Services .com/sabreXML/2003/07" xmlns:xs="http://www. For more information.org/ 2001/XMLSchema-instance" EchoToken="String" TimeStamp="2001-02-15T11:35:12Z" Target="Production" Version="2003A.Success element If the message is successfully processed by the business application. Where it is functional. the design documents specifically state which subsets can be requested and the effect on the response. com/sabreXML/2003/07" xmlns:xs="http://www.dl.air.air.universalservices.SeatMapScreen Formatter.org/ 2001/XMLSchema-instance"> <TPA_Extensions /> <Errors> <Error ErrorCode="SessionFailure-103" ErrorMessage="Parameter not supported"> <ErrorInfo> <Message>java.Exception: Month value out of range at com.PooledExecutor$Worker.air.DateTimeUtil.java:411) at com.parseDate (DateTimeUtil.w3.sabre.24 Sabre Holdings Inc.run(Unknown Source)</Message> </ErrorInfo> </Error> </Errors> .universalservices.deseriali zeDate(DateTimeUtil. Errors Node in a Payload Message Sabre Web Services .seatmap.sabre.sabre.java:106) at com.java:97) at com.SeatMapScreenService.tpfservices.oswego.org/2001/XMLSchema" xmlns:xsi="http://www.base.universalservices.gds.base.universalservices.base.SeatMapService. application errors are returned to the client in the Errors node as shown in Figure 20.Guide to Accessing and Consuming Services. v1.tpfservices.format(SeatMapScreenFormatter.sabre.sabre.ja va:732) at java.lang.universalservices.air.tpfservices.tpfservices.seatmap.universalservices. Syntax Example <OTA_AirSeatMapRS xmlns="http://webservices.tpfservices.AsyncOperat ionProcessor$Multiplexer.universalservices.SeatMapService.gds.run(AsyncOperationProcessor.Thread.service. .java:173) at com.tpfservices.util.java:381) at com.getDateFo rmat(DateTimeUtil.tpfservices.util.java:221) at EDU.lang.sabre.han dleJibxInput(SeatMapScreenService.formatters.seatmap.DateTimeUtil.seatmap.sabre. .DateTimeUtil. Confidential Page 165 .invoke(Se atMapService.util.concurrent. Figure 20.w3.java:93) at com.universalservices.tpfservices.sabre.handleSoa pInput(SeatMapService.sabre.util.Errors node If the payload cannot be processed or has errors.run(PooledExecutor.gds.java:149) at com.serviceconnector.cs. To access them directly. you must become familiar with the URL and file naming patterns of the documents. After logging in. A service description document is also provided that gives an overview of the Web service. each version of a Web service has its own set of WSDL. All documents and tools. schema.” Identification of the documents is explained below. The WSDL and schema documents are also available by directly accessing them via a URL instead of logging in to the DRC. To obtain the URL for the WSDL and schema documents. you need a username and password for the DRC. schema. display them in a browser. and design documents. To obtain the documents. It also shows how to find documents on the Developer Resource Center (DRC). outside the DRC. service version. File naming patterns are described in the section of this document titled. such as the Java test client and release notes. Sabre Web Services . and how to display WSDL and schemas on a URL using the naming pattern. “Naming Conventions for WSDL and Schema Documents.Appendix B Identifying Documents for Sabre Web Services Appendix B describes the naming pattern for the URLs that point to the WSDL documents of TPF Connector-based Sabre Web Services. are available on the Sabre Web Services DRC. you search for the Web service and select the version you want.24 Sabre Holdings Inc. v1. Moreover. You can view the documents in a browser or download them.Guide to Accessing and Consuming Services. and design documents. Confidential Page 166 . and other service-specific values for the SOAP messages. Each of the Sabre Web Services has its own set of WSDL. The URL is available on the Sabre Web Services DRC by searching for and selecting the Web service and version you want.ext Base URL Sabre XML version Business application WSDL or XML schema file name • • The version of Sabre XML that is the basis for the service replaces SabreXMLVersion. To access the WSDL and schema documents directly via a URL. An abbreviation for the business application replaces BusinessApplication.sabre. Confidential Page 167 . SessionCloseRQ.com/wsdl/SabreXMLversion/BusinessApplication/NameOfFile. Examples follow using the production URL. you must become familiar with the URL and file naming patterns of the documents. This value is as follows: TPFC Sabre Web Services = tpf Session Web services = usg For open systems Sabre Web Services. but only to upgraded WSDL and schema documents. When you display the WSDL and schema documents in a browser. v1. especially if the client consumes Web services with WSDL. As stated in Chapter 3. a three-part version number is applied to the TPFC Sabre Web Services and to the file names of WSDL and schema documents. and SessionValidateRQ.Guide to Accessing and Consuming Services.24 Sabre Holdings Inc.URLs of TPF Connector-Based WSDL and Schema Documents Identification of the URL for the documents that correspond to the desired Web service version is important.00. you can copy and paste the URL into your development tool.0. • The name of the schema or WSDL document replaces NameOfFile. http://webservices. the value varies based on the service provider The session management services are SessionCreateRQ. Sabre Web Services .xsd. Identification of the documents is explained below. Most of the URLs for the WSDL and XSD schema document set conform to the pattern illustrated below. This value is sabreXML1. 1.00/tpf/OTA_AirPriceLLSRQRS.com/wsdl/sabreXML1.webservices.com/wsdl/sabreXML1.com/wsdl/sabreXML1.com/wsdl/sabreXML1.0.com/wsdl/sabreXML1.sabre.1RS .xsd http://webservices. You can also use the testing URL while developing your client.00/tpf/ OTA_AirPriceLLS1.0.1.sabre.0.com/wsdl/sabreXML1.sabre.00/tpf/OTA_AirPriceLLSRS.00/tpf/ OTA_AirPriceLLS1.sabre.webservices.com/wsdl/sabreXML1.xsd If WSDL and schema documents are created and modified for client application development and customer acceptance testing before a Web service is released into production.xsd http://webservices.webservices.00/tpf/OTA_AirPriceLLS1. v1.24 Sabre Holdings Inc.0.xsd Finding WSDL and Schema Documents via a URL Once you become familiar with the file naming patterns and URIs for the WSDL and schema documents. refer to “URLs of TPF Sabre Web Services .com/wsdl/sabreXML1.1.1RQ .1.sabre.sabre.Examples of URLs of Files for a TPF Connector-Based Web Service URLs for an Initial Version of a TPF Connector-based Web Service http://webservices. The following example shows you how to display the schema and WSDL documents for the initial version of the OTA_AirAvailLLSRQ service.xsd URLs for an Upgraded Version of a TPF Connector-based Web Service http://webservices.00/tpf/OTA_AirPriceLLS1.wsdl http://webservices.com/wsdl/sabreXML1.xsd http://cert.1.com/wsdl/sabreXML1.0.0.0.0.com/wsdl/sabreXML1.sabre. To view or download the documents from a URI.0.1.00/tpf/ OTA_AirPriceLLS1.00/tpf/OTA_AirPriceLLSRQ.1RQR S.00/tpf/OTA_AirPriceLLS1.xsd http://webservices.sabre.com/wsdl/sabreXML1.webservices.sabre.wsdl http://cert.00/tpf/OTA_AirPriceLLS1.0.sabre.sabre. except that cert precedes the base part of the URL.1RQ.1RQ.xsd http://cert. For help.1RQRS.1RQ.0. or download the schemas to validate your payloads locally.1.1RS. You can copy and paste the URI into your development tools.sabre.00/tpf/OTA_AirPriceLLSRQ. you can access the URIs directly from a browser window. they are available on a testing URL.1.xsd http://webservices.0. you enter the complete URL of the document you want in a browser. URLs for WSDL and Schema Documents in the Testing Environment http://cert. The pattern of the URL is the same as for production.Guide to Accessing and Consuming Services. wsdl http://webservices. Confidential Page 168 .00/tpf/ OTA_AirPriceLLS1. Confidential Page 169 . and append the abbreviation for the business application to the URL.0. The URL is complete.wsdl 4. In the WSDL document.com/wsdl/sabreXML1. Copy OTA_AirAvailLLSRQRS. 11. The URL should look like the following example: http://webservices. It should look like the following example: http://webservices. Add a slash character /.xsd 10.xsd in the URL. It should look like the following example: http://webservices. Enter the base URL.00/tpf 3.00/tpf/ OTA_AirAvailLLSRQ.sabre.com/wsdl/sabreXML1.0.sabre. Because this is the initial version.0. Display the WSDL document associated with the URL in the preceding step. Copy OTA_AirAvailLLSRQ. Display the document associated with the URL in the preceding step. The OTA_AirAvailRQRS.xsd 7.xsd from this line and substitute it for OTA_AirAvailLLSRQ. Replace OTA_AirAvailLLSRQRS.xsd schema.Guide to Accessing and Consuming Services. Look for the lines that are shown below: <include schemaLocation="OTA_AirAvailLLSRQ.sabre.xsd" /> 9.xsd from the appropriate include line.wsdl in the URL.0.xsd 12.xsd" /> 6. 5.com/wsdl/sabreXML1. Add a slash character /.0.Connector-based WSDL and Schema Documents.24 Sabre Holdings Inc.xsd schema has two lines that refer to the request and response schema files.0. look for the line shown below: <include schemaLocation="OTA_AirAvailLLSRS.com/wsdl/sabreXML1.com/wsdl/sabreXML1.00 2. and the Sabre XML version. look for the following line: <import namespace="http://webservices.sabre. Display the XML request schema associated with the URL in the preceding step.” 1. In the OTA_AirAvailRQRS.sabre.xsd with OTA_AirAvailLLSRQ.wsdl to the URL. and add the base action code of the service plus .sabre. 8.com/sabreXML/2003/07" location="OTA_AirAvailLLSRQRS. Display the schema for the header and SOAP wrapper again by entering the following URL or by clicking the Back button on the browser: http://webservices.00/tpf/ OTA_AirAvailLLSRQRS.00/tpf/ OTA_AirAvailLLSRQ. It should look like the following example: http://webservices. v1.00/tpf/ OTA_AirAvailLLSRQRS.com/wsdl/sabreXML1. the version number is not included.sabre. The URL should look like the following example: http://webservices.xsd" /> Sabre Web Services . /wsdl.xsd" /> <include schemaLocation="OTA_AirAvailLLSRS. 00/tpf/ OTA_AirPriceLLS1.1. Display the WSDL document associated with the URL in the preceding step.com/wsdl/sabreXML1.0. look for the following line: <import namespace="http://webservices.xsd in the URL.00/tpf/ OTA_AirPriceLLS1.sabre.1.1RQRS.13.1.1RQ. and the Sabre XML version.xsd" /> 6.1RQ.0. Look for the lines that are shown below: <include schemaLocation="OTA_AirPriceLLS1.sabre. Replace OTA_AirPriceLLS1.1RQRS. Replace OTA_AirAvailLLSRQRS.1RQRS.sabre.xsd with OTA_AirPriceLLS1.xsd Sabre Web Services .xsd from this line.xsd" /> <include schemaLocation="OTA_AirPriceLLS1. Add the slash character /.xsd 14. It should look like the following example: http://webservices.00/tpf/ OTA_AirPriceLLS1.00/tpf/ OTA_AirAvailLLSRS.1RQ.1.sabre. Enter the base URL. Replace OTA_AirPriceLLS1.sabre.com/sabreXML/2003/07" location="OTA_AirPriceLLS1.1RQ. The URL should look like the following example: http://webservices.0. Copy OTA_AirAvailLLSRS. /wsdl. plus .xsd intermediate schema has two lines that refer to the request and response schema files.com/wsdl/sabreXML1. The next example walks you through the steps for displaying the set of documents for an upgraded version of the OTA_AirPriceLLSRQ Service.1.0.com/wsdl/sabreXML1. Copy OTA_AirPriceLLS1.com/wsdl/sabreXML1.Guide to Accessing and Consuming Services.xsd 7. 8. Display the document associated with the URL in the preceding step.1RQRS.wsdl to the URL.com/wsdl/sabreXML1. and append the abbreviation for the business application to the URL.sabre.1.1RS. and add the base action code of the service plus the version.1.1.xsd with OTA_AirAvailLLSRS. The OTA_AirPriceLLS1.xsd" /> 9.xsd from this line. It should look like the following example: http://webservices.xsd from the appropriate include line.0. It should look like the following example: http://webservices. Display the XML response schema associated with the URL in the preceding step.xsd in the URL.sabre.com/wsdl/sabreXML1.1RQRS.1.wsdl with OTA_AirPriceLLS1.24 Sabre Holdings Inc.xsd in the URL. The URL is complete.1RQ.00/tpf 3. Confidential Page 170 .1.1RQRS. 1.1.0. In the WSDL document.1RQ. 5. It should look like the following example: http://webservices.1.00 2. Copy OTA_AirPriceLLS1.wsdl 4. v1. It should look like the following example: http://webservices. Add the slash character /.1. Sabre Web Services . visit the DRC and search for the Web service you want.1RS. Display the request schema associated with the URL in the preceding step.xsd" /> 13.00/tpf/ OTA_AirPriceLLS1.1.1RQRS.xsd with OTA_AirPriceLLS1.1.xsd schema. In the OTA_AirPriceLLS1.com/wsdl/sabreXML1. The description document explains the Web service.1RS. for all types of Sabre Web Services. in other words. Replace OTA_AirPriceLLS1.sabre. and if available. one service description document is provided for each version of a Web service.xsd in the URL.xsd from this line.00/tpf/ OTA_AirPriceLLS1. Confidential Page 171 . Display the schema for the header and SOAP wrapper again by entering the following URL: http://webservices. As TPFC Sabre Web Services are upgraded to new versions.1. and finally.com/wsdl/sabreXML1.1.xsd 14. but a TPFC Web service with multiple versions is used. other developer notes.0. a new version of the design documents is created. the service version number. It should look like the following example: http://webservices.1. 11. sample payloads. To obtain these documents.0. Every time a new version of a Web service becomes available.24 Sabre Holdings Inc.10. a pair of request and response design XML documents corresponds to every version of a Web service. look for the line shown below: <include schemaLocation="OTA_AirPriceLLS1. Copy OTA_AirPriceLLS1. The file name includes the name of the Web service.1.Guide to Accessing and Consuming Services.. Obtaining Artifacts for Web Services Versions This information applies to obtaining artifacts. etc. followed by either RQ or RS to indicate request or response.1RQRS.1.xsd 12. schema documents.sabre. v1.1RS. Display the response schema associated with the URL in the preceding step. Finding Documents for Sabre Web Services Like the WSDL and schema documents.1RS. the service-specific values needed to consume the Web service. design documents.1RQRS. 24 Sabre Holdings Inc. Searching for a Web Service on the DRC by Keyword An example of search results for the keyword “pnr” is shown in Figure 22. Figure 21. such as AddRemarkLLSRQ and DisplayAirPriceLLSRQ. v1. as shown in Figure 21. Notice that some of the services have multiple versions.Guide to Accessing and Consuming Services. Figure 22.Log in to the DRC and search by keyword for the service you want. Search Results based on a Keyword Sabre Web Services . Confidential Page 172 . Sabre Web Services . click on Use . Figure 23. v1. From the browser window’s address line you can copy and paste the URL into your WSDL development tool.Download. Download Dialog for Downloading Documents on the DRC To display a document in a new browser window.24 Sabre Holdings Inc. After selecting a Web service version. Confidential Page 173 .All valid versions of the Web service are displayed. click on the down arrow. and bring up the Download dialog. To save a copy on your local machine. Click through the first dialog box. right-click and choose Save Target As. shown in Figure 23.Guide to Accessing and Consuming Services. Guide to Accessing and Consuming Services. next you exchange requests for travel content and receive the responses using TPFC or open systems Sabre Web Services. Compare metadata. Some examples of artifacts for Sabre Web Services include the Sabre XML WSDL and schema documents. See Sabre work area. an artifact is anything that assists in the discovery and use of a service. then you close the connection with the SessionCloseRQ Service. basic connection Basic connection is the simplest approach for handling connecting to Sabre Web Services. See Sabre work area. You open a connection with the SessionCreateRQ Service. It is similar to a conversation. and action codes.Glossary AAA Pronounced “triple A”. An abbreviation for Agent Assembly Area. v1. and artifacts are not shared among Web services. The client to connection ratio is one-to-one—you have one client and one connection. Confidential Page 174 .24 Sabre Holdings Inc. Agent Assembly Area This document uses the term Sabre work area. Sabre Web Services . artifact As it relates to Web services. Each of the artifacts exists as a separate entity. binary security token This document uses the term security token See security token. and a session is on the Sabre side. Some of the tasks include opening and maintaining connections. The connection and session are synchronized. From the perspective of Sabre Web Services. connection pool A connection pool is a repository of multiple open connections whose connections are maintained and available for clients who need to use them to request travel content and send travel workflows. the connections in the pool are open channels to the Sabre Web Services infrastructure. The connection pool is one component of a connection manager. Confidential Page 175 . Sabre Web Services . It also provides failover and recovery. and refreshing the connections. Compare Sabre session and Sabre Web Services session. an open connection to Sabre Web Services is successfully created. With a connection pool. A connection manager has thresholds defined for high and low volume traffic and tries to maintain the connections needed to accommodate the fluctuations in traffic volumes. A connection is not a client side shopping cart and it does not maintain state in the Sabre work area of the Sabre host system. a Sabre Web Services session is allocated. and upon successful connection. persisting the connection IDs. The client is responsible for implementing a connection manager. It has several components. v1. A client requests a connection to the Sabre Web Services infrastructure. such as a connection pool. constraint Specifies the data type of an element or attribute. and at the same time. connection ID A connection ID consists of the security token and conversation ID returned to the requester in the SessionCreateRS response SOAP envelope. After a client or other process is authenticated and authorized. The connection ID is required for all transactions with the Sabre Web Services infrastructure that are using the connection. such as a string or integer. See also connection manager. The connection manager is an implementation of a strategy for handling multiple. a Sabre Web Services session is created simultaneously with a business application or data center within Sabre Holdings.connection A connection is an open channel to the Sabre Web Services infrastructure.24 Sabre Holdings Inc.Guide to Accessing and Consuming Services. The distinction between the terms “connection” and “session” is semantic. and whether the values for an element or attribute are restricted and required to be present. Its return means the connection to the Sabre Web Services infrastructure is alive and a Sabre Web Services session is allocated. concurrent connections. you have more open connections than clients. A connection is on the client side. connection manager The practice of managing Sabre Web Services connections to ensure that connections are available without over-allocating resources. and manages many tasks. It is the exchange of messages among trading partners. such as an element or attribute. GDS global distribution system. The open systems services are sometimes referred to as direct services. but is not limited to. IPCC Internet Pseudo City Code metadata All data or information about a Web service. name of the service.Guide to Accessing and Consuming Services. enabling Sabre Web Services to use proprietary content in the Sabre system and other Sabre applications. ebXML is an enabling technology sponsored by UN/CEFACT and OASIS. Metadata for Sabre Web Services includes. OpenTravel specifications provide a common reference point that eliminates duplication of common data elements. Many Sabre XML schemas incorporate extensions. Compare artifact.conversation A term of the W3C and ebXML. A conversation is the same thing as a basic Sabre Web Services connection. It separates data and reduces it to the data element level. extension Any addition. service implementation date and version. See PSS and Sabre global distribution system (Sabre GDS). making it possible for two parties to Sabre Web Services . The Sabre system is a GDS. and the OpenTravel specifications are based on OASIS and UN/CEFACT. and previously required orchestration. OpenTravel Alliance The OpenTravel Alliance provides standards for the travel industry. Confidential Page 176 . Extensions let organizations use proprietary content that is not present in the OpenTravel specifications so that they can exchange content with their trading partners. See basic connection. to the OpenTravel specifications. ebXML Electronic Business Using Extensible Markup Language. See also Sabre XML. v1.24 Sabre Holdings Inc. open systems Sabre Web Services Sabre Web Services that obtain their content from a variety of open systems within Sabre Holdings via direct connections to those systems. The connection and session are synchronized. Under the umbrella of Sabre Web Services are TPFC Web services. v1. A Sabre session. and session management Web services. Sabre Web Services All Web services provided by Sabre Holdings. The record stored in the Sabre system that contains information related to a passenger’s trip. PCC Pseudo City Code PNR Passenger Name Record. The parties decide whether to use specific data elements and how many times.communicate individual data elements. See also connection and session pool. is allocated from the user’s session pool and becomes active. Sabre system The Sabre global distribution system. A Sabre session is a session that is established with the Sabre “host” system when a Sabre Web Services connection is opened with a user ID that requires use of the Sabre system. Passenger Name Record See PNR. or Sabre “host” system. also known as a TA. PSS Passenger Service System Sabre global distribution system (Sabre GDS) This document uses the term Sabre system. It is identified with a unique record locator.Guide to Accessing and Consuming Services. open systems Sabre Web Services. and therefore. This document uses the term Sabre session instead of TA. It is associated with a LNIATA in native Sabre systems (also referred to as a PSS). Confidential Page 177 . and is the source of travel-related content for TPFC Sabre Web Services as well as some other open systems and applications.24 Sabre Holdings Inc. See Sabre system. Sabre Web Services . Sabre session A Sabre session is a specific type of session. both the connection and Sabre session remain active until either a time-out occurs or the connection is closed explicitly. This is the system that stores travel inventory and itineraries. Suppliers use this standard and the TCP/IP infrastructure of the Internet to communicate with numerous other organizations. The user IDs of Sabre system subscribers require and use LNIATAs or Terminal Addresses (TAs). and promotes a standard interface for access to services using XML. while other services do not have dependencies. They are modified for compatibility with Sabre Web Services and various frameworks for developing and consuming Web services with WSDL. and route incoming requests to the appropriate service provider’s business application. the Sabre Web Services gateway. provides a single point of access using a standard communication path. The type of session that is allocated depends on the security credentials used to open the connection. Sabre XML XML messages used by Sabre Web Services that are formatted to include the proprietary data. while users of open systems may be allocated another type of session. The client application can use the content in the Sabre work area in a stateful or stateless way. One component of the infrastructure. and route the responses to the requester upon receipt from the service provider. which is on the client side. Sabre Web Services . Some TPFC Sabre Web Services rely on content placed in the work area by previous service calls in the same Sabre session. elements. The WSDL documents for Sabre Web Services are also under the umbrella of Sabre XML. security. Users of TPFC Web services are allocated a Sabre session when they connect to Sabre Web Services. See also extension.See also open systems Sabre Web Services. Many of these data elements are added into the messages as child elements of the TPA_Extensions element. Sabre Web Services infrastructure The combined components which provide connections. This document uses the term Sabre work area. SOAP. logging.Guide to Accessing and Consuming Services. and TPFC Sabre Web Services. Other terms for the Sabre work area include Agent Assembly Area and AAA. and attributes of the Sabre system and other applications within Sabre Holdings. v1. Confidential Page 178 . Sabre Web Services session A session that is allocated when a client makes a connection to the Sabre Web Services infrastructure.24 Sabre Holdings Inc. the content from requests in a specific Sabre session is temporarily stored in this work area. Some of these messages are based on OpenTravel specifications and other messages are not. The Sabre work area provides shopping cart functionality on the client side. When TPFC Sabre Web Services are called. External access to Sabre Web Services is through the Sabre Web Services infrastructure. session management Sabre Web Services. The session is synchronized with the connection. See also Sabre session and connection. Sabre work area Refers to the buffer in the Sabre system where content is retained while a Sabre “host” session is active. SessionCloseRQ. session pool User IDs that are tied to Sabre host sessions are allocated a finite quantity of Sabre sessions for their use with the Sabre system. The session pool is also known as a TAM pool. and messages for managing Sabre Web Services connections. any constraints on data. service A discrete unit of data or content that consists of business logic or host command input and output.Sabre XML specification Sabre XML specifications encompass the following: Sabre XML request and response schema documents for all services. v1. The session management services are SessionCreateRQ. It is exposed via a common access infrastructure. one of the Sabre sessions in your TAM pool is allocated and active. This collection of Sabre host sessions is referred to as a session pool. SOAP Simple Object Access Protocol.24 Sabre Holdings Inc. Compare with connection pool and see also TAM pool. When your client or connection manager successfully connects to Sabre Web Services with the SessionCreateRQ Service. and SessionValidateRQ. Sabre Web Services .Guide to Accessing and Consuming Services. session management Sabre Web Services Web services that are designed to connect to and disconnect from the Sabre Web Services infrastructure. WSDL documents for Sabre XML. SDS Sabre Data Source security token The binary security token that is returned to a client in the SessionCreateRS response SOAP envelope in the wsse:BinarySecurityToken element. A mechanism for transporting the data from one network to another. Confidential Page 179 . the content of the payloads. See also Sabre XML. User IDs that use open systems Sabre Web Services do not use TAs or TAM pools. It is returned after a client creates a connection to the Sabre Web Services infrastructure and has been authenticated and authorized. Binary security token is a WS-I term. These messages are also part of the Sabre XML specifications. The Sabre session is no longer available in the pool until the connection is closed or the session times out. The use of TPFC Sabre Web Services requires a user ID that also use a Sabre host session. Guide to Accessing and Consuming Services. See Sabre session. Because Sabre Web Services use XML schemas that have extensions. a pool of TAs is allocated to subscribers whose user IDs require Sabre host sessions. travel suppliers (including airlines).24 Sabre Holdings Inc. TA Terminal Address. The TPFC Sabre Web Services are fine-grained. TPFC Transaction Processing Facility Connector. online travel providers. Sabre subscribers must have a valid Sabre access agreement to use Sabre Web Services. The use of extensions let Sabre Web Services and other Sabre systems and applications exchange proprietary content that is not present in the OpenTravel specifications with its trading partners. one service is equivalent to one Sabre system command. and generally. They use a Sabre session and the Sabre work area. Confidential Page 180 . A client can consume TPFC Sabre Web Services in a stateless or stateful way. and travel software development organizations which are involved with travel marketing and travel distribution. TPA_Extensions OpenTravel provides standards for the travel industry. Sabre XML includes messages with these extensions. TAM Terminal Address Management TAM pool In the Sabre system. The client decides whether to use content it has retrieved from a previous service or not. v1. Sabre subscribers include businesses or other entities such as travel agencies. The Sabre work area is designed for state maintenance in the Sabre system. depending on which of those Web services it calls. The content is remembered or stored in the work area until specifically cleared out. Sabre Web Services . TPF Connector-based Sabre Web Services The offering of Sabre Web Services which obtain their content from the Sabre system or PSS via a TPF-based application. This pool of TAs is generally referred to as a TAM pool. See also Sabre XML.state and stateful The Sabre system is stateful. subscriber A travel organization that is a contracted customer of Sabre Holdings and Sabre Web Services. or PSS. See session pool. The Transaction Processing Facility Web services connector retrieves content from the Sabre system. and it also provides the TPA_Extensions element for adding elements that do not exist in its specifications. Elements that are added to the OpenTravel specifications are referred to as extensions. UN/EDIFACT United Nations Electronic Data Interchange for Administration. Web service A software system that uses XML to define the format and data in messages. Transaction Processing Facility Connector. OTA_AirAvailLLSRQ. Open systems Web services obtain their content from other business applications within Sabre Holdings. OpenTravel and ebXML specifications are sponsored by UN/EDIFACT. Compare session management Sabre Web Services. Commerce. The two parties who are exchanging data must agree on the set of messages they plan to exchange in a specific transaction. for example.Guide to Accessing and Consuming Services. the availability of flights and seats at 2:00 on Friday between point A and point B. Confidential Page 181 . The Transaction Processing Facility Web Services connector that retrieves content from the Sabre global distribution system. v1. WSDL Web Services Description Language XML Extensible Markup Language Sabre Web Services .The letters LLS appear in the names and action codes of TPFC Sabre Web Services. The messages are sent over the Internet. for example. which is also referred to as the Sabre host system or PSS (Passenger Service System). and Transport.24 Sabre Holdings Inc. which distinguishes them from open systems Sabre Web Services. This protocol is based on sentence structure. A travel message distribution protocol that has syntax rules for exchanging data.