Topic 1
Introduction to SOA
Assoc.Prof.Dr. Thanachart NumnondaSeptember 2010
www.imcinstitute.com
2
Agenda
Evolution of Enterprise Application Framework
What is SOA?
SOA Framework
3
Evolution of Enterprise Application Framework
About Enterprise Applications
• Things that make up an enterprise application– Presentation logic– Business logic– Data access logic (and data model)– System services
• The evolution of enterprise application framework reflects– How flexibly you want to make changes– Where the system services are coming from
Enterprise Architecture
Single Tier (Mainframe-based)
• Dumb terminals are directly connected to mainframe
• Centralized model (as opposed distributed model)• Presentation, business logic, and data access are
intertwined in one monolithic mainframe application
Two-Tier
• Fat clients talking to back end database– SQL queries sent, raw data returned
• Presentation,Business logic and Data Model processing logic in client application
Database
SQL requestSQL response
SQL request
Three-Tier (Web Server)
• Browser handles presentation logic
• Browser talks Web server via HTTP protocol
• Business logic and data model are handled by “dynamic contents generation” technologies (PHP, Servlet/JSP, ASP)
Database
SQL requestSQL response
HTML response
WEB Server
HTML request
N-Tier with Application Servers
• App Server handles business logic & System services
• Load balance, Tracsaction, concurrency, etc are automatically handle by App Server
• Two main technologies Java EE or .NET
10
Enterprise Frameworks [IDC 2007]
11
What is SOA?
12
Evolution into Service Oriented Model • Both industries (Electric & Computing) ahave
evolved into a service oriented model
13
Hype or Reality?
So What?SOA!?
Reuse
Encapsulate
The New EDI?
Remember CORBA?Web Services
Aligned
Cross-PlatformVendor Neutral
Multi-Vendor
Register & Discover
Described
StandardsFlexible IT
XML
Wrap & Reuse
Composability Legacy
Layering
Agile
Stateless
Loosely Coupled
Messaging
Integration
QoS
Federation
Transformation
On Demand
Autonomous
Interoperable
Extensible
Location Transparency
14
What is SOA?
Principles and practices for designing shared, reusable, distributed services
SOA Attributes:> Separation of service interface from underlying
implementation (loose coupling)> Promotes service reuse through discoverable and
self-describing services> Services are course-grained, composable, and rely
on a standards based infrastructure
15
Accidental Architecture?Silo Oriented Architecture
Rigid
Complex
Expensive
Slow to Market
Monolithic
Hard to Integrate
Mature information systems grow old disgracefully as successive waves of hacking result in accidental architectures which resist the reflection of on-going business process change.- Anthony Lauder & Stuart Kent; University of Kent. (2000)
16
Technical Challenges
17
The “Move” to Service Orientation
AccidentalRigid
Silo-Oriented
LayeredExtensible
Service-Oriented
18
Layering Principle
• Shared Network-based Layered Services
Process Layer
Access Layer
Service Layer
Resource Layer
19
SOA Architecture Layers
Resources
20
SOA Architecture Layers
• Resources– Operational Resources; e.g. CRM, ERP, HR,
Databases– Enterprise components; technologies e.g. Java, .NET,
CORBA, PHP
• Services– Selected components which have been developed as
services
– Can implement various way; e.g. Web Services– Normally has well defined interface; e.g. WSDL
21
SOA Architecture Layers
• Business Process– Represent powerful orchestration of one or more
services that solve a business problem– Business Process itself is a service of services
• Access – Front or User Interface that calls business process– Web Programming, Desktop, Dashboard– Can be implemented to run on various devices
Enterprise SOA Implementation
Reusable Services
Credit Card Mortgage
Partner Credit Data Customer Data
Internet
Bill PayAutoLoans Stocks
MutualFunds
Customer Data Service
AccessService
Credit Check
Fraud DetectionPaymentManagement
Service
TradeExecution
Service
AccessManager(Liberty)
ServicesRegistry(RegrepUDDI)
Interest Calc Balance Check
Back-End System Back-End System
CompositeApplicatio
ns
IncreasedAgility
23
Monolithic Systems
24
Reuse Services via Re-composition
25
SOA Value Proposition
• Reducing integration expense– Both development and maintenance cost by isolating
components and systems through well-defined interfaces and proper architecture layering.
• Increasing asset reuse• Increasing business agility
– Simplified Business Integration
• Reducing business risk– Both operational and compliance risk
26
SOA Value Proposition
• Faster time to market• Align IT and Business Units• Visible Business Process
27
SOA Definition (Re-caps)
28
AccountManagement
OrderProcessing
ServiceScheduling
The Root of the Problem
DataRepositories
Check Order Status
Check Credit
Check Customer Status
Check Inventory
Check Order Status
Check Inventory
Check Credit
Monolithic,IndependentApplications
Multiple CustomerViewsDispersed, unintegrated data
Check Inventory
Check Customer Status
FinanceSalesMarketing ExternalPartner
DataWarehouseCRM
29
IT Silo
CheckCustomer Status
Determine ProductAvailability
CheckCustomer Status
Determine ProductAvailability
VerifyCustomer Credit
Order Status
CalculateShipping Charges
Order Status
VerifyCustomer Credit
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
MonolithicApplications
AccountsManagement
OrderProcessing
FieldService
Scheduling
30
IT Silo
CheckCustomer Status
Determine ProductAvailability
Order Status
CalculateShipping Charges
Verify
Customer Credit
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
MonolithicApplications
AccountsManagement
OrderProcessing
FieldService
Scheduling
CheckCustomer Status
Determine ProductAvailability Order Status
Verify
Customer Credit
31 ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
Reuse Services Via Re-composition
ElementalBusinessServices
AccountsManagement
OrderProcessing
FieldService
Scheduling
DataRepository
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
32
Reuse Services Via Re-composition (cont.)
AccountsManagement
OrderProcessing
FieldService
Scheduling
DataRepository
ComposedBusinessProcesses
Installation Scheduling Process Customer Order Bill Presentment/Payment
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
ElementalBusinessServices
CheckCredit
CheckOrder Status
CreateInvoice
CheckCustomer Status
CheckInventory
Installation Scheduling
CheckCustomer Status
CheckInventory
33
ElementalBusinessServices
AccountsManagement
OrderProcessing
FieldService
Scheduling
DataRepository
ComposedBusinessProcesses
Installation Scheduling Process Customer Order Bill Presentment/Payment
CreateInvoice
CheckCreditCheck
Order StatusCheck
InventoryCheck
Customer Status
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
Process Customer Order
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
Reuse Services Via Re-composition (cont.)
34
ElementalBusinessServices
AccountsManagement
OrderProcessing
FieldService
Scheduling
DataRepository
ComposedBusinessProcesses
Installation Scheduling Process Customer Order Bill Presentment/Payment
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
Bill Presentment/Payment
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
CheckOrder Status
CreateInvoice
Reuse Services Via Re-composition (cont.)
35
ElementalBusinessServices
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
Business Processes Are Composed Hierarchicallyto Create Composite Applications
AccountsManagement
OrderProcessing
FieldService
Scheduling CompositeApps
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
36
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
OracleFinanceSystem
SiebelCRM
System
AS400Sales
System
CustomMarketingSystem
Shared Services – Composite Apps – Increased Functionality
AccountsManagement
OrderProcessing
FieldService
SchedulingAnother
OneManage
ExceptionOrders
SubmitChangeOrder
ElementalBusinessServices
37
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
ElementalBusinessServices
SOA Principles
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
AccountsManagement
OrderProcessing
FieldService
SchedulingAnother
OneManage
ExceptionOrders
SubmitChangeOrder
•Registered anddiscoverables
•Coarse-grained services
•WSDL-described•JBI-based
•Document-based•Mostly asynchronous
•Conversational•Reliable
38
CheckCustomer Status
CheckCredit
CheckInventory
CheckOrder Status
CreateInvoice
ElementalBusinessServices
SOA Principles (cont.)
DataRepository
ExternalTradingPartner
AnotherBusiness
Unit
Red PrairieWarehouse
Mgmt. System
SAPFinanceSystem
OracleCRM
System
AS400Sales
System
CustomMarketingSystem
AccountsManagement
OrderProcessing
FieldService
SchedulingAnother
OneManage
ExceptionOrders
SubmitChangeOrder
•Secure•Policy-driven
•Orchestrated
39
SOA Implementation Framework
40
SOA Framework
Resources
Services
Business Process
Access Layer
41
The most important SOA concepts
• Services• Self-describing interfaces with coarse granulation• Exchange of messages• Support for synchronous and asynchronous
communication
• Loose coupling• Service registries• Quality of service• Composition of services into business processes
42
SOA Framework
External/Internal Systems
Build Re-usable Services (ESB)
Business Process Management (BPEL)
User Interface + Single Window (Portal)
User Interface Dashboard (KPI)
43
SOA Implementation
• Services Implementation– Various Programming– Web Services– Non Web Services; Legacy via adaptors
– Data Services => JDBC
• Message Exchange => XML Schema• Self-describing interface => WSDL• Comunication of Services & Management => ESB• Service Orchestration => BPEL, Human Workflow• Presentation => Portal, Web Programing
44
SOA Hardware Architecture
45
Key SOA Standards
46
Resources Layer
External/Internal Systems
47
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
Resource Layers (cont.)
48
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
Build Re-usable Services
Services Layer
49
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
Services Layer (cont.)
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
50
Enterprise Service Bus (ESB) Enterprise Service Bus (ESB)
Components of Business Service Layer
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
51
Why ESB?
• In most enterprise, Web Services are not the only middleware solution.
– Only SOAP is not adequate for services connection
• Other middlewares products, messaging servers, Java EE, ORBs, Databases etc..
– Other binding communication protocols may be need; such as JDBC, JMS, Files, SMTP,MSMQ
• ESB acts as an intermediary layer of middleware to communicates between services using various protocols.
52
ESB : Features
• Provides communication between services via different protocols (Not only HTTP/SOAP)
• Message interception capabilities• Routing capabilities• Transformation capabilities• Control over the deployment, usage and
maintenance of services• Other important managements,
53
Business Service Layer – Protocols / Adapters
Customer
Bank
Manufacturer
(Mail)System1
Shipping
LineBank
Custom
(Web Services)
System2
(Legacy)
System3
(Legacy)SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
SAP
Adapter
Oracle
JDBCAdapter
AdapterFTP SMTP TCP/IP FTP FTP HTTP / SOAP
54
Business Service Layer – Data Format
Customer
BankManufacturer System1
Shipping
LineBank
Custom
(WebServices)System2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
SAP
Adapter
Oracle
JDBCAdapter
AdapterFTP SMTP TCP/IP FTP FTP HTTP/SOAP
EDIProprietary
FormatSWIFT FIX XML Table CSV
Data
Transformation
Data
Translation
Data
Enrichment
Data
Validation
55
Business Service Layer – Data Delivery
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
SAP
Adapter
Oracle
JDBCAdapter
AdapterFTP SMTP TCP/IP FTP FTP HTTP/SOAP
EDIProprietary
FormatSWIFT FIX XML Table CSV
Data
Transformation
Data
Translation
Data
Enrichment
Data
Validation
Queue Queue Topics Topics Topics Guaranteed Data Delivery
56
Business Service Layer – B2B Requirements
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
SAP
Adapter
Oracle
JDBCAdapter
AdapterFTP SMTP TCP/IP FTP FTP HTTP/SOAP
EDIProprietary
FormatSWIFT FIX XML Table CSV
Data
Transformation
Data
Translation
Data
Enrichment
Data
Validation
Queue Queue Topics Topics Topics Guaranteed Data Delivery
AuthenticationPartner
Management
Message
TrackingAuthorizationEncryption
Certificate
Management
57
Components of Business Service Layer
L/C
Check
P/RP/O
Product
Inland
Booking
Vessel
Booking
Distribute
Docus
Custom
Clearing
Billing
Service
Goods
Service
Order
ServicePurchasing
SAP
Adapter
Oracle
JDBCAdapter
AdapterFTP SMTP TCP/IP FTP FTP HTTP/SOAP
EDIProprietary
Format SWIFT FIX XML Table CSVData
Transformation
Data
Translation
Data
Enrichment
Data
Validation
Queue Queue Topics Topics Topics Guaranteed Data Delivery
AuthenticationPartner
Management
Message
TrackingAuthorizationEncryption
Certificate
Management
Customer
Bank
Manufacturer
(Mail)System1
Shipping
LineBank
Custom
(WebServices)
System2
(Legacy)
System3
(Legacy)SAP Databases
58
GlassFishESB, JMS Message Queue, Identity ManagementGlassFishESB, JMS Message Queue, Identity Management
OpenSource SOA
L/C
Check
P/RP/O
Product
Inland
Booking
Vessel
Booking
Distribute
Docus
Custom
Clearing
Billing
service
Goods
Service
Payment
Order
servicePurchasing
Customer
BankManufacturer System1
Shipping
LineBank Custom System2 System3 SAP Databases
59
Addition of Future Systems
Customer
BankManufacturer System1
Shipping
LineBank
Doc
Management
Future
System
Future
System
Future
System
Future
System
L/C
CheckProduct Accounting Booking
Doc
Retrieval
Future
ServiceBilling
Future
Service
Future
Service
Future
Service
60
ESB Products
• GlassFish ESB (OpenESB)• Java CAPS ESB• IBM WebSphere
• Oracle Fusion Middleware• Microsoft Biztalk• Apache Service Mix
ESB (Forrester Wave; 2009)
62
What is it?
Business Processes ManagementThe concept of Business Process Management [BPM] has its roots in
Operation Transformation and enables flexible design deployment, monitoring and tracking, process focus and efficiency.
63
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Business Process Management (BPEL2.0)
BPM Standards : WS4BPEL 2.0
64
BPEL
• Business Process Execution Language
• Based on XML• IBM, BEA and Microsoft developed the first
version in 2002• BPEL 2.0 is latest version
65
BPEL Editor
66
BPEL Designer Tools
• IDE can be used to write BPEL or BPMN
• Examples:– NetBeans 6.1/6.5– Eclipse– Oracle Jdeveloper 10g
– IBM WebSphere Studio
67
BPEL Server
• Provides a run time environment for executing BPEL
• Examples– GlassFishESB (via BPEL SE)
– Oracle BPEL Process Manager– Microosoft Biztalk– Sun Java CAPS– IBM WebSphere Business Integration Server – Active BPEL Engine
– Apache Agila
68
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Business Process Management (cont.)
69
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Business Process Monitoring
Business Process Monitoring
70
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Open Source SOA
NetBeans (BPEL Designer); GlassFishESB (BPEL Server)
71
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
User Interface and Single Window View
Business Process Monitoring
User Interface + Single Window View
72
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
User Interface and Single Window View (cont.)
Business Process Monitoring
AccountsManagement
OrderProcessing
FieldService
SchedulingPersonalized
ServiceManage
ExceptionOrders
SubmitChangeOrder
73
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
OpenSource SOA
Business Process Monitoring
NetBeans (Visual JSF Prog), GlassFish, LifeRay Portal
74
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Key Performance Indicators (KPI)
Business Process Monitoring
AccountsManagement
OrderProcessing
FieldService
SchedulingPersonalized
ServiceManage
ExceptionOrders
SubmitChangeOrder
Performance Measurement (KPI)
75
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
Key Performance Indicators (KPI) (cont.)
Business Process Monitoring
AccountsManagement
OrderProcessing
FieldService
SchedulingPersonalized
ServiceManage
ExceptionOrders
SubmitChangeOrder
76
Customer
BankManufacturer System1
Shipping
LineBank
Courier
CompanySystem2 System3 SAP Databases
L/C
CheckProduct Accounting Booking
Distribute
Docus
Custom
ClearingBilling Payment Order Purchasing
OpenSource SOA
Business Process Monitoring
AccountsManagement
OrderProcessing
FieldService
SchedulingPersonalized
ServiceManage
ExceptionOrders
SubmitChangeOrder
NetBeans (iReport, JasperReport)
77
Open Source SOA Framework
External/Internal Systems
Build Re-usable Services (ESB) – openESB (GlassFish)
Business Process Management (BPEL) NetBeans / BPEL SE (GlassFish)
User Interface + Single Window – NetBeans (Visual JSF), GlassFish, LifeRay
Performance Measurement (KPI) – Jasper Report / NetBeans
78
Other OpenSource SOA
• ESB– JBoss ESB, Apache Service Mix 3.3
• BPEL DesignerTools, Servers– Eclipse, Active BPEL Engine,JBoss jBPM
• Web Server– Tomcat, JBoss
• Portal – JBoss Portal, Apache JetSpeed
79
Disadvantages of Open Source SOA• Having spoken about the various open source alternatives to
implement SOA into an enterprise we must also gauge the various risks and disadvantages associated with the Open source approach. Here are a few of them:-
• Most open source software applications are not reliable
• No support exists for open source software
• No guarantee of updates
• Significant problems connected to intellectual property
80
Resources
Some contents are borrowed from the presentation slides of Sang Shin, Java™ Technology Evangelist, Sun Microsystems, Inc.
Business Process Execution Language for Web Services, Matjaz B. Juric
Java SOA Cookbook, Eben Hewitt Service Oriented Architecture Field Guide for
Executives, Kyle Gabhart and Biphas Bhattacharaya