Service-Oriented Software Engineering
Service-Oriented Software Engineering
Web Service
Intangible
Non-ownership Performance
The concept that service The essence of service
does not confer delivery without physical
ownership of production ownership.
factors.
Service Offering
The act of providing a
service to another party.
Services are reusable components that are independent (no requires interface) and are
loosely coupled. A web service is:A loosely coupled, reusable software component that
encapsulates discrete functionality, which may be distributed and programmatically accessed.
A web service is a service that is accessed using standard Internet and XML-based protocols.
Services are platform and implementation-language independent.
Web Service
Platform Independent Loosely Coupled
Standard Protocols
Internet Protocols
XML-Based Protocols
Usage-Based Public
Payment Accessibility
Service-oriented architectures
Service-oriented software engineering is as significant as object-oriented software
engineering. Building applications based on services allows companies and other
organizations to cooperate and make use of each other's business functions. Service-based
applications may be constructed by linking services from various providers using either a
standard programming language or a specialized workflow language.
Services
Executed on
Different
Need to
Computers
Build Link Services Standard
Service- from Various Protocols for
oriented Providers Communication
Different
Applications Service
Providers
Different
Computers
Service-
Different
oriented Stand-alone
Service
Architecture Services
Providers
(SOA) Service
Communication
Standard
Protocols
Information
Exchange
Benefits of SOA:
• Services can be provided locally or outsourced to external providers
• Services are language-independent
• Investment in legacy systems can be preserved
• Inter-organizational computing is facilitated through simplified information exchange
Local or
Language
Outsourced
Independence
Services
Simplified
Legacy System
Information
Preservation
Exchange
Key standards:
• SOAP (Simple Object Access Protocol): a message exchange standard that supports
service communication
• WSDL (Web Service Definition Language): allows a service interface and its bindings
to be defined
• WS-BPEL (Web Services Business Process Execution Language): a standard for
workflow languages used to define service composition
WS-BPEL SOAP
A standard for workflow A message exchange
languages used to define standard that supports
service composition service communication
WSDL
Allows a service
interface and its
bindings to be defined
Software
Development with Service
Services Engineering
Emphasizes
Focuses on
developing
creating
software where
dependable,
services are core
reusable services
components
A service can be defined as:A loosely coupled, reusable software component that
encapsulates discrete functionality which may be distributed and programmatically accessed.
A web service is a service that is accessed using standard Internet and XML-based protocols.
Service
Standard XML-based
Internet Protocols
Protocols
A critical distinction between a service and a component as defined in CBSE is that services
are independent. Services do not have a 'requires' interface. Services rely on message-based
communication with messages expressed in XML.
Service Component
Enables independent, Requires interface for
message-based interaction
communication
The service interface is defined in a service description expressed in WSDL (Web Service
Description Language). The WSDL specification defines:
• What operations the service supports and the format of the messages that are sent
and received by the service. The 'what' part of a WSDL document, called an interface,
specifies what operations the service supports, and defines the format of the
messages that are sent and received by the service.
Supported
Operations
Interface
Message
WSDL Formats
Operations
Document
Message
Formats
• How the service is accessed - that is, the binding maps the abstract interface onto a
concrete set of protocols. The 'how' part of a WSDL document, called a binding, maps
the abstract interface to a concrete set of protocols. The binding specifies the
technical details of how to communicate with a Web service.
Technical
WSDL Abstract Concrete
Binding Communication
Document Interface Protocol Set
Details
• Where the service is located. This is usually expressed as a URI (Universal Resource
Identifier). The 'where' part of a WSDL document describes the location of a specific
Web service implementation (its endpoint).
Endpoint Interface
Defines
Specifies service
operations and
location
message formats
Binding
Maps interface to
protocols
RESTful services
Current web services standards have been criticized as 'heavyweight' standards that are
over-general and inefficient. REST (REpresentational State Transfer) is an architectural style
based on transferring representations of resources from a server to a client. This style
underlies the web as a whole and is simpler than SOAP/WSDL for implementing web
services. RESTful services involve a lower overhead than so-called 'big web services' and are
used by many organizations implementing service-based systems.
REST
Overhead Web Services
Usage
Organizations
Service-based Applications
RESTful Architecture
Resource Representations
The core data element Different formats in
in RESTful systems, which resources can
representing various exist, enhancing
data types. flexibility.
Resource operations:
• Create - bring the resource into existence.
• Read - return a representation of the resource.
• Update - change the value of the resource.
• Delete - make the resource inaccessible.
Create Read
The Web is an example of a system that has a RESTful architecture. Web pages are
resources, and the unique identifier of a web page is its URL.
• POST: is used to create a resource. It has associated data that defines the resource.
• GET: is used to read the value of a resource and return that to the requestor in the
specified representation, such as XHTML, that can be rendered in a web browser.
• PUT: is used to update the value of a resource.
• DELETE: is used to delete the resource.
HTTP
Methods
Lack of Standards
Informal Documentation
Service Users Reliance
Service engineering
Service engineering is the process of developing services for reuse in service-oriented
applications. The service has to be designed as a reusable abstraction that can be used in
different systems. Generally useful functionality associated with that abstraction must be
designed and the service must be robust and reliable. The service must be documented so
that it can be discovered and understood by potential users.
Design as
Reusable
Abstraction
Ensure
Develop
Service Robustness
Reusable
Engineering and
Services
Reliability
Document
for
Discovery
Service Engineering
Service Design
Designing logical
interfaces and
implementation
methods for services.
Service Candidate Service
Identification Implementation
Identifying potential Implementing, testing,
services and defining and deploying services
requirements based on for use.
business processes.
• Service candidate identification, where you identify possible services that might be
implemented and define the service requirements. It involves understanding an
organization's business processes to decide which reusable services could support
these processes.
Utility General
Services Functionality
Three
Specific
Fundamental Business
Business
Types of Services
Functions
Services
Coordination Composite
Services Processes
• Service design, where you design the logical service interface and its implementation
interfaces (SOAP and/or RESTful). Involves thinking about the operations associated
with the service and the messages exchanged. The number of messages exchanged
to complete a service request should normally be minimized. Service state information
may have to be included in messages.
Design Logical
Service
Interface? Include
Design Define SOAP Minimize
Service
Service Service Messages
State
Interface Operations Implement RESTful Exchanged
Information
Communication
Protocols?
Logical
Interface
Message
Design
Design (SOAP) Interface
Design (REST)
Define service
requirements Structure SOAP
and operations messages and Map operations
convert to to REST and
WSDL define
resources
• Service implementation and deployment, where you implement and test the service
and make it available for use. Programming services using a standard programming
language or a workflow language. Services then have to be tested by creating input
messages and checking that the output messages produced are as expected.
Deployment involves publicizing the service and installing it on a web server. Current
servers provide support for service installation.
Publicize
Service
Implement Deploy
Test Service
Service Service
Install on Web Server
Web Server Support
Service composition
Existing services are composed and configured to create new composite services and
applications. The basis for service composition is often a workflow. Workflows are logical
sequences of activities that, together, model a coherent business process. For example,
provide a travel reservation services which allows flights, car hire and hotel bookings to be
coordinated.
Test Completed
Service
Create Workflow
Conduct testing on Program
the completed
Transform the
composite service
workflow design into
an executable
program
Refine Workflow
Select Possible
Add detail to the
Services
workflow and adjust
activities Choose services
based on
functionality, cost,
Discover Services and quality
Search for existing
services in registries
Formulate Outline
or catalogs
Workflow
Create an ideal
service design based
on requirements