Enhydra broadens ebiz options

The InfoWorld Test Center puts the open source Lutris Technologies Enhydra application server through its paces

Creating and deploying ebusiness applications that leverage open-source technologies can be a new but worthwhile experience for corporate developers. Linux isn't the only thing coming from the open-source community; there are business applications, development tools, databases, and more. You'll still need to purchase support for these products and orient your staff to a new way of thinking about software. But it is a cost-effective solution for corporate application frameworks that closely rival commercial software products.


TEXTBOX_HEAD: The Bottom Line

Enhydra 3.0 standard edition, beta 2

Business Case

Enhydra 3.0 offers an open-source alternative to full J2EE app servers. It lacks key J2EE services, but its components are perfect for many e-business apps. No run-time licenses are needed, reducing development and deployment costs.

Technology Case

Unlike J2EE, Enhydra 3.0 is a truly open solution: All the source code is available. The commercial release adds documentation, platform certification, and support. Otherwise, the commercial version is identical to the free open-source version.


  • Rich feature set
  • Seamless cross-platform support
  • Low cost
  • Thorough documentation
  • Strong XML support


  • Lacks J2EE middleware services (for example: object broker, messaging service, integrated database)


Commercial release, under 00; open-source release, free


Windows 95/98/2000, Windows NT, Solaris, Linux

Lutris Technologies, Santa Cruz, Calif.; (831) 471-9753


Lutris Technologies' Enhydra is already the No. 1 open-source application server and is also making a push into the commercial space. The company has provided developers with a rich set of tools that rivals competitors such as BEA's WebLogic and IBM's WebSphere. Enhydra's Version 3.0, standard edition gives developers a rich set of tools for server-based Java applications, including such facilities as databases, load balancing, DHTML, XML, and WML (Wireless Markup Language). The product comprises the Enhyrda Multiserver, Enhydra Director, a broad assortment of APIs and services, and Presentation, Session and Database Managers.

This version lacks the enterprise middleware coverage of Java 2 Enterprise Edition (J2EE), such as Enterprise JavaBeans and a CORBA object broker. However, if your applications don't need all the J2EE components, this server will drastically lower your development and deployment costs. The standard release of Enhydra is smaller and lighter than J2EE, more versatile in its deployment, and considerably less expensive: less than 00 (approximately; pricing was not confirmed at press time) for the commercial release, which includes documentation, platform certification, and support, or free for a downloadable version.

Enterprise and professional versions of Enhydra will be released later this year; the enterprise version, expected to be priced at less than ,000, will meet the needs of higher-end settings that require J2EE support. Until then, bear in mind that the commercial version may not include up-to-the-minute releases of its components (although they're always downloadable from www.enhydra.org (see Resources). The controlled, certified release, an approach pioneered by commercial Linux vendors, makes support and development assistance services possible.

I tested the second beta release of Enhydra 3.0 on a group of machines running Solaris 7, Windows 98, Windows 2000, and Red Hat Linux 6.2. Lutris automated most of the installation under Linux and Windows, with the Windows installer taking care of almost everything. I did have to manually configure one Windows-specific facility: Enhydra's Internet Information Server (IIS) interface. This well-documented process took only minutes.

Enhydra features a capable and flexible architecture that's very practical for commercial applications. When deployed on a Java-capable Web server such as Apache (with JServ) or Netscape/iPlanet Enterprise Server, developers can treat Enhydra like a big Java-class library. Server-side Java applications, triggered by user requests to the Web server, call into Enhydra classes through a server-side Java applet. This approach supports the full range of Enhydra features, but it doesn't scale well: The Enhydra classes and your Web server execute on the same host.

To achieve the scalability and reliability benefits of a multiserver deployment, Enhydra itself can run as a server. The Enhydra Multiserver uses HTTP, Java Remote Method Invocation, CGI, and Netscape/iPlanet Web Application Interface to communicate with applications.

One of the server's most enticing features is the Enhydra Director, which is sandwiched between the Web server (or other Java server application) and Enhydra Multiserver. Every time your application makes a call to Enhydra, the Director layer intercepts the request and transparently routes it to one of several instances of Multiserver. This elegant scheme equips every Enhydra application with load balancing and fault tolerance, with no effort required from your programmers.

Lutris also supplies a pair of Windows DLLs that connect IIS applications to Enhydra Director. This gives Windows Web developers an option that current J2EE servers do not provide: the ability to blend native Windows Web and enterprise services with server-side Java code. What's more, Enhydra lets you scale your application any way you choose. In a pinch, you can boost a Windows Enhydra cluster by adding Linux or Solaris servers. Your applications won't know the difference.

Enhydra's assortment of APIs and services is far too voluminous to detail here, so I'll forego the laundry list in favor of a few high points I encountered during my testing. For starters, Enhydra created an unusual alternative to server-side script embedding called Extensible Markup Language Compiler (XMLC). Dynamic Web page generation done the XMLC way starts with an ordinary HTML or XML document. The HTML/XML author inserts ID attributes where dynamically generated fields, such as data read from a database, will go. Independently, the Java developer creates classes that generate the dynamic content. Later, the developer runs the HTML/XML documents through Enhydra's command-line compiler. The compiler produces Java code that represents the dynamic elements of the HTML/XML document.

Because XMLC generates Java code, which is compiled only once, it's faster than interpreted script such as JavaScript or Perl. I found it immensely useful, but developers may balk at using anything but JSP (JavaServer Pages) and Java Servlets (both supported by Enhydra 3.0) for server-side code. Moreover, XMLC is not as widely taught or supported as JSP and Active Server Pages (ASP). Fortunately, Enhydra 3.0 includes JSP 1.1 and Java Servlets 2.2 services, and Enhydra Director lets you mix ASP and XMLC in the Windows environment. XMLC is more compelling when combined with these approaches.

Enhydra 3.0 also addresses a weakness of previous XMLC releases. When XMLC required that an HTML/XML document be compiled before use, you couldn't use fully-dynamic documents (HTML and XML documents that don't exist until the user runs the application). Version 3.0 supports dynamic recompilation, creating new XMLC classes as the HTML/XML template document changes.

Enhydra's overall support for XML is excellent. An assortment of tools and APIs provide multiple ways to generate, parse, and compile XML documents. The supplied WML document-type definition lets you generate validated content for narrowband wireless devices such as cell phones and pagers. Enhydra's XML support also complies with the World Wide Web Consortium's Document Object Model recommendation, making it easier to port the XML-handling portions of your Java code to non-Enhydra environments.

Meanwhile, Enhydra's Presentation, Session, and Database Managers optimize connections to users and databases. The Presentation Manager binds Java code to specific Web URLs; when a user requests an Enhydra dynamically generated page, Presentation Manager parses the URL and launches the appropriate Java code associated with it. Presentation Manager works with Session Manager to maintain and protect user-specific application state data (such as shopping cart contents). Bowing to current user concerns about cookies, the Session Manager can track the user's state even when the user disables the browser's cookie support.

The Database Manager uses Java Database Connectivity (JDBC) to link to external database servers. Lutris has certified Oracle, Microsoft SQL Server, and the open-source PostgreSQL database for the commercial release of Enhydra 3.0, but you can use any database supported by JDBC. Enhydra's Database Manager extends JDBC to support transactions and connection pooling, both of which are necessities in e-business applications. The Data Object Design Studio (DODS) tool simplifies Java's interaction with relational databases. As a design tool, DODS creates database tables and corresponding Java classes from a single schema created in a friendly GUI. If your database already exists, DODS will read its schema and generate Java code to manage it.

You know you've got a good tool when just handling it fires your imagination. Enhydra 3.0 had that effect on me; my mind is still buzzing and I'll be exploring Enhydra's riches long after this review is filed. The only essential elements Enhydra lacks are an object broker, messaging service, and integrated database (although Lutris plans to fill these gaps in the future). Overall, Lutris has created the perfect marriage of openness and commercial requirements for reliability, standards compliance, and support.

Learn more about this topic

  • Other recent server-side product reviews

This story, "Enhydra broadens ebiz options" was originally published by InfoWorld.