You are previewing JBoss ESB.
O'Reilly logo
JBoss ESB

Book Description

A comprehensive, practical guide to developing service-based applications using the Open Source JBoss Enterprise Service Bus

  • Develop your own service-based applications, from simple deployments through to complex legacy integrations

  • Learn how services can communicate with each other and the benefits to be gained from loose coupling

  • Contains clear, practical instructions for service development, highlighted through the use of numerous working examples

  • In Detail

    You may often have wondered if there is a better way to integrate disparate applications than error-prone ""glue code"". JBoss ESB is just that solution as it can help solve common but difficult problems: writing new code that can be re-used and maintained, and integrating together new and old systems. JBoss ESB takes care of routing and processing service requests, leaving you to concentrate on your system's design and development.

    The JBoss ESB Beginner’s Guide gets you up and running quickly with JBoss ESB to build your own service-based applications, with enhanced communication and organization. You will learn how to create new applications or to integrate combinations of new and legacy applications. Detailed examples get you creating your own services, and deploying and administering them with other JBoss Open Source tools.

    Through hands-on examples, this book shows you how JBoss ESB enables you to design your system as services that are loosely coupled together by sending and receiving messages. Your services can execute your own custom code, or make use of JBoss ESB’s extensive set of out-of-the-box actions to perform specific tasks. The JBoss ESB Beginner’s Guide shows you the tools you can use to build re-usable and maintainable service-based applications with JBoss ESB, and teaches you by example how to use these tools.

    Table of Contents

    1. JBoss ESB
      1. Table of Contents
      2. JBoss ESB
      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. Prologue—the need for an ESB
      8. Preface
        1. What is "JBoss"?
          1. JBoss is also a community
        2. What is Open Source and what are its advantages?
        3. What is middleware?
        4. What is an SOA? What is an ESB?
        5. What is JBoss ESB?
        6. What capabilities does JBoss ESB have?
        7. Why JBoss ESB?
        8. What is JBoss ESB's relationship with SOA?
        9. What resources does the JBoss ESB community provide?
          1. Online forums with a difference
            1. The user forum
            2. The developer forum
          2. Other useful documents
          3. Mailing lists
          4. JIRA announcements and bugs
          5. Live chat
        10. What are the JBoss project and product models?
        11. What this book covers
        12. Chapter bibliography
        13. Conventions
        14. Time for action – heading
          1. What just happened?
          2. Pop quiz – heading
          3. Have a go hero – heading
        15. Reader feedback
        16. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      9. 1. Getting Started
        1. Downloading JBoss ESB
        2. Downloading and installing an application server
        3. Time for action – downloading and installing JBoss AS
          1. What just happened?
        4. Choosing which JBoss ESB distribution is right for you
        5. Time for action – downloading and installing jbossesb-4.10.zip
          1. What just happened?
          2. Reviewing the contents of jbossesb-4.10.zip
        6. Time for action – deploying JBoss ESB to JBoss AS
          1. What just happened?
        7. Keeping things slim
        8. Time for action – modifying a profile
          1. Deployable Java archives
        9. Testing the installation
        10. Time for action – testing the installation
          1. What just happened?
        11. Looking at logs
          1. Finding the logs
        12. Time for action – viewing the deployment of an application in the server.log
          1. What just happened?
        13. Consoles
        14. Time for action – examining an MBean
        15. What do you do if you see an error?
          1. Pop quiz
        16. Summary
      10. 2. Deploying your Services to the ESB
        1. The quickstarts
        2. Anatomy of a deployment
          1. Defining the providers, services, and listeners
          2. Other deployment files
          3. Helloworld quickstart
        3. Time for action – deploying the quickstart
          1. What just happened?
        4. Deploying a JBoss ESB archive remotely
        5. Time for action – accessing the admin console
        6. Time for action – performing the deployment
        7. Introduction to JBDS
        8. Time for action – downloading JBDS
        9. Time for action – installing JBDS
          1. What just happened?
        10. Running JBDS
        11. Time for action – setting up the ESB runtime in JBDS
          1. What just happened?
        12. Time for action – using JBDS to run the quickstart
        13. Deploying the quickstart in JBDS
        14. Time for action – deploying the quickstart
          1. What just happened
          2. Have a go hero - there are other quickstarts to explore
          3. Pop quiz
        15. Summary
      11. 3. Understanding Services
        1. Preparing JBoss Developer Studio
        2. Time for action – opening the Chapter3 app
        3. Examining the structure of ESB messages
          1. Examining the message
        4. Time for action – printing the message structure
          1. What just happened?
          2. Have a go hero – deploying applications
          3. Message implementations
          4. The body
        5. Time for action – examining the main payload
          1. What just happened?
          2. Have a go hero – additional body contents
          3. The header
            1. Routing information
            2. Message identity and correlation
            3. Service action
        6. Time for action – examining the header
          1. What just happened?
          2. Have a go hero – additional header contents
          3. The context
          4. Have a go hero – printing message context
          5. Message validation
          6. Have a go hero – enabling validation
        7. Configuring through the ConfigTree
          1. Configuring properties in the jboss-esb.xml file
          2. Traversing the ConfigTree hierarchy
          3. Accessing attributes
        8. Time for action – examining configuration properties
          1. What just happened?
          2. Have a go hero – additional header contents
        9. Service pipeline and service invocation
          1. Lifecycle methods
          2. Have a go hero – understanding lifecycle methods
          3. Processing methods
        10. Time for action – examining exceptions
          1. What just happened?
          2. Have a go hero – extending from AbstractActionPipelineProcessor
          3. Dynamic methods
          4. Have a go hero – multiple process methods
          5. MEP (Message Exchange Pattern) and responses
          6. ServiceInvoker
            1. Synchronous delivery
            2. Asynchronous delivery
        11. Time for action – examining exceptions
          1. What just happened?
          2. Have a go hero – experimenting with MEPs and sync delivery
        12. Composite services
          1. Service Chaining
          2. Have a go hero – adding more services
          3. Service Continuations
        13. Transactions
          1. Have a go hero – transactional quickstart
        14. Security context
          1. Have a go hero – security quickstart
        15. Summary
      12. 4. JBoss ESB Service Actions
        1. Understanding actions
        2. What is an action class?
        3. The action chain
        4. Custom actions
          1. Lifecycle actions
          2. JavaBean actions
          3. Custom actions using annotations
            1. Lifecycle annotations
            2. Processing annotations
        5. Out-of-the-box (OOTB) actions—how and when to use them
          1. Scripting
          2. Services—invoking EJBs
          3. Web services/SOAP
        6. Time for action – running the quickstart
          1. What just happened?
          2. Transformers/converters
          3. Smooks message fragment processing
        7. Time for action – running the quickstart
          1. What just happened?
          2. Routers
        8. Time for action – implementing content-based routing
          1. What just happened
          2. Have a go hero
          3. Notifiers
        9. Time for action – let's see how notifiers work
          1. What just happened?
          2. Business Process Management
          3. Drools
          4. BPEL processes
          5. Pop quiz
        10. Chapter bibliography
        11. Summary
      13. 5. Message Delivery on the Service Bus
        1. The bus
        2. Preparing JBoss Developer Studio
        3. Time for action – creating File Filters
          1. What just happened?
        4. Time for action – opening the Chapter5 app
        5. Transport providers
        6. Time for action – using a File provider
          1. What just happened?
          2. Have a go hero – examine the contents of a temp file
          3. InVM transport
          4. Transactions with InVM transport
        7. Time for action – testing InVM transactions
          1. What just happened?
          2. Have a go hero – non transacted InVM listener
          3. InVM message optimization
          4. Have a go hero – examine the body address
          5. Controlling InVM message delivery
        8. Time for action – using lock-step delivery
          1. What just happened?
          2. InVM threads
        9. Time for action – increasing listener threads
          1. What just happened?
          2. Have a go hero – threads and lock-step
        10. Provider configurations
          1. JMS provider
          2. Have a go hero – JMS action quickstart
          3. FTP provider
          4. Have a go hero – the FTP action quickstart
          5. SQL provider
          6. Have a go hero – the SQL action quickstart
          7. File provider
          8. Have a go hero – file providers
        11. Summary
      14. 6. Gateways and Integrating with External Clients
        1. What is a gateway and a notifier?
          1. How do we compose messages?
            1. Simple composer example
        2. Preparing JBoss Developer Studio
        3. The JMS gateway
        4. Time for action – using the JMS gateway
          1. What just happened?
        5. The File gateway
        6. Time for action – using the File gateway
          1. What just happened?
        7. The HTTP gateway
        8. Time for action – using the HTTP gateway
          1. What just happened?
          2. Have a go hero – using asynchronous behavior
          3. The HTTP bus and HTTP provider
          4. Have a go hero – configuring the HTTP provider
        9. The Camel gateway
          1. Have a go hero – run the Camel gateway quickstart
        10. The FTP gateway
          1. Have a go hero – running the FTP gateway quickstart
        11. The UDP gateway
        12. Time for action – using the UDP gateway
          1. What just happened?
        13. The JBoss Remoting gateway
        14. Time for action – using the JBR gateway
          1. What just happened?
          2. Have a go hero – using asynchronous JBR
        15. The Groovy gateway
          1. Have a go hero – using Groovy scripts
        16. The SQL gateway
        17. Time for action – using the SQL gateway
          1. What just happened?
        18. The JCA gateway
          1. Have a go hero – using the JMS/JCA gateway
        19. Summary
      15. 7. How ESB Uses the Registry to Keep Track of Services
        1. The registry—what, how, and why?
        2. UDDI—the registry's specification
        3. jUDDI—JBoss ESB's default registry
          1. Configuring jUDDI for different protocols
          2. Looking at jUDDI's database
        4. Time for action – looking at the jUDDI registry database
        5. Other supported UDDI providers
        6. Custom registry solutions
        7. End-point reference
        8. Time for action – looking at EPRs
        9. JAXR—introducing the Java API for XML registries
        10. Federation
        11. Load balancing
        12. Registry maintenance and performance
        13. Registry interceptors
        14. Monitoring
          1. Examining jUDDI query counts
        15. Time for action – querying the UDDI server
          1. What just happened
          2. Pop quiz
        16. Chapter bibliography
        17. Summary
      16. 8. Integrating Web Services with ESB
        1. Preparing JBoss Developer Studio
        2. Time for action – preparing the Chapter8 application
          1. What just happened?
        3. Time for action – switching consoles
          1. What just happened?
        4. Exporting ESB services as a web service
        5. Time for action – running the sample
          1. What just happened?
          2. Action implementation
          3. Have a go hero – introduce a transformer
          4. Securing EBWS
        6. Time for action – securing the sample
          1. What just happened?
          2. Other security mechanisms
        7. ESB web service client
          1. soapUI client
        8. Time for action – ESB SOAP client
          1. What just happened?
          2. Have a go hero – quickstarts
            1. Request processing
              1. Request transformations
          3. Have a go hero – SOAP request header transformation
            1. Response processing
              1. OGNL
          4. Have a go hero – OGNL response
              1. XStream
          5. Have a go hero – XStream conversion
          6. The Wise SOAPClient
        9. Time for action – Incorporating the Wise SOAP Client
          1. What just happened?
          2. Have a go hero – Wise properties
            1. Request and response processing
          3. Have a go hero – Smooks configurations
            1. Custom handlers
          4. Have a go hero – using a custom handler
        10. Co-located web services
          1. SOAPProcessor
        11. Time for action – incorporating a SOAPProcessor client
          1. What just happened?
          2. Have a go hero – co-located services
        12. Web service proxies
          1. SOAPProxy
        13. Time for action – incorporating SOAPProxy into the application
          1. What just happened?
          2. Have a go hero – advanced use cases for SOAPProxy
        14. Tweaking HttpClient
          1. SOAPClient
          2. SOAPProxy
          3. Sample properties
          4. Custom configurator
          5. Have a go hero – using a custom configurator
        15. SOAPProxy security pass through
          1. Cleaning up deployments
        16. Time for action – SOAPProxy security pass through
          1. What just happened?
          2. Have a go hero – security pass through
        17. Summary
      17. A. Where to go Next with JBoss ESB?
        1. Creating service definitions with the JBDS ESB editor
        2. Using other UDDI providers (HP Systinet and SOA Software Service Manager)
        3. Using other JBoss project technologies
          1. JBoss Drools and rules-based services
          2. JBoss Riftsaw and BPEL services
          3. JBoss jBPM and Business Process Management
        4. Using Maven with JBoss ESB
          1. Compiling with Maven
          2. ESB packaging with Maven
        5. How to test your ESB services
          1. Testing a single action
          2. AbstractTestRunner
          3. TestMessageStore
          4. Arquillian
          5. Cargo
        6. Chapter bibliography
      18. B. Pop-quiz Answers
        1. Chapter 1
        2. Chapter 2
        3. Chapter 4
        4. Chapter 7
      19. Index