I was evaulating JMS vendors for our messaging needs. I could not find any one single source which details the various JMS vendors in the market. So, I have compiled a list of vendors which came across

Open Source Implementations


then you have the biggies of the messaging world.

JBoss SEAM 1.0 represents a redefinition of web application architecture that extends the POJO + annotation-driven and configuration-by-exception programming model of EJB 3.0 into the entire web application stack. It integrates Java EE 5 technologies like EJB 3.0, JSF and JMS into a unified programming model and narrows the semantic gap between the business domain and the Java programming language by deeply integrating technologies like jBPM for business process and user interaction modelling and Drools for management of business rules.

Seam 1.0 has the following new features:

* Seam Remoting - an AJAX-based remoting layer for EJB 3.0 components and JMS - allows client-side JavaScript to call EJB session beans directly
* Support for JSR-168 compliant portal engines such as JBoss Portal
* Elegant handling of internationalization and JSF messages via EL-based interpolation
* Helper components for JMS senders/publishers
* JSF tag library
* Redesigned XML-based configuration facility
* Support for integrating databinding architectures
* Eventing architecture for loosely-coupled components
* Seam Logging
* JBoss Cache integration for cluster-wide state replication
* Experimental Drools integration
* Compatibility with the Java EE 5 reference implementation
* Provides unique contextual state management architecture

Check out for more details here.

JBoss Rules is the supported and branded release of the Drools project and part of the JBoss JEMS product range. Drools is an enhanced Rules Engine implementation, ReteOO, based on Charles Forgy's Rete algorithm tailored for the Java language.

Drools provides for Declarative Programming and is flexible enough to match the semantics of your problem domain with Domain Specific Languages.

Check out the same here.

The wsadmin scripting interface is a useful interface for managing your WebSphere® configuration, particularly when you need to automate tasks or perform other custom management. However, using Java Management Extensions (JMX) extends this powerful solution even further, allowing administrative capability to be directly embedded in the functions of your J2EE application.

This article explains how a wsadmin script works, and how it can be easily rewritten as a servlet to accomplish the same task in JMX. We briefly discuss how WebSphere maintains its configuration information in XML files, and how equivalent JMX code can be used to accomplish what is done by way of wsadmin. Using IBM Rational Application Developer, the example demonstrates how JMX can provide a valuable solution in advanced custom administration for system integrators, independent service vendors, and application developers.

Filed in:

I had talked about scaling the existing applications to work in a cluster environment here. Subsequently, I had posted on findings on the products available in the market Terracotta here.

As part of the same study, I came across this article, which details what all goes into building a strong, extensible, and flexible J2EE apps, tap into a WebSphere® cluster environment. This article describes what you need to consider when designing a Web-based application in a WebSphere Application Server cluster environment, including application file update and synchronization, serialization of session objects, and dynamic caching.

Filed in:

Subversion 1.3.2 has been released. Subversion has been touted as the next generation of CVS, where it takes on the strengths of CVS and has added quite a new set of features to the release.

Check out here.

Design your processes and set up your environments for developing, building, and deploying your portal. Learn how to control the source code and build components, ways to manage continuous integration and deployment to test environments, and how to deploy production release packages. Learn best practices, which tools to use, and strategies for creating you own processes.

Check out here.

This collection of best practices, tips, and suggestions from the IBM® WebSphere® Portlet Factory development team is for developers who are either currently using or are expecting to use WebSphere Portlet Factory.

Developers with any level of experience can use Portlet Factory to quickly create complex portlets and integrate them with their WebSphere Portal based portals. As with the use of any tool, there are good practices for architectural, application structure, and solid implementation. This document provides guidance for those practices based on many person-years of experience. It also includes a section on selecting Builders to help you navigate the Builder palette.

Filed in:

DB2 9 introduces pureXML® support, which means that XML data is stored and queried in its inherent hierarchical format. To query XML data, DB2 offers two languages, SQL/XML and XQuery. You can use XQuery and SQL separately, but you can also use XQuery embedded in SQL and vice versa. This gives you a lot of flexibility and options for querying your XML data.

Check out more here.

This tutorial shows how to develop a WebSphere portlet application for IBM® WebSphere® Portal V5.1 using Eclipse and WebSphere Portlet Factory. It also shows you, how to use WebSphere Portlet Factory to develop a portlet that retrieves and displays data from a database.

Filed in:

I was looking at products for scaling up an existing client/server kinda of application. I am posting here my findings on Terracotta.


Allows the applications to be clustered to run on multiple JVM’s without changing source code and to get linear scalability and total fault tolerance. Terracotta injects clustering and caching into off-the-shelf JVMs.

How it works?
The technical approach that Terracotta uses is client/server, relies on byte code manipulation to track object changes, uses XML descriptors to define data synchronization points, and communicates object deltas. Theoretically, it should have efficiency advantages if you have a very large object graph and you frequently access that graph but only change small bits of information within it.

Technical Architecture
At the heart of the Terracotta architecture sits the Terracotta Server. Terracotta provides a set of infrastructure software installed on an inexpensive server. Multiple Terracotta Servers can be clustered together to make a high-availability hub shared by many application servers, even across dispersed geographies.
The server's primary job is to replicate state across application servers in the data center, manage connections from various clustered JVMs, and ensure coherence and consistency of application data. A single Terracotta server can provide clustering services for all of the Terracotta modules in use in the Data Center.
Existing servers within the data center need only have the Terracotta libraries installed on them. Terracotta libraries provide various 'modules' which communicate with the Terracotta server and enable a variety of clustering services.

Terracotta Fail over
The Terracotta Server can operate with a 'hot back-up' to meet availability requirements. In the event of a failure in the active Terracotta Server, the back-up will automatically take over transactions from various clustering clients and ensure that the replicated state is maintained. No state or cache information is lost in any application node. And, failover takes only seconds. Connected clients will notice only a brief pause during the failover process.

• API Less – One can simply plug in Terracotta (install the libraries), configure (edit appropriate configuration files), and play (start Terracotta and run the application)
• Provides a management console to provide metrics about connected clients, object/content caches


• Requires an external server
• Supports session replication for WebLogic Server 8.1 and Tomcat 5.0
• Terracotta server required a hot backup for 24X7 applications

IBM WebSphere® Portal V5.1.0.1 uses a default method to determine the locale of a user request. Portal applications sometimes need to override this method with a custom method. For example, your application might need to encode the locale in the portal URL. Alternatively, when the navigation state is not in the URL, the application might need to access the locale from the user's profile or from the browser preferences.

This article, for portal developers and architects, shows how to design a site that needs to be rendered in multiple locales, and the application selects the locale based on business rules.

You have built a Java Application. Now, as the application usage increases, the application needs to be scaled up. The only way to go is scale up (horizontal or vertical). Now the problem is that the application was never built to run in multiple JVM’s. There is no data synchronization, failover, session replication, distributed cache mechanism built in.

Now what can we do. Add more servers( JVM's), but how do we tackle the problem of a common repository for user sessions, transactional data and cache.

This is the need that the following products intend to fulfill.

Tangosol Coherence
JBoss Cache

These products allow you to distribute your data but still making the application believe that their is a single cache and single user sessions repository.

Liferay Portal 4.0.0 has been released, with fine-grained permissioning, support for Websphere 6, and Weblogic 8.x, Alfresco integration, JSR-170 support, full-page caching, and more. It includes many bundled portlets and themes, and can be deployed on most application server/database combinations, including deployment in servlet containers (as opposed to a full application server).

Liferay also supports single-signon and user customization.

This compilation of tips and guidelines from services, development, and support personnel about IBM® Workplace Web Content Management™ is based on daily product experience including real customer engagements. This information includes selected topics and applies to version 5.1.0.x.; other versions might have different best practices. If you are currently involved in or just considering implementing a Workplace Web Content Management system, you can use it to help guide your work. You need a basic understanding of the Web Content Management product to understand the topics discussed.