Project GlassFish is an open source implementation for the Java EE 5
platform, developed at the java.net community. GlassFish is the first
implementation built around the Java EE 5 platform. The technology developed by
the project is already used in several products from different
vendors, including the Sun Java System Application Server 9.0, and is the code
base for the Java EE 5 reference implementation. The Sun Java System Application
Server is built on the source code developed by Sun engineers and the GlassFish
community.
|
The GlassFish project provides reference implementation for Java EE 5
platform technologies such as EJB 3.0 specification, Java Persistence API, JSF
(Java Server Faces) technology, DI (Dependency Injection), Web services etc. The
main design goal of the Java EE 5 platform is ease of development. This cuts
down the boilerplate code and supports metadata annotations. Developer writes
business components as ordinary POJOs (Plain Old Java Objects), POJIs (Plain Old
Java Interfaces), annotates them and the container delivers the required
functionality.
The focus of the Java EE 5 platform design is to streamline the development
process and add convenience, improve performance, reduce development time, and
help developers reduce the time taken in production.
Setting it up |
|
Monitoring execution flow
Call flow monitoring, a bundled utility in the GlassFish application server,
helps in performance tuning and debugging the deployed applications. Call flow
is used to monitor calls as they flow through various containers in the
application server. It is used to investigate the run-time behavior of
applications. Call flow caters to the needs of both application developers and
server administrators. During development, developers can easily
debug and run through the call flow stack and application server administrator
can use the elegant feature to monitor the runtime behavior of application and
keep an eye on remote users.
Call flow scales better than profilers as it has very negligible overhead and
memory footprint. Call flow acts as a glue, it can be queried to drill down to
individual components and trace performance bottlenecks in an application.
Further, call flow can be fine tuned to monitor calls from specific remote
clients and user credentials.
Call flow is turned on via admin GUI and admin CLI. When it is turned on, the
server starts collecting monitoring information for the applications
deployed in the application server. To turn it on, you need to do as follows.
- In the left pane tree, select the 'Application Server' node.
- Click on the 'Monitor' tab and then the 'Call Flow' tab in the
right pane. - To start collecting calls, check the 'Enabled' checkbox in the
configuration settings. - For call flow to be initiated, click on the Save button.
Call flow data collection (refer to the screenshot on the next page) stores
information such as application name, module name, transaction identifier, user
principal, time in various containers, method name, exception etc. This
information is persisted into an embedded database. The data collected from call
flow is populated in the 'Call Flow Data' section of the Call Flow page in
the Administration console.
Call Flow Management |
By clicking on 'Time Stamp' column (shown in the screenshot at the
bottom), you can display detailed data about a request such as the response time
for the request and how much time the request spent in each container. For each
step in the calling sequence, the table displays the pertinent container,
component and method. To display call flow from the admin console, uncheck the
'Enabled' checkbox on the Call Flow configuration page and Save.
A deployed application in the GlassFish application server; you can download GlassFish from https://glassfish.dev.java.net/ |
Increase productivity
GlassFish comes bundled with a number of key utility features like administrator
graphical interface, a command line interface, log viewer, call flow, Apache
ANT, etc. GlassFish is designed keeping the developer's choice in mind; it can
be highly customized and configured depending on certain key business
requirements. GlassFish introduces a new feature called on-demand initialization
services. With this feature, the application server can start with minimum
services; additional services are started only when required by a given user
application. The new Java database, based on the Apache Derby project, is
supported and integrated as part of the GlassFish project. JSF is an integral
part of the Java EE 5 platform. The GlassFish
catalog includes several JSF and AJAX components. GlassFish is supported by a
number of leading IDEs including NetBeans, Sun Java Studio and plug-in for
Eclipse is under development.
By clicking on 'Time Stamp', you can see the detailed information about a request, such as the response time or the time a response spent in a container |
Easy application packaging
With Java EE 5, Web application deployment descriptor is optional for simple
applications containing JSP pages and static files.
If your Web module does not contain any servlets, filter, or listener
components then it does not need a deployment descriptor. In other words, if
your Web application only contains JSP pages and static files then you are not
required to include a web.xml file. This significantly cuts down the
boiler-plate code.
Multiple client support
Enterprise applications built using the GlassFish application server can serve
multiple clients, varying from browser-based Web applications to application
clients. You could deploy a Java EE application client to the application server
container and then take advantage of Java Web Start software for distribution of
the application to client machines. Java Web Start, a deployment and launch
technology, can be used to deploy standalone applications with a single click
over the network. With JWS, applications can also be launched through desktop
shortcuts and can be used for offline operation of an application. Further, JWS
automatically maintains version information, so download is not required again
unless a change is made.
The information collected in Call flow data-app name, module name, transaction identifier, etc-is persisted into an embedded database |
GlassFish is the open source implementation of Java on a presentation part.
With the enterprise computing around the Java community maturing, Sun and other
JCP members are putting their entire wood behind the GlassFish project. Now,
GlassFish comes bundled with in Java SE 5 SDK. The GlassFish community is
participative and thriving, with over 1100 members already, GlassFish is all set
to take the enterprise Java EE application server market by a storm.