18.6 Case Study: Elite.com

Elite.com is a successful Internet startup subsidiary of Elite Information Group, and provides an online time and billing solution. David Essex reviewed the J2EE technology behind the Elite.com web site for Enterprise Development magazine.[3] Elite.com's solution is similar to many J2EE implementations, leveraging the full range of J2EE technologies as well as other non-Java technologies. The report covers only a few performance enhancements, but they show some of the most common high-level J2EE performance issues:

[3] See http://www.devx.com/upload/free/features/entdev/2000/07jul00/de0007/de0007-1.asp.

Perform work asynchronously whenever possible

Elite.com includes a queueing subsystem that asynchronously accepts external communications, such as email entries. Entries can be batched and run with minimal impact on the online system. (Chapter 12 and Chapter 15 discuss asynchronous queuing.)

Concurrency conflicts are the biggest limitation to scalability

Like most enterprise applications, Elite.com experienced conflicting concurrent access to some resources. When this caused severe decreases in performance in one subsystem, Elite.com solved the problem by using a resource pool (an EJB connection pool shared among servlets), improving the subsystem performance. (Contention costs are discussed in Chapter 15.)

Local is much faster than remote

Moving components so they are local to each other can significantly improve performance by eliminating marshalling and remote-transfer overhead. Collocating the EJBs and servlets and converting the communication to local calls can speed performance dramatically. (This topic was discussed earlier in this chapter.)