Unit-4 (Service Oriented Architecture)
Unit-4 (Service Oriented Architecture)
Service-Oriented Architecture
Service-Oriented Architecture (SOA) is a stage in the evolution of application development
and/or integration. It defines a way to make software components reusable using the
interfaces.
Formally, SOA is an architectural approach in which applications make use of services
available in the network. In this architecture, services are provided to form applications,
through a network call over the internet. It uses common communication standards to speed
up and streamline the service integrations in applications. Each service in SOA is a
complete business function in itself. The services are published in such a way that it makes
it easy for the developers to assemble their apps using those services. SOA allows users to
combine a large number of facilities from existing services to form applications.
SOA encompasses a set of design principles that structure system development and
provide means for integrating components into a coherent and decentralized system.
SOA-based computing packages functionalities into a set of interoperable services,
which can be integrated into different software systems belonging to separate business
domains.
The different characteristics of SOA are as follows :
o Provides interoperability between the services.
o Provides methods for service encapsulation, service discovery, service composition,
service reusability and service integration.
o Facilitates QoS (Quality of Services) through service contract based on Service Level
Agreement (SLA).
o Provides loosely couples services.
o Provides location transparency with better scalability and availability.
o Ease of maintenance with reduced cost of application development and
deployment.
There are two major roles within Service-oriented Architecture:
1. Service provider: The service provider is the maintainer of the service and the
organization that makes available one or more services for others to use. To advertise
services, the provider can publish them in a registry, together with a service contract that
specifies the nature of the service, how to use it, the requirements for the service, and the
fees charged.
2. Service consumer: The service consumer can locate the service metadata in the registry
and develop the required client components to bind and use the service.
Services might aggregate information and data retrieved from other services or create
workflows of services to satisfy the request of a given service consumer. This practice is
known as service orchestration Another important interaction pattern is service
choreography, which is the coordinated interaction of services without a single point of
control.
Functional aspects
The functional aspect contains:
o Transport - It transports the service requests from the service consumer to the service
provider and service responses from the service provider to the service consumer.
o Service Communication Protocol - It allows the service provider and the service
consumer to communicate with each other.
o Service Description - It describes the service and data required to invoke it.
o Service - It is an actual service.
o Business Process - It represents the group of services called in a particular sequence
associated with the particular rules to meet the business requirements.
o Service Registry - It contains the description of data which is used by service
providers to publish their services.
Quality of Service aspects
The quality of service aspects contains:
o Policy - It represents the set of protocols according to which a service provider make
and provide the services to consumers.
o Security - It represents the set of protocols required for identification and
authorization.
o Transaction - It provides the surety of consistent result. This means, if we use the
group of services to complete a business function, either all must complete or none of
the complete.
o Management - It defines the set of attributes used to manage the services.
So, SOA (an architectural strategy) and SaaS (a business model) cannot be directly
compared. However, to get the maximum benefits of cost reduction and agility, it is highly
recommended that enterprises integrate SOA and SaaS together.
Difference Between IaaS and SaaS
Businesses have finally understood the power of the cloud and how they can use the full
potential of the cloud to manage their everyday business operations and processes. Cloud
computing makes business operations more flexible by changing the way product are
designed, produced and marketed. Cloud technology is not just a service but a set of
approaches that can help businesses effectively and efficiently meet their computing needs in
real time without worrying about the complexities. But with load of applications running on
different cloud delivery models, it is necessary to understand which delivery model works
best for you. That being said, we take a look at the two most common cloud service delivery
models – Iaas and SaaS.
What is IaaS?
Infrastructure as a Service (IaaS) is usually the first step in organizational planning that
encourages a move from the legacy on-premise systems to the cloud. IaaS is a type of cloud
computing that offers and manages instant computing infrastructure over the internet. It
simply allocates virtualized computing resources to the user meaning the user gets access to
everything from hardware and software to computing power, storage, networking and other
infrastructure components. The user, however, does not manage the cloud infrastructure but
decides which operating systems run on it, the storage and the applications to be rolled out.
IaaS promises centralization, automation and standardization that will simplify user
experience and reduce costs. In IaaS, third-party cloud providers host servers, software,
hardware, and other infrastructure facilities for the users. Businesses no longer have to
purchase and manage their own equipment; in fact, the cloud provider handles everything by
moving hardware and virtualization the cloud. Azure and AWS are two of the most powerful
IaaS companies out there.
What is SaaS?
Software as a Service, also known as SaaS, is a software delivery model that allows users to
connect to and use cloud-based applications over the Internet. Those applications are easily
accessible through a simple interface, such as a web browser, as a service. In SaaS, third
party software vendors take care of everything from maintenance of the software to
maintenance of the data center, the backup and the support of the system. This is very
different from the traditional on-premise service model, where the companies used to buy a
perpetual license by paying a one-time fee but continue to paying a maintenance fee. Users
had to buy a server, an operating system, a database license, and license to the CRM system.
But with the current SaaS model, the software vendors take care of everything for you based
on a subscription model where you get to pay only for the services you’re using.
Features
– One of the most important key features of IaaS systems is that the services are offered on a
subscription basis meaning users only have to pay for the resources that are being used. IaaS
Er.Binay Yadav Page 6
Unit-4 (Service Oriented Architecture)
promises centralization, automation and standardization that will simplify user experience
and reduce costs. And the users get access to GUI and API-based applications within the
service provider’s infrastructure. With SaaS, users get access to a state-of-the-art facility
without having to make a large investment. The software vendors take care of everything
from maintenance of the software to maintenance of the data center, the backup and the
support of the system.
Example
– There are many examples of IaaS vendors and providers. Amazon Web Services (AWS)
and Microsoft Azure are two of the most powerful IaaS companies that provide virtualized
computing resources to the businesses around the world. Other IaaS companies are
OpenStack, Rackspace, GoGrid, IBM, Savvis, and more. Examples of SaaS include
Dropbox, Google Workspace, Salesforce, Cisco WebEx, Concur, Netflix, Shopify, Slack,
etc.
Once services are created, they can be combined into more complex services,
applications or business processes.
As receives are loosely coupled, they can be combined and reused with maximum
flexibility.
3) Consume:
This phase is concerned with the usage of the already created services by other IT
systems or end users.
It delivers new, dynamic applications that enable insight into business performance.
Service-Oriented Computing
Service-Oriented Computing (SOC) is the computing paradigm that utilizes services as
fundamental elements for developing applications/solutions. Services are selfdescribing,
platform-agnostic computational elements that support rapid, low-cost composition of
distributed applications. Services perform functions, which can be anything from simple
requests to complicated business processes. Services allow organizations to expose their core
competencies programmatically over the Internet (or intra-net) using standard (XML-based)
languages and protocols, and be implemented via a self-describing interface based on open
standards.
Services are offered by service providers - organizations that procure the service
implementations, supply their service descriptions, and provide related technical and
business support. Since services may be offered by different enterprises and communicate
over the Internet, they provide a distributed computing infrastructure for both intra and cross-
enterprise application integration and collaboration. Clients of services can be other solutions
or applications within an enterprise or clients outside the enterprise, whether these are
external applications, processes or customers/users. Consequently, to satisfy these
requirements services should be:
• Technology neutral: they must be invocable through standardized lowest common
denominator technologies that are available to almost all IT environments. This implies that
the invocation mechanisms (protocols, descriptions and discovery mechanisms) should
comply with widely accepted standards.
• Loosely coupled: they must not require knowledge or any internal structures or conventions
(context) at the client or service side.
• Support location transparency: services should have their definitions and location
information stored in a repository such as UDDI and be accessible by a variety of clients that
can locate and invoke the services irrespective of their location.
Services come in two flavors: simple and composite services. The unit of reuse with services
is functionality that is in place and readily available and deployable as services that are
capable of being managed to achieve the required level of service quality. Composite
services involve assembling existing services that access and combine information and
functions from possibly multiple service providers.
What can you do with SOA?
There are several things that can be done with SOA:
1. Making a Reliable Service
It could be used to make a reliable service.
It could be used to make a reliable service which contains the following features:
Improved information flow.
Ability to expose internal functionality.
Organizational flexibility.
2. Making Reusable Service
One of the main use of SOA is to make a reusable service. Therefore, SOA concepts could
be easily used and implemented to make a service that is not limited to a single component
but could be used in multiple components.
3. Configuration Flexibility
It is highly flexible and could be easily configured as per our needs.
4. For Developing new Function Combinations
It could be used for developing new functions combinations rapidly as per need or
requirement.
What Does Service-Oriented Business Application (SOBA) Mean?
A service-oriented business application (SOBA) is considered the fruit of a service-oriented
architecture (SOA). SOBAs empower businesses to dynamically compose and decompose
applications as per their business requirements.
SOBAs are relatively new and are in the evolution stage, although they have been
implemented by many organizations.
SOBAs represent the anticipated end state of the SOA vision. SOBAs are business apps that
perform in a service-oriented setting to deliver discrete units of business-level performance
by means of well-defined service contracts. This is done by keeping the services self-
contained and encapsulated. Within the SOA environment, these services may be
dynamically merged as per the requirements of the organizations.
Many businesses are adopting the utilization of SOBAs in their SOAs and also in their
integration framework. SOBAs will eventually connect business applications like enterprise
resource planning (ERP), customer relationship management (CRM) and supply chain
management (SCM) in real time.
SOBAs integrate and assist Web services, adhering to standards, including WSDL and
SOAP.
According to Charles Abrams, who coined the term, in order for business-process fusion to
happen, SOBAs are crucial. SOBAs ensure real-time usage of structured information, which
permits enterprises to become more competitive. Moreover, it is anticipated that SOBAs will
transform the application environment.