Recall in Part 1 that, in a Service-Oriented Architecture (SOA), we strive to develop practical services that provide interfaces in terms of protocols and functionality. And the reason, is to enable us to build powerful systems based on new and existing services. Since layered-design is often limiting because of tight-coupling, a loosely-coupled architecture based on exposing valuable components as services is what we need. These services become valuable assets for the present and future of the enterprise.
If we simply take component-based design to establish our valuable assets, develop the components with a layered-design approach, and expose them as services, we get the true benefits of a Service-Oriented Architecture. First, let’s look at how we can extend the layered-design approach to accommodate exposing our component-based assets as services.
As you can see, we preface the business logic layer with a service layer to expose our business functionality as service(s). The services must provide a well-defined interface, produce well-understood functionality, and communicate via standard protocols. Architecting and designing with this approach is the heart of SOA and yields major benefits for the enterprise.
Looking at this component-based diagram from Part 1, understand that each component can be developed with this approach, and some components can easily make use of others without requiring duplication of effort, modifications, and re-testing. Of course only the components that produce services others consume (or may one day consume) need to be given an abstract interface and exposed as a service.
We will discuss how SOA benefits enterprise integration with mobile platforms in Part 3.
See you soon!