You are on page 1of 41

Service Oriented Architectures (SOA)

What is a service oriented architecture


Web-based technical architecture overview
How Web technologies fit into picture
From CGI to components to SOA
Service-Oriented architectures (SOA) and Web
Services
Examples of Service-Oriented architectures
(patterns)
Issues in Large Scale Systems
Reality Check

Amjad Umar
Copyright (A. Umar)
Introduction
Architecture:
Components
What do they do
How do they interact/interface
Different types of architectures: database, network,
business, etc. How do they fit together.
Enterprise architecture (very popular term): a vertical view :
Business architecture plus technology architecture for a company
Combine business, applications and IT infrastructure components
into a solution for customers
Enterprise Architecture (Horizontal View)
Can exist at several levels in enterprises
Local app architectures of individual apps (e.g., departmental inventory)
enterprise-wide app architectures (e.g., ERPs)
inter-enterprise (B2B) app architectures (e.g., SCMs, emarkets)
Focus: Integrated Architectures Work well with others
Copyright (A. Umar)
Enterprise
Building Blocks Architecture
Business Processes Business
Healthcare BPs Telecom BPs Other Vertical BPs Architecture
(Clinical) (e.g. Provisioning) (MRP, Financial)
Common BPs (Marketingt, CRM, HR)
Enterprise Applications
Healthcare Application
(HCIS) Telecom OSSs Other Vertical Apps Architecture
Vertical Integrations

Common Apps: (ERPs for CRM, HR, etc)

Platform and Middleware Services


Mobile Platforms Specialized Services (EC, Platform
(WAP, J2ME, BREW) B2B ) Architecture
Common Middleware (Web, Web 2.0, Web services ,)

Network Services (Layer 1-4 of OSI)

Wired Networks Wireless Networks Network


(5G Cellular, WLANs, NGNs Architecture
(LANs, MANs,
WPANs, WLLs, (Converged
WANs)
Satellites, MANETs) Networks)
Copyright (A. Umar)
How to Build Integrated Enterprise Architectures

Start with a business architecture


Build a logical application architecture
shows enterprise applications
flows between applications (for integration)
logical: does not show any technical information
Translate into technical (solution) architecture
physical: does include infrastructure
considerations (networks, middleware)
Allocate apps and database to computers
Performance, security, flexibility, QoS
Copyright (A. Umar)
Business Architecture
Warehousing
And
Sales Distribution

Supply
Customer Corporate Chain
Services Management
Customers, Management
Partners,
Resellers Supplier,
Distributors
Human
Resources
Finance &
Marketing Accounting

Employees,
Managers

Copyright (A. Umar)


Application Architecture

Applications Applications Applications Applications


(e.g., Messaging) (e.g., CRM) (e.g., MRP) (e.g., Finance)
Business Business Business Business
Components Components Components Components

Developed Rented
Bought Bought

Enterprise-wide Connectivity Platform


(Enterprise Service Bus)

For Integration: Enterprise Service Bus (ESB) is the Focus


Copyright (A. Umar)
ESB (enterprise service bus) for SOA

Enterprise App1 App2 App3


Service
Bus (ESB)

Integration Server (Hub) Directory, Security &


Administrative Services

App4 App5

A Bus connects nodes


= Adapter/Data Mapper Examples: City Bus, Network Bus
A Hub is a Bus that provides communications services
= Service Interface Between various service providers and consumers
An ESB may consist of one or more hubs
An ESB also provides Directory, Security &
Administrative Services
Copyright (A. Umar)
Large Scale Projects -- Conceptual View

Education Economic Public Safety


Health Development

Horizontal Services
(Wired/Wireless Network)

For Integration: Enterprise Service Bus (ESB) is the Focus


Copyright (A. Umar)
Solution (Technical) Architectures -- A Closer Look
Good versus bad architectures
Solution architectures are largely web-based
Web technology used depends on the type/complexity of apps
a) Simple client-side applications (informational)
use static HTML/XML for web advertising or use Java applets
that access a remote database through a JDBC interface.

b) Small to medium scale web database apps (transactional)-


employ CGI, servlets, JSPs, etc

c) Large Transactional apps (Component-based enterprise wide


applications) that imbed business logic as components.

d) Large Composites apps (many components from many org units)


Service-oriented Architectures (SOA)
Copyright (A. Umar)
Technology Assessment
Technology
Web Application Type Robustness and Candidate Complexity
Reuse Needed Technologies (footprint)

Static
Informa HTML/XML
tional
Apps
Web Gateways
Transactional (CGI, Servlets &
Apps Server Pages)

Enterprise-wide
Components and
Transactional
Web Services
Apps
Large inter-enterprise applications
that include components from Service Oriented
multiple companies (Composites) Architecture (SOA)
Copyright (A. Umar)
Simple Informational Applications

Web Web
Browser Site

HTTP
HTML HTML/XML
Web Docs
/XML
Server
Displays

Copyright (A. Umar)


Transactional Applications
Database Access Through Java Applets

Web Web Java Applet


Browser Site

HTTP
HTML HTML Docs
Web
Displays
Server

Java Applet
Database
JDBC Server

Copyright (A. Umar)


Web-Gateway (Server Side) Apps
Web Web
Browser Site
HTTP
HTML (Static
Web Content)
HTML Server Docs
Displays

Gateway
(CGI, ODBC/JDBC
Servlets,
JSPs, ASPs) Database
(Dynamic
Content
Generation)

Copyright (A. Umar)


Enterprise Components (Business Components)
Client
Tier Web Tier
HTTP Business Tier Enterprise Tier
Web Enterprise
Web Server Components
browsers - Session
Management Enterprise
-Transaction Resources
Servlet, Management (order processing,
JSP,ASP, -Other inventory control,,)
XSP Enterprise
functions

Database

Copyright (A. Umar)


Components and Business Components
Architectures based on Business Components can
possibly lead to re-use.
Definition: A component is a self-contained piece
of software that has a well defined interface and can
be developed, delivered, installed, and run
independently.
In addition, a component must have the following
properties:
A component is built so that it can be easily combined and
composed with other components for enterprise needs.
A component has a socket as a software for interface with
the infrastructure.
Components provide services and are the foundation of Service-
Oriented Architectures (SOA)
Copyright (A. Umar)
Components
Component = Self Contained
Application Provides Service(s)
Can be combined with
other components
Component Can be invoked remotely

Component
Component Component Component

Socket Socket Socket

Infrastructure

Copyright (A. Umar)


Granularities of Components provide
different levels of Services
Inter-enterprise Components

Enterprise Components

Business Components

Primitive Components

Copyright (A. Umar)


Service-Oriented Architectures (SOA) Overview
All businesses provide a set of services.
Some services are provided to the customers (B2C), some to
other businesses (B2B) and some to the employees (B2E).
Business provide marketing, sales, customer support, and
many other services (some are customer facing, some are
supplier facing, and some are employee management facing.
Some of these services can be provided by other service
providers (outsourcing agencies, business partners, etc).
The task of the enterprise management is to find the best
service providers (SPs) to run the firm.
A company can change its business by adding new services
from new SPs.
For example, wired telephone company can add a wireless
service provider.
Service bundles can be created by different SPs to meet user
needs and to compete for user business.
Companies may add, delete, change and merge SPs that
provide the best services to compete.
Copyright (A. Umar)
Service Orientation
A service: Something offered to a Customer
(Service Consumer)
Examples: Service
Car repair service Provider
(APP,
Dry cleaning service
Business Component)
Customer Service
Others?
Business Service
A service provider (SP) provides one or more
services. An SP can be viewed as a
Component)
Service consumers (SCs) use the services Service
Service
Automation of Services: Consumers Consumers
Service definition (name)
Must be able to Locate it (directory)
Programs and humans must be able to
invoke it
Business View of SOA
Warehousing
And
Sales Distribution

Supply
Customer Corporate Chain
Services Management
Customers, Management
Partners,
Resellers Supplier,
Distributors
Human
Resources
Finance &
Marketing Accounting

Employees,
Managers

Copyright (A. Umar)


SOA Key Characteristics
1.Reusable Components: It is important to decompose business applications into
business components (BCs) in such a fashion so that as many components as possible
are general purpose (i.e., reusable) and as few as possible are special purpose.
2.Web-Services Enablement. The components must have well defined service interfaces
that can be stored in a directory so that service clients can query an interface directory
to discover and invoke the needed service providers (SPs) over the Internet (http) .
3. Enterprise Service Bus (ESB): a loosely coupled common middleware infrastructure
must be used for communications, brokerage, security, directory & administration services
Enterprise App2 App3
App1
Service
Bus (ESB)

Directory, Security &


Integration Hub
Administrative Services

App4 App5
= Adapter/Data Mapper
Copyright (A. Umar) = Service Interface
SOA A Closer Look
Basic Requirements for SOA
Applications must be developed as a set of components
that provide services.
Services and components must be as general purpose as
possible.
Services must have well-defined interfaces.
Applications and their components must use Web-Internet
communication.
Applications must be able to interwork with other
Applications.
Additional characteristics of SOA are:
Applications must be scalable and portable.
Thin client model should be favoured.
Service Providers should use standard Internet servers.

What type of technology can support SOA: Web Services?


Copyright (A. Umar)
Web Services To Support SOA

Open
XML
Internet Web
Protocols
service
A programmable application component accessible via
standard Web protocols
UDDI
Provide a directory of services on the Internet Universal Description,
Discovery and Integration

XML Web services are defined in terms of the WSDL


formats and ordering of messages XML Web services
Description Language

XML Web service consumers can send and


receive messages using XML
SOAP
Built using open Internet protocols XML & HTTP
Copyright (A. Umar)
Web services and Components
- Foundation of SOA
Service
Service
Provider
Consumer
2. Invoke Service
1.WSDL
Web
Services Definition
6. Invoke Service

5. WSDL Details

4. Service Discovery UDDI


Registry 3.Publish

Copyright (A. Umar)


Define a Service -- WSDL

<message name="GetInventoryLevelQuery">
<part name="item" type="xs:string"/>
</message>
<message name="GetInventoryLevelResponse">
<part name="quanity" type="xs:string"/>
</message>

<portType name="InventoryService">
<operation name="GetInventoryLevel">
<input message="GetInventoryLevelQuery"/>
<output message="GetInventoryLevelResponse"/>
</operation>
</portType>
Copyright (A. Umar)
UDDI Definition
<businessEntity businessKey="20MAF7F0-42-39-41E6-E0DC-900C0T00ACDD"
authorizedName="911234567PEN"
operator="www.supplier1.com/services/uddi">
<name> Supplier1 Company</name>
<description xml:lang="en">
The source for all type of computer devices
</description>
<contacts>
<contact>
<personName>Bob Jones </personName>
<phone>(555)123-7299</phone>
</contact>
</contacts>

<businessService
businessKey="20MAF7F0-42-39-41E6-E0DC-900C0T00ACDD"
serviceKey="1FFE1F71-2AF3-45FB-B788-09AF7FF151A4">
<name>InventoryService</name>
<description xml:lang="en">
The source for all types of computer devices
</description>
</businessService>

</businessEntity>
Copyright (A. Umar)
SOAP Message 1

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m: GetInventoryLevelQuery xmlns:m="Some-URI">
<item>Laser Printer</item>
</m: GetInventoryLevel>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Copyright (A. Umar)


Soap Message 2
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m: GetInventoryLevelResponse xmlns:m="Some-URI">
<quanity> 235 </quantity>
</m: GetInventoryLevelResponse >
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Copyright (A. Umar)
Examples: WS and ASPs

Copyright (A. Umar)


ASP Model

Copyright (A. Umar)


Virtual ASPs

Copyright (A. Umar)


Example: WS and Coalitions
Other
Other
Service
Service
Providers
Providers

Service
Customer Broker
care (UDDI
Registry)
Network
Planning

Inventory
Service Systems
Broker
(UDDI
Clients Registry)

Network
Provisioning

Billing

Copyright (A. Umar)


Large Scale Considerations
Notes:
A service company Warehousing
inherits from products &Distribution
(physical) and thus includes Procurement
3 BFs: SCM, procurement, Inventory
purchasing
& Warehousing/distrib.
Service Delivery
Shipping
Marketing Telecom payment
provisioning

Sales Supply
(order Customer
payment Chain
processing)
Mgmnt

MC
Selling Corporate Mgmt Partners,
Chain
(CRM)

BI CP Supplier,
Management EP Scheduling Distributors

KM BMC

Service
Management Telecom General
Back-office Network Telecom General
Planning Processes
Customer Human Resources
Service
BI=Business Intelligence Network
Finance & Acctg
BMC=Business Monitoring & Control Support Network Engg
CP = Corporate Planning
EP = enterprise purchasing Employees,
KM = Knowledge Management Managers
MC= Monitoring & Control Service Assurance
Copyright (A. Umar)
SOA Key Characteristics
1.Reusable Components: It is important to decompose business applications into
business components (BCs) in such a fashion so that as many components as possible
are general purpose (i.e., reusable) and as few as possible are special purpose.
2.Web-Services Enablement. The components must have well defined service interfaces
that can be stored in a directory so that service clients can query an interface directory
to discover and invoke the needed service providers (SPs) over the Internet (http) .
3. Enterprise Service Bus (ESB): a loosely coupled common middleware infrastructure
must be used for communications, brokerage, security, directory & administration services
Enterprise App2
App1 App3
Service
Bus (ESB)

Integration Hub1` Integration Hub2

Directory
App4 App5
= Adapter/Data Mapper
Copyright (A. Umar) = Service Interface
Another View Translation into a Solution Architecture
User Tier Business Tier Resources Tier
(New Business Logic ) (Back-end/External
Web, http Apps and Databases)
Web
Server EAI platforms for
VOIP Back-end apps
External (known) apps
Trading network (B2N)
WAP apps
CRM
http
Portal
Other ERPs
Front-end http
Integration
Selling

Back-end
Integration
Chain
Management Payment
Systems

Front-end integration supports diverse EMarkets


devices and applications such as
Mobile devices such as PDAs, palm pilots Trading network involves
VOIP integration Trading Network business to network
ASPs
Web browser with Java applets (B2N)
Supply
Applications on a variety of platforms activities with eMarkets
Chain Management and ASPs
Copyright (A. Umar)
CHALLENGE: How to Take Current Large
ERP Systems and Break them into Components
Approaches
1. Divide Large Apps into smaller
Application Components (by features)
2. Just put WSDL on large App
Component Second approach is used commonly
(business reasons)
Component
Component Component Component

Socket Socket Socket

Infrastructure
Copyright (A. Umar)
Developments in WS & Reality Check

Copyright (A. Umar)


General Reality Check
Security and privacy issues
QoS and Reliability
Service Taxonomies and Business Choreography
between Components
Business Issues:
Open versus private UDDI
Large versus small business components
Many developments attempting to address these
issues

Copyright (A. Umar)


Key Points
A great deal of activity in building solutions
Solution architecture is a good framework
for translating business strategies to
solutions that can be used
Web technologies are playing a key role
Component-based architectures are gaining
popularity
A systematic methodology is needed

Copyright (A. Umar)


Sources of additional information
IBM System Journal, Service-Oriented Architecture
special issue, Volume 44, Number 4, 2005. This is a
really good issue. It has many good articles.
IEEE Computer Society Technical Committee on Services
Computing - www.servicescomputing.org. This is a very
good website on SOA information.
Book: Service-Oriented Architecture (SOA) Compass:
Business Value, Planning, and Enterprise Roadmap", By
Norbert Bieberstein et al, IBM Press, Oct 2005.
Barry, D., "Web Services and Service-Oriented
Architectures: The Savvy Manager's Guide", Morgan
Kaufmann, 2003.
SOA Portal at http://www.service-architecture.com/
Comm. Of ACM, Special Issue on Service Oriented
Computing, Oct. 2003.

Copyright (A. Umar)


Voice Annotations
For Voice Annotated Discussion of these slides, please review the
following Video Clips.

Topic = SOA1 (Intro to SOA), Duration = 26 Minutes,


URL = http://harrisburgu.adobeconnect.com/p5enltj9igi/

Topic = SOA2 (eNabling Technologies for SOA), Duration = 38 Minutes,


URL = http://harrisburgu.adobeconnect.com/p70sedp0esi/

Topic = SOA3 (Additional Details about SOA), Duration = 33 Minutes,


URL= http://harrisburgu.adobeconnect.com/p6rxdjjzhyz/
Note: A few seconds of this clip got chopped at the end

Copyright (A. Umar)

You might also like