Client: Dell Precision 410, 128MB RAM, 18GB disk drive,
Windows NT Workstation 4.0 SP 5
Persistence Software, Inc.
1720 S. Amphlett Blvd. Third Floor
San Mateo, CA 94402-2701
Phone: 650 372-3600
Fax: 650 341-8432
Persistence licenses PowerTier on a concurrent developer basis at $7,500/ developer. The server is licensed on a runtime basis at $25,000/CPU for both NT and UNIX platforms, and site licenses are available.
Many Internet sites and applications began life as simple static Web pages. Once developers gained some initial experience working with the Web, these same applications went from being static pages to dynamic applications. In response, a host of dynamic application servers emerged in the marketplace, many of them featuring their own proprietary languages that were derivatives of HTML tags.
These application servers, a natural progression from classic three-tier computing models, could be plugged directly into your favorite Web server - an added attraction. Recently, this same market has begun to coalesce around JavaSoft's J2EE SDK as the standard backbone for application server engines. The J2EE framework evens the playing field between the large vendors and the smaller ones since they're both working from the same basic model. I recently got the chance to take a look at Persistence Software's PowerTier 6 Transactional Application Server - a hot entry in the application server race.
Installing and Configuring PowerTier
You can download PowerTier 6 from Persistence Software's Web site after you fill out a short qualification form. The installation procedure itself is relatively straightforward, but you'll need to do some postinstallation work. After the server is installed, you must run the PowerTier Profile wizard that verifies the overall configuration environment for you. I found the wizard helpful for pointing out problems, but it wasn't very helpful in terms of actually diagnosing the problem. Persistence runs a public news forum on its Web site and it seems like quite a few developers have had trouble with the configuration. There's quite a lot of functionality bundled into the package so I'm not surprised. Once you get the configuration issues out of the way, it's a relatively simple matter to get rolling with PowerTier 6. Persistence provides a thorough tutorial on the product and this document includes a simple diagram that highlights the development model with PowerTier 6 (see Figure 1).
Building a Simple Project
You can start designing your application with the PowerTier Object Builder or you can use PowerTier with Rational Rose. Persistence provides a link program for working with Rose version 4.0 and Rose 98. (The version on the Web site doesn't support Rational Rose Enterprise Edition 2000 per se, but I was able to use the link program with 2000 anyway.) To get the two products working together you have to make some manual changes (such as copying Rose menu files), but it's relatively easy to do. The PowerTier export procedure builds a PowerTier project file from the model within Rose. Using the default Rational Rose model of a banking application that PowerTier provides, I made some changes to the attribute definitions, then generated the project file.
Once you've generated your project file you can look at the classes using the PowerTier Object Builder (see Figure 2).
The Builder isn't a full-fledged Java IDE (this is one of the drawbacks of PowerTier 6), but it's relatively easy to work with. Ideally, I would like to see the Builder interface tied directly into several of the leading Java IDEs. Despite this limitation, the Builder packs a lot of power when it comes to generating the actual code. PowerTier supports EJBs, Servlets and JSPs, and comes packaged with the Apache Web server.
The Builder can actually generate the entire application (including the JavaServer Pages), as you can see from the project panel in Figure 2. I even generated simple data definition files for my Oracle database from within it. The result of the generation process included a set of source files for the EJBs and the JSPs to serve as the user interface for a simple banking application. The amount of application code for both the server and the user interface generated from this project file was quite impressive. The files themselves were organized into directories by project as well as by the client and server interfaces. The Java source files were well laid out and well documented and experienced developers should have no trouble working with the generated code. The project generation process was a snap, but the EJB-build process and server startup was a little more complex. Persistence provides a graphical interface for managing servers and applications, but the compilation process and server startup process relies on a set of script files. If you're going to have problems, this is where they'll occur. In the longer term I'd expect Persistence to provide some graphical tools for managing and building the generated source files, or they could merge the compilation interface into other leading IDEs.
The real power behind PowerTier 6 is the server engine itself. The server can be installed as a "regular" application server and can also be configured to work as an embedded application server (running inside your own code). Persistence claims to have some patented caching technology that allows PowerTier to handle heavy volumes of data with ease; Steve Eastin, director, product management at Persistence, considers the speedy performance of PowerTier to be one of its biggest assets.
PowerTier also provides connection pooling for the various databases it supports (including all the major players). Persistence supplies the JDBC drivers for the various databases and while it didn't appear to me that you could substitute your own drivers, Eastin assures me that you can use third-party JDBC drivers. There has been some discussion about this issue, however - and others relating to the database interfaces - on the developer forum on the Persistence Web site
Although I didn't perform any hands-on scalability tests with PowerTier 6, Persistence has some large customers (such as Instinet, InterShop and Shopnow.com) using the product for high-volume applications. According to Eastin, while the company has customers in many different markets, it has a strong following in the financial services, telco and dot-com verticals, and is so confident in the productivity of the PowerTier Object Builder and the runtime performance of the PowerTier Server that it's willing to help customers test out the technology firsthand. Eastin calls this strategy "PowerPilots" - essentially, prototypes of the customer's real application built with PowerTier.
Platforms and Pricing
Persistence delivers the new releases of PowerTier on Windows NT and Solaris first, then ports to HP-UX, AIX and Linux shortly after. The ability to run on multiple hardware platforms is a critical capability for any application server. As a customer you'll want the flexibility to swap out hardware if your performance needs exceed any particular platform. It's also a good idea to have some choices from a purchasing perspective as well. You're more likely to get a better deal on a high-end hardware server platform if you can choose from among several competing vendors. PowerTier is written primarily in Java (there's some C++ code under the hood), so it's portable, but Persistence still takes the product through a porting process to ensure product quality. (A licensee of the J2EE, they're in the process of completing the lengthy certification process.)
If you want to take a look at PowerTier without working with it directly, you can take the interactive tour, which includes a sample car auction application (see Figure 3).
The guided tour is a little bit too "sales-focused" for a developer, but the tutorial and user guide documentation are thorough enough to give you a good idea of the ins and outs of PowerTier 6. The next release of PowerTier will have a more seamless integration with Rose.
I was impressed with the overall quality of the product and the completeness of the server as regards scalability, reliability and performance. Based on my hands-on experience, I'd recommend that you take a look at PowerTier 6 for your next EJB project.