XML coding language explanation
XML
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 delivers 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
- Simplicity
- Generality
- Usability
Formality + Readability
Comparing different data structure (Binary, JSON, XML)
XML Basics:
o Root
o Elements
o Attributes
Task:
- 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….)
XSD.exe
JAXB
XMLBeans -> WSDL2java
UI tools:
==> SOAPUI
==> XMLSPY
==> Etc.
Task:
- 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 ?)
Security
Firewall
==> 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
Database
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
Select
From
Where
Order by
- Max
- Min
- Avg
- Count
Group by
Join
Staccato
Data Structures:
- Array
- List
- Dictionary
Big O notation
Memory
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
Problems:
- Size (memory is small compared to DB files + indexing)
- Load time (reading, indexing)
- Out of date
Solutions:
o Data split
o Sync
SOAP UI
(element) <buy>
(string) <text>TV</text>
(number) <limit>200</limit>
(list) <currency>450</currency>
</buy>
- 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 the location is empty, it means the 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
costumed-prior to booking
commend-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 the 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
- Mainstream-smaller clients or clients who only want to connect to travel suppliers; 1-1 connection; Have a database that is synced to the supplier with no separate providers, SearchbyDestinationID
- 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
- Data Export-They cache the majority of static content, rate, and availability; Good for the 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
Interep
- 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