Oracle Service Bus
<Insert Picture Here>   Essential Concepts
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
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
Roadmap

1. Enterprise Service Bus
  •   Service Enablement
  •   Service Orchestration
  •   OSB Architecture
2. Service Bus Technologies
3. Proxy Service Development
4. Service Management and Monitoring
Why a Service Bus?

• The Point-to-Point problem


Application          Service                    Database


                     Service

Application                                       EJB

                     Service          Service


Application          Service          Service     SAP

              SOAP             SOAP
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
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
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
Dynamic Routing

• Use business rules to determine destination service


                          Service Bus


                                                     New Employee
             SOAP                                       Service
 HR Portal           Title =
                                              SOAP
                    Manger?
                                  Transform          New Manager
                                                       Service
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
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
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
Service Bus Quiz
Roadmap

1. Enterprise Service Bus
2. Service Bus Technologies
  •   Web Service Fundamentals
  •   XML Fundamentals
3. Proxy Service Development
4. Service Management and Monitoring
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
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
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
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
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
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>
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>
Service Bus Technologies Quiz
Roadmap

1. Enterprise Service Bus
2. Service Bus Technologies
3. Proxy Service Development
  •   Proxy Architecture
  •   Workspace
  •   Actions
  •   Transformations
4. Service Management and Monitoring
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
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
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
OSB Perspective


            Explorer
                                          Palette
                       Editor




                                DRAG



                                       Properties
  Outline
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
Transformations

• XML to XML (XQuery or XSLT)
• XML to Text/Binary (XQuery)
• Binary to Binary (MFL)
Dependency Tracking

• Select an artifact
• View References
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!
Proxy Service Development Quiz
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
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
Configuration Management

• Change Center
  •   Atomic sessions
  •   View & resolve conflicts
  •   Undo tasks
  •   Audit changes
• Import/Export
  • Change propagation
  • Workspace synchronization
• Test Console
  • Validate changes
Monitoring Dashboard

• Gauge the current health of:
  • OSB servers
  • Proxy services/operations
  • Message flow components
• View custom reports
• Metrics include:
  •   Response time
  •   Message throughput
  •   Error count
  •   Alert count
  •   Schema violations
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
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
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
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!
Product Interoperability

                          Console
                                                          BPM
Synchronize
                    Configure
                     Monitor
                                                         Tuxedo


        Service         Service Bus
       Repository
                                                     BPEL PM

   Discover         Configure
    Design
                                                          ODI
   Publish

                        Workspace
                                      Build Services &
                                       Applications
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 )

oracle-osb

  • 1.
    Oracle Service Bus <InsertPicture Here> Essential Concepts
  • 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 • Anyoneevaluating 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 ServiceBus • Service Enablement • Service Orchestration • OSB Architecture 2. Service Bus Technologies 3. Proxy Service Development 4. Service Management and Monitoring
  • 5.
    Why a ServiceBus? • The Point-to-Point problem Application Service Database Service Application EJB Service Service Application Service Service SAP SOAP SOAP
  • 6.
    Location Transparency • Isolatefrom 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 • Isolatefrom 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 • Allowmultiple 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 • Usebusiness rules to determine destination service Service Bus New Employee SOAP Service HR Portal Title = SOAP Manger? Transform New Manager Service
  • 10.
    Message Enrichment • Updatemessage 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 • Composenew 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 theRescue 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
  • 13.
  • 14.
    Roadmap 1. Enterprise ServiceBus 2. Service Bus Technologies • Web Service Fundamentals • XML Fundamentals 3. Proxy Service Development 4. Service Management and Monitoring
  • 15.
    Web Service DescriptionLanguage (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 AccessProtocol (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 astandard 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 • Structuredlanguage 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>
  • 22.
  • 23.
    Roadmap 1. Enterprise ServiceBus 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 toXML (XQuery or XSLT) • XML to Text/Binary (XQuery) • Binary to Binary (MFL)
  • 30.
    Dependency Tracking • Selectan artifact • View References
  • 31.
    Demonstration: Create aProxy Service Proxy Service approveLoan() Business ProcessLoan > $10,000? N Service approveLoan() Y Transform Business ProcessLargeLoan Message Service approveLoan() Please enable browser pop-ups!
  • 32.
  • 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 • FullPipeline 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
  • 35.
    Configuration Management • ChangeCenter • Atomic sessions • View & resolve conflicts • Undo tasks • Audit changes • Import/Export • Change propagation • Workspace synchronization • Test Console • Validate changes
  • 36.
    Monitoring Dashboard • Gaugethe current health of: • OSB servers • Proxy services/operations • Message flow components • View custom reports • Metrics include: • Response time • Message throughput • Error count • Alert count • Schema violations
  • 37.
    Alerts • Service LevelAgreements (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 aProxy 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 ortechnical questions? • SOA FAQ • OSB FAQ • OESB FAQ • All linked from their respective ias.us pages (start at http://soa.us.oracle.com )