Service Oriented Architecture (SOA) Foundation
A Service-Oriented Architecture (SOA) is a design methodology used to develop software based on interoperable services. Actually, these services are the IT capabilities that are provided to components using a communication network.
SOA extends both enterprise and application architecture domains and its real power can be realized when it is applied across heterogeneous environments.
We can simply state that SOA promotes service-orientation through the use of web services. Organizations compliant with SOA are known as the service-oriented enterprise (SOE), where all business processes are composed of and exist as a service.
Due to the following characteristics, SOA, stands out to be the choice of developers nowadays and it is a strong pillar for the cloud computing paradigm:
- Refurbished and reusable : Services can be reused multiple times for multiple processes.
- Loosely coupled : Services are designed to be independent with minimum dependency on implementation.
- Platform independent : The base of services in the XML format.
- Based on standards : The service design is based on WSDL and SOAP standards.
Web Services and SOA
Web services are the technical foundations of SOA that include the concept of interoperability. They are independent software accessed over a network through standard protocols.
Web services have a prescribed interface on which they are written. There are constraints applied and policies as per the specified service description.
Services are described in terms of the message accepted and generated. The figure below represents the basic web service administration architecture.
On the basis of the above service description, SOA as defined by IBM is as follows:
“SOA is a business-centric IT architectural approach that supports integrating your business as linked, repeatable business tasks, or services.”
The figure below shows SOA from a viewpoint of service providers, consumers and the service registry.
It provides all kinds of service-related operations like service registration, service discovery, exception handling, platform independence, interoperability, and so on.
It is a human or a system that uses service(s) supported by SOA and which has a valid entry in the service registry.
It is the connection between service providers and service customers. Both the service provider and service consumer needs to register themselves to service registry before starting providers to discover services. The registry is constantly updated with services and their information.
There are three core components in an SOA communication model:
- Extensible Markup Language (XML)
- Simple Object Access Protocol (SOAP)
- Web Services Description Language (WSDL)
Extensible Markup Language (XML)
Due to open standards and platform independence, SOA needs a common platform to form a mutual base of understanding. XML is at the core of this infrastructure because:
- XML is device independent and structured way to represent the content
- XML is compatible with different data formats in different applications across multiple platforms.
- XML is text-based which makes it natural, easily representable and flexible.
- XML is a generic language that underlies a web service. XML namespaces and XML schemas are widely used while creating a web service.
Simple Object Access Protocol (SOAP)
It is a universally accepted XML based messaging protocol through which a client calls a service remotely. SOAP relies on Hypertext Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP) for message negotiation and transmission. A SOAP message consists of three parts:
- An envelope
- A header
An envelope : Contains message content and the method to process it. It is actually a packaging method which indicated start and end of the message.
A Header : It is an optional part of the SOAP message and contains additional information such as authentication credentials, digital signature, and so on.
Body : It contains the actual application-defined XML data which needs to be exchanged between the web services.
Other major characteristics of SOAP message is Platform independence, Internet usability, natural language representation and well structured.
The figure below shows a simple SOAP message with elaborate elements.
Web Services Description Language (WSDL)
Aka service endpoint, is an XML-based descriptive language. WSDL has three parts:
Written in XML including definitions of both data types and message types.
Describe actions for the messages supported by a Web service. There are four types of operations:
- One-way : Messages sent without a reply required.
- Request/response : The sender sends a message and the received sends a reply.
- Solicit response : A request for a response. (The specific definition for this action is pending.)
- Notification : Messages sent to multiple receivers. (The specific definition for this action is pending.)
A port is defined by associating a network address with a port type. A collection of ports defines a service. These Services are further bind to a port using SOAP, CORBA, Internet Inter-ORB Protocol (IIOP), Java Message Service (JMS) and other protocol architectures.
Applications need the SOA infrastructure and SOA platform for successful execution and organization. The SOA infrastructure comprises three levels as illustrated in the figure below.
Core : This level performs core functions which include constructing, seeking and binding of web services. It constitutes the most important components like SOAP, WSDL, and UDDI.
Platform : This level is where the World Wide Web services are developed using some programming languages like J2EE and .NET.
QoS : This level tests if the evolved web service supports value of service.
Need of SOA
- Reengineering and reusability adds value to core investments
- Faster integration , agile and long-term value of interoperability
- Scalable and evolvable systems
- Rapid scale up and scale down as per organizational needs
Platform independence and compatibility with heterogeneous environment
- Semantic message-oriented interactions
- Build to change
- Build and deployed incrementally
- Loosely coupled
Business Process Management (BPM)
BPM is a dimension of operations management that emphasizes on refining and optimizing business processes through automation. BPM itself is not a technology but enables technologies to operate in such a way that the current processes get aligned to a desired and optimized state.
Reengineering and outsourcing are examples of BPM.
The figure below represents the complete life cycle of BPM.
Cloud computing implements BPM using the SaaS model. The business logic is deployed at the application server and data resides over the cloud.
BPM can also be employed as a PaaS model after deployment of its middleware capabilities for business processes. In fact, BPM in the cloud can be seen as a combination of BPM, PaaS and BPassS (Business Process as a Service) as shown in the figure below.
Business Process Management Platform as a Service – BPM PaaS
BPM PaaS is a complete pre-integrated BPM platform hosted in the cloud and delivered as a service for the deployment and execution of general-purpose business process application.
BPM suits combine the disciplines for managing processes, for example, business rules, SLAs, data , and resources with the enabling technology to facilitate their design and delivery. For example, process modeling, process execution engine, connectivity, and web forms.
Business Process as a Service – BPaaS
BPaaS represents the process outsourcing in which business processes like human resources, payroll, expense management, and so on are provided using the web.
Automatic scalability, high standards, on-demand processes are some features of BPaaS. These characteristics can reduce costs and improve the organization’s business agility.
Benefits of BPM with cloud
- It is cost efficient because BPM is delivered through SaaS in the cloud. There is no need to build a large and complicated IT infrastructure.
- It is time efficient because lack of substantial internal infrastructure results in rapid roll out business process management in the organization.
- It is agile in nature and enables the earlier adoption of process management.
- It automates manual flows, load balancing, exception handling and failovers.
Challenges of BPM with cloud
- High vulnerability to external intruders; therefore, firewalls are required but with expected quality of service.
- Service level agreements are a must to achieve dependable performance.
- Application integration: Many organizations are unwilling to use BPM with cloud until they completely migrate to their data over cloud.
- A Service-oriented Architecture (SOA) is a design methodology used to develop software based on interoperable services.
- SOA promotes service-orientation through the use of web services.
- Web services are the technical foundations of SOA.
- Web services are self-contained software capabilities that can be accessed via network protocols.
- Web services are independent software that can be accessed over a network through standard protocols.
- Service Provider, Service Consumer and Service Registry are the core components of SOA communication.
- XML, SOAP, and WSDL are the building blocks of a SOA message.
- BPM is refining and optimizing of business process through automation.
- Cloud computing implements BPM using the SaaS model. It can be seen as a combination of BPM PaaS and BPaaS.