Monday, September 22, 2008

I drafted this description of services to give non-technical individuals understanding of the services of a Service Oriented Architecture (SOA). I refined it a smidge here from its original context. It is not a complete, thorough example. It focuses on giving a definition to the word service.
We use services everyday. An example is that you don't have to be a barista to drink an espresso. You simply order, pay, and enjoy your beverage. This analogy has a good correlation with the service orientation of software architecture. In software we call this a black box. You don't know what happens inside the box. You put in money and espresso comes out. A service consumer needs no knowledge of how a provider has implemented a service. The Consumer need only know the input required and output expected from the service. In our example of the espresso service, a barista takes money as input and outputs espresso. As a consumer, I need not know how to grow, harvest, roast, and brew coffee beans.

There are cost and quality aspects to consider. How much will it cost the service consumer, who has no prior knowledge of coffee beans, to go from plant to espresso? Would the quality be the same as when the coffee experts do the same thing? Clearly the answer is to leave espresso and the service logic to the experts. This frees each consumer to put full effort into their own area of expertise.

No comments: