Friday, July 19, 2013

My Journey with SOA

It was 2001 when I first heard about SOAP over HTTP. It was my first project in my career. It had all types of complexities. Today I feel really lucky to have worked in that project. It gave me experience on every concept that can be implemented using java. We were developing a web application for one of banks in USA. I had my first experience with XML on this project. I was the only person to have understood to work with SAX & DOM parsers in the entire team of 50+. One of our leads came to me and suggested using SOAP over HTTP for one of the requirements. I debated with him for around a week on advantages of using SOAP/HTTP, however he couldn’t convince me. I knew he was planning to learn the new concepts that were emerging in the IT and was looking for a bakra to help him. As he couldn’t convince me on the advantages, I rejected his idea completely at the end of arguments. As a result of these arguments that I had with him, I became a hater of SOAP/HTTP, to be precise SOAP. It was a long journey for me from a SOAP hater in 2002 to a web service advocate today. A journey that was full of questions, confusions, more questions, more confusions made me appreciate the benefits of SOA completely. (Having understood all advantages of SOAP/HTTP, even today I opine that my decision to reject SOAP/HTTP was good for project.)
In 2002, there was a complete change in technology that I was working. I moved to Oracle eBusiness Suite from java. Things weren’t same; it was like moving to a completely different world. I had to change my way of looking at things to a different perspective, a perspective of an ERP implementer from the perspective of java developer. Same continued till 2005/6, till Oracle released its first version of BPEL i.e. BPEL 10.1.2, thanks to Oracle. Having experience and inclination towards java, I naturally shifted to BPEL. Again the same old question of 2001 what is this SOA, why SOAP/HTTP. But this time my lead was not there with me to fight.
During my initial days, like everyone else, Oracle SOA Suite was another tool for development to me too. SOA was nothing different from another tool & technology. But theoretical concepts speak completely different about SOA but it is not what people do with SOA. What is SOA and why is SOA. With Oracle SOA Suite, my technical expertized move from ERP to Middleware. As a middleware, SOA is another EAI for many people. Is SOA an EAI? What is SOA and why is SOA?  Even though I used to go customer locations and give big big presentations to them on Oracle SOA & its benefits, I my self was not convinced about what I was saying. So many unanswered questions, so many ifs and so many buts. As time passed, I expertized Oracle SOA & became most successful SOA Architect providing excellent & successful solutions to A2A integrations using Oracle SOA. But basic questions about SOA that I had in my mind were never completely answered. What theory and concepts speak about SOA is not what we do. I worked on different clients from multiple industry verticals like Manufacturing, Technology, CIME etc and integrated their applications. However I was never convinced in correlating theory about SOA vs Oracle SOA implementations. What & where is so called reusability? Where is SOA governance? Does anyone really implement SOA governance beyond book? Will anyone define reference architecture & implement? What is use of reference architecture & ABBs in A2A integrations? Where is security, monitoring? etc etc… Only questions with no answers. To be very honest, I was not completely convinced that canonical model makes things agile. If one analyzes A2A integrations in detail, from developer perspective, can easily realize that using or not using canonical model won’t make much difference in agility perspective.
First project that made me feel that we are using Oracle SOA as per the theoretical definition of SOA was LA MTA; however I had many questions in my mind yet to be answered. First time I was satisfied & felt that Oracle SOA is getting used as SOA when I first worked with a banking customer. I could really feel that this is what a definition of SOA says. Banking industry has multiple channels to serve the customers. Without SOA, all these channels will have P2P connections with all applications. However SOA makes life easy. Real advantage of canonical models, governance, security, monitoring, reference architecture can be visualized when one works with BFS customers. My first BFS customer was a big lesson for me. From then onwards every BFS customer was a good learning. From then, I could easily justify A2A uses of SOA also. I got completely cleared of all confusions around SOA few years back. Now, I clearly understand what is written in book & how is it implemented. How SOA should be seen differently when used to implement services and A2A integrations. స్తితోస్మి గత సందేహః - stitOsmi gata sandEhaha.
Many SOA Architects think that SOA is an A2A integration tool. They never think beyond. Never try to analyze if there is any difference between what is explained in theory and what is implemented. Very recently, I met a person whom I call a pseudo SOA Architect. For him SOA means JMS, milestone, event trigger etc. He doesn’t understand anything without them, everything else is tight coupling for him. He was so much imbibed in that thought that my every attempt to make him understand SOA is not A2A but also request-response became unsuccessful.  God save him.
The basic challenge seems to be the way how Oracle SOA Suite is used in the market. It is used as an A2A integration tool only.  Everyone focuses only on A2A side of it and believes that SOA is A2A. On top of it AIA seems to be addition to this confusion. But AIA foundation pack can’t be blamed for this though. Those who created foundation pack really analyzed different scenarios and give patterns for each scenario. It speaks about Request-Response pattern also. But many people concentrate on fire & forget pattern only. AIA-PIPs are developed completely using fire & forget pattern. People learn & stop at fire & forget only, there is lot beyond. One should start journey beyond fire & forget.
I can say, journey with SOA needs a living book like Vigni. Unfortunately I never had one.