Service-Oriented Architecture (SOA)
OUT OF ALL the IT terms mired in jargon and doublespeak, the design of complex software systems to provide services to large organisations is one of the most prominent. From object-oriented design to web services and acronyms such as XML, the field is littered with incomprehensible jargon that few outside the inner sanctum of the IT department understand. Service Oriented Architecture (SOA) is one of these.
Rather than being a technology, this is rather a fundamental approach to how a company would link the way it does business to the way it designs its software.
In the past, companies would build sophisticated IT systems that formalised the way they did business. For example, if an airline was taking a booking, it first collected the client’s details, credit card information, date of travel and destination before checking flight availability. If you wanted to rearrange the order of these steps, it would take both time and money to change the IT system to make it possible.
The approach taken by SOA is to first map out what the different parts of the business process are, in this case capturing personal information, credit card details, destination and date of travel and looking at each one as a separate part of the system.
Then when the software program is being written, each part of the process is built into its own little mini-program, which all link together to make the whole. It’s now possible to shuffle the various bits of the process around so you can capture the destination and check for availability first and get the credit card details last.
It sounds obvious but there are millions of other processes in every industry where shuffling round the steps could speed up the pace of doing business and cut costs.
In addition, changing one part of the system – for example changing the way the company processes credit cards – would only entail a change to one small part of the system with relatively little side effects on other parts.
The key to SOA is breaking down the entire business into small bitesized chunks and letting IT deal with each separately.