Attached is the draft of the 4.0 roadmap. The 4.0 codebase will be the basis for the j2ee 1.4 certification work. The outline is still too coarse grained due to the fact that tasks have not been assigned. If you have interest in an area let me know so tasks can be scoped out and assigned.
-- xxxxxxxxxxxxxxxxxxxxxxxx Scott Stark Chief Technology Officer JBoss Group, LLC xxxxxxxxxxxxxxxxxxxxxxxx
Title: JBoss 4.0 Road Map
4.0 Release Goals
JBoss 4.0 encompasses two parallel strategies, both short term and long term, both leveraging on one another. Our short term strategy is our J2EE application server. In JBoss 4 we plan to address the following with our J2EE offering:
- J2EE 1.4 compliance changes
- Standard Edition, v1.4 (J2SE) APIs
- Java 2 Platform, Enterprise Edition Management Specification (JMX), 1.2
- WebServices 1.1 (JSR-109)
- Java API for XML-based RPC (JAX-RPC) 1.1
- SOAP with Attachments API for Java (SAAJ) 1.2
- Java API for XML Registries (JAXR), 1.0
- Java Message Service (JMS), 1.1
- The Java Authorization Service Provider Contract for Containers (JACC), 1.0
- J2EE Connector Architecture (JCA), 1.5
- Java 2 Platform, Enterprise Edition Deployment API, 1.1
- Servlet 2.4/ JSP 2.0, Tomcat 5.0 integration
- EJB, 2.1
- Timers
- CMP2 extensions
- Web services support
- Integration of Hibernate
- Hibernate deployer
- Seemless integration with Container transactions. (JCA adapter should do the trick?)
- Update cmp2 container to use Hibernate
- Improvement to the GUI Management. Wizards for creating/managing JDBC connection pooling, cluster management (fault log, cluster topology, etc...)?
- HA JMS. Highly Available JMS. JMS with fault tolerance.
- Lightweight JMS. Point-to-Point, serverless JMS over our JGroups multicast toolkit. Highly scalable and fast.
- JCA 1.5 adaptor for JBossMQ
- AOP integration to improve server integration with third party ISVs.
- Unification of the interceptors. There are several versions of interceptors used by the different frameworks currently. This needs to be cleaned up, ideally reducing to a single interceptor model.
- Unification of the EJB proxy factory, detached invokers, and remoting layer. These transport and proxy factory services need to be brought together into a common remoting service.
- Cleanup the deployment layer to extract the metadata processing to allow for legacy deployments to work with the 4.0 release. The Enterprise Edition Deployment API also needs to be addressed, and part of this needs to be a more well defined life cycle semantic.
Future Directions
Our long term strategy is based on the idea of Plain Old Java Objects (POJOs). Much of the direction of new open source and commercial projects is to ease the development process by allowing programmers to work with plain Java classes rather than complex APIs and specifications. Many times these open specifications intrude on the development process and sometimes are complete overkill in the overall application architecture. JBoss 4 introduces a POJO-based strategy that allows developers to focus on writing their business logic in pure, simple Java, and applying system level architecture later on in the iterative development process. Business logic gets encapsulated within simple, reusable object models, and system level middleware like caching, remoting, transactions, and persistence are integrated via aspects, not through modification of the base application code. This allows application developers a simpler approach to writing complex programs and allows them to have a common object model that can have middleware applied to it in different ways and at different times depending on the use of the software.
The POJO kernel
These components make up the core building blocks that allow us to bring middleware to plain old Java objects.- MicroJBoss - our jmx microkernel that has been around since the 3.0 series tailored for POJO development. MicroJBoss gives us a lightweight component model. Allows us to declare configuration of core components, provides us with core features like component loading, hot deployment, and dependency management. It gives JBoss 4 a lightweight spine to load and configure JBoss and user services.
- JBoss AOP. This is our Aspect-Oriented Programming framework. This tool gives us the ability to define and attach middleware services transparently and implicitly to POJOs (plain old Java objects).
- JTA - transaction manager, a simple, but powerful API to provide transaction management for ACID behavior.
- JBoss Remoting. An framework written to abstract out distributed communications. It is fully URL based and can provide seemless integration with a variety of protocols like SOAP, RMI, IIOP, or custom fast socket based communications.
- JGroups. Our reliable group communication framework and basis for JBoss Clustering.
Aspect-Oriented Middleware
On top of our cores services, we are offering simplified middleware for plain Java objects that effectively provides J2EE a la carte.- Persitence - Hibernate. Hibernate is the most popular Java Object/Relational Mapping solution. It is a powerful API for mapping plain Java objects to your relational tables. Hibernate is also one of the key players on the JDO 2 specification committee.
- AOP remoting - Built on top of our core JBoss Remoting framework, these set of aspects allow developers to take any plain Java object and communicate to it over the network. No IDL definition phase like in CORBA. No precompilation like in RMI with rmic. Any POJO can be remotely accessed if so desired by any protocol offered by the JBoss Remoting framework.
- AOP Clustering. Taking the best out of our JBoss Clustering project, this aspect expands on AOP Remoting to provide fault tolerance and load balancing to any remote POJOs.
- Simple AOP Asynchronous Invocations. Allows you to easily tag a POJOs method to be *oneway*. That it is a fire-and-forget method that can be run in the background either with a Thread, or through a JMS queue.
- AOP caching. Transparent transactional and replicated POJOs through our AOP Cache. This allows you to insert plain Java objects into a cache and these objects instantly become ACID and replicatable across a cluster.
- JTA transaction demarcation
- Role-based security