2. About This Course
• Discuss several SOA requirements that can be
addressed using a Service Bus
• Explain the relationships between WSDL, XPath,
XQuery, and ALSB
• List some of the capabilities of an OSB Proxy Service
• Describe the process of how OSB is configured and
managed
3. Target Audience
• Anyone evaluating Service Bus technologies
• SOA project team members:
• Project Managers
• Enterprise and Project Architects
• Service Developers
• System Administrators
• Prior knowledge of fundamental
SOA concepts recommended
4. Roadmap
1. Enterprise Service Bus
• Service Enablement
• Service Orchestration
• OSB Architecture
2. Service Bus Technologies
3. Proxy Service Development
4. Service Management and Monitoring
5. Why a Service Bus?
• The Point-to-Point problem
Application Service Database
Service
Application EJB
Service Service
Application Service Service SAP
SOAP SOAP
6. Location Transparency
• Isolate from changes to service location
Service Bus HostA
New Hire SOAP SOAP
Initialize Benefits
Process Route to Service
HostB
HostB
Initialize Benefits
Service
7. Backwards Compatibility
• Isolate from changes to service contract/interface
Service Bus
SOAP SOAP
Customer Process Order
Portal Transform Service
<1.0>
Message
<2.0> 1.0
CSR App 2.0
8. Service Enablement
• Allow multiple protocols/messages to participate in a
SOA
Service Bus
SOAP JMS
Expense
Transform Payroll Service
Reimbursement
Process FTP
Transform Submit Expense
Report Service
Inventory
SOAP
Management JMS Transform Check Order
App Status Service
9. Dynamic Routing
• Use business rules to determine destination service
Service Bus
New Employee
SOAP Service
HR Portal Title =
SOAP
Manger?
Transform New Manager
Service
10. Message Enrichment
• Update message using the response from another
service
...
<Customer
History>
...
Service Bus
Insurance Call Transform Rate Quote
Portal Service Message Service
Get Customer
History Service
11. Service Orchestration
• Compose new services from existing ones
Service Bus
SOAP Account
Validation Service
1
Purchase SOAP Validate Check Price
Order Order 2 3 Service
Process Service
4 Check Inventory
Service
12. OSB to the Rescue
Oracle Service Bus
Service Service Service Security
Monitoring Management
Authentication
Dashboard Discovery
Authorization
SLA Alerts Change Mgmt.
Message
Reporting Import/Export Security
Message Broker
Content Based Dynamic Error Multiple
Routing Transformations Handling Protocols
Oracle WebLogic Server
Oracle JRockit JVM
14. Roadmap
1. Enterprise Service Bus
2. Service Bus Technologies
• Web Service Fundamentals
• XML Fundamentals
3. Proxy Service Development
4. Service Management and Monitoring
15. Web Service Description Language
(WSDL)
• Is an XML document
• Generated by tools
• Acts as a Web Service contract:
• Elements Employee getEmployeeDept()
• Operations
Department getAllDepts()
• Bindings
• Ports ("endpoints")
SOAPEmployeeService
http://services.bea.com/employeeservice
16. Simple Object Access Protocol (SOAP)
• Is a remote function protocol based on XML
• Used to invoke Web Services
• Wraps messages in an envelope protocol
• Supports headers and attachments
Communications Envelope
(HTTP, SMTP, FTP, etc.)
Client
Application SOAP Envelope
<Headers/>
</Body>
Service
SOAP Attachments
17. Universal Description, Discovery, and
Integration (UDDI)
• Metadata structure to classify and catalog services
• SOAP interface to communicate with a service
registry ("digital telephone book")
Publish Service Service Registry
Discover Service
Service WSDL + metadata
Development &
Management Tools SOAP WSDL + metadata
18. XML Schema
• Defines the structure of other XML documents
• Is itself an XML document
• Allows for faster message validation and processing
• Has a unique ID called a namespace
<xs:schema targetNamespace="http://schemas.bea.com/purchase"
xmlns="http://schemas.bea.com/purchase"
xmlns:po="http://schemas.bea.com/purchase"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="PurchaseOrder">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" type="xs:string"/>
<xs:element name="Items" type="ItemList"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...
</schema>
1
011
19. XPath
• Is a standard XML expression language
• Used to identify or locate portions of an XML
document
• Attributes
• Elements
<PurchaseOrder>
//PurchaseOrder/Item/@line <Item line="1">
<price>49.99</price>
<quantity>3</quantity>
</Item>
<Item line="2">
//PurchaseOrder/Item/price <price>9.49</price>
<quantity>1</quantity>
</Item>
</PurchaseOrder> 1
011
20. XQuery
• Structured language for working with XML
documents:
• Strongly typed
• Variables, operators, conditions, loops
• Library and custom functions
• Relational database queries
• Supports XPath
return <items>
<items>
for $item in //PurchaseOrder/Item <price>49.99</price>
order by $item/title <price>9.49</price>
return <price>{$item/price}<price> </items>
return </items>
21. Extensible Stylesheet Language
Transformations (XSLT)
• Alternative to XQuery for XML transformations:
• Loosely typed scripting language
• Does not require XML Schema
• More tolerant of malformed XML
• Supports XPath
<xsl:stylesheet>
<xsl:template match="//Item"> <line id="1">
<line id="{@line}"> 49.99
<xsl:value-of select="price"/> </line>
</line> <line id="2">
</xsl:template> 9.49
</line>
</xsl:stylesheet>
23. Roadmap
1. Enterprise Service Bus
2. Service Bus Technologies
3. Proxy Service Development
• Proxy Architecture
• Workspace
• Actions
• Transformations
4. Service Management and Monitoring
24. Proxy Services
Service Bus Outbound
Proxy Service Business Service
Inbound Service Producer
Service Pipeline Business Service
Consumer Service Producer
Pipeline Business Service
Service Producer
Workspace Console
25. Supported Protocols
• Protocols
• SOAP over HTTP/JMS
• HTTP/S
• JMS
• RMI/IIOP (EJB) XML
• Tuxedo, MQSeries
• Email (SMTP/POP/IMAP) SOAP over HTTP
• FTP/Secure FTP
• Custom
• Oracle Adapters (framework + Adapters post 10gR3)
XML
• Message Formats
• XML JMS
• Text
• Custom Binary (EDI, etc.)
Text
• SmartConnect Adapters
• SAP SMTP
• PeopleSoft
• Siebel
• Oracle
• SWIFT
26. Workspace
• Eclipse-based IDE
• Define XML Schemas, WSDLs, and transformations
• Configure business and proxy services
• Track dependencies
• Deploy to OSB server and test
Workspace
Beehive OSB ALRR XQuery
Eclipse Web Tools
J2EE XML WSDL HTML
Eclipse Platform
27. OSB Perspective
Explorer
Palette
Editor
DRAG
Properties
Outline
28. Message Flow
• Conditions/branches
• Routing destinations
• Request/response Pipelines
• Actions:
• Update/replace/delete message contents
• Update message headers
• Call another service Action
• Raise error on client
• Generate a report or alert
• Invoke a Java class or EJB
• Error handlers Pipeline
29. Transformations
• XML to XML (XQuery or XSLT)
• XML to Text/Binary (XQuery)
• Binary to Binary (MFL)
31. Demonstration: Create a Proxy Service
Proxy Service
approveLoan()
Business ProcessLoan
> $10,000?
N Service approveLoan()
Y Transform Business ProcessLargeLoan
Message Service approveLoan()
Please enable
browser pop-ups!
33. Roadmap
1. Enterprise Service Bus
2. Service Bus Technologies
3. Proxy Service Development
4. Service Management and Monitoring
• OSB Console
• Service Level Agreements
• OSB Security
• Advanced Routing
• Product Interoperability
34. OSB Console
• Full Pipeline Design Capabilities
Additionally:
• Configure proxy service security
• Monitor service health
• Generate reports
Edit Message
• Define SLAs that trigger alerts Flow
• Synchronize with a UDDI registry
Monitor Alerts
37. Alerts
• Service Level Agreements (SLAs)
• Guarantee a certain level of performance and/or quality
• Trigger reports and Alerts
• Email
• SNMP
• JMS
• Rules based on:
• Response time
• Message count
• Success/failure ratio
• Schema violations
• Security violations
38. OSB Security
Service
• Transport security (HTTP, JMS, Consumer
etc.) WS-Security
• Basic authentication SAML
• SSL Proxy
Authorization
• SOAP message security Service
• WS-Security Credential
Mapping Business
• WS-Policy Service
• SAML
• Credential mapping SOAP over HTTPS
• Role-based authorization Service
Producer
• Delegated administration
39. Advanced Mediation Policies
• Business Service Load Balancing & Failover
Service Producer Node1
Proxy Business
Service Producer Node2
Service Service
Service Producer Node3
• Throttling
Message Buffer
Proxy Business Legacy
Service Service Service
40. Demonstration: Manage a Proxy Service
Proxy Service
approveLoan()
Business ProcessLoan
> $10,000?
N Service approveLoan()
Y Business ProcessLargeLoan
Service approveLoan()
Response
Time > 5ms?
SMTP
Alert Please enable
browser pop-ups!
41. Product Interoperability
Console
BPM
Synchronize
Configure
Monitor
Tuxedo
Service Service Bus
Repository
BPEL PM
Discover Configure
Design
ODI
Publish
Workspace
Build Services &
Applications
42. Have Licensing or technical questions?
• SOA FAQ
• OSB FAQ
• OESB FAQ
• All linked from their respective ias.us pages
(start at http://soa.us.oracle.com )