A Service-Oriented Architecture (SOA) is a system consisting of software components with standardized component-access and usage interfaces that are independent of any specific platform or implementation technology and it's solution for making two software to communicate to each other.
2. Agenda
• Introduction to service oriented
architecture
• Services as reusable components
• Service engineering
Service candidate identification
Service design
Service implementation and deployment
• Software development with services
• Key points
• References
3. Introduction to SOA
Evolution of System Architecture
The system layers
• Presentation Layer
• Business Logic Layer
• Data Access Layer
4. Introduction to SOA
Evolution of System Architecture(con. )
1-Tier Architecture
Presentation, business logic, and data access
are intertwined in one monolithic mainframe
application.
5. Introduction to SOA
Evolution of System Architecture(con. )
2-Tier Architecture
Separation of front end from other 2 layers
• Client/server systems with thin clients/fat clients
• Use RPC (Remote Procedure Calls) to communicate
between tiers
6. Introduction to SOA
Evolution of System Architecture(con. )
3-Tier Architecture
Separating data access layer from Business
logic (middleware)
7. Introduction to SOA
Evolution of System Architecture(con. )
N-Tier Architecture
N-tier is a generalisation of the 3-tier architecture.
• Most 3-tier systems connect into other
systems in order to complete the processing.
9. Introduction to SOA
Definition of service
Service
Consumer
Service
Provider
Service request
Service response
S
e
r
v
i
c
e
Software Software
10. Introduction to SOA
Definition of service
• A service is a unit of work done by a service provider
to achieve desired end results for a service consumer.
Both provider and consumer are roles played by
software agents on behalf of their owners.
• Service is a well defined function that does not
depend on the state of other services.
11. Introduction to SOA
Definition of SOA
• A Service-Oriented Architecture (SOA) is a system
consisting of software components with standardized
component-access and usage interfaces that are
independent of any specific platform or implementation
technology.
• SOA is a solution for making two software to
communicate to each other.
• SOAs are a way of developing distributed systems
where the system components are stand-alone services,
executing on geographically distributed computers.
14. Introduction to SOA
Key Standards
• SOAP
A message exchange standard that supports service
communication
• WSDL (Web Service Definition Language)
This standard allows a service interface and its bindings
to be defined
• WS-BPEL (Web service Business Process Execution Language)
A standard for workflow languages used to define service
composition
16. Introduction to SOA
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-organisational computing is facilitated
through simplified information exchange
17. Services as
Reusable
Components
• Services are independent
• Existing services can more easily be reuse because
services in a standard way.
• Software systems can be constructed by composing
other services.
• Encapsulates functionality (provides interface that
allows access to the service functionality).
17
18. Services as
Reusable
Components
• Encapsulates functionality (provides interface that
allows access to the service functionality).
• Services are platform and implementation-
language independent.
In practice, a service is implemented by
Microsoft’s .NET Framework
18
19. Web
Service
Description
Language
The service interface is defined in a service
description expressed inWSDL (Web Service
Description Language).
TheWSDL specification defines 3 parts ofWS:
What operations the service supports and the format of the
messages
How the service is accessed - specifies communication by
exchanging messages, expressed in XML using protocols such
as HTTP andTCP/IP
Where the service is located.This is usually expressed as a URI
(Universal Resource Identifier)
19
21. Part of a WSDL
description
for a web service
21
Major problem
does not include any information about non function
requirements (performance , dependability) discovered by
experiments !!
22. Comparison
between
SOAP/WSDL
And
RESTfull
22
SOAP/WSDL RESTFULL
Services described using WSDL and
accessed via SOAP (is a message
interchange standard that supports the
communication between services )
Approach supports efficient service
communication
By URL communicates using methods GET,
PUT, POST, and DELETE
WS-Reliability Messaging : ensures
messages will be delivered once and once
only.
WS-Transactions : defines how
transactions across distributed services
should be coordinated.
it does not support enterprise-level features
such as WS-Reliability
and WS-Transactions.
involve a lower overhead than big data
services
much simpler method than SOAP/WSDL for
implementing web services
23. Service
Engineering
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.
23
25. Stages
of Service
Engineering
Service candidate identification
where you identify possible services that might be
implemented and define the service requirements.
Service design
where you design the logical andWSDL service
interfaces.
Service implementation and deployment
where you implement and test the service and make it
available for use.
25
27. Service candidate
identification
Three fundamental types of service
Utility services
That implement general functionality used by
different business processes.
Business services
That are associated with a specific business function
e.g., in a university, student registration.
Coordination services
That support composite processes such as ordering.
27
28. Service
identification
Is the service associated with a single logical entity
used in different business processes?
Is the task one that is carried out by different people in
the organisation?
Is the service independent?
Does the service have to maintain state? Is a database
required?
Could the service be used by clients outside the
organisation?
Are different users of the service likely to have
different non-functional requirements?
28
29. Service
Identification
Example
A large company, which sells computer equipment,
has arranged special prices for approved
configurations for some customers.
To facilitate automated ordering, the company
wishes to produce a catalog service that will allow
customers to select the equipment that they need.
Unlike a consumer catalog, orders are not placed
directly through a catalog interface. Instead, goods
are ordered through the web-based procurement
system of each company that accesses the catalog as
a web service.
Most companies have their own budgeting and
approval procedures for orders and their own
ordering process must be followed when an order is
placed.
29
30. Catalog Services
Service requirements
Specific version of catalogue should be created for
each client
Catalogue shall be downloadable
The specification and prices of up to 6 items may
be compared
Browsing and searching facilities shall be provided
A function shall be provided that allows the
delivery date for ordered items to be predicted
Virtual orders shall be supported which reserve the
goods for 48 hours to allow a company order to be
placed
30
31. Catalogue
Non-functional
Requirements
Access shall be restricted to employees of
accredited organisations
Prices and configurations offered to each
organisation shall be confidential
The catalogue shall be available from 0700 to 1100
The catalogue shall be able to process up to 10
requests per second
31
32. Functional
descriptions
of catalog service
operations
Operation Description
Make Catalog Creates a version of the catalog tailored for a specific
customer. Includes an optional parameter to create a
downloadable PDF version of the catalog.
Compare Provides a comparison of up to six characteristics (e.g.,
price, dimensions, processor speed, etc.) of up to four
catalog items.
Lookup Displays all of the data associated with a specified catalog
item.
32
33. Functional
descriptions
of catalog service
operations
Operation Description
Search This operation takes a logical expression and searches the
catalog according to that expression. It displays a list of all
items that match the search expression.
CheckDelivery Returns the predicted delivery date for an item if ordered
that day.
MakeVirtualOrder Reserves the number of items to be ordered by a customer
and provides item information for the customer’s own
procurement system.
33
34. Legacy system
services
An important application of services is to provide
access to functionality embedded in legacy systems
which reduces the cost of service implementation
External applications can access this functionality
through the service interfaces
35. Software
Development with
Services
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
35
38. Construction by
composition
Design outline workflow
In this stage of , you use the requirements for the
composite service as a basis for creating an ‘ideal’
service design.
Discover services
During this stage, you search service registries or
catalogs to discover what services exist, who
provides these services and the details of the
service.
Select possible services
Your selection criteria will include the functionality
of the services offered, the cost of the services and
the quality of service offered.
38
39. Construction by
composition
Refine workflow.
This involves adding detail to the abstract description and
perhaps adding or removing workflow activities.
Create workflow program
During this stage, the workflow design is transformed to
an executable program and the service interface is
defined.You can use a conventional programming
language, such as Java or a workflow language, such as
WS-BPEL.
Test completed service or application
The process of testing the completed, composite service.
39
40. Workflow design
& implementation
WS-BPEL is an XML-standard for workflow
specification. However,WS-BPEL descriptions are
long and unreadable
Graphical workflow notations, such as BPMN, are
more readable andWS-BPEL can be generated
from them
40
41. Service Testing
Testing is intended to find defects and find if a
system meets its functional and non-functional
requirements.
41
42. Service testing
problems
External services may be modified by the service
provider thus invalidating tests which have been
completed.
The non-functional behavior of the service is
unpredictable because it depends on load.
If services have to be paid for as used, testing a
service may be expensive.
42
43. Key points
The service engineering process involves identifying
candidate services for implementation, defining the
service interface and implementing, testing and
deploying the service.
Service interfaces may be defined for legacy software
systems which may then be reused in other
applications.
Software development using services involves creating
programs by composing and configuring services to
create new composite services.
Service software testing.
43
44. References
• Somerville , SOFTWARE ENGINEERING Ninth
Edition
• Len Bass , Paul Clements , Rick Kazman Software
Architecture in Practice ,second edition
• http://www.codeproject.com/
• http://www.ibm.com/developerworks/rational/libr
ary/feb06/eeles/
• https://msdn.microsoft.com/en-
us/library/ee658098.aspx
Hinweis der Redaktion
All Processing in Single Computer
All Resources Attached to the same Computer
Access Via Dumb Terminals
Two alternatives approaches:
Client tier leads to
Fat clients
Must be reimplemented on each type of client
Each software update must be redistributed
Data tier leads to
Different applications have different needs for the same data
Performance issues due to resource (data) usage; e.g. concurrency
Increase in the number of tiers means:
Increase flexibility, functionality and ways of distribution.
However:
Increases communication costs.
Complexity rises leading to higher cost and risk.
Increases in duplication can lead to redundancy.
Above figure encapsulates the idea of a SOA.
Service providers : design and implement services and specify the interface to these services.
They also publish information about these services in an accessible registry.
- Service requestors : (sometimes called service clients) who wish to make use of a service discover the
specification of that service and locate the service provider.
They can then bind their application to that specific service and communicate with it, using standard
service protocols.
1. SOAP this is a message interchange standard that supports the communication
between services. It defines the essential and optional components of messages
passed between services.
2. WSDL The Web Service Definition Language (WSDL) is a standard for service
interface definition. It sets out how the service operations (operation names,
parameters, and their types) and service bindings should be defined.
3. WS-BPEL The Web service Business Process Execution Language This is a standard for a workflow language
that is used to define process programs involving several different services.
1. SOAP this is a message interchange standard that supports the communication
between services. It defines the essential and optional components of messages
passed between services.
2. WSDL The Web Service Definition Language (WSDL) is a standard for service
interface definition. It sets out how the service operations (operation names,
parameters, and their types) and service bindings should be defined.
3. WS-BPEL The Web service Business Process Execution Language This is a standard for a workflow language
that is used to define process programs involving several different services.
This example illustrates one of the key advantages of the service-oriented
approach. It is not necessary to decide when the system is programmed or deployed
what service provider should be used or what specific services should be accessed.