ESB Tools Reference Guide
This guide is for developers
Chapter 1. Preface
1.1. Business Integration
1.2. What is a Service-Oriented Architecture?
A Service Oriented Architecture (SOA) is not a single program or technology. Think of it, rather, as a software design paradigm.
1.3. Key Points of a Service-Oriented Architecture
- the messages being exchanged
- the agents that act as service requesters and providers
- the shared transport mechanisms that allow the messages to flow back and forth.
1.4. What is the JBoss Enterprise SOA Platform?
1.5. The Service-Oriented Architecture Paradigm
- Service Provider
- A service provider allows access to services, creates a description of a service and publishes it to the service broker.
- Service Requester
- A service requester is responsible for discovering a service by searching through the service descriptions given by the service broker. A requester is also responsible for binding to services provided by the service provider.
- Service Broker
- A service broker hosts a registry of service descriptions. It is responsible for linking a requester to a service provider.
1.6. Core and Components
1.7. Components of the JBoss Enterprise SOA Platform
- A full Java EE-compliant application server (the JBoss Enterprise Application Platform)
- an enterprise service bus (JBoss ESB)
- a business process management system (jBPM)
- a business rules engine (JBoss Rules)
- support for the optional JBoss Enterprise Data Services (EDS) product.
1.8. JBoss Enterprise SOA Platform Features
- The JBoss Enterprise Service Bus (ESB)
- The ESB sends messages between services and transforms them so that they can be processed by different types of systems.
- Business Process Execution Language (BPEL)
- You can use web services to orchestrate business rules using this language. It is included with SOA for the simple execution of business process instructions.
- Java Universal Description, Discovery and Integration (jUDDI)
- This is the default service registry in SOA. It is where all the information pertaining to services on the ESB are stored.
- This transformation engine can be used in conjunction with SOA to process messages. It can also be used to split messages and send them to the correct destination.
- JBoss Rules
- This is the rules engine that is packaged with SOA. It can infer data from the messages it receives to determine which actions need to be performed.
1.9. Features of the JBoss Enterprise SOA Platform's JBossESB Component
- Multiple transports and protocols
- A listener-action model (so that you can loosely-couple services together)
- Content-based routing (through the JBoss Rules engine, XPath, Regex and Smooks)
- Integration with the JBoss Business Process Manager (jBPM) in order to provide service orchestration functionality
- Integration with JBoss Rules in order to provide business rules development functionality.
- Integration with a BPEL engine.
- Be configured to work with a wide variety of transport mechanisms (such as e-mail and JMS),
- Be used as a general-purpose object repository,
- Allow you to implement pluggable data transformation mechanisms,
- Support logging of interactions.
org.jboss.soa.esb. Use the contents of the
org.jboss.internal.soa.esbpackage sparingly because they are subject to change without notice. By contrast, everything within the
org.jboss.soa.esbpackage is covered by Red Hat's deprecation policy.
1.10. Task Management
1.11. Integration Use Case
1.12. Utilising the JBoss Enterprise SOA Platform in a Business Environment
Chapter 2. Introduction
2.1. Intended Audience of the ESB Tools Reference Guide
This book is aimed at developers who wish to learn about performing tasks and using features in the JBoss Enterprise Service Bus.
2.2. Aim of the ESB Tools Reference Guide
2.3. Back Up Your Data
Chapter 3. Tasks
3.1. Using and Configuring the SOA Platform
- To configure the JBoss Enterprise SOA Platform, select→ → → . This will open the Server Runtime Environments page where you can add, remove and edit a server runtime environment.
- Selectand choose → as a type of runtime environment, then check the
Create a new local serverbox and click
- On the next step you can specify a name of the server runtime environment and browse to its location. Click
Finishto add the server runtime environment.
- You have now configured the SOA Platform. Check the configuration by creating and running an ESB project.
3.2. Installing JBoss SOA Tooling Plug-in
Procedure 3.1. Task
- Start the JBoss Developer studio.
- Select Get started with JBoss Central from the main menu.
- Select Software/Update from the menu.
- Select SOA Tooling Plug-in and click Install
- Confirm that the installation details are correct and click Next and then Next again.
- Read and accept the liscence agreement and click Finished.
- Restart the JBoss Developer Studio to complete the installation.
3.3. Configuring a new ESB Runtime
- Click→ → → to open the JBoss ESB Runtimes page where you can add, remove and edit a JBoss ESB runtime.
Figure 3.1. Runtimes
Addto open a dialog box where you can specify the JBoss ESB runtime location, name and version number. You can define the configuration if you specify the home directory as JBoss AS or SOA-P. If you select a standalone ESB runtime location, the configuration will be empty and can be ignored. You can also customize the libraries of the runtime by checking the Customize JBoss ESB Runtime jars box.
- The new JBoss ESB Runtime will be configured. Clickto finish and save the preferences. You can use the configuration when creating a JBoss ESB project.
- When an ESB runtime is configured for your project, you are able to modify it by using the Classpath Container page for ESB runtime. To do so, go to the Package Explorer view and right-click on "JBoss ESB Runtime" library.
Propertiesand a table listing all available JBoss ESB runtimes will appear.
- Choose one of the runtimes to set to the ESB project and click.
- The ESB container allows Source and JavaDoc locations to be set via the Properties dialog on each contained JAR. Right-click on any JAR file and select.
- Choose Java Source Attachment and select the location (folder, JAR or zip) containing new source for the chosen JAR file. You can do this using one of the suggested options (workspace, external folder or file). You can also enter the path manually.
- Click on
Applyand then on .
- To change the Javadoc location, choose Javadoc Location and specify URL to the documentation generated by Javadoc. The Javadoc location will contain a file called package-list.
- Click onand then on .
3.4. Creating an ESB Project
- Open the JBoss ESB Project Creation wizard by selecting→ → in the main menu bar. (Ensure that you have defined the server runtime and ESB runtime in JBDS.)
- Select→ in the dialog box.
- Clicking helloworld as a project name and accept the default JBoss ESB version.brings you to the JBoss ESB Project wizard page where a project name, ESB version and target JBoss Runtime are to be specified. Specify, for example,
- Click thebutton to move to the next step in the wizard, where you can select the source and output folders.
- Click thebutton to view the Install ESB Facet wizard page where you can view the ESB Content Directory. This folder contains most the of artifacts that an ESB archive needs.
- You can configure ESB libraries to the project by using the Server Supplied ESB Runtime. Make sure the project has the target runtime set and this runtime has an ESB runtime installed.
NoteIf you are using JBoss SOA Platform 5.3 or higher, select ESB config version 1.3.1.
- Click thebutton and an ESB project with the default
jboss-esb.xmlfile will be created.
3.5. Using ESB Project Examples
- Before creating an ESB project example, create a JBoss SOA-P runtime.
NoteCreating ESB project examples is useful for observing how your finished project will behave.
- Select→ → in the main menu bar and then click → → in the new dialog.
- Clicking thebutton brings you to the wizard page where you can select an ESB project example from the list.
- Every ESB example has two projects. One is an ESB project and the other is a Java project used to test the ESB project. Below is a list of ready-to-go examples. Each example includes an ESB application that is deployed to the SOA-P server, and a test client that is run as a Java application and interacts with the deployed ESB application:
- JBoss ESB HelloWorld Example - demonstrates the minimal files necessary to make a basic ESB component execute as well as to prove that the ESB runtime is properly configured.
- JBoss ESB HelloWorld Action Example - demonstrates the use of multiple action invocations from a single configuration. You can use a single Action class and make multiple method calls or use multiple Action classes.
- JBoss ESB HelloWorld File Action Example - demonstrates using the File gateway feature of the JBoss ESB. Files that are found in a particular directory with a particular extension are sent to a JMS queue with actions for processing.
- JBoss ESB Web Service consumer1 Example - demonstrates how to consume a JSR181 Web Service in an ESB action.
- JBoss ESB Web Service producer Example - demonstrates how to deploy a JSR181 Webservice endpoint on JBossESB using the SOAPProcessor action.
- JBoss ESB Smooks CSV -> XML Example - demonstrates how to transform a comma separated value (CSV) file to an XML.
- JBoss ESB Smooks XML -> POJO Example - demonstrates the use of Smooks performing a simple transformation by converting an XML file into Java POJOs.
- JBoss ESB Smooks XML -> XML date-manipulation Example - demonstrates how to manually define and apply a Message Transformation within JBoss ESB.
- JBoss ESB Smooks XML -> XML Example - a very basic example of how to manually define and apply a Message Transformation within JBoss ESB. It applies a very simple XSLT to a SampleOrder.xml message and prints the before and after XML to the console.
- Select the relevant ESB project example and then click thebutton. The ESB application project and the test client project will be created.
Figure 3.2. HelloWorld example
- Deploy your ESB project and run a test class as a local Java application to see the test result in the Console view.
3.6. Adding ESB Projects to the JBoss Server Module List
- Before deploying an ESB project, open the Servers view by selecting→ → → → .
- Create a JBoss server with an ESB runtime installed in the Servers view and start it.
- Right-click on the new JBoss server, select Add and Remove Projects and add the ESB projects you want to deploy in the open dialog.
- Click thebutton to add the project to the server. You also can drag the ESB project from the Project Explorer view to the server.
3.7. Deploying an ESB Project
- After adding the ESB project to the JBoss server module list, right-click the JBoss Server and selectto publish the project on the server. You can check the deploying result in the Console view.
- Theand options work on ESB projects causing a (re)deploy for a user designated server.You can also click the "Finger touch" button for a quick restart of the project without restarting the server.
ExportingAdditionally, you can deploy your ESB project as an .esb archive. Right-click on the project and choose.Choose→ and click .Export the ESB project to the file system. Choose the destination and target runtime, then make the appropriate settings for the archive. Finally, click
- Your project is now deployed as an .esb archive.
3.8. Creating an ESB File
- Open a project that has the ESB facet enabled. Select→ → in the main menu bar or context menu for your selected project, then click → in the new dialog
- Clicking the jboss-esb.xml as the name and accept the selected projects folder and the default version.button brings you to the wizard page where a folder, name and version should be specified. For example, choose
NoteFor SOA-P version 5.3 your ESB version is 4.11 and the ESB file schema version is 1.3.1. Older ESB file schema versions are also supported if you are using an older SOA-P server release.
- Your file will be created in the selected project's folder by default. If you want to change the folder it is saved in, clickand select another destination.
- Clickto generate the file.
3.9. Creating an ESB Action
- Open an ESB or Java project.
- Select→ → in the main menu or from the context project menu. Then click → in the new dialog.
- Click New ESB Action wizard where the class name should be specified. You can also set a package or add an interface.and you will be brought to the
- JBoss ESB 4.9 introduced a new set of Action Annotations. The new set of Action Annotations help make it easier to create clean ESB Action implementations by hiding the complexities of implementing interfaces and abstract classes, as well as dealing with the ConfigTree type. If you wish use these annotations, check the type As annotated POJO. Otherwise check the type As AbstractActionPipelineProcessor implementation.The Annotations are:
- Click on ESB Action class. This class will become available in ESB Editor wizards.to generate the
Chapter 4. Reference
4.1. The JBoss ESB Editor
- The JBoss ESB editor has two views: Tree and Source. You can easily switch from the Tree view to the Source view by selecting thetab at the bottom of the editor and work in Source view, and vice-versa.
Figure 4.1. Source view
- Both views have full integration with the Outline view. The Outline view shows a tree structure of the ESB file. Select any element in the Outline view and it will jump to the same place in the Tree/Source editor, so you can navigate through the source code with Outline view.
- Both views are synchronized with each other, so any changes made in one of the views will immediately appear in the other.
- The Tree view for the editor displays all ESB artifacts in a tree format. By selecting any node you can view and edit its properties which will appear on the right. Some properties are represented as links to the associated editors.
Figure 4.2. Tree view
- When editing ESB actions which refer to other files (Drools, Groovy, Smooks, etc.), the label for the field turns into a link to launch the appropriate editor for that file.
- Adding, editing or deleting of some artifacts operations are available right in the Tree view. Right-click any node and select one of the available actions in the context menu.
- You can add Channels and Properties for the Providers the same way or using the forms with Add, Edit and Remove buttons to the right.
- Additionally, you can add a Service and a new listener for it. Filters can also be added this way.
4.2. Adding a New Custom Action in JBoss ESB Editor
- To add a new custom Action to your ESB XML file, go to the Tree view in the JBoss ESB Editor.
- Select thenode under the node, then right-click and choose → .Alternatively, click the editor on the left.button in the
- You will see the ESB Action wizard. Specify a name and a Java class. Optionally, you can specify a process for the Action.
- After creating the Action you can see it in the Tree view under the Form editor on the left.node. You can preview and edit its settings in the
4.3. Content Assist for ESB XML Files
Figure 4.3. Content Assist for ESB XML file
4.4. OpenOn for ESB XML
Ctrlkey down to view it.
Figure 4.4. OpenOn
.xml, and so on.
Chapter 5. Summary
5.1. Summary of ESB Tools and Additional Resources
Appendix A. Revision History
|Revision 5.3.1-111||Wed Feb 20 2013|