By now most everybody has heard of the term SOA which stands for Service Oriented Architecture and if you are like others, including myself, you have been inundated with high-level zero-informative type explanations that abstract the definition out to the point of no return. In this blog entry I would like give my take on SOA as it relates to a programmers mind and what I feel the moniker should really be.

Way back in the day when you wrote your first program there was most likely the “Hello World” application that gave you enough gumption to keep on trucking with your IT intentions. Through your first couple months of programming you most likely found places where code was repeated and thus created a maintenance nightmare in trying to keep all instances up to date. If you were fortunate enough to have a modular programming language (i.e. RPG ILE, Java, .NET, PHP, etc) at your disposal you could then take the chunks of code that were repeated in each program and make a separate callable “function” that could be used time and time again.

Wanna know what modularizing your code accomplished and what title you can now add to your next review/resume? That’s right, you are now a bonafide SOA programmer. How is that possible being that SOA is just now surfacing being preached by the masses as the “next great thing”. Well, someone, while walking from the couch to the fridge, manufactured this great concept called “web services” as a means to allow two different languages on two different machines/OS’s to “call” each other. While reaching for the brick of cheese in the fridge they came up with the idea to use HTTP as the transport protocol and XML as the data carrier. Walla! We now have web services. But wait, we need to give this a solid name that will cause IT managers to give us programmers something to research during our lunch hours. So on they way back to the couch, and three mouthfuls of cheese later they came up with the name Service Oriented Architecture. By the time it reached ears the could have named it more effectively SOA had been made into a formidable house-hold name by the forum junkies – so here we are with “SOA”.

Wow! A trip to the fridge can revolutionize the IT industry!

To summarize: If you have written RPGPGM1 that calls RPGPGM2 you have effectively written a Service Oriented Architecture. This latest round of hype is based on the fact that instead of relying on RPG prototypes for passing parameters (or *PLISTs) and OS/400 for making the communication from one program to the next we are using WSDL’s, XML, XSD’s, SOAP and HTTP to accomplish the same task – essentially recreating the program call interface with technologies that are 100% text based. I think a more appropriate name would have been WOA (Web Oriented Architecture) because that denotes more of what is actually occurring and what has changed from our legacy SOA. Not only does it describe it better, but it is much more fun to say in meetings: “Who wants to work on the WOoooaAA project? [all hands go up]” 😉

Just remember, you heard of WOA here first on! Comments anyone?

[tags]iSeries, SOA, Web Services, Service Oriented Architecture, XML[/tags]

About Aaron Bartell:
Aaron Bartell is a Java and RPG programmer for specializing in modernizing RPG applications for web service interoperability. Aaron can be reached at or visit his home page at Aaron is also lead developer for the RPG-XML Suite which can be found at