oracle service bus.pdf
TRANSCRIPT
-
Oracle Service Bus
-
2Oracles Product Families
Database
Real Application Clusters
Partitioning
OLAP / Data Mining
Spatial
Times Ten
Database Vault
Secure Enterprise Search
Java Application Server
Service Oriented Arch
Business Process Mgmt
Identity Management
Data Integration
Content Management
Business Intelligence
User Interaction
E-Business Suite
PeopleSoft Enterprise
Siebel CRM
JD Edwards
Oracle Retail
i-flex Financial Services
Communications
Utilities
-
3Oracle Fusion Middleware
-
4SOA: A Paradigm Shift in Enterprise IT Development and Deployment
SOA is an IT strategy that organizes the discrete functions contained in an enterprises applications into interoperable, standards-based services that can be combined and reused quickly to meet business needs.
-
5Validate & Deploy
Discover & Compose
Operate & Manage
Interoperate & Secure
Service Infrastructure
App Infrastructure
Emergence of The Service Infrastructure
I
n
f
r
a
s
t
r
u
c
t
u
r
e
N
e
e
d
s
SOA Deployment
Design
Build & Expose
Infrastructure to tie together services into an enterprise SOA
Enables the composition of new functionality from existing services
Provides messaging, operations, security, and management
Service Infrastructure
-
6Service Sprawl Without Service Infrastructure
Service
Service Service
Service
Service
Service Service
Service
Service Sprawl
Lack of scalability
Point-to-point integration
Integration logic in the
application
Message formats
Routing logic
Security policies
Hard to reuse
No catalog, search, discoverer
Challenging across the extended
enterprise
Hard to manage
No end-to-end monitoring, SLAs
No change management
-
7The Enterprise Service Bus Eliminates Service Sprawl
Enterprise Service Bus
Service
Service Service
Service
Service
Service Service
Service
Connect once
Integration logic separate
from business logic
Enterprise-wide reuse
Central management
Structure in Infrastructure
-
8Services Routing
Data Services
Portal Tier
Process Tier
Security Services
Service Infrastructure Tames Service Sprawl
Service Registry
End-to-end Web Services Management
Order ManagementProcess
Service Integration/Routing
BillingInventory
Management
Mainframe .Net ERPData
WarehouseOracle
Portlet Web App
ServiceRegistry
ServiceRegistry
ServiceRegistry
ServiceRegistry
Web Services, Message Brokering and Enterprise Service Bus cited
as most useful technologies for SOA deployment and management
AndThe ESB is Key
-
9Oracle Service BusFeature Summary
-
10
Service Bus Security
Authentication Authorization IdentityMessageSecurity
FTPMQ
Interoperability
SMTP
Repository
ReportingSLA Alerts
Error Handling
Content Based Routing
Dynamic Transformation
Import / Export
Validation
Service Management
Message Brokering Admin
Service Switching
HTTP/S SOAP JMS File
Change Center
Service Discovery
Monitoring
JMS/XA Tux
Oracle Service Bus Components
Custom
-
11
ApplicationClient
ServiceClients
Oracle Service Bus Enterprise Services
transporttransport
Service
ProxyService
BusinessService
Transformation, etc.
Inbound interface
Routing
Load balancing
Outbound interface
OSB: Internal architecture (i)
-
12
Proxy Service
Service Pipeline
Nodes (Stages)
Actions
OSB: Internal architecture (ii)
-
13
Built on top of WebLogic ServerThe worlds leading application server
World Wide Market Share Leader
Latest Gartner report ~1/3 market share world wide
Ranked Leader 9 years running
Gartner Enterprise Application Server Magic
Quadrant
#1 with Developers
Evans Data Corporation Survey
Unparalleled Manageability Guardian,
Virtualization
High Performance multiple system types
SPECjAppServer20041
1 SPECjAppServer is a trademark of the Standard Performance Evaluation Corp. (SPEC). For the latest SPECjAppServer2004 results visit http://www.spec.org/osg/jAppServer2004
-
14
Integrated CompositionEnable ESB design as part of a Composite App
Eclipse-based common design
tooling with rest of SOA
infrastructure
Unified, collaborative design
environment & uniform
deployment model
Benefits
Faster time to value
Improved asset visibility
Better impact analysis
Increased asset reuse
Improved developer productivity
-
15
Service Assembly ModelerDesign-time Navigation
Navigate from SCA component to respective product
design view
Integrated Eclipse Design Perspective
R-click and select Open Service
OSB Proxy Pipeline Design View
SAM SCA Composite View
SAM OSB
-
16
OSB Message Brokering
Multi-Protocol MessagingHTTP(S), JMS Store-and-Forward, 3rd party messaging products via JMS Provider Interface (MQ Series, Tibco E4JMS), File, FTP, email (SMTP/POP/IMAP), Tuxedo, Java, RMI, Custom
Mix-and-match of transports; end-to-end guaranteed delivery when transport supports it
WS ProcessingFull support for proper Web Services (WSDL, SOAP enveloping) and non-SOAP-enveloped messages
Multiple Communications ParadigmsRequest/response (synchronous and asynchronous), asynch messaging, one-to-many publish
Mix-and-match (e.g. sync-to-async bridging)
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAP
Service
Multi Protocol Messaging
ApplicationClient Service
Service
Service
Service
JMS
FTP
SMTP
File
WS Processing
Multi Communications Paradigms
HTTP/SOAP
JMS
FTP
SMTP
File
Message Brokering
ApplicationClient
ApplicationClient
ApplicationClient
-
17
ApplicationClient
ServiceClients
Oracle Service Bus Enterprise Services
ServiceProxy Business
SAP Adapter
SAP
Adapter-based integration
ERP Adapter Support
Custom transport SDK
HTTP/SOAP JCA
Route
-
18
Dynamic Message Routing
ApplicationClient
WebService
Service Clients Business Services
HTTP/SOAPHTTP/SOAP
Dynamic Message Routing Routing Based on SOAP headers, transport headers, JMS user
properties, MQ headers, file directory, email subject, and message content (XML and structured non-XML)
ServiceRoute
Proxy Flow
$header
$body
$attachment
$fault
Oracle Service Bus
-
19
Dynamic Message Routing - detail
Conditional routing Conditions (e.g. IfThenElse) can be applied to routing nodes
Both on request and response communications
Identity-based routing Routing rules based on security credentials
Dynamic routing When the business service needed to be invoked by a proxy service is not known beforehand
Determine the destination during the runtime of a proxy service
Use a routing table in an XML file or an XQuery expression to dynamically set the fully qualified service name
-
20
Integrated Transformation
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAPHTTP/SOAP
Support for XML and Non-XML Messages XML processing optimized with XQuery engine XML transformation uses XQuery; XUpdate like actions used to update header or content Non-XML messages handled via MFL (Message Format Language). Non-XML messages always look
like XML to the message flow actions (auto conversions in place)
Format Handling Tools Schema-driven console tools for navigating message content/headers, creating routing rules and
publish filters
Format Definition & Transformation XQuery maps and MFL definitions are deployed into OSB XSLT transformations are supported
Transformation Call-Outs Transformations (Java) hosted outside OSB invoked via the call-out action
ServiceRoute
Proxy Flow
xForm
-
21
Integrated Transformation - detail
XQuery Mapper Graphical environment for data transformation
Resulting output is a query written in the XQuery language
XML, non-XML and Java Simple data types can be transformed from one format to another
-
22
ApplicationClient
Service Clients Oracle Service Bus
Route
Proxy Flow
Service
HTTP/SOAP[X.509]
Encryption, signing
Business Services
SSL [X509]
Service
Security Framework
HTTP/SOAP Authentication
[Basic]Role based Authorization
Transport-level security HTTP, HTTPS, JMS + secured SSL channel
Message-level security (WS-Security) Authentication via security tokens (Username, X.509, SAML)
Message integrity via digital signatures
Message confidentiality via XML encryption
WS-Policy
Role-based authorization of access to services
Console access security
Security
-
23
Error Handling FeaturesCapture multiple levels of exceptionsProcess SOAP FaultsEnrich custom error messages to invoking servicesSearch / Report by error conditionsValidationSecurity: authentication, authorization, signing, decryptionCan raise error on any condition
Error HandlersService levelPipeline levelStage level
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAPWeb Service
Route
Proxy Flow
Validate
Error Code
Error Handling
-
24
Monitor System Operations
Alerting and reporting key monitoring points
Gauge system health with notification of slowdowns
Monitoring is optional per service
Efficient Troubleshooting
Drill into message reporting DB and execution history for quick recovery by administrators
Dashboard
Show fault and performance metrics aggregated cluster wide or per server with drilldown
Business Monitoring
Track relevant business/service data
Business analysts can run reports off the data streamed into 3rd-party reporting engines or graphical dashboards
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAPHTTP/SOAPWeb Service
Reporting DB
Custom Reporting Provider
Route
Proxy Flow
Report
Service Monitoring
-
25
Establish ThresholdsBased on performance and error eventselapsed timesaverage execution times# of errorssuccess ratioAlerts by severity
Flexible notificationEmail JMSBusiness Service
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAP6MS
HTTP/SOAP5MS Service
Route
Proxy Flow
Management Framework
SMTP
On avg execution < 5 Ms
Error ServiceJMS
SLA Capabilities
-
26
System Alerts History page
View all alerts by paging through table, or by filtering display
Pie and bar chart views also available
SLA Alerts - detail
-
27
ApplicationClient
Service Clients Oracle Service Bus Business Services
HTTP/SOAPHTTP/SOAPService
Route
Proxy Flow
Supports registry of Services (endpoints) Services/endpoints mediated by OSB
Service proxies exposed by OSB
Store of Service Metadata Transport Interface details (URIs/WSDL/schemas/WS-Policies)
Transport characteristics (load balancing, retries, failover, timeouts) Associated service providers Transformation maps used by services
Organized and Searchable Centralized management with distributed access Configuration data migration between environments (i.e.; dev to test)
Registry
WSDLWSDL
Service Publishing
-
28
Load Balancing Options as part of business service configurationJMS, WS, File, FTP, SMTP,
Supported Algorithms
Round Robin
Random
Random Weighted
Service Client
Service Clients Oracle Service Bus Business Services
JMS
URI X
URI Y
HTTP/SOAP
Route
Proxy Flow
Load Balancing
-
29
Advanced Service PoolingRouting to active endpoints, service load balancing
Service Clients
Endpoint URL 1
Endpoint URL 3
Endpoint URL 2Proxy Svc
Client 1
OSB Cluster
BusSvc
If a URI is non-responsive, take the URI out of the poolBring the URI back in the pool when it is back-up
Option for the system to automatically take non-responsive URIs out of the pool, and put them back in as they become responsive
Alerts will be generated when the status of the endpoint changes from Up Down and vice versa
-
30
Business Service Overload Protection Throttle Incoming Messages with Policy
Clients
Service Clients
OSB Cluster
Throttle requests w/ Policy
Proxy Service
Legacy Service 1Queue
buffer
size
Throttle throughput to business services based on acceptable concurrency.
Avoid business service overload
BusSvc
Impact of Throttling
0
500
1000
1500
2000
2500
0 2 4 6 8 10 12 14 16 18 20 22
Hour of the Day
R
e
q
u
e
s
t
s
p
e
r
h
o
u
r
Original Load
Load after Throttling
-
31
Administration Console
Portal-based administration Used for all configuration & monitoring
Uses lightweight version of Oracle WebLogic Portal
Modular, task-based functionality exposed by JMX interfaces
Extensible security roles Pre-packaged roles OOTB
Configuration/Admin team can edit and add new users to roles through console
-
32
OSB - Lifecycle management
Service Bus resources and services organized into projects Hierarchical, folder-based organization for services/endpoints,
transformations, WSDLs, WS-policies
Resources and services can refer to resources and services in other
projects/folders
View and move resources and services
Projects used as a convenient import/export unit
Designed to accommodate 1000s of configuration artifacts
Configuration changes take place immediately or go through a test/stage/deploy lifecycle
Environment-specific variable support
Import/export configuration data
-
33
SOA Use Case for ESB
Customer Use Case: Portal application consumes business
services from back-end applications. Eliminate the point to point coupling using a
SOA based architecture.
Requires ESB Characteristics: Heterogeneous messaging backbone Content based routing Service enrichment Monitoring and reporting SOA based security Service workload and management Message Guarantees Distributed services across the enterprise Service discovery
getCustAddress getCustCreditgetCustProfile
getCustAddress getCustCreditgetCustProfile
JMS SOAP MQ
Mainframe.NETWebLogic
-
34
Heterogeneous Messaging
Heterogeneous messagingWeb Services
non-WS based messaging
Mixed messaging models
B2B
Legacy protocols and connections
Interop with .NET, Apache, WebSphere getCustAddress getCustCreditgetCustProfile
getCustAddress getCustCreditgetCustProfile
Oracle Service Bus
Mainframe.NETWebLogic
File SOAP (Async) Legacy
JMS SOAP (Sync) MQ
-
35
Content Based Routing
getCustCredit
getCustAddress getCustCreditv1getCustProfile getCustCreditv2
getCustCredit1Begin Route
getCustCredit2
Content based routing enables better loose-coupling of SOA endpoints. Enables versioning scenario as one example.
Oracle Service Bus
-
36
getCustProfile
getCustAddress getCustCredit1getCustInfo getCustCredit2
Service Enrichment
getCustCredit1getCustAddressCallouts
getCustInfo
Aggregated Results AppendTransform ReturnRoute
getCustCredit2
getCustProfile
Proxy
Enrich services by combining transformation and routing together. Enables better re-usability of enriched services.
Oracle Service Bus
-
37
getCustProfile
getCustAddress getCustCredit1getCustInfo getCustCredit2
Improving performance with Split-Join
getCustCredit1getCustAddressParallel
getCustInfo
Join AppendTransform ReturnRoute
getCustCredit2
getCustProfile
Proxy
Split-Join feature lets you split a service payload into individual messages for concurrent processing. Concurrent processing, as opposed to sequential processing, greatly improves service performance.
Oracle Service Bus
-
38
Monitoring and Reporting
Monitoring and Reporting for business services are key foundations to an ESB.
X
getCustCredit1Begin ExceptionRoute
getCustCredit2
Report Return
getCustAddress getCustCredit1getCustProfile getCustCredit2
getCustCredit getCustCreditAlertService
Oracle Service Bus
-
39
SOA Security Models
getCustCredit
getCustCreditv1 getCustCreditv2
getCustCreditv1Route
getCustCreditv2
ESB requires Loose coupling of security models, Identity propagation, and WS-Security (Message Security) or Transport Security.
Oracle Service Bus
Transport Security [Example: HTTP Basic Auth]
Message Security [Example: Signing / Encryption]
Transport Security
[Example: HTTP SSL Client Cert]
Message Security
[Example: SAML Token]
Begin
-
40
Message Guarantees
getCustCredit
getCustCreditv1 getCustCreditv2
getCustCreditv1Begin Route
getCustCreditv2
ESB requires guaranteed messaging paradigms including support for 2 phase commit and idempotent semantics.
Oracle Service BusJMS/XA
JMS JMS/XA
At Least Once
Semantics
Exactly Once
Semantics
-
41
Service Workload and Management
ESB should have ability to distribute its workload and scale with increasing load and provide backups to route messages by failover.
X
getCustCredit
Connection Failover
Route
getCustCredit
getCustCredit
Load Balancing Server
Managed Server 2Managed Server 1
Oracle Service Bus
getCustCredit
getCustCredit
Connection Failover
RoutegetCustCredit
-
42
Benefits of Using Oracle Service Bus
Solve point to point challenges of service messaging
Leverage your existing IT Messaging infrastructure for SOA
Dynamic assembly of services in a heterogeneous environment
Accelerate service re-use
Manage attributes and complexity of ESB behavior in a rapidly changing infrastructure
Provide visibility of SOA messaging standalone or within a larger enterprise
getCustAddress getCustCreditgetCustProfile
getCustAddress getCustCreditgetCustProfile
Oracle Service Bus
-
43
Oracle Service BusPerformance
-
44
1,000.00
2,000.00
3,000.00
4,000.00
5,000.00
6,000.00
7,000.00
8,000.00
9,000.00
3,734.68
538.03 542.17
4,098.77
349.11618.22
1,266.42
616.22
1,000.86
4,368.02
4,915.49
6,662.98
1,466.29
618.38
6,812.79
404.88
7,174.56
801.70 733.22
1,578.16
802.61
874.17
1,781.37
1,000.37
WebLogic Server Industry-Leading Performance
0.00
Jan-06 Feb-06 Jun-06 Jun-06 Jun-06 Jul-06 Jul-06 Jul-06 Aug-06 Sep-06 Nov-06 Nov-06 Nov-06 Dec-06 Dec-06 Dec-06 Jan-07 Jan-07 Jan-07 Jan-07 Feb-07 Mar-07 Apr-07Feb-06 Feb-06
WLS
9.0
7,629.45
WLS current world record holder HP Integrity system (Itanium 2) 7,629.45 SPECjAppServer2004JOPS@Standard
WLS
9.0
WLS
9.0
WLS
9.1
WAS
6.1
WLS
9.1
WLS
9.1
WAS
6.1
WLS
9.1
WAS
6.1
WLS
9.1
WLS
9.2
WLS
9.2
WAS
6.1
OAS
10.1.3.2
WAS
6.1
WLS
9.2
WLS
9.2
OAS
10.1.3.2
WLS
9.2
OAS
10.1.3.2
OAS
10.1.3.2
OAS
10.1.3.2
WLS
9.2
OAS
10.1.3.2
SPECjAppServer is a trademark of the Standard Performance Evaluation Corp. (SPEC). Competitive numbers shown reflect results published on www.spec.org
as of July 6, 2007. For the latest SPECjAppServer2004 results visit http://www.spec.org/osg/jAppServer2004
-
45
Pass-Through Routing (Message Propagation)- 22 million 5 KB SOAP messages per hour
The pass-through use case
reflects the performance of
message propagation with
monitoring enabled.
On a 2 CPU dual-core (2 GHz)
Xeon server, OSB can process
around 6300 5KB messages a
second or 22.7 million 5KB
messages an hour.
JMS numbers are based on non-
persistent JMS queues.
The JMS benchmark involves a
complete round-trip of the
message to the client (2 queue
hops).
HTTP Pass-Through Routing
(Core Message Propagation)
0
1000
2000
3000
4000
5000
6000
7000
1 2 4 8 12 16
Number of Clients
T
h
r
o
u
g
h
p
u
t
0.0
0.5
1.0
1.5
2.0
2.5
3.0
R
e
s
p
o
n
s
e
T
i
m
e
(
m
s
) HTTP TPS
HTTP RT
JMS Pass-Through Routing
(Core Message Propagation)
0
1000
2000
3000
4000
5000
1 2 4 8 12 16
Number of Clients
T
h
r
o
u
g
h
p
u
t
0.0
1.0
2.0
3.0
4.0
5.0
R
e
s
p
o
n
s
e
T
i
m
e
(
m
s
)
JMS TPS
JMS RT
-
46
Horizontal Scalability in a Cluster
Horizontal Scalability
Data Transformation and Routing Over Persistent JMS
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
6 12 24 36 48 72 96
Number of Clients
T
h
r
o
u
g
h
p
u
t
(
T
P
S
)
0
10
20
30
40
50
60
70
80
90
100
%
C
P
U
(
A
v
e
r
a
g
e
)
TPS - 1 Node
TPS - 2 Nodes
TPS - 3 Nodes
CPU -1 Node
CPU - 2 Nodes
CPU - 3 Nodes
Use case involves data
transformation and content based
routing over persistent JMS (File
Store).
Performance results on a 3 node
cluster indicates near linear to linear
scalability for a small number of
nodes
Linear scalability indicates that
adding a second server to a single
server doubles the capacity of the
system
TPS / CPU represents ratio of total
throughput by the CPU utilization
per node.
Horizontal Scalability
Per Server CPU Cost Comparison (Total TPS / Avg CPU)
0
1
2
3
4
6 12 24 36 48 72 96
Number of Clients
T
h
r
o
u
g
h
p
u
t
(
T
P
S
)
1 Node
2 Nodes
3 Nodes
-
47
Scalability with Large Number of Services
Scalability with increasing number of services is an important and often ignored
dimension of SOA architectures.
OSB scales easily to over 2000 services even when monitoring is enabled with a
relatively small drop (10-15% or 0.5 ms) in performance from 2 services.
The drop in performance is negligible going from 500 to 2000 services
Scalability with Large Number of Services
HTTP Pass Through
0
1000
2000
3000
4000
5000
6000
7000
1 2 4 8 12 16
Number of Clients
T
h
r
o
u
g
h
p
u
t
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
R
e
s
p
o
n
s
e
T
i
m
e
(
m
s
)
2 Service TPS
2000 Service TPS
2 Service RT
2000 Service RT
-
48
Oracle Service BusIndustry/Analyst Materials
-
49
Network Computing
-
50
Forrester
-
51
Gartner Group
-
52