AIX > Tips & Techniques > Application Development

WAS Internals

WebSphere Application Server features can be used on all IBM platforms

WebSphere Application Server features can be used on all IBM platforms

Bookmark and Share Print Email

Note: This is the first part in a three-part series on WebSphere Application Server.

Much has been said about the Java* 2 Platform, Enterprise Edition (J2EE) V1.4 support and related features that were delivered by the 6.1 release of WebSphere* Application Server (WAS) on its Java 5 base. However, little has been said about its architecture and some of the "under the covers" features it employs to great benefit on IBM* platforms. This article, and those that follow, will look at the application server internals from the perspective of the OS upward to learn how to best exploit it on IBM platforms, particularly AIX*.

In this and subsequent articles, I'll examine the three layers essential to the current WAS environment:

  • The IBM J9 Java Virtual Machine (JVM) Runtime
  • The Eclipse 3.1.2/OSGI Runtime and Component Model
  • The underlying WAS runtime components extended by the WAS services

As we go up through these layers the implementation technology changes from native (mostly C/C++) code to Java code, but don't let the use of Java code wrongly suggest that what runs isn't optimized code as you'll see with the J9 JVM implementation.

What might surprise most people is the inclusion of the Eclipse 3.1.2 runtime. The runtime element of the well-known developers' Integrated Development Electronics (IDE) actually underpins the application server. It may appear odd that something known for its user interface should be found in a server package, but it's the Eclipse/OSGI plug-in component model that brings the benefit, as you'll see later.

Figure 1 displays the relationship of these layers associated with the WAS environment.

The IBM Java 5 J9 JVM

The details as to IBM's Java runtime environment tend to be noticed by Java coders alone; yet how the enhancements in the IBM offering over that of the base Sun implementation benefit the AIX OS should interest administrators and infrastructure architects. Understanding how it works enables enhanced performance with reduced resource utilization.

The JVM is just what it sounds like - a virtual machine. That is, to the code that it runs, it's for all intents and purposes a real machine with its own instruction set, execution engine, thread management, memory management, etc., but to the real host machine it's just a single process. The JVM process is mapped out in Figure 2.

Most JVM runtime implementations consist of the Java byte code execution engine in the JVM itself, the just-in-time (JIT) compiler and the garbage collector. All of these have been enhanced in the J9 implementation. IBM officially lists the following features of the IBM Java 5 J9 JVM as differentiators from the base Sun offering:

  • Shared classes
  • Type safe and generational garbage collection
  • Asynchronous, queued compilation in a background thread
  • Five levels of code optimization with continuous sampling and profiling
  • Support for large page sizes
  • Numerous reliability and serviceability (RAS) and serviceability enhancements

Each of these features exploits the underlying platform and accelerates the WAS, so let's examine the most important of these in depth. Before we get into the detail it's worth understanding what we get from these features - WAS V6.1 uses less virtual memory for each subsequent instance started within a partition and actually gets faster over time.

Colin Renouf has been in the IT industry for more than 20 years and currently works for a large UK bank, running some of the largest user groups in the world for WebSphere and POWER*/AIX.

Advertisement

Buyers Guide

Search our new 2012 Buyer's Guide.

Search Companies


Search Products


Advertisement

Related Articles