And GlassFish v3 is Here

The long awaited and the most looked upon version of GlassFish released today. GlassFish v3 fully implements Java EE 6 specification which means EJB 3.1, Servlet 3, JAX-RS, JPA 2, Contexts and Dependency Injection for Java EE, Bean validation, Java EE profiles and so on.

 

GlassFish is not only the most up to date application server but it also benefits from a very good architecture. GlassFish architecture provides extensions points and contracts which 3rd party developers can use to add functionality to GlassFish (even the administration console is plubable).

 

GlassFish v3 is an important milestone in GlassFish life because now it is fully based on OSGI modularity framework which means GlassFish can be integrated into a bigger OSGI system.

 

In addition to Java EE profiles, GlassFish v3 is also available as an embedded application server which we can use for testing purpose or any other kind of in process use cases.

 

What I like the most about GlassFish is its close integration with many other well developed products like OpenESB, OpenSSO, IDEs, and so on in addition to its superb performance and administration channels.

 

GlassFish v3 adds another reason to make one consider it as the prime option for deploying simple and complex application, and that is its extensibility which so far made it possible to host different kind of scripting language based applications like application based on RoR or PHP in the same process which hosts the Java EE applications.

 

GlassFish v3 is available for download at: https://glassfish.dev.java.net/

 

Like GlassFish v2, Sun Microsystems provides support for GlassFish if you need a higher level of assurance and guranteed support. to get more information on the provided support model take a look at GlassFish Enterprise Home-page.

 

And if you are interested there is a GlassFish V3 Refcard published by DZone and authored by me which introduces GlassFish v3 in more details and gives you all you need to start working with GlassFish v3.

 

 

I have an Upcoming Book about GlassFish which is due to be published on April 2010 by Packt Publishing. The book mainly discuss GlassFish security (administration and configuration), Java EE security and using OpenSSO to secure Java EE applications in general and Java EE web services in particular.

 

To learn more about Java EE 6, you can take a look at Sun Java EE 6 white paper located at: https://www.sun.com/offers/docs/java_EE6_overview_paper.pdf

 

Another way for you to meet GlassFish folks, other GlassFish community members and to learn more about GlassFish v3 is to join the Virtual Conference about GlassFish v3 which is supposed to take place on 15th of December.

One pager review of GlassFish version 3 features

Modular architecture

GlassFish V3 uses a modular architecture to address the emerging requirements in the Application server’s market and container profiles concept of the Java EE 6. GlassFish uses OSGI for module management, and inside the OSGI modules it uses HK2 module system for configuration and service management. So far, Administration console, CLI, and application types containers, can be extended using this modular system.  Java EE components can be replaced by any other compatible implantation using the OSGI modeling system.

Pluggable containers, scripting language support:

GlassFish V3 introduces new innovation in supporting different types of applications by letting the administrators and system managers to deploy different types of applications which are coming from different platforms and frameworks like Ruby On Rails, Grails, Quercus, and so on in the same applications server instance that they deploy the Java EE applications and therefore a unified administration infrastructure will be used to deal with all required administrative and management tasks. Containers load when they are required, for example when no PHP application is deployed, PHP container does not has any overhead over the application server.

CLI and administration console extendibility:

With GlassFish V3 it is possible to extend GlassFish CLI by developing new commands (extending an interface and using some HK2 services if required) as OSGI modules and simply putting them into GlassFish modules directory. The rest of the tasks of picking the module and responding to your command is what GlassFish module system does. Web based administration console can be extended using the same mechanism, but this time you can develop some JSF web pages to which you need to add to Administration console along with some descriptors which determine what is the page’s parent node in navigation tree and so on.

Role based security:

GlassFish V3 administration console is equipped with fine grained access management system which let the System Administrator to define new role with limited set of permission on using administration console.

An Embeddable Application server:

GlassFish version 3 can be used as an embedded application server (run in the same JVM that the client application runs) with full support of Java EE 6. Embedded application server can be used for packaged software, unit testing, building new functionalities on top of Java EE 6 and so on.

Flashlight, the probing framework:

Flashlight infrastructure introduced to remove the heavy burden of monitoring from application server and apply a very small percent of overhead whenever a client starts looking at the monitoring information. It let the developers and administrators to view variety of sever attributes in runtime and if they need to view any factor which is not provided by default (their own source code monitoring information) they can embed monitoring probes in sensitive parts of their code when they develop the software and later use the monitoring information that probes collect to see how that sensitive part of the application works.

REST monitoring support:

Glassfish Monitoring information can be received using RESTfull interfaces provided  in GlassFish V3, using this monitoring feature developers and administrators can gather statistics related to any attributes that they like using any programming language with REST or HTTP support.

GlassFish refcard is available for download for free

GlassFish Application Server

In case that you are a glassfish administrator or a developer who uses glassfish in day to day development tasks then you will find GlassFish Reference Card a valuable source of information to keep you away from searching the web or administration references.

The reference card contains most important administration commands, security tips, performance tuning tips, clustering and monitoring instructions along with explanation around troube shooting and GlassFish directory structure.

Just navigate to http://refcardz.dzone.com/announcements/glassfish and download the reference card.

You can find many other refcardz in variety of topics at http://refcardz.dzone.com/

 

GlassFish version 2 monitoring capabilities

GlassFish version 2 monitoring capabilities

GlassFish version 2 provides good mentoring information about different aspects of application server and all of your applications that are deployed into GlassFish but before it can show those statistical information you need to configure its monitoring service. Figure 1.

Although this statistical and monitoring information and the way that they are presented is not as luxurious as weblog and websphere one’s but they are good enought to help you track what is going in your server.

To enable monitoring service of GlassFish you need Commence with openning administration console, Locate the configuration node and expand it now select monitoring now choose all components that you want to monitor, select high for more details and sure more overhead and low for less details and less overhead. Figure 1.

Configure your monitoring

Now you should be able to see some monitoring detailsby going to monitoring pages, monitorig pages are placed under different nodes in administration console based on your installation profile. If you are not sure about your glassfish profile, follow the developer profile item.

  • For the cluster or enterprise profile In the tree component, select Common Tasks, then click View Monitoring Data.
  • For the developer profile, in the tree component, select the Application Server node. Click the Monitor tab.

Glassfish categorize monitoring information under three categories, these categories are as follow:

Call Flow:shows you how many requests are replyed successfully or with a failure and how much time consumed for that request in different layer of application server. Figure 2

Call Flow

Runtime:this category provides information about JVM, Garbage Collection, HTTP service, Listeners (http/s), ect. for example under JMV node of these category you can use memory item to view fine grained details about your application server heap. Figure 3

Runtime

Applications:Let you select an application and view details about that application components, for example you can view how much time a servlet has called and how time its call taked. Figure 4

Applications

Resources:here you can view detailed information about all of your resources like connection pools, connectors, jms connection factories, etc. For example you can view fair amount of details about your connection pool in order to hunt possible connection leake or to tune your connection pool. Figure 5

Resources

Transactions:These allows you to view what is state of transactions that are running inside your application server.

It is my first blow entry written from my Ubuntu 7.04 installation and I am happy with my switch from OpenSuse to Feisty Fawn 🙂