CUBA is a light-weight open source helper toolkit for the development of component-based systems which can be run as EJB applications, AXIS web services or rich J2SE programs. The components can be reused in all these different environments without modification by generating according adapter classes and descriptors.
- Posted by: Jan Lessner
- Posted on: November 30 2004 19:32 EST
CUBA follows the EJB session bean component model, causing the framework only to act as an ultra-thin compatibility layer for J2EE-compliant application servers. For non-managed environments, CUBA provides a mini container as a full-functional local component living space, providing all typical EJB features like resource and transaction management, user-authorization, or lookup services.
The CUBA approach strictly separates the general concept of the powerful EJB model from the aspect of physical distribution, giving the idea of software component reuse a new kick. EJB programmers can develop, test and debug there components without using an application server, speeding up edit-compile-test-cycles to the performance of local J2SE development. J2SE and AXIS webservice developers can use the convenience of container services in an EJB-oriented architecture. If required, their components can easily be exposed as EJBs in a scalable J2EE environment without changing any code.
CUBA has just reached version 1.0.3 and is already in use for all supported runtime enviroments in various productive application projects. For further information visit the website at http://cuba.sourceforge.net
This is so cool. And its components can most likely be ported to EJB 3.0 without any modification (quoting their site).
How are people pronouncing CUBA? As in Cooba, or as in Cueba?
Yes indeed! Porting CUBA components will be very easy and usually won't require modifications due to some simplifications in the EJB 3.0 model which already apply in CUBA from the very beginning:
- CUBA components don't need home interfaces, but follow a method-based initialization scheme just as proposed for EJB 3. For EJB 2 environments, CUBA automatically generates home interfaces behind the scenes and hides them completely in its component lookup.
- Component implementation classes actually *implement* the component's interface as this is usual in ordinary component design and will be present again in EJB 3. CUBA already bridges this most annoying weakness in older EJB specifications.
- CUBA leaves persistence management to other toolkits and standards and therefore has no equivalent to entity beans. Instead, the distribution contains examples for integrating the open source O/R mappers PriDE (see http://pride.sourceforge.com) or Apache's OJB (see http://db.apache.org/ojb) and it will provide standard JDO integration as soon as EJB 3.0 specifies an appropriate service provider interface.
Some important features of the draft EJB 3 specs are related to simplified component testing outside an application server, based on injection initialization. In CUBA you can already test your components without a J2EE environment NOW. And even more: you do not only *test* them but can fully *use* them without a managed environment but with full support for TX management (including CMT), authentication, connection management, call-chain-management etc. Additional testing features in CUBA allow to test also components with *local* interfaces and to inject mock implementations for better unit testing.
So, CUBA components are best-prepared for the next evolutionary step of the EJB standard.
The previous link was taking to the home page of SF. The correct link should read http://pride.sourceforge.net