What is XML

  • XML stands for EXtensible Markup Language
  • XML is a markup language much like HTML
  • XML was designed to describe data, not to display data
  • XML tags are not predefined. You must define your own tags
  • XML is designed to be self-descriptive

XML is a letter with fixed formats on which you can write down what you want to tell the person on the other end. However in this case it is not about people, it is about systems. You are writing such a letter and then send it out to the end system. Once the other system gets the letter, it reads it and deliver what you want. The amazing point of XML is regardless of what these two systems are, they never have a problem understanding each other by using the Letter of XML.

But DO remember, XML is just a letter. It conveys information but it cannot actually do anything. Only the system who sends it or receives it could make something out by reading it.

XML Extensible Markup Language

  1. Simplicity
  2. Generality
  3. Usability

Formality + Readability

Comparing different data structure (Binary, JSON, XML)

XML Basics:

o          Root

o          Elements

o          Attributes



  • Represent simple Business org chart by XML

Web Services

SOAP – Simple Object Access protocol

  • A Protocol for exchanging structured information
  • Using XML to declare data types which are language agnostic


  • When used with HTTP – Adds SoapAction header

WSDL – Web Service Definition Language

  • Defines Endpoints, Methods and their data structures to declare a Web Service


  • http://stackoverflow.com/questions/14541066/difference-between-a-soap-message-and-a-wsdl


  • SinglePage WSDL


  • Object Order


  • Case Sensitive


Server method interface -> generate WSDL -> Client Transform WSDL to Client Proxy code -> call

Tools to generate code from WSDL:

Visual Studio (which actually use….)



XMLBeans -> WSDL2java

UI tools:

==>      SOAPUI

==>      XMLSPY

==>      Etc.


  • Code a simple WS – Calculator

(divide into groups where at least one has a student with programming knowledge)


  • Share the endpoint


  • Use other teams endpoint to get WSDL and generate client code


  • Using Visual studio (Eclipse ?)




==>      Rule order (from open to closed)

==>      IP / Port

==>      Source / Destination


Transfer to other Service

==>      Load Balancer


Server side security

==>      SOAP Header

==>      User & password

==>      Brute force

==>      SSL



Benefits over files:

  • Indexing
  • Multiple Users (Read/Write blocks)
  • Memory Usage
  • Query Language Interface
  • Various connectivity options (network, Named Pipes etc.)
  • Data integrity (Constraints, Transactional)
  • High availability
  • Replications
  • Backups

Scale up vs. out

==>      Up: more CPU, memory, storage

==>      Out: more servers (mirroring, log shipping, always on)

DB Cons:

➢          Table structure

➢          Indexing price

➢          Full scans

➢          Locks

➢          File Based

Basic T-SQL




Order by

  • Max
  • Min
  • Avg
  • Count

Group by



Data Structures:

  • Array
  • List
  • Dictionary

Big O notation


Tape -> Disk -> SSD -> RAM -> CPU Cache

–> Faster

–> Expensive

–> Smaller

DB: Persistence, normal operations

In Memory: volatile, near real time operations

Cache Layer:

  • In Memory
  • Indexed (Hash)
  • Specific structure


  • Size (memory is small comparing to DB files + indexing)
  • Load time (reading, indexing)
  • Out of date


o          Data split

o          Sync



(element) <buy>

(string)               <text>TV</text>

(number)   <limit>200</limit>

(list)          <currency>450</currency>



  • SOAP-header and body;protocol (envelope); preferred for checking messages due to security reasons; (REST API) Industry standard is SOAP
  • WSDL-Defines protocol; rules to search
  • XML-data (letter); You can have different systems talk to each other
  • Header-username/password authentication
  • SOAP UI-



<Name>Benjamin Kepner</Name>

<Origin>United States</Origin>

<Degree>International Business</Degree>

<Languages>English, Spanish, some Chinese</Languages>

<Position>Sales Coordinator</Position>



Travel Glossary Terms: http://www.ddtvl.com/glossary/glossary.htm

Attribute-A tool used for defining the segments in the market and see what content; says if it is B2B or B2C

If location is empty, it means city

Airport-City location

Multi-city locations can be connected to one airport

Match Destination-Pair two different cities/locations if you are searching for one of them

PDS-Product dynamic synchronization; files they are publishing on FTP for our clients to see

CostAmedn-prior to booking

DoAmend-post booking

CheckAvailabilityAndPrices-Right before booking

GetRGInfo-customize voucher

SearchbyHotelID-If they already have their own database, what method to adapt to ours;

Valuepublish-price we charge with markup

B2C=Publish is true

See Soap to see why a client is not finding things, monitor a client

Exclude hotellocationname because we want them to search a bigger lot of clients

Property type: Notset, Hotel, Home

Flow of How a Customer Searches

1)         Destination ID or Airport Code

2)         GetHOTELbyDestinations

3)         GetHotelDetailsV3

4)         GetCancellationPolicy

5)         Check Availability and Rates

6)         BookHotelV3

Voucher-What you booked/price/hotel/address/company logo/payed by

Offset time unit/multiplier: Cancellation policy -> No Show

Direct Bill Client-Client that gives us a direct deposit; no credit card when doing booking

OBLIGO-string that this client has an x amount of credit with us; knows based on username and password how much the credit the client has

Record Locator holds reservation ids

Room id in booking->1

Acue Price-total price including taxes; excludes board bases and supplements

Delta price-amount of money of wiggle room so that the booking will not fail; also known as tolerance; Client see this and is a price/on our back end it is a percentage

  1. Mainstream-smaller clients or clients who only want to connect to travel suppliers; 1-1 connection; Have a database that is synced to supplier with no separate providers, SearchbyDestinationID
  2. PDS-Product Dynamic Synchronization that stores static information, only call us when they want rates and availability; For clients that connect to multiple providers; Majority of clients have this because it is beneficial for them
  3. Data Export-They cache the majority of static content, rate, and availability; Good for client to package; Big clients in Europe are fixed on Data Export even with incentives; missing out every 4 hours

Static: HotelID, Name, Address

Dynamic: Rates, Available


  • DestinationID
  • Matches to Room Type Level
  • When searches are parallel it means their database attaches other hotels to city

Room Types

  • Standard Bed
  • Deluxe Bed

1 Hotel RoomtypeID with sequences; SequNum=”1” is the way to book multiple rooms

Supplemental Charge Types=AtProperty AtHotel, Addition

Optional they can decide

Resort Fees must be collected at Hotel

We cache out external providers data and this helps to prevent errors

NOC-Romanian team; tell them to restart staccatos with external providers

External Providers

Mapping external providers

  • Hiltons
  • Hyatts
  • Wyndham
  • IHG

Does asset management to match with chains.  We connect to chains through either pull or push.

Smart Cache-There should be a response of removing inventory

Unit; Property Type-Home; Most homes have a 5 minimum night stay



Leave a Reply

Your email address will not be published. Required fields are marked *