You are previewing Oracle Service Bus 11g Development Cookbook.
O'Reilly logo
Oracle Service Bus 11g Development Cookbook

Book Description

This intermediate level cookbook is ideal for SOA developers who want to get the most from Oracle Service Bus in developing service and message-oriented solutions. It's packed with relevant recipes and clear, detailed explanations.

  • Develop service and message-oriented applications on the Oracle Service Bus following best practices using this book and ebook

  • Extend your practical knowledge of building solutions on the Oracle Service Bus

  • Packed with hands-on cookbook recipes, with the complete and finished solution as an OSB and SOA Suite project, made available electronically for download

  • In Detail

    Oracle Service Bus 11g is a scalable SOA integration platform that delivers an efficient, standards-based infrastructure for high-volume, mission critical SOA environments. It is designed to connect, mediate, and manage interactions between heterogeneous services, legacy applications, packaged applications and multiple Enterprise Service Bus (ESB) instances across an enterprise-wide service network. Oracle Service Bus is a core component in the Oracle SOA Suite as a backbone for SOA messaging.

    This practical cookbook shows you how to develop service and message-oriented (integration) applications on the Oracle Service Bus 11g.

    Packed with over 80 task-based and immediately reusable recipes, this book starts by showing you how to create a basic OSB service and work efficiently and effectively with OSB. The book then dives into topics such as messaging with JMS transport, using EJB and JEJB transport, HTTP transport and Poller transports, communicating with the database, communicating with SOA Suite and Reliable Message Processing amongst others. The last two chapters discuss how to achieve message and transport-level security on the OSB.

    Table of Contents

    1. Oracle Service Bus 11g Development Cookbook
      1. Table of Contents
      2. Oracle Service Bus 11g Development Cookbook
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers and more
          1. Why Subscribe?
          2. Free Access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. OSB Cookbook standard environment
        4. Who this book is for
        5. Recipes
        6. Conventions
        7. Reader feedback
        8. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Creating a basic OSB service
        1. Introduction
        2. Creating a new OSB project
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        3. Defining a folder structure for the OSB project
          1. Getting ready
          2. How to do it...
          3. How it works...
        4. Importing an already existing project into Eclipse OEPE
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Creating a business service to call an external SOAP-based web service
          1. Getting ready
          2. How to do it...
          3. How it works...
        6. Generating a simple pass-through proxy service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        7. Deploying the OSB configuration from Eclipse OEPE
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Deploying to a remote server from Eclipse OEPE
            2. Creating an OSB Configuration Jar and use the OSB console to deploy it
        8. Testing the proxy service through the OSB console
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        9. Testing the proxy service through soapUI
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Validate that the response is correct
            2. Creating another request for the same operation
          5. See also
        10. Creating proxy service with a WSDL based interface
          1. Getting ready
          2. How to do it...
          3. How it works...
            1. Use the echo behaviour to implement a simple mock service
        11. Using a routing action to statically route to another service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        12. Adding an operational branch to support the different WSDL operations of the proxy service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Do I have to implement a branch for each operation?
            2. How to handle operations which are not yet supported?
          5. See also
        13. Using an XQuery transformation to map between the different data models of the services
          1. Getting ready
          2. How to do it...
          3. How it works...
      9. 2. Working Efficiently with OSB Artifacts in Eclipse OEPE
        1. Introduction
        2. Setting up an OSB project to work with JCA adapters
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        3. Using context menu to add nodes and actions to message flow
          1. Getting ready
          2. How to do it...
          3. How it works...
        4. Moving nodes/actions in Eclipse OEPE by drag-and-drop
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Copying nodes/actions from one place to another
          1. Getting ready
          2. How to do it...
          3. How it works...
        6. Moving artifacts inside the same OSB project
          1. Getting ready
          2. How to do it...
          3. How it works...
        7. Copying artifacts from one project into another
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        8. Debugging services through Eclipse OEPE
          1. Getting ready
          2. How to do it...
          3. How it works...
      10. 3. Messaging with JMS Transport
        1. Introduction
        2. Sending a message to a JMS queue/topic
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Advanced settings on JMS Transport
            2. Sending to a JMS topic
          5. See also
        3. Changing JMS Transport message headers and properties at runtime
          1. Getting ready
          2. How to do it...
          3. How it works...
        4. Consuming messages from a JMS queue
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Consuming messages from a topic with non-durable/durable subscription
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        6. Consuming messages from a JMS queue/topic selectively
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Using user-defined properties in a message selector
            2. Using compound expressions in a message selector
          5. See also
        7. Accessing JMS Transport headers and properties in message flow
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Accessing user-defined JMS properties
        8. Using request-response messaging with JMS
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        9. Using QBrowser Admin GUI for accessing JMS queues/topics
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        10. Testing JMS with soapUI
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
      11. 4. Using EJB and JEJB transport
        1. Introduction
        2. Exposing an EJB session bean as a service on the OSB using the EJB transport
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Locate an EJB in the JNDI tree
            2. What if the EJB method returns a list of objects?
        3. Using JNDI Provider to invoke an EJB session bean on a remote WebLogic domain
          1. Getting ready
          2. How to do it...
          3. How it works...
        4. Using converter class with EJB transport to help converting data types
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Exposing an EJB session bean as an EJB on the OSB using the JEJB transport
          1. Getting ready
          2. How to do it...
          3. How it works...
        6. Manipulating the response of the JEJB transport by a Java Callout action
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
      12. 5. Using HTTP Transport
        1. Introduction
        2. Using HTTP transport to implement messaging over HTTP
          1. How to do it...
          2. How it works...
          3. There's more...
        3. Exposing a RESTful service on the OSB
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        4. Consuming a RESTful service from the OSB
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Creating a generic RESTful gateway on the OSB
          1. Getting ready
          2. How to do it...
          3. How it works...
        6. Implementing a WebSockets transport for server-side push
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
      13. 6. Using File and Email Transports
        1. Introduction
        2. Using the File or FTP transport to trigger a proxy service upon arrival of a new file
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. File and FTP transports versus JCA adapters
            2. Selectively processing files
            3. Processing binary files
          5. See also
        3. Using the File JCA adapter to read a file within the message flow
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Setting the filename and folder name dynamically at runtime
            2. Reading file resources through a XQuery script
          5. See also
        4. Using the File Transport to write to a file
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Specifying a filename at runtime
            2. Writing a file to a remote folder through FTP
        5. Using Email Transport to receive e-mail
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        6. Using Email Transport to send e-mail
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
      14. 7. Communicating with the Database
        1. Introduction
        2. Using DB adapter to read from a database table
          1. Getting ready
          2. How to do it...
          3. How it works...
        3. Using DB adapter to execute a custom SQL statement against the database
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        4. Using the DB adapter to update a database table
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. A Note on the Detect Omissions Flag
            2. The side effect of the Get Active UnitOfWork flag
        5. Using DB adapter to poll for changes on a database table
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. What kind of database changes may be detected
            2. What are the possibilities of marking processed rows
            3. How to modify the query when polling the database
            4. Options regarding runtime behavior
        6. Using the AQ adapter to consume messages from the database
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
          5. See also
        7. Using the AQ adapter to send messages to the database
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
      15. 8. Communicating with SOA Suite
        1. Introduction
        2. Invoking a SCA composite synchronously from an OSB service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
          5. See also
        3. Invoking a SCA composite asynchronously from an OSB service
          1. Getting ready
          2. How to do it...
          3. How it works...
        4. Invoking an OSB service from SCA composite synchronously
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Invoking an OSB service from SCA composite asynchronously
          1. Getting ready
          2. How to do it...
          3. How it works...
      16. 9. Communication, Flow Control, and Message Processing
        1. Introduction
        2. Using Service Callout action to invoke a service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        3. Using the Publish action to asynchronously invoke a service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        4. Using the Java Callout action to invoke Java code
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        5. Using the Java Callout action with XMLBeans
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        6. Using custom XPath functions
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        7. Using the For Each action to process a collection
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        8. Using dynamic Split-Join to perform work in parallel
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        9. Using the Validate action to perform message validation
          1. Getting ready
          2. How to do it...
          3. How it works...
        10. Enabling/disabling a Validate action dynamically
          1. Getting ready
          2. How to do it...
          3. How it works...
        11. Creating private proxy service
          1. Getting ready
          2. How to do it...
          3. How it works...
      17. 10. Reliable Communication with the OSB
        1. Introduction
        2. Configuring Retry handling in JMS
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        3. Enabling JMS message persistence
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        4. Working with global transactions and quality of service
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Using WS-Reliable Messaging (WS-RM) with WS transport
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        6. SOAP over JMS
          1. Getting ready
          2. How to do it...
          3. How it works...
      18. 11. Handling Message-level Security Requirements
        1. Introduction
        2. Preparing OSB server to work with OWSM
          1. Getting ready
          2. How to do it...
          3. How it works...
        3. Configuring OSB server for OWSM
          1. How to do it...
          2. How it works...
          3. There's more...
        4. Securing a proxy service by Username Token authentication
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        5. Securing a proxy service by protecting the message
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        6. Securing a proxy service by using Username Token authentication and protecting the message
          1. Getting ready
          2. How to do it...
          3. How it works...
        7. Securing a proxy service by using certificate authentication and protecting the message
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. See also
        8. Securing a proxy service with authorization through Message Access Control
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Using users, groups, and roles instead of individual users
            2. Making a resource available only during working hours
        9. Using JDeveloper to test a secured service
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Implementing a JDeveloper test client for service with Username Token authentication
            2. Implementing a JDeveloper test client for service with message protection
        10. Calling a secured service from OSB
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Making the business service work with the default credential
            2. Keys used for signing and encrypting if a message protection client policy is configured on the business service
      19. 12. Handling Transport-level Security Requirements
        1. Introduction
        2. Using service accounts with OSB
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
            1. Static service accounts
            2. Mapping service accounts
            3. Service accounts from XQuery
        3. Configuring WebLogic network connection filters
          1. Getting ready
          2. How to do it...
          3. How it works...
          4. There's more...
        4. Preparing OSB server to work with SSL
          1. Getting ready
          2. How to do it...
          3. How it works...
        5. Configuring a proxy service to use HTTPS security
          1. Getting ready
          2. How to do it...
          3. How it works...
      20. Index