The short answer to "what is Celtix Enterprise?" is that Celtix Enterprise is an open source enterprise service bus (ESB). It is a collection of open source components that when used together supply you with the tools needed to build and deploy applications using service-oriented architecture (SOA). Celtix Enterprise builds on IONA's long experience in delivering enterprise strength distributed application frameworks, IONA's experience in developing and implementing standards, and IONA's recent experiences in the open-source community to provide a highly distributed and standards compliant ESB that is built using the best open source technology available.
IONA has a long history in the field of distributed software development. Fifteen years ago, we made our name as a supplier of a CORBA implementation. While it was not recognized at the time, CORBA was an early mechanism for developing applications using service-oriented design principles. The idea of finding a standardized mechanism for connecting reusable units of functionality was beginning to be solved.
In the last few years, IT organizations began to feel the pain of having much of their application resources locked up on remote islands and unable to communicate with each other. The promised reuse offered by CORBA and other solutions to distributed application design was not being achieved. To address these concerns a new approach to designing distributed applications appeared. Service-oriented architecture provided a more loosely coupled approach to distributed application design that promoted reuse and being based on standardized technologies.
To address this need IONA created a highly distributed and extensible enterprise service bus called Artix. It was initially aimed at solving difficult integration problems. However, Artix was not limited to simply solving integration issues. Like IONA's CORBA solution, Artix was built around an extensible, distributed core so it also made it easy to incrementally move your applications to a SOA style design.
As customers began catching on to SOA, it became apparent that the core piece of infrastructure needed to implement and deploy SOA applications, the enterprise service bus, was an ideal piece of technology to be pushed into the open source community. Because it was central to the new approach to distributed application development, every IT organization was going to require one. Many IT organizations are mandated to use open source products when possible. Many do not have the budget to afford the licensing fees charged by large vendors. Many do not need all of the features of a commercial ESB.
To address this need IONA started the Celtix project in conjunction with Objectweb. The initial vision of the Celtix project was to develop a fully functional, distributed enterprise service bus in the open source community. While the Celtix project was successful at creating an extensible framework for service development, it was not having as much success growing into a full ESB. It did not have a large enough community and there were a number of other projects all working on other parts of the SOA solution.
IONA decided that the best way to create a truly complete open-source ESB solution was to move the Celtix project into a larger community, narrow the project's scope, and team with other projects to build the remaining components.
The code and engineers from the Celtix project merged their efforts with the Xfire community to seed a new incubator project at the Apache Software Foundation called Apache Incubator CXF. This new project aims to create a powerful service development framework that provides the tools needed to implement services. Unlike a full ESB, it does not provide a deployment container or any messaging capabilities. It just provides the tools needed to plug a service into components that do provide that functionality.
To create Celtix Enterprise 1.1, IONA surveyed the open-source infrastructure landscape to determine which pieces would combine with Apache Incubator CXF to provide a first class ESB. The components that make up Celtix Enterprise include the Tomcat service container, ActiveMQ, and a router built using an open source routing framework. Together these components provide a truly extensible and flexible ESB to connect up your services.
IONA's heritage in distributed applications and that heritage shows in how Celtix Enterprise implements an ESB. Celtix Enterprise does not implement its ESB functionality using a central server or a specialized message broker. Instead, Celtix Enterprise embeds the ESB functionality into the endpoints implementing your services, making them smart-endpoints.
Pushing the ESB functionality into smart-endpoints has several advantages:
The smart-endpoints use resources more intelligently than a central broker.
Because they are independent, each smart-endpoint only consumes the resources it needs. They do not require the additional load to incurred to support the broker. In addition, because each smart-endpoint is independent, they can be dispersed over the available resources intelligently.
It eliminates the potential bottleneck created by a central broker.
Smart-endpoints communicate with each other as peers. When a smart-endpoint creates a message, it has the intelligence required to package the data in a form that the recipient can read. When a smart-endpoint receives a message, it has the intelligence required to read the data and construct a message it can use. There is no need for a message to be shuttled through a central broker.
The smart-endpoints are inherently flexible.
Because each smart-endpoint is independent they can easily be reconfigured to use different features without touching other parts of a production environment. If you have an application that you want to use reliable messaging, you simply need to reconfigure the endpoints involved in the application and redeploy them. None of the other parts of your environment need to be touched.
The other key to Celtix Enterprise is its pluggable architecture. This means that most pieces of functionality can be used independent of the others. For example, if you choose to deploy a smart-endpoint into a servlet container, the container will plug its own HTTP transport into the endpoint. A J2EE container can use its own JMS transport for connecting to a JMS broker. Celtix Enterprise's pluggable architecture also lets you add transports and bindings for custom messaging systems.
It is not just the deployment features that are pluggable. The method you use for developing your services is also pluggable. For example, you can choose to use the JAX-WS APIs to develop your services or you could choose to use JavaScript. Celtix Enterprise also provides a limited plain Java API for creating services.
Open source provides a model for innovation that can produce high-quality features faster than traditional commercial models. It also reduces the dependence customers have on a single vendor, thereby reducing risk.
Integration and SOA is an ideal problem domain in which to collaborate using open source because it is a natural meeting point of many technologies created by many vendors. Open source lets all parties collaborate to make systems work together. It also removes the incentives to lock users into a particular technology or particular company’s vision of how systems should interact.