Service Oriented Architectures are not exactly a new concept, but the ways they are used most often these days take advantage of new technology. At their most basic, Service Oriented Architectures describe the structure of software applications and interaction with a business model. The key word in all of this is Service.
A Service, as described in Service Oriented Architectures, is a specific software function that is independent of any other functions. For example, a bank's software protocols will necessarily include a Get Customer Balance request, whereby at the request of either the bank or the customer, a current balance is displayed. Get Customer Balance is a Service. Using the bank model, other Services include Process Deposit, Process Withdrawal, and so on.
Using Service Oriented Architectures, each of these Services works its way through the overall software system independently, while also using the same software systems. This sounds counter-intuitive, but it really isn't. Basically, various Services are using the same system to do the same thing for different results. Get Customer Balance for John Smith is the same function as Get Customer Balance for Jane Doe Enterprises, but the data involved are different. The beauty of Service Oriented Architectures is that the software is designed to process all Get Customer Balance commands in the same way, regardless of whether the customer is an individual like John Smith or a business like Jane Doe Enterprises.
A key to the success of Service Oriented Architectures is that the Services themselves are loosely coupled. That is, they are adaptable to differing circumstances. Should the Service command Get Customer Balance suddenly become Get Customer Balance for All Accounts, the software need not reinvent the virtual wheel; rather, the related Service can use the same basic protocols to achieve the same ends by slightly different means.
One way that Service Oriented Architectures are presented these days is via XML. This, for lack of a better term, generic programming language presents itself as a sort of lingua franca. All you need is a Web browser to be able to process XML requests. You don't need to be running the latest version of Windows or Mac OS. Logging in to the system and performing the necessary Services are taken care of because the computer doing the requesting and the computer providing the Service speak the same basic language.