GlassFish v3 release

A few minutes ago, GlassFish v3was released. When I first talked about GlassFish v3 in this blog entry, I considered it a revolution rather than an evolution. Today, I still believe GlassFish v3 is more than just the numerical successor to GlassFish v2.

Reference implementation

First of all, GlassFishv3 is the reference implementation of the Java EE 6 specification. Compared with Java EE 5, this specification is a next step towards simplification in enterprise development. The voice of the enterprise developers has been heard. Personally, I am very happy with the JSR 311 (Java API for RESTful Web Services) and the EJB 3.1 spec. One of the major benefits of JSR 311 is that it facilitates mobile applications instead of just Web Applications. A decoupling of business logic and front-end development at the REST interface offers lots of possibilities.

It took awhile before I realized the real benefits of EJB 3.1. But once I started using a NetBeans 6.8 milestone, it became clear that the enhancements are significant. We don't have to package an ejb-jar and a war together in an ear anymore, everything can be in one package (with the confusing name "war", though).

Open Source

GlassFish v3 is completely Open Source. I have the head-version of the repository on my desktop, and it is not too difficult to build and install it yourself.
The simple fact that software is Open Source itself does not say anything about its quality. But in the GlassFish case, the code is very well written and documented, and I was often surprised how easy it is to dive into the code of this complex piece of software.
Having access and being able to understand the source code is something that speeds up development. In a number of cases, your application is not behaving the way you want it, and you assume that this is a bug or some strange feature in the application server. You can spend lots of time trying to find out the cause without looking into the application server --- and that is how it goes most often. But you can also look into the relevant code of the Application Server and try to find out what is causing the problem. When the code is available and readable, this process can save developers time.


One of the major changes in GlassFish v3 is the modular approach. The old lib-directory has been replaced by a modules directory. Modules can be installed and uninstalled easily. The Glassfish kernel itself is very small. As a consequence, the kernel itself is also usable in environments with limited resources -- desktop and even mobile. Today, most modules are still enterprise focussed, but the GlassFish modularity can be a next step towards convergence between enterprise and mobile software. Enterprise software is becoming simpler, and mobile devices are becoming more powerful. Software patterns and technologies that are typically used in one environment may also work (or be adapted) in another environment.

I assume GlassFish v3 will be primarily used in the same areas where GlassFish v2 and other Application Servers are used. But in the future, I think GlassFish can extend its marketing potential into new areas, especially when modularity is required and when resources are still somehow limited, preventing typical big application servers from being used.

written on 10 Dec 2009 15:16.

no comments

Create comment