Friday, October 27, 2006

[Arch] SOA is not a technology

Currently working in a SOA project I often discuss with people who associate SOA with Web Services. Please keep in mind that Service Oriented Architecture is an architectural style or architecture pattern. And more important, SOA is independent of any technology. Web Services are one possible solution to realize SOA.

The best definition about Service Oriented Architecture I found in "Enterprise SOA - Best Practices" written by Dirk Krafzig. He defines a Service-Oriented-Architecture as a software architecture that based on the key concepts of an application frontend, service, service repository, and service bus.

The idea of SOA is not realy new! Thinking about component based development, developers try to develop reused components. The reuse is also the main focus of SOA. Instead of components, in a SOA, everything is a service. This could be a component, a business process, an activity of a business process and something else.
The organizational turntable is the service repository, where all services of an organazation will be published and later reuesed by other services and processes . Services can be called directly or over a service bus, often called Enterprise Service Bus (ESB). The repository is used by a wide range of users, including developers and business analysts. It provides a structural deposition and different levels of descriptions of services. With a good structure and service description it should be easy to find and understand the services provided by an organization.

At this point it becomes clear that SOA is not a technical challenge but an organizational task. An organization which will realize a Service Oriented Architecture must be capable to identify and understand their services and how to organize them. This is the key point when develop a Service Oriented Architecture and not the used technology.

No comments: