AccessMyLibrary provides FREE access to millions of articles from top publications available through your library.
IBM WebSphere Application Server (WAS) version 5.0 continues the tradition of improved performance from release to release. These improvements come from several key areas, which include:
* WAS's implementation of new J2EE 1.3 APIs, notably EJB 2.0
* Web services using SOAP
* Dynamic caching and edge componentry
* HTTP session management
* Extensions for the enterprise
WAS 5.0 complements these performance enhancements with an enhanced collection of runtime tools for performance, including Java Management Extension (JMX) interfaces for performance monitoring and performance advice. This article presents these features, highlighting their contribution to WAS 5.0's performance.
WAS 5.0 supports the J2EE 1.3 programming model. The most significant area of performance advancement is within the EJB 2.0 portion of J2EE 1.3. There are two aspects of EJB 2.0 that support building higher-performing EJB-based applications: local interfaces and container-managed entities.
EJB 2.0 local interfaces provide optimized EJB-to-EJB access. By definition, EJB 2.0 local interfaces are local method calls that use call-by reference semantics. Unlike traditional EJB remote or "location-transparent" methods, local interface methods have no intramethod overhead and do not create copies of parameter or return objects. Lab measurements show a 20% to 2x improvement, depending on the size and complexity of parameters and/or return values.
Container-managed entities receive a boost in both usability and performance by allowing for container-managed relationships (CMR). CMRs define a relationship pattern between EJBs. Consider an application in which customers place orders. There is a relationship between customers and orders, in that every time the application accesses the Customer EJB, it also accesses the orders that a given customer has made. Furthermore, using the IBM WebSphere Studio tooling, you can define a read-ahead policy to improve the performance by preloading associated objects.
Figure 1 shows an association between customers and orders. The implementation is a CMR with one customer having many orders. A read-ahead hint on this relationship optimizes performance by preloading orders with the related customer in one generated SQL SELECT statement with a SQL JOIN for both underlying tables. This halves the number of database accesses for this logically related data. Using the read-ahead hint yielded a 10-15% performance improvement in lab measurements involving similar CMRs with 10 associated objects.
Base EJB 2.0 supports one read-ahead hint per association. WebSphere Application Server Enterprise Edition adds the capability to define multiple read-ahead hints per CMR relationship. This added capability is part of application profiling, discussed later in this article.
The most significant Web services performance optimization is in the SOAP support in the Web Services Technology Preview. In particular, the JAX-BPC, which is the standard programming interface to Web services, uses an optimized Apache Axis as the core of the WAS Web services stack. Early benchmarks on this base exhibit significant improvement in performance, …