Introduction to SOA

Download Report

Transcript Introduction to SOA

Introduction to SOA
1
The Service-Oriented
Enterprise


eXtensible Markup Language (XML)
Web services


Service-oriented architecture (SOA)


XML-based technologies for messaging, service
description, discovery, and extended features.
A methodology for achieving application
interoperability and reuse of IT assets.
Business process management (BPM)
2
Service-Oriented Development


A service is defined by the messages it
exchanges with other services.
Benefits of service-oriented development




Reuse: services for reuse
Efficiency: to quickly and easily create new
services and applications
Loose technology coupling: independent to
execution environment
Division of responsibility: separation of
concerns between the business analysts and
service developers
3
What is SOA?





A style of design that guides all aspects of
creating and using business services
A way to define and provision an IT
infrastructure to allow different applications to
exchange data and participate in business process
Business services are the key organizing principle
Service orientation focuses on the description of
the business problem
Cleanly and completely separate, by interpreting a
text file, a service description from its execution
environment
4
Web Services



Web services are pervasive,
simple, and platformneutral.
The provider publishes a
WSDL description of its
Web service.
The requester accesses
the description using a
Requester
UDDI registry and
requests the service by
sending a SOAP message.
UDDI
Registry
WSDL
SOAP
Provider
5
Primary Service
Characteristics

Loosely coupled




Interface coupling
Technology coupling
Process coupling
A well-defined interface (or service
contract)


Define the service’s capabilities and how to
invoke the service
Separate the externally accessible interface
from the implementation
6
Primary Service
Characteristics (cont.)

Meaningful to service requesters




Capture the essence of the business service
without restricting future reuse
Use a business-oriented vocabulary
Avoid exposing technical details
Standards-based

Services should be based on open standards as
much as possible
7
Secondary Service
Characteristics

Predictable service-level agreements


SLA defines response time, throughput,
availability, etc.
Dynamic, discoverable, metadata-driven



Services can be discovered and consumed
without intervention of the provider.
The interface should use metadata to define
service capabilities and constraints.
The interface should be machine-readable so
that they can be dynamically registered and
discovered.
8
Secondary Service
Characteristics (cont.)

Design service contracts with related
services in mind



Design the service-level data model (or the
XML Schema definition of the documents) and
all of the related interfaces together
Implementation independent of other
services
Consider the need for compensating
transactions

A compensating transaction can undone a
completed transaction by canceling its results.
9
Secondary Service
Characteristics (cont.)

Design for multiple invocation styles



If forced to choose one, choose asynchronous
queuing
Stateless
Design services with performance in mind


Service invocations should NOT be treated like
local function calls
Avoid fine-grained services
10
Object Reuse vs. Service Reuse



Building objects is
easy
Building high-quality,
reusable objects is
hard
Reusing object
libraries and object
frameworks is
moderately hard



Building Web services
is easy
Building high-quality,
reusable business
services is hard
Reusing business
services is relatively
easy
11
Too Much Reuse?

A highly reusable service


The interface for the data access service
accepts a SQL query as input and returns an
XML structure as the result.
It violates SOA’s loose-coupling principle


The service requester needs to know about how
the data is stored and the structure of data.
Expensive maintenance problem.
12