Unit-4 (Service Oriented Architecture)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

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.

Er.Binay Yadav Page 1


Unit-4 (Service Oriented Architecture)

Components of service-oriented architecture


The service-oriented architecture stack can be categorized into two parts - functional aspects
and quality of service aspects.

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.

Er.Binay Yadav Page 2


Unit-4 (Service Oriented Architecture)

What are the basic principles of service-oriented architecture?


Guiding Principles of SOA:
1. Standardized service contract: Specified through one or more service description
documents.
2. Loose coupling: Services are designed as self-contained components, maintain
relationships that minimize dependencies on other services.
3. Abstraction: A service is completely defined by service contracts and description
documents. They hide their logic, which is encapsulated within their implementation.
4. Reusability: Designed as components, services can be reused more effectively, thus
reducing development time and the associated costs.
5. Autonomy: Services have control over the logic they encapsulate and, from a service
consumer point of view, there is no need to know about their implementation.
6. Discoverability: Services are defined by description documents that constitute
supplemental metadata through which they can be effectively discovered. Service
discovery provides an effective means for utilizing third-party resources.
7. Composability: Using services as building blocks, sophisticated and complex
operations can be implemented. Service orchestration and choreography provide a solid
support for composing services and achieving business goals.
Advantages of SOA:
 Service reusability: In SOA, applications are made from existing services. Thus,
services can be reused to make many applications.
 Easy maintenance: As services are independent of each other they can be updated and
modified easily without affecting other services.
 Platform independent: SOA allows making a complex application by combining
services picked from different sources, independent of the platform.
 Availability: SOA facilities are easily available to anyone on request.
 Reliability: SOA applications are more reliable because it is easy to debug small
services rather than huge codes
 Scalability: Services can run on different servers within an environment, this increases
scalability
Disadvantages of SOA:
 High overhead: A validation of input parameters of services is done whenever services
interact this decreases performance as it increases load and response time.
 High investment: A huge initial investment is required for SOA.
 Complex service management: When services interact they exchange messages to
tasks. the number of messages may go in millions. It becomes a cumbersome task to
handle a large number of messages.
What is an ESB in service-oriented architecture?
An enterprise service bus (ESB) is software that you can use when communicating with a
system that has multiple services. It establishes communication between services and service
consumers no matter what the technology.
Benefits of ESB
An ESB provides communication and transformation capabilities through a reusable service
interface. You can think of an ESB as a centralized service that routes service requests to the
appropriate service. It also transforms the request into a format that is acceptable for the
service’s underlying platform and programing language.

Er.Binay Yadav Page 3


Unit-4 (Service Oriented Architecture)

What are the limitations in implementing service-oriented architecture?


Limited scalability
System scalability is significantly impacted when services share many resources and need to
coordinate to perform their functionality.
Increasing interdependencies
Service-oriented architecture (SOA) systems can become more complex over time and
develop several interdependencies between services. They can be hard to modify or debug if
several services are calling each other in a loop. Shared resources, such as centralized
databases, can also slow down the system.
Single point of failure
For SOA implementations with an ESB, the ESB creates a single point of failure. It is a
centralized service, which goes against the idea of decentralization that SOA advocates.
Clients and services cannot communicate with each other at all if the ESB goes down.
Difference between Cloud computing and SOA.
Cloud Computing SOA
Cloud computing is information on SOA is service on demand.
demand.
Internet based computing. Technology based computing.
Service is delivered over the internet. Service is delivered by interacting
with various other services or
software.
Here the client inheriting this Here the client needs a technology
application need a system and provider along with various services.
internet service to implement cloud
computing.

What is the difference between SaaS and SOA?


 Software as a Service (SaaS) is a way to use software that a third-party provider
offers, similar to telephone or energy companies. It is a sales and distribution model.
In simpler terms, SaaS is a means of delivering software as services over the internet
to its subscribers, while SOA is an architectural model in which the smallest unit of
logic is a service.
 Service Oriented Architecture (SOA) is a way to design and build software. It is a
model for creating software. SOA is a manufacturing model which deals with
designing and building software by applying the service oriented computing principles
to software solutions, while SaaS is a model for sales and distribution of software
applications.
SaaS and SOA are both popular models because both deliver savings on IT operations. They
do this by aligning business needs and IT products in their own flexible way. However, the
way we realize those savings is the main difference. And in many ways it is often best to
incorporate both SOA and SaaS into our IT platform to achieve the most cost savings and
integration benefits.

Er.Binay Yadav Page 4


Unit-4 (Service Oriented Architecture)

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.

Er.Binay Yadav Page 5


Unit-4 (Service Oriented Architecture)

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.

Difference between IaaS and SaaS


Model
– What IaaS is to infrastructure, SaaS is to software and applications. IaaS is about managing
computing resources in the cloud – servers, hardware, software, networks and other
infrastructure components, and everything is managed by the cloud providers. The user is
only responsible for handling everything else, such as OS, middleware, data and application
software. SaaS, on the other hand, is a software delivery model that allows users to connect
to and use cloud-based applications over the Internet. In SaaS, the software vendors take care
of everything for the users while the users consume the services that are provided based on a
subscription based model.
Services
– IaaS providers offer a range of services as pay-as-you-go and host resources on which the
user builds the infrastructure. They provide all the infrastructure support such as storage
requirements, networking resources, web and application servers, and other computing
resources. IaaS providers simply rent infrastructure for the purpose of running applications.
SaaS providers offer their services for a variety of business applications including
billing/payroll management, CRM, email and collaboration, sales management, and more.
These applications are easily accessible through a simple interface, such as a web browser or
through an app.

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.

SOA Life Cycle


 service orientation ties together autonomous sources of information bridging a wide
range of operating systems, technology and communication process.
 This service orientation process is an iterative and incremental process.
 It consists of creating (exposing new services aggregating(composing ) these services
into larger composing applications and making the outputs available for consumption
by the business user.
 All these phases are driven by the business processes to meet the business
experiments.

Fig. SOA lifecycle


These phases are as follows:
1) Expose:
 This phase focuses on creation/extraction of services from existing application and
data.
 service creation can be time grained or course grained.
 As services are loosely coupled, they can be.
 It is also concerned with the implementation of these services.
2) Compose:

Er.Binay Yadav Page 7


Unit-4 (Service Oriented Architecture)

 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.

Er.Binay Yadav Page 8


Unit-4 (Service Oriented Architecture)

 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.

Er.Binay Yadav Page 9

You might also like