What indeed is Service Oriented Architecture (SOA)?
Currently, corporations and companies are attempting to share their application, information, and data to decrease procreate cost. They have bared their application’s functionality as services (usually web services) which can be joint and reused to pick up precise business requirements. There are more than a few definitions in a range of views for SOA inside the internet. The following meaning clarifies Service oriented architecture (SOA) from architectural sight:
“Service Oriented Architecture is an Architectural approach to integrate distributed applications that can disclose their functionalities into interoperable, reusable, discoverable, standard-based, and loose-coupled services to execute specific business process”
As already stated in above meaning, the base is separate, reusable business service to offer new and fresh business processes. However, some former component-based frameworks attempted to accomplish the similar aspire. There are a number of differences between the former approaches and SOA:
» CORBA, EJB, and DCOM are based on RPC technical methods that are relied on tightly coupled solutions in place of SOA which is relied on loosely-coupled approaches.
» Quite the opposite of Service Oriented Architecture (SOA), EJB and DCOM are attached to precise platforms and they are not interoperable.
» Not like CORBA, EJB, and DCOM, SOA is able to be implemented by a group of off the shelf as well as open source technologies.
» SOA uses XML for data demonstration which is effortless to comprehend and work whereas others solution use binary -based objects.
» Distinct other ways, SOA is above technology per se. this contains concepts like metadata definitions, service-level agreements (SLA), registries, and governance.
In reality, SOA is a considerable leaving from usual distributed computing solutions which Bartered objects and remote functions to the novel and service centric style.
Overview of Service Oriented Reference Architecture
Here is something that I learned from Ali Arsanjani and his friends in the paper which has been published by IBM. In this paper Service Oriented architecture (SOA) is defined as an extensible architectural framework that gives significant flexibility to align IT functions, goals, and business process. An SOA reduces cost; increases revenue, decuples reusable functions and allows an organization externalize quality-of-service (QoS) variations into indicative specification and related standards.
Indeed, creating SOA solution is meaningfully difficult. An architecture should figure out how to design an architectural framework with interconnect and transformation capability. The architecture should take into account how to create solution for reusability.
In order to meet such needs, they investigated projects from 2003 to 2006 to figure out what requirements an SOA architecture template or reference should take into account. Eventually, the Service – Oriented Stack (S3) was produced to provide detailed architectural definition of an SOA a cross nine layers.
Each layer has a logical and physical aspect. The logical facet contains all the architectural building blocks, options, design decisions, key performance indicators, and the like; the physical facet includes the realization of each logical facet using technology and products.
Their focus on that article was on logical aspect which addresses the conceptual of an SOA and the abstractions that must be presented. The authors consider two views of a functional service requirement:
1.Provider view: the business and technical capability that service must provide to gratify its consumers
2.Consumer view: the business and technical ability that the service is assumed to bring in the situation of the consumer alone.
The above picture shows the logical layers of Service Oriented Architecture (SOA) that are comparatively independent, which allows organization to choose any degree of consumer-provider integration. This SOA architecture shows the multiple division of concern in S3’s nine layers. S3 does not assume that provider and consumer are in the same place, so each of them can be in separate location.
Service Oriented References Architecture Layers
In order to create S3 they assume the collection of all functional and nonfunctional requirements establish SOA’s objective. They also assume the combination of layers can fulfill any service requirement and then for each layer service requirements use specific approach to impact that layer. In this SOA architecture identifying Service requirements and mapping them across all layers is very critical.
1.Operational Systems Layer
In SOA architecture all application assets that can be run in an IT operating environment are located into this layer. This layer consists of existing application software system, legacy application, Existing database, existing package such as CRM and ERP, monolithic custom application such as J2EE and .NET applications that can support business activities. Using existing assets help developers to reduce cost of implementation of new initiatives and developing business services.
2. Service Components Layer
In this layer, each of software components is the realization of service or their operation. Service components express both the functionality and QoS for each service. Service component compliantly supports service composition and layering of IT services and also provides an enforcement point to ensure QoS and Service Level Agreement (SLA). It can hide volatile implementation details from others. Indeed, service component provides the guarantee which promises to align IT implementation according to the service description so that any change in operation layer must not affect service component’s consumer.
3. Services Layer
This layer consists of all the services which are provided within an SOA. In this layer service is defined as an abstraction specification to provide detailed information for consumer to invoke specific business function exposed by provider.
4. Business Process Layer
In this layer, in order to provide composite services for significant business process, organizations assemble the services exposed in service layer. The business processes are like custom application such as loan application. An SOA support the business process by creating a composite service that can choreograph the information flow between a group of services and human actors. The Web Services Business Process Execution Language (WS-BPEL) enables organization to create business processes just by graphically modeling and manipulating the process flow.
5. Consumer Layer
This layer handles interaction with users or other software so that organization can deliver existing IT functions and data to users or applications according to user priorities. The front-end of business processes and composite services can be created by organization to enable channel independent access to business process and Service exposed within an SOA. The Web Service for Remote Portlets (WSRP) is an open source standard for providing front-end access mechanism which is able to decrease development and implementation cycle time and maintenance cost.
Another technology that can be used to decouple the user interface from consumer layer is AJAX which exchanges XML content over HTTP without refreshing web browser.
6. Integration Layer
In this SOA architecture, integration layer enables to intelligently route (content based and high availability), mediate, and transport service request from consumer to the service provider. In order to provide Qos, communication, invocation enforcement between adjacent layers, an SOA usually places requirements in this layer. In ESB, XSLT functions transform the response to HTML and XML.
7. Quality of Service Layer
This layer provides the most important part of SOA to deal with the non-functional requirements for ensuring that an SOA meets its requirement regarding to scalability, availability, manageability, reliability, and security.
8.Information Architecture Layer
This layer makes sure that an organization contains key considerations affecting data and information architectures, which an organization able to use to produce business intelligence through data marts and warehouses. This layer contains stored metadata content.
9.Governance and Policies Layer
This layer includes all aspects of managing the business operations life cycle and contains all policies from manual governance to WS-Policy. “It provides guidance and policies for managing service-level agreements, including capacity, performance, security, and monitoring.”
in the next section you will learn about SOMA which is a software development life cycle method for providing and developing SOA architecture