Over the past year all the major database vendors and many of the classic client/server tools vendors have turned their attention to the application server market. The venerable database and tools vendor, Unify, is no exception. Unify has released a new version of its eWave Studio and eWave application servers into the fray. It considers itself an endorser of the J2EE platform, but is not yet an official licensee of the J2EE. I recently looked at this latest release with an eye on its Servlets and JSP capabilities.
Unify's Application Server Products
Unify offers four different products in their application server family: Unify eWave Studio, eWave ServletExec, eWave Commerce and eWave Engine. The eWave ServletExec product was obtained by Unify in its acquisition of New Atlanta Communications LLC in April of this year. eWave Studio and eWave ServletExec are designed for creating Servlets and JavaServer Pages applications. The eWave Engine and Commerce products are oriented toward the creation of EJB applications. Unify offers the eWave ServletExec as a separate product. In addition, it's bundled into the EJB application server, eWave Engine. Since the two server engines can be evaluated separately at this point, you can work with whichever engine best suits your purpose. If you're primarily interested in building Servlet and JSP applications, then eWave Studio and eWave ServletExec are all you need. Conversely, if you're looking to build EJB-based applications or applications that combine EJB technology with Servlets and JSPs, then eWave Engine is probably the better choice.
Installing and Configuring eWave Products
Both the eWave Engine and Studio can be downloaded as two installation kits with a combined size of over 120MB. This makes them unwieldy to download without a high-speed Internet connection.
eWave ServletExec comes in two flavors:
To download a trial version of any Unify product you'll need a license key that unlocks the software for the duration of the trial period. Unify sends the license keys for each product via e-mail. Unify has packaged a lot of technology into its various servers, and each one has enough features to be a complete topic in its own right. I chose to focus my attention on the eWave Studio and eWave ServletExec combination for several reasons.
- The "in-process" version works directly with a variety of popular Web servers (but not Apache).
- The "out-of-process" version supports Apache and provides some additional flexibility for stopping and starting the server exclusive of the Web server, and for plugging in alternative JVMs. (The ServletExec downloads are just over 2MB in size and much quicker to download.)
First, while Unify's eWave engine is positioned to compete with the larger enterprise players such as iPlanet, IBM, BEA and Oracle, Unify has not yet licensed the J2EE. Second, Servlets and JSPs are hot commodities at the moment, and customers are more likely to consider Servlet/JSP engines from vendors that have not yet fully committed to the J2EE. Furthermore, I liked the concept of the eWave Studio product and was excited about the chance to get my hands on it. After downloading the two product kits, I managed to get them installed after some initial fumbling. (I started off using the JDK 1.3 release, which caused some problems with Unify.) eWave Studio installs relatively quickly, but the ServletExec engine comes equipped with a lengthy installation and configuration guide. Integrating the engine with IIS, iPlanet WebServer or Apache is not a simple drag-and-drop process, but it's not rocket science either. As usual, I attempted to get everything installed without carefully reading through the directions. After running into the JDK 1.3 problem, I hopped onto the Unify news server and got all my configuration questions answered by scanning through some existing posts. All in all the installation went quite smoothly.
JavaServer Pages are a relatively simple and elegant solution to building dynamic, data-based Web applications. This doesn't necessarily mean that JSPs are simple to work with, especially if your application is somewhat complicated. After all, a hammer is a relatively simple tool, but it would be overly complex to try and build a house using just a hammer. I like to think of eWave Studio as a sort of toolbox for JSPs and Servlets. There's a bit of a learning curve, just as there would be with any sophisticated toolbox. However, given the fact that eWave Studio is built on the Servlet/JSP foundation, any investment you make in learning eWave is also an investment in the core technology itself. The core interface of eWave Studio is shown in Figure 1.
To get to the main eWave panel you'll be channeled through a wizard interface that sets up the basics of your site for you. This generation wizard covers a lot of ground, and I'd expect novice users to be confused by some of the parameters. From my experience you can change most of the settings after you've completed the interface. The best advice I can give you is to accept the defaults when you first launch eWave Studio. The upper left-hand corner of the development interface is a tabbed panel that allows you to switch among three separate views. The site panel displays a hierarchical layout of the various pages that are available within your site. You're free to manually create pages, but eWave Studio generates lots of content for you, and both types of pages appear within this list. This panel is ideal for moving around the various parts of your application.
I generated a number of forms from my Oracle8i database tables and was then able to drag and drop the resulting objects into different page flows from the site panel. If you wish to provide standard formatting for the various pages in your application, you can apply templates using the templates tabbed panel. The display palette just below the site panel shows all the media elements that have been defined as part of your application, including images and sound files. I could quickly add new directories of media files to the panel and then browse through these images in the viewer as shown in Figure 1. Adding the class pictures for my familiar NetU database was easy and painless. I dragged one of the class pictures onto a page and eWave Studio successfully copied the graphic to my site when I published the page later on.
The large panel in the middle of the studio interface is the page builder. It's a simple process to create Web pages by dragging and dropping elements onto the page development area. By default the component palette has 20 different elements that can be dropped onto a page (including common HTML elements such as tables, text and images). However, you can also access an extensive element library of code that can be added to the palette. I was able to locate an SMTPMailer element and quickly add it to my sample page. The Studio interface uses a paneled design, but I found it easy to hide sections I wasn't using and to expand sections as needed. (This is especially helpful when you're designing a JSP page visually.)
Adding Database Access
The real power of Servlets and JSPs is the ability to interact with data from your database. This is where the real fun begins with eWave Studio. Unify provides a DataForm wizard that walks you through the process of creating JSP pages that interact with your data. The deployment version of eWave Studio relies on ODBC and Microsoft's Data Objects as the data source for the wizard, but the deployed version of the pages uses JDBC. The ServletExec engine provides familiar scalability features such as connection pooling, and you're free to make use of native JDBC 2.0 drivers as you see fit. Within the DataForm wizard you can define connections and create SQL queries the output is displayed directly in the wizard as shown in Figure 2.
The DataForm wizard creates multiple pages from a single database query, including insert, update, delete, results lists and search panels. You can select fields on which to link detail pages, and each of the page types can display different fields from the query. The pages themselves can be edited in the layout panel (but the wizard doesn't support two-way editing). I was able to create pages for the UGRADS table (as shown in the layout panel in Figure 2) in no time at all. If you've installed the eWave ServletExec properly, you can switch from the layout to the preview view and see the results of your query interactively. This makes it easy to work with JSP pages without the overhead of having to completely deploy your application each time you want to test out a page.
SmartPages and Debugging
Unify provides two additional features with the eWave product line that impressed me. eWave's SmartPages lets you develop JSP pages that adapt to the browser at runtime. Unify packages JSP code within the page that adapts the output to Internet Explorer or Netscape Navigator. Although I didn't test this capability myself, it appears to work as advertised. This is a nice feature if you plan on deploying your applications to a wide audience with varying browsers and versions. Unify also provides a debugger version of the ServletExec engine, which makes it easier to solve problems before they're deployed into production.
Unify is a solid company with a good reputation, but it remains to be seen whether or not they can compete in the larger J2EE arena with eWave Engine. In the meantime, eWave Studio and ServletExec provide an excellent suite of tools for building Servlet and JSP applications and I'd encourage you to take a look at these tools for dynamic Web application development.
Jim Milbery is a software consultant with Kuromaku Partners LLC (www.kuromaku.com), based in Easton, Pennsylvania. He has over 16 years of experience in application development and relational databases. He can be contacted at: [email protected]