First came light-weight containers such as Spring which provide some of the useful features of application servers, but with less constraints over both design and deployment. Now we have Web Beans:

  1. A Web Bean does not have to be an EJB
  2. Web Beans should be executable outside the EE environment

This is further support for the move away from the over-engineered and invasive approach in the original J2EE specification to a simpler POJO based model. However the Web Beans proposal attempts to stay within the formal J2EE fold by choosing to delegate some services to the application server:

” … not every component needs the services that EJB provides (transaction demarcation, authorization, etc). However, Web Beans will not duplicate this functionality, so when these services are needed, the Web Bean should be written as a session bean.”

In contrast, Spring implements some services (such as transaction management) and supports integration with other components to support others – for example Hibernate for persistence, Terracota for clustering – and does not rely on an application server (although it can be deployed within one).

It will be interesting to see where this ends up, and whether Web Beans ends up moving closer to or further away from the model adopted by Spring.

But what about the application server ? Certainly not dead, but perhaps leaner.

Hopefully these POJO based approaches will make design decisions less about the deployment architecture and specification constraints and more about implementing the business logic.


  1. I expect a lightweight OSGI container will replace what we currently call application servers. Something to tie it all together, that doesn’t provide any actual services.

    App server dead?
    I can’t see IBM, BEA, … trying to sell an app server with less functionality, how do they make this profitable? So if the market is moving to a leaner model, which will be open source, the commercial app server product lines, are dead.

  2. Once upon a time all roads in the java world led to the Application Server. It was the nexus of services to the enterprise. But the problem was that J2EE was too heavyweight and took too long to deploy. The spec was too unwieldy. Witness the pains of creating a ‘Hello World’ or the Petstore sample application in J2EE. Spring is a framework built to provide a leaner solution to the requirements rather than being an all encompassing spec. The application server vendors like IBM and BEA can still sell licenses on the basis that JEE is THE enterprise business services server. It’s backed by all the enterprise players. The trick is that whilst it is a solution it is not the ONLY solution. Whether Spring can increase mind share is up to the Enterprise Architects and selling a solution that does not come from an Enterprise Vendor can be a challenge.

  3. Yes, I think so.
    I believe when the POJO Application Server catches on, its the end of EJB.

    Its a completely different architecture.
    The container runs normal Java applications, not just beans.

    The thing you will notice immediately is that one doesnt even consider the container when building the application. The tool does not encroach at all on the application design.

    The result of this simple model is awesome, it doesnt stop at business logic, one can even put games online.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s