I recently found another shining example of why overnight batch processing as a means for integrating applications is bad for business. Chapter 9 of my ESB book talks about how the latency and margin for error associated with this common business practice can be costly to a business. A recent experience really hit home for me.
I’m currently in the midst of a doing great deal of traveling due to conducting a 10 city Seminar series tour entitled “SOA Best Practices: An Architect’s Forum”, which is sponsored by BearingPoint (more).
This story starts out on a sour note, but ends on a positive note.
One week of this travel was particularly hectic in that the seminar series covered 4 cities in 5 days. The overall trip spanned Boston, Chicago, Denver, Dallas, and Atlanta. Due to some logistical issues, I could only use my airline of choice for 4 of the 5 legs of the trip, with the return trip from Atlanta to Boston on a separate airline. So far, so good. I was scheduled to depart on a Monday and return on a Friday. Also good.
Because of some last minute scheduling issues, I needed to change one of the flight times the day before I departed Boston. Due to reasons that I did not understand at the time, the travel agent told me that they needed to re-issue the ticket, and it had to be a paper ticket rather than an electronic ticket. Not fully realizing the consequences of that, I quickly shrugged it off and said “whatever”.
Early Monday, I made my usual phone call to my airline of choice in order to request an upgrade. They told me that I could not do that because the entire 5 leg trip had been booked on 1 ticket, that ticket had been booked through the “other” airline. Argh!
As I got closer to the airport that day, I also realized that the because I now have a paper ticket, I also can’t just walk up to the self-service check-in kiosk to get a boarding pass…I need to stand in that long line and go talk to a person. Also not good. I figure that’s OK for now, because I’m simply going to go to the ticket agent and have them switch me over from this paper ticket to and electronic ticket, allowing me to whisk my way through each airport for the rest of the week without stopping at any ticket counter.
After all, I’m in the system. They should just be able to do that…..Right?
At first, the ticket agent seemed perplexed. She said there wasn’t anything she could do. I had a paper ticket, and that could not be transferred to an electronic ticket. I’m thinking – This is an integration problem…. Upon my insistence that there must be something she can do, she calls over a supervisor, and the two of them huddle over the terminal for a while. In the end, all was well with my electronic ticket. They took my paper tickets (all except the one for the “other” airline), and inform me that I’m all set through Thursday! I upgraded using a couple of electronic upgrade tokens, and there I was on my way to Chicago! The next day I arrived at the airport again to proceed on the next leg of my journey, swiped my card through the self-service check-in kiosk, got my boarding pass, and was on my way to Denver. Ahhhh, the joys of automated computer systems.
The following day, I encountered another glitch. Whatever they did in Boston only stuck for 2 days. When I arrived at the Denver airport intending to depart for Atlanta, all record of my electronic ticket had vanished. The ticket agent explained to me that there was nothing they could do because I was booked with a paper ticket, and I had no ticket. They had taken my paper tickets in Boston! I’m thinking…. ….I’m in the system…It knows I’m booked on this flight. Why can’t she just print me a darn boarding pass???? All the while I’m thinking….This is an integration problem…
After 20 minutes at the ticket counter in Denver, all they could do was issue me some replacement ticket coupons that were hand-written, which would get me through the next two legs of my trip.
BTW, I promised that this saga would end on a positive note, and I’m getting there….
The next morning in Dallas, the group of attendees arrived for the SOA seminar. This seminar series is intended for an audience of enterprise architects to get together, learn about the architectural concepts of an Enterprise Service Bus (ESB), and spend some time discussing how to apply the concepts toward building SOAs for the purpose of application integration within their own organizations.
As fate would have it, two of the attendees that I met at the door were wearing a name badge from my favorite airline! (which had recently become my most loathed airline). They both had the title of Architect written on their name badge, and they were my captive audience for the next 4 hours! Excellent. During the morning coffee I cheerfully explained to them my saga of the paper tickets vs the electronic tickets. Well, it turns out this guy is responsible for these systems, and is here to find out about how an ESB can help to integrate them together. As an added bonus, his travel companion was responsible for the systems that interact with their alliance partners.
They validated my suspicions that what I had been experiencing was indeed an integration problem. Furthermore, my perils of the past week were due to the latency and margin for error that is associated with overnight batch transfer. There is a paper ticket system, and an electronic ticket system. They are two separate systems that are integrated through an overnight batch transfer process. Because my travel agent had booked my ticket across two airlines, the re-ticketing process had to be a paper ticket because the time to departure was not enough to time to allot for the next batch transfer process to update my new schedule. Furthermore, I strongly suspect that the reason that my electronic ticket had “disappeared” after 2 days is because whatever the ticket agent did at the ticket counter in Boston on Monday was overwritten when the next batch update ran.
In the end, my airline of choice is still my airline of choice, despite my ticket counter woes. During the morning seminar, there was plenty of opportunity to poke fun at dysfunctional batch transfer integration at the expense of my new friends from the airline (without particularly mentioning them, but they knew what I was referring to ). They each received a signed copy of my ESB book in appreciation for attending the seminar, and I pointed them to especially take a look at chapter 9, which is about the problems associated with integration using overnight batch transfer, and how to refactor toward using an ESB to achieve integration in real time. I’m sure we all look forward to a day that the backend systems of the airline industry can talk to each other more efficiently, with the ESB as the means of doing it. One can only hope.