PowerTier -- A cache-based, transaction processing application server designed for high performance and scalability

PowerTier -- A cache-based, transaction processing application server designed for high performance and scalability

June 25, 2002

There are a lot of new application server products out there, and most of them do not have much of a track record. Persistence Software's PowerTier is now in its sixth version and has a customer list that speaks volumes about its appeal for enterprise-level applications. PowerTier 6 for Enterprise JavaBeans (a separate C++ version of PowerTier is also available, hence the distinction) is one of the leaders in this crowded field. There are some drawbacks to its development approach, but overall PowerTier should definitely qualify for the shortlist for enterprises looking for a robust and scalable application server that can handle high-performance Web applications.

With a product built largely on JavaSoft (Sun Microsystems), Java 2 Enterprise Edition (J2EE), and Enterprise JavaBeans (EJB), Persistence is one of the few vendors to do a thorough job implementing entity and session beans, as well as the rest of the J2EE components. Considering the controversy surrounding this edition of Java, there might be some trepidation involved with the "bear hug" it gets from PowerTier. However, for enterprises in the Sun camp, this is as solid an approach as you will find.

PowerTier is not an easy program to configure. It provides a Profile Wizard to guide users through the rather intense set-up process and it's a sign of the complexity and a symptom of the problems users (like me) may encounter. The Profile Wizard does a fine job of spotting environmental deficiencies, but it requires experience and some mucking around to figure out how to make the fixes. The Wizard provides little help other than pointing out the problems.

The PowerTier development process begins with database and object design in the Object Builder. Users can also take advantage of the support for Rational Rose modeling, which is featured by Persistence, and should be important for some developers. From the object-relational model PowerTier generates the vast majority of the application code largely as entity (data), session (application and business logic) beans, and Java Server Pages (JSP).

The beans and other code can then be used to hash over in a Java IDE of choice (e.g., WebGain Visual Cafi or Imprise/Borland JBuilder). When satisfied with the functionality, the beans and server pages can be plugged into the PowerTier application server and a Web server, and the application is functional. The automatic coding saves a great deal of work, especially with encapsulating data connections. However, as with most application generators (even "Java Beaneries") it is important to thoroughly understand how it works and be prepared to fix, tweak, and augment the code for specific circumstances.

The PowerTier Server exploits the most potent "trick" in database technology -- RAM access. For years savvy products have used various forms of RAM-based hashing, buffering, and caching. Persistence has brought this approach to its application server with great success. The performance is demonstrably better than run-of-the-mill database server access. Moreover PowerTier provides this performance without sacrificing transactional integrity because it, in effect, treats the cache system as a DBMS with all the locking (optimistic) and multiple-user synchronization required. The tools provided, such as the PowerTier Command Center and PowerSync for synchronizing multiple servers, as well as the tailored coding, make for an unusually scalable and secure application server system.

Unfortunately, the hand-off from the PowerTier object modeler to a third-party IDE and back to the PowerTier application server complicates debugging. Diagnostics can be tricky and the debug cycle lengthy, sometimes sending users back to code regeneration in the modeler. The PowerTier approach should be compared to the more integrated environments such as IBM Visual Age/WebSphere and SilverStream's SilverStream Application Server.

For users that don't mind the ins and outs of a loosely integrated development system, the payoff for PowerTier is the application server -- arguably one of the best and certainly one of the fastest. It's an engine that recommends itself to sophisticated IS shops that can handle the rest of the J2EE development cycle.

Pros: High performance application server with strong failover, load balancing and transaction processing capabilities

Cons: Configuration requires a lot of manual (pun intended) effort, lack of IDE integration has drawbacks (e.g., debugging), high price tag

New in v6.5: Allows the automatic generation of EJBs, JSPs, database schema and XML code; built-in functionality to automatically generate XML code added; enhancements made to the Servlet Engine to make it faster; Release Notes
Upgrade Meter: 2

New in v7.04: J2EE 1.2 certified; JMS API support; bundled JMS implementation; standard CMP 1.1 Entity Beans; client container support; standard ANE resources; Web container security; enhanced processing of .ear and .war deployment archives; improved and more consistent exception handling; JDBC connection pool shared between client, Web, and EJB containers; can create a custom realm for runtime authentication and authorization; bundled Certificate Authority can generate DSA or RSA certificates; support for nine new TLS 1.0/SSL 3.0 cipher suites and one new non-standard cipher suite; updated Apache server, platforms, and databases support; new federated failover mode; transparent failback allows downed systems to automatically rejoin a cluster of redundant systems when returned to service, without restarting the cluster or otherwise interrupting service; database connection pooling and dynamic pool resizing; creates new eEntities in a single database operation; optimizes database updates to send only the changed elements of a modified Entity, instead of the entire Entity; revised threading to take advantage of advances in platform threading libraries; optimized "hot spots" which were preventing full utilization of all CPUs on systems with many CPUs; allows intelligent, runtime configurable database connection usage based on Entity attributes; connections between Web and EJB containers or between EJB application clients and EJB containers can be maintained over HTTP, allowing tunneling through firewalls; Release Notes
Upgrade Meter: 3

Version Reviewed: 6.0
Reviewed by: Nelson King
Last Updated: 10/26/00
Date of Original Review: 9/28/00