2007. 11. 2. 18:45Programming/Web

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 timeto function as a stopwatch, for examplea 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, in a service-based world, composite applications are created using a potentially infinite combination of services drawn from these existing applications. It's critical that the service orientation be able to draw upon any application and any database in the system, or else the usefulness of the architecture is crippled from the very beginning.

SOA has led to the creation of many related terms, some that were created because of SOA and others that were given new life. The term loosely coupled, for example, refers to a property of systems in which the complexity of the system is partitioned inside a small number of building blocks that are connected in clearly defined ways. Loose coupling means that the building blocks do not depend on each other in complex ways and can easily be rearranged to meet new challenges. The idea of the service grid has also gained a lot of currency. A service grid is an infrastructure of many different services all designed to work together. Many terms such as these are being created every year as new ideas emerge.

2007/08/16 - [Program] - Mashup 관련 참고문서
2007/06/02 - [Program] - Microsoft Silverlight WPF/E를 한눈에 보여주는 동영상