Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News MuleSoft Releases Tomcat-based Tcat Server and iBeans Integration Framework

MuleSoft Releases Tomcat-based Tcat Server and iBeans Integration Framework

This item in japanese

Tcat Server, an Apache Tomcat-based application server created by MuleSoft (formerly MuleSource), was released today. InfoQ took the opportunity to talk with Mahau Ma, Greg Schott and Ross Mason of MuleSoft to learn more about Tcat Server and another new integration framework called iBeans.

When asked about the reasoning behind creating Tcat Server around Tomcat, InfoQ was told that the lightweight simplicity and broad deployment of Tomcat were the main reasons behind its selection as the base for Tcat Server. The major features that are included in the initial release of Tcat Server are:

  • Server Group Administration - Tomcat servers can be automatically discovered, and groups of servers can be created and managed
  • Application Provisioning - Support for deployment of packages including current status, logging and version management
  • Rollback Capabilities - If deployment of a new package fails, then a rollback to previous versions can be easily performed
  • Cloud Deployment - New instances of Tcat Server can be created on Amazon EC2 via a plugin, and both local and remote instances can be managed from the same console
  • Maven Support - WAR Artifacts can be pulled directly from a Maven repository and deployed out to Tcat Server instances
  • Monitoring and Diagnostics - Performance monitoring, system information, system behaviour, diagnostics and logging beyond the standard Tomcat facilities has been added
  • Tomcat 5.5 and 6.0 Support - Existing instances of both Tomcat 5.5 and 6.0 can be discovered and managed from the Tcat Server management console

When asked how Tcat Server compared to other Tomcat-based products such as SpringSource's tc Server, InfoQ was told:

Many people have asked us how Tcat Server is different from SpringSource's tc Server, and we feel that Tcat Server stands out for a few reasons:
  • Unlike tc server, Tcat Server is built on 100% Apache Tomcat (we added our code on top of the binary Tomcat distribution, rather than tweaking and recompiling Tomcat). Administrators can be 100% sure that their existing Tomcat apps are plug-compatible with Tcat Server
  • Tcat Server includes advanced Tomcat diagnostics capabilities that allow developers and administrators to drill deep into the performance of data and logs (e.g., application logs, catalina logs) to diagnose and resolve problems. By contrast, tc server is leveraging their Hyperic acquisision, retrofitting a "general purpose" monitoring solution. As a result, we feel that tc server monitoring can be "a mile wide and an inch deep," and the interface tends to be more cumbersome to use
  • Tcat server has advanced application provisioning capabilities that tc server does not provide, including the ability to group multiple WAR files together as a deployable unit (package). An administrator can deploy an application package to a server or server group, dramatically reducing the time spent on manually deploying multiple files to multiple server instances
  • Simplicity - we built Tcat Server from the ground up with user simplicity in mind. As I mentioned, because we weren't saddled with retrofitting a general purpose monitoring tool for this product, we had the ability to get very disciplined on including only features and functionality that added value without undue complexity. We excluded features that only add to the bloat.

Another major feature which is included with Tcat Server is iBeans, a new integration framework which is similar in concept to Spring templates. iBeans ships with Tcat Server, however it can also be deployed on Apache Tomcat and Mule ESB. iBeans are designed to provide a simplified, consistent and reusable approach to communicating over a variety of protocols. Where many frameworks are focused on lower-level APIs such as HTTP, email and SOAP, the focus of iBeans is on consitent access of higher-level services such as Twitter, Gmail, Flickr and Amazon EC2. By using a Java interface and annotations to interact with a service, and by including all configuration options as a part of the iBean itself the need to do external configuration and XML wiring is eliminated and development is simplified and more rapid.

When asked what iBeans are currently supported and which are planned, InfoQ learned:

One of the more exciting aspects of iBeans is that they are ideal for sharing and reuse, since an iBean can be created by any Java developer in just a couple of hours. To facilitate this, we created iBeans Central, which is a free repository of reusable iBeans that are built/contributed by the Mule community and hosted in the cloud. Some examples of iBeans already available for use include iBeans for Twitter, Amazon EC2, Flickr, and Gmail. These iBeans can be downloaded for free from the iBeans console, for use in any application.

There are a number of additional iBeans in our development pipeline, (e.g., Facebook, eBay, retailers such as Best Buy and Amazon, etc.), but the real power of iBeans will be in contributions from the community for more obscure, but useful, services.

Of course, iBeans can also be created and reused by developers for any internal service that leverages the protocols currently supported by iBeans (including Web Services, RSS feeds, REST services, AJAX events, and JMS).

In the near future, the focus for iBeans will be two-fold: adding more iBeans to iBeans Central, and adding JAX-WS and JAX-RS support to the iBeans runtime. Improvements based on feedback from the community will also be incorporated into the iBeans platform. In the longer term, the plan for iBeans is to become a simpler version of Microsoft's Windows Communication Foundation (WCF) for Java, in that it would be a communications framework for the JVM. To meet this goal, support for the variety of languages that run on the JVM such as Scala, Clojure, JRuby, Jython and Groovy will be implemented - JavaScript support already exists in the current version of iBeans. This will allow for a consistent API across all JVM languages for access to both public and enterprise services, which is not something that currently exists on the JVM.

Rate this Article