What is service-oriented architecture?
Service-oriented architecture (SOA) is a term that many different people use in many different ways. Most of the time, SOA refers to architecture for software systems in which services are the fundamental building blocks; that is what we mean by SOA in this book. This is a good, broad definition, but there are many shades of meaning when you start digging into the details of what someone means when they use the term. Sometimes people mean architectures based on web services, and others think that architectures such as CORBA and DCOM are examples of SOA.
Simply put, however, SOA refers to any system that exposes its functionality as services. The next question, naturally, is "what's a service?" We will turn to a metaphor to explain that one: think of services as a mechanical watch with hands, numbers, and an internal mechanism. The hands and numbers are the "interface," and the mechanism is the "code." To do more than simply tell time—to function as a stopwatch, for example—a watch would need additional components, such as mechanisms to start and stop the time, to display the elapsed time, and to reset the timer. Those operations are essentially simple services.
To be useful, the service orientation needs to exist everywhere across applications and systems. The emphasis here should be on the word across. As opposed to the old model of developing applications using proprietary languages, customized interfaces, and hard-wired packages of functionality, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access