Service-Oriented Computing
Introduction
“The Service-Oriented Computing (SOC) paradigm
utilizes services as fundamental elements to support the
development of rapid, low-cost and easy composition of
distributed
applications
even
in
heterogeneous
environments.”
- Mike P. Papazoglou
Services
are
autonomous,
platform-independent
computational elements that can be described,
published, discovered, orchestrated and programmed
using XML artifacts.
What is Service ?
An entity that provides some capability to its
clients by exchanging messages (request - response).
3
How services relate?
4
Because service A has access to service B’s service
description, service A has all the information it needs to
communicate with service B.
How services communicate?
5
How services encapsulate logic?
6
services perform encapsulated business functions such
as:
1.
a self-contained business task
– a funds withdrawal or
funds deposit service;
2.
a full-fledged business process
– the automated
purchasing of office supplies;
3.
an application
– a life insurance application or demand
forecasts and stock replenishment; or
4.
a service-enabled resource
– access to a particular
back-end database containing patient medical records.
Service Interface and Implementation
The service interface
defines service functionality visible
to the external world and provides the means to access
this functionality.
– The service describes its own interface characteristics, i.e., the operations available, the parameters, data-typing and the access protocols.
The service implementation
realizes a specific service
interface whose implementation details are hidden from
its users.
Within an enterprise (enterprise application integration)
Accelerate and reduce the cost of integration
Save on infrastructure deployment and management costs Reduce skill requirements
Improve reuse
Between enterprises (e-Business integration)
Providing service to a company’s customers
– e.g., an Insurance company wishes to link its systems to the systems of a new institutional customer
Accessing services from a company’s partners and suppliers
– e.g., dynamically link to new partners and suppliers to offer their services to complement the value the company provides
What is Service Oriented Computing(SOC)?
Promotes the idea of assembling application components into
a network of services to create applications.
Uses “services-oriented” programming to develop application
by using network-available services.
Web services are currently the most promising SOC-based
technology. Uses internet-based standards:
– Simple Object Access Protocol (SOAP)
– Web Services Description Language (WSDL)
– Business Process Execution Language for Web Services (BPEL4WS)
SOC and SOA
SOC vision
:
it will be possible to easily assemble application components into a loosely coupled network of services. These services is used to create dynamic business process and agile applications across organizations and computing platforms.
Key to achieve this vision
:
Service-oriented Architecture
(SOA):
A service?
– A repeatable business task, for example: Open an account
Perform a credit check
A service-oriented architecture?
– An IT architectural style that supports integrating your business as linked services
– Open, standard communication protocols for integrating applications and information sources
What is loose coupling?
SOA is an architectural style with characteristics such as loose coupling, reuse, and simple and composite implementations
Loosely coupled services, even if they use incompatible system technologies, can be joined together dynamically to create composite services or disassembled just as easily into their functional components
Service requesters depend on the interface and not on the
service provider’s implementation
Various aspects of service interactions such as time
Definition
Service Oriented Computing
SOC is an emerging cross-disciplinary paradigm for
distributed computing that is changing the way software
applications are designed, architected, delivered and
consumed
Service Oriented Architecture
An architectural style of building software applications
that promotes loose coupling between components so
that you can reuse them and work within a distributed
systems architecture
Service-Oriented Architecture
object-oriented and service-oriented computing paradigms
SOC is evolved from the Object-oriented computing paradigm;
however there are significant differences between them.
Features Object-Oriented Computing Service-Oriented Computing
Methodology Application development by
Identifying tightly coupled classes.
Application architecture is hierarchical based on the inheritance relationships.
Application development by identifying loosely coupled services and composing them into executable applications.
Level of abstraction and
cooperation
Application development is often delegated to a single team
responsible for the entire life cycle of the application. Developers must have knowledge of application domain and programming.
object-oriented and service-oriented computing paradigms
Features Object-Oriented Computing Service-Oriented Computing
Code sharing and reuse
Code reuse through inheritance of class members and through library functions. library functions have to be imported at compilation time and are platform dependent.
Code reuse at the service level. Services have standard interfaces and are published on Internet repository. They are platform-independent and can be searched and remotely accessed.
Dynamic binding and recomposition
Associating a name to a method at runtime. The method must have been linked to the executable code before the application is deployed.
Binding a service request to a service at runtime.
The services can be discovered after the application has been deployed. This feature allows an application to be recomposed at runtime.
System maintenance
Users need to upgrade their
software regularly. The application has to be stopped to perform the upgrading.
Service design principles
Services are loosely coupled
– A service is defined solely by an implementation-independent interface – Services should be able to change their implementation without impacting
service consumers
Services are location transparent
– Services should not expose any of the deployment details at their interface – Location transparency is achieved by the use of services brokers, service
registries, or other intermediaries to connect the service consumer to the service provider
Services are interoperable
– Service interoperability highlights the need for standardized interfaces and the adoption of open standards
Services are composable
Foundation (service-oriented middleware and basic functions) Composition Management and monitoring Basic services Composite services Managed services Service characteristic: • Semantics
• Nonfunctional characteristics • Quality of Service (QoS) Service characteristic: • Semantics
• Nonfunctional characteristics • Quality of Service (QoS)
Service client Service client Service provider Service provider Metrics State management Load balancing Change management Discovery Selection Binding Discovery Selection Binding Publication Publication Capability Interface Behavior Capability Interface Behavior Service aggregator Service aggregator Service operator Service operator Coordination Conformance Transaction Coordination Conformance Transaction Role actions Performs Publishes Uses Become Role actions Performs Publishes Uses Become 19
Consists of service-oriented middleware backbone that realizes
the runtime SOA infrastructure that connects heterogeneous
components and systems.
Basic service funcionality definition: description, publishing,
finding and binding of services.
The concept of
Enterprise Services Bus(ESB)
– a capable
and manageable integration infrastructure for web services and
SOA.
Two objectives of ESB:
– Loosely couple the systems taking part in the integration, and – Break up the integration logic into distinct, easily manageable
pieces.
20
Loose coupling is enabled by an ESB
An ESB (enterprise service bus) is an intermediary-oriented
approach
Instead of thinking about consuming services across a network, think of a service bus as a network of collaborating services
a set of applications exposed as services, plus a separate set of intermediary services that perform security, monitoring, and so forth
You can add new intermediaries without disrupting existing applications
22
Service Composition
It is the process of combining existing services, available
on the web, to provide value-added services as a
composite service[1].
23
Benefits of Services Composition
(i) (ii)
Benefits of Services Composition
Reduces customer’s transaction cost
(i.e. the costs incurred when acquiring a product or service, such as the cost of locating the websites of the different service providers, the cost of specifying the service requests, etc)
Customer does not need to provide the same information
(e.g. personal information, credit card details, and date of travel)
at
several locations
Total number of websites that needs to be visited
reduces to just one
Service management and Monitoring
Service management: A range of activities, from installation
and configuration to collecting metrics and tuning, to ensure
responsive service execution.
Service monitoring:
Monitoring events or information
produced by the services and processes; viewing
process-instance statistics; viewing the status of selected process
instances; and suspending, resuming or terminating selected
process instances.
References
1. Michael P. Papazoglou, Paolo Traverso, Schahram Dustdar, Frank Leymann, Service-Oriented Computing :Research Roadmap, International Journal of Cooperative Information Systems Vol. 17, No. 2 (2008) 223–255
2. Thomas Erl, Service-Oriented Architecture: Concepts, Technology, and Design, PH PTR