Sunday, May 25, 2003

Larry O' Brien has some notes on programming against the Sabre GDS.  Most of what Larry says applies to other GDS systems (Apollo/Galileo, Worldspan, and Amadeus), though it's interesting to hear bits about Sabre's specific implementation.  Larry mentions abandoning OO purity, specifically mentioning the concept of "Flight".  Many development teams have come to grief on this concept, not even to the extent of confusing a "Flight" with a physical airplane, but with simply getting an incorrect perception of what the data comprising a Flight means and what can be done with it (for starters, it's read-only and parts of it are subject to change at any time).  I'm a little puzzled by Larry's assertion that Sabre's concept of a flight is Carrier + Flight Number, but not the date; I've found that Carrier, Flight Number, and Date to be a good proxy for identity in this case.  Speaking of dates and times, a GDS' idea of time generally doesn't include a time zone; rather, time is assumed to be the local time in the city you're referring to.  So if a flight is scheduled to leave JFK at 10 AM and arrive in Denver at 12 noon, those times are local, so the actual duration of the flight is 4 hours.  Beware of trying to convert times into, say, java.util.Date - you can end up with incorrect assumptions about time zone. 

As far as Larry's comments on TA configuration, inconsistent error responses, and  limits on group sizes, let's just say that after working with a GDS for a while, the law of leaky abstractions will make its power felt in novel ways.  The inconsistent error responses are a great example.  What a GDS does, primarily, is aggregate data from other vendors' systems: airlines, car rental companies, hoteliers, tour operators, cruise lines, etc.  In the Apollo and Galileo systems, for instance, you can get errors from a "front end" system (generally communications related), from the "core" system, or from a "link vendor", i.e. some remote system that you weren't necessarily aware that you were talking to.  The GDS usually does pretty well at hiding the link on the inbound side (submitting a transaction) but in the event of an error, tends to punt the message straight back to the client.

4:59:08 PM  permalink Click here to send an email to the editor of this weblog. 


Stories
DateTitle
1/23/2003 Why XML?
8/13/2002 Resolution for IE and Windows problems
8/10/2002 Supporting VS.NET and NAnt
5/11/2002 When do you stop unit testing?
Contact
jabber: weakliem
YM: gweakliem
MSN: gweakliem@pcisys.net
email: Click here to send an email to the editor of this weblog.
Subscribe to "Gordon Weakliem's Weblog" in Radio UserLand.
Click to see the XML version of this web page.