In this article, we will learn:
- What is Service Oriented Architecture (SOA)?
- SOA Myths and Facts
- SOA Evolution
- Importance of SOA
- SOA Framework
- SOA Principles
- Difference between SOA and Traditional application Architecture?
What is Service Oriented Architecture (SOA)?
If we will ask this question, we will receive multiple definition. Here we will take the simplest definition to understand it better.
A loosely-coupled architecture designed to meet the business needs of the organization.
Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation. Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.
SOA Myth and Facts :
The, 80s saw object-oriented models; then came the component-based development model in the 90s; and now we have service orientation (SO).
Service orientation retains the benefits of component-based development (self-description, encapsulation, dynamic discovery and loading), but there is a shift in paradigm from remotely invoking methods on objects, to one of passing messages between services.
Schemas describe not only the structure of messages, but also behavioral contracts to define acceptable message exchange patterns and policies to define service semantics. This promotes interoperability, and thus provides adaptability benefits, as messages can be sent from one service to another without consideration of how the service handling those messages has been implemented.
Reference books, you may like:Programming WCF Services: Design and Build Maintainable Service-Oriented Systems
WCF Multi-Layer Services Development with Entity Framework, 4th Edition
Learning WCF: A Hands-on Guide
There are mainly three important observations on Service Orientation Model.
- SO incorporates concepts such as self-describing applications, explicit encapsulation, and dynamic loading of functionality at runtime – principles first introduced in the 1980s and 1990s through object-oriented and component-based development. What changes with SO is the metaphor with which developers achieve these benefits. Instead of using method invocation on an object reference, service orientation shifts the conversation to that of message passing – a proven metaphor for scalable distributed software integration.
- It is a set of architectural principles expressed independently of any product
- service orientation can and should be an incremental process
Importance of SOA ?
Service Orientated Architecture is important to several stakeholders:
There are no industry standards for service oriented architecture. Different industry sources published their own principle. Below are few important principles.
- Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
- Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
- Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
- Service reusability: Logic is divided into services with the intention of promoting reuse.
- Service autonomy: Services have control over the logic they encapsulate, from a Design-time and a Run-time perspective.
- Service statelessness: Services minimize resource consumption by deferring the management of state information when necessary
- Service discoverability: Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
- Service composability: Services are effective composition participants, regardless of the size and complexity of the composition.
- Service granularity: A design consideration to provide optimal scope and right granular level of the business functionality in a service operation.
- Service normalization: Services are decomposed or consolidated to a level of normal form to minimize redundancy. In some cases, services are denormalized for specific purposes, such as performance optimization, access, and aggregation.
- Service optimization: All else being equal, high-quality services are generally preferable to low-quality ones.
- Service relevance: Functionality is presented at a granularity recognized by the user as a meaningful service.
- Service encapsulation: Many services are consolidated for use under the SOA. Often such services were not planned to be under SOA.
- Service location transparency: This refers to the ability of a service consumer to invoke a service regardless of its actual location in the network. This also recognizes the discoverability property (one of the core principle of SOA) and the right of a consumer to access the service
Difference between Traditional application Architecture and Service Oriented Architecture?
In this article, we have learned all about SOA and the common useful analogies for understanding the nature of SOA.That includes:
- What is SOA
- SOA Evolution
- Importance of SOA
- SOA framework
- SOA Principles
- How is it different from Traditional application architecture
In Next article, we will learn, all about Service.
- What is Service and SOA capabilities on Microsoft platform
© 2015, admin. All rights reserved.