The Celtix Enterprise runtime consists of three components:
a service implementation
Together these components form a running service endpoint. The service implementation is the logic that performs the functionality defined by a service contract. The service engine provides the abstraction layer that connects the implementation to the outside world. The container manages the resources needed by the service implementation and the service engine.
The Celtix Advanced Service Engine is based on Apache Incubator CXF. The service engine has a pluggable architecture that allows it to take advantage of several different programming models, several different message bindings, and several different transports. In addition to the basic features, the service engine also includes pluggable libraries to implement WS-RM reliable messaging and WS-Security based security.
The service engine provides front-ends for the following programming models:
Depending on the requirements of your project, you can choose to use any of the provided front-ends to develop a service.
The GUI tools provided with Celtix Enterprise work with the JAX-WS front-end. Celtix Enterprise provides a full implementation of the JAX-WS 2.0 specification for developing services. Using this front-end, you can annotate almost any Java object to create a service.
The other front-ends also make it easy to implement services. The JavaScript front-end is modeled after the JAX-WS front-end and is a quick way to get a service up and running. The Java front-end provides a limited set of methods to connect to the lower layers of the ESB and manipulate the data provided.
![]() |
Note |
---|---|
The JavaScript front-end limits you to using the SOAP data binding. |
The Celtix Advanced Service Engine has a pluggable data binding interface. This pluggability allows you to change the message format used by an endpoint at deployment time. For example, you could deploy an endpoint for a bank services to exchange SOAP messages and you could deploy a second endpoint for the same service that exchanged messages using native XML without the overhead of the SOAP envelope. You could also develop your own bindings to further expand Celtix Enterprise's capabilities.
The service engine has a pluggable transport interface. Using the pluggable transport interface, you can reconfigure the messaging layer used by your endpoints at deployment. For example, you could do all of your testing using HTTP and then deploy the production endpoint into an environment that uses JMS without changing the service implementation. You change the transport using either the WSDL or the endpoint's configuration.
Celtix Enterprise includes the following transports:
HTTP
HTTPS
JMS
You can also develop and deploy custom transport plug-ins using the Apache Incubator CXF APIs.
![]() |
Note |
---|---|
Some of the containers replace the Celtix Enterprise transports with their own transports. |
Celtix Enterprise provides three runtime containers:
In addition to the provided containers, Celtix Enterprise supports the deployment of runtime components into J2EE containers such as JBoss.
Because Celtix Enterprise allows you to deploy your services, and consumers, into a variety of different containers, it allows you to use a familiar runtime environment. If your organization uses a J2EE environment you can develop services and deploy them that way. If you are interested in moving toward a smart endpoint strategy for service deployment, Celtix Enterprise's lightweight container is a perfect solution.