Case studies in SOA using an ESB backbone...Swiss Customs Declarations
by David A. Chappell
a.k.a. If this is Thursday, it must be Milan.
Last week continued with the world tour of the SOA Architect Forum series. Rather than return to the US, I continued on from Tokyo and headed west around the world to Europe. There I met up with Tim Dempsey, Sonic’s VP of Marketing from the US, and our colleagues from the Sonic European team, and conducted a series of SOA Architect Forums in Frankfurt, London, and Milan. The European seminars were very well attended, drawing an audience of enterprise architects in numbers ranging from 80 100 in each city.
As per usual throughout this seminar series, we had a local customer present a case study of their SOA project based on an ESB. In Frankfurt, the presentation was done mostly in German (with the exception of my portion). The local German audience seemed to appreciate this, with the exception of the 4 guys who flew in from the Czech Republic. I think they may have been as lost as I was through some of the proceedings :)
Thankfully in Milan we had 2 simultaneous translators which were translating in both directions. When the local Italian presenters where talking, I had the headset on and I could hear the translations in English .Pretty cool).
Anyway...back to Frankfurt. We had a presentation from a customer, Telekommunikation BIT, who provided an overview of their service oriented application that automates all of the tracking and processing of all customs declarations for goods passing through the Swiss Customs office. The name of the project is called e-Dec (e-declarations) Import. The diagram below shows a high level overview of the service components that make up the SOA.
This architecture shows the typical use of an ESB in conjunction with an EJB application server. The ESB deployment is depicted in the upper layer of the diagram, and the application server deployment is in the lower layer. This epitomizes the lines of separation of roles and responsibilities between an ESB and an appserver, each being used for what it is best intended for. The ESB is being used for the routing, transformation, auditing and logging, and queuing of requests, which allows the application server hosted pieces to focus on the business logic that process the import declarations (I would like to say more about what goes on in here, but it was presented in German).
The tall cylinder at the upper left hand of the diagram of ESB layer represents a message queue that is used to queue up requests that can arrive onto the bus in a variety of protocols (HTTPS, SOAP, SMTP) using various formats for carrying the payload (XML, EDIFACT). The requests get routed to an authentication and authorization service (authenisierung/ autorisierung). Depending on the format of the incoming message, it is selectively routed to a data transformation service (konvertieren), then in either case it is sent along the processing pipeline to a validation service (validierung). The message is then sent to an auditing service (archivierung). The message is then delivered to the e-dec Import application via JMS using MessageDrivenBeans into the Weblogic based application. (NOTE: the use of the word IMPORT here is referring to the processing of imported goods into Switzerland, NOT import into the appserver. The connection between the ESB and the appserver is a very natural thing using MDB). Once the processing of the business logic is completed in the appserver, a response message is placed back on the bus, routed to a response generation service (antwort gen), then audited again using another instance of an auditing service. Lastly, the “response” message is placed in an output queue, where it is sent back to the sender. This whole process is controlled by message itineraries.
In all three cities (Frankfurt, London, Milan) of the tour that week, we also discussed an interesting use of SOA, ESB, and the DigiPen to highlight a system built for automating the toll collection for Germany's 1.2 million truck drivers.
On another note...In each city I usually seek out a local Starbucks because I really like their espresso. Milan has no Starbucks, but it doesn’t need one. That would be blasphemous to the locals. In Milan I had some of the best espresso I have ever experienced anywhere. If you’re into espresso, this stuff has a head of foam on it that can support a sprinkle of sugar for up to a whole minute before it sinks in to form a blend of pure coffee heaven. And its consistently good everywhere, which is usually about every 100 meters that you’ll see some sort of espresso bar.
Fashion Alert: Milan is the fashion capitol of the world. One thing I noticed there is everybody wearing big giant sunglasses. I'm not talking about the kind you see on J-Lo, Bono, Brad, or Jen, but really really big bug-eyed cover-half-your-face goggle-looking things! They're headed this way, I'm sure. Be on the lookout. If I start wearing these things, somebody shoot me.
On the return flight from Milan to Boston, I was buzzing pretty good from multiple shots of espresso, so they made me sit out on the wing :)
Actually this is a nice picture of the Alps taken with my camera phone through the airplane window. As you fly out of Milan en-route to London you just clear the tops of these things on your ascent. It’s a breathtaking view up close.