Review: Introduction To Architectural Styles Distributed Architectures
Review: Introduction To Architectural Styles Distributed Architectures
Sqrt(n)
Service Oriented Architecture
(SOA)
Service Oriented Architecture (SOA)
is a business centric IT architectural approach that
supports integrating your business as linked, repeatable
business tasks, or services.
Service Orientation
Service orientation is a particular strategy for separating
concerns and dividing a system into components.
every component
Its fundamental characteristic is that
provides a distinct service that can be used by
multiple consumers.
Banking example
Imagine that several areas of banking applications will
deal with the current balance of an existing customer.
More than often, the get current balance functionality
is repeated in various applications within a banking
environment.
This gives rise to a redundant programming
scenario.
The focus should be toward finding this sort of common,
reusable functionality and implement it as a
SOA Defined
SOA is a software architecture model
in which business functionality are logically grouped and
encapsulated into
self contained, distinct and reusable units called services that
represent a high level business concept
can be distributed over a network
can be reused to create new business applications
contain contract with specification of the purpose, functionality, interfaces,
constraints, usage
... of the business functionality
Service Discovery
A service can only be used if potential clients are aware of its
existence, and have information about how to use it.
This is achieved through service description.
A collection of services
type type type
classified into
types
arranged into
layers
Governed by
architectural ca
ti o
n
ar
it y
e nc
y
ifi l nd
patterns and policies
u
ent ran pe
source:TietoEnator AB,
id g de
Kurts Bilder
Need for SOA
Isolating Business Logic
The biggest problem in programming is often it is very difficult to
keep the business logic separated from the so called computer
logic.
Non-IT folks can change the business logic any time, without
understanding how a small change could result in possibly
disproportionate amount of work required by the IT folks to
implement the change.
Need for SOA
Interoperability
Ability of one service to run on multiple machines.
Redundancies
There are many similar yet slightly different applications that are
used throughout the organization.
Each department usually comes out with its own version of
software components.
Types of Services
There are several types of services used in SOA
systems.
Business services
Entity services
Functional services
Utility services
Types of Services
Business services
Business service can be defined as the logical encapsulation of
business functions. It has to be relevant to the business the
organization is running.
Entity services
An entity service usually represents business entities (e.g.
Employee, Customer, Product, Invoice etc.). Such entity service
usually expose CRUD (create, read, update, delete) operations.
Types of Services
Functional services
It is usually a technology-oriented service and not a business
oriented one. Task services can be thought of as controller of
composition of services and hence its reusability is usually lower.
Utility services
Utility services offers common and reusable services that are
usually not business centric. They might include event logging,
notifications exception handling etc.
Service Architecture
Organized by Layers
Example Layers
for architecture
Another example
An online travel agency
system
It consists of four existing
web services:
airline reservation,
car rental,
hotel reservation,
and attraction reservation.
SOA Benefits
Ability to build business applications faster and
more easily
Easier maintenance / update
Business agility and extensibility
Lower total cost of ownership
Summary
Distributed architectures
Service Oriented Architecture