Library Link To Toggle Frames Print Feedback

Components Build an ESB

Overview

As shown in Figure 2.1, “Celtix Enterprise Components”, Celtix Enterprise provides you a number of components that can be combined to provide a complete ESB solution. The core component in Celtix Enterprise is its service engine which is based on Apache Incubator CXF. You can chose the other components that wrap the service engine and to provide the additional ESB functionality you require. In each layer, you can select from any of the available options. You can also chose to leave out some of the layers such as the messaging layer or the intermediary layer. This pluggability makes Celtix Enterprise a customizable ESB solution that can be configured to meet your needs.

Figure 2.1. Celtix Enterprise Components

Celtix Enterprise component diagram

Figure 2.2, “A Celtix Enterprise ESB” shows an example of how you can combine the components to create an ESB. In this example, the service being implemented using JavaScript whose clients connect to it over JMS. The command line tools to are used to generate the starting point code. The JavaScript front-end provides the interface between the implementation and the layers that provide the connectivity. The service itself creates XML messages and connects to the network using HTTP. The router provides the bridge between the service's native message formats and the JMS broker. If you decided that your service did not need to be exposed over JMS you could remove both the router and the JMS broker. If you instead wanted to implement the service using JAX-WS APIs you could use the JAX-WS front-end.

Figure 2.2. A Celtix Enterprise ESB

sample deployment

Tools

Celtix Enterprise provides a suite of design time to aid in developing services. These tools are built using parts of the Eclipse SOA Tools Platform(STP). These tools provide a robust platform for service enabling existing Java applications, creating new services using JAX-WS, and creating the required metadata for deploying into a variety of runtime containers. In addition, there are a number of command line tools to generate code and WSDL that are based on Apache Incubator CXF.

In addition to providing design time tools, Celtix Enterprise makes it easy to monitor your services using one of a number of management consoles. Celtix Enterprise's runtime core is fully instrumented using JMX. Any JMX compliant management console will allow you to see metrics on the performance of services developed using Celtix Enterprise.

Celtix Advanced Service Engine

The core of Celtix Enterprise the Celtix Advanced Service Engine. Based on Apache Incubator CXF, the service engine contains all of the front-ends, message bindings, and transports that are used to implement a service. This component provides all of the hooks required to plug in different combinations of front-ends, bindings, and transports. It also provides hook to allow service to be plugged in to the lower layers of the ESB.

Containers

The service engine allows you to implement services and provides the libraries needed to connect the implementation to the network, but it does not provide an environment in which they can run. Celtix Enterprise provides you with three different runtime environments, or containers, for your services. In addition to the provided containers, Celtix Enterprise based services can be deployed into any J2EE container.

Intermediaries

Intermediaries provide additional functionality to the ESB by intercepting messages on the wire and doing some form of processing on the message before passing it along. Celtix Enterprise includes a routing intermediary that can direct messages based on different criteria, switch between different message formats and transports, perform basic transformations. You could also implement a costing service or a logging service as a message intermediary.

Messaging layer

Celtix Enterprise's messaging layer provides two messaging systems:

  • ActiveMQ JMS

  • The Celtix Advanced Messaging

Celtix Enterprise is designed to use any available messaging system and it provides most qualities of service regardless of what messaging system is used. The two advanced messaging systems bundled with Celtix Enterprise add one more layer of flexibility to how you build and deploy your services.