Service Oriented Architecture – Summary
Lecture 1 – PART 1: SOA/WS basics
• What is a service oriented architecture (SOA)?
o The Service-Oriented paradigm to programming utilizes services as the
constructs to support the development of rapid, low-cost and easy composition of
distributed applications.
• What is a web service?
o A web service is a programmatically available application logic exposed over the
internet. standardized!
o Any piece of software and any application component deployed on a system can be
transformed into a network-available service.
Web services in a SOA perform encapsulated business functions such as:
1. A self-contained business task
a. Funds withdrawal
b. Funds deposit service
2. A full-fledged business process
a. Automated purchasing of office supplies
3. An application
a. E.g. life insurance application
b. Demand forecasting
c. Stock replenishment
4. Or a service-enabled resource
a. Access to a back-end database containing patient medical records
Credit
Service
ck
it che
Cred e
spons
it re
Cred Inventory
Reserve inventory
PO submission Service
Inventory response
Billi
Invoice ng n
otific
Billi ation
ng s
Shi tate
Buyer ppi men Billing
ng t
Shi not Service
Purchase Order pm ific
atio
ent n
ack
now
led
gem
ent
Shipment
Service
Figure 1: A purchase order application involving interacting web services
“Are Application Service Provider (ASP), Software-as-a-Service, and Web Service the same?”
There are many different topologies that are now available to us. However, terminology is often
used very loosely. It is easy to confuse someone by describing a ‘service’ as a Web Service when it is
in fact not.
,Application Solution Providers (ASP) today typically provide a complete solution. The whole
application in terms of the UI, workflow, business and data components is all bound together to
provide a working solution. The entire application is hosted by the ASP’s, and the customer has little
opportunity to customize it beyond set up tables, or perhaps the final appearance of the UI (such as
adding Logos). Access to the application for the customer is simply via a browser. Or they might
download reports. This is not a very flexible solution, but it offers considerable benefits in terms of
deployment providing the customer is willing to accept it as is.
An alternative is Software-as-a-service, there the ASP is providing a software that is
downloaded to the customer’s machine on demand – this is for situations where the software does
not work in a client/server fashion, or can be operated remotely via a browser. The software might
be deleted at the end of the session, or may remain on the customers machine until replaced by a
new version, or the contract for using it expires. In many respects this is no different to ‘traditional’
methods of installing a piece of software from say a CD-ROM. However, this form of deployment
from the ASP can be automated, reducing software deployment costs, though not saving the
customer any hardware costs.
The use of Web Services provides a more flexible solution. The core of the application – the
business and data components remain on the ASP’s machines, but are not accessed programmatically
via Web Service interfaces. The customer can now build its own custom business process and UI,
and may also be free to select from a variety of Web services that comply to a business standard
from a number of alternative ASPs.
Advantages Disadvantages
ASP • Considerable benefits in • Little to no option for
deployment (time and customization
effort) • Not very flexible
SAAS • Can be automated • No savings on hardware costs
(reducing deployment • Requires download
costs)
Web Services • Flexible solution
• Options for customization
• Ease of selection and
integration of other web
services
, • Where can services be used?
o Within an enterprise (EAI):
▪ Accelerate and reduce the cost of integration
▪ Save on infrastructure deployment & management costs
▪ Reduce skill requirements
▪ Improve reuse
o Between enterprises (e-Business integration):
▪ Providing service to a company’s customers
• e.g. and insurance company wishes to link its systems to the systems
of a new institutional company
▪ Accessing service to 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
o Advantages provided by services:
▪ Standards and common infrastructure reduce the barriers
▪ Simplicity accelerates deployment
▪ Dynamics opens new business opportunities
SOA enables:
’
How to implement SOA? There are 2 types of (web) services:
, • Functional and non-functional properties:
o The functional service description details the operational characteristics that define
the overall behaviour of the service.
o The non-functional description targets service quality attributes, e.g., service
metering and cost, performance metrics (response time or accuracy), security,
authorization, authentication, scalability, availability, etc.
• Stateless or stateful services:
o Services that can be invoked repeatedly without having to maintain context or state
they are called stateless.
▪ Simple informational services are stateless.
o Services that require their context to be preserved from one invocation to the next
are called stateful.
▪ Complex services (business processes) typically involve stateful interactions.
Service design principles:
• Loose coupling
o Coupling indicates the degree of dependency any two systems have on each other.
o Web services are loosed coupled: they connect and interact more freely (across the
Internet). They need not know how their partner applications behave or are
implemented.
• Service granularity
o Simple services are discrete in nature, exhibit normally a request/reply mode of
operation & are of fine granularity, i.e., they are atomic in nature.
o Complex services are coarse-grained, e.g., a SubmitPurchaseOrder process. These
involve interactions with other services and possibly end-users in a single or multiple
sessions.
o Coarse-grained communication implies larger and richer data structures, (viz. those
supported by XML).
Service State Granularity
Simple (atomic in Stateless Fine granularity
nature)
Complex Stateful Coarse-grained