From: www.itworld.com
December 13, 2000 —
CREATING AND deploying e-business 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.
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 $200 (approximately; pricing was not confirmed at press time) for the
commercial release, which includees 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 $1,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
href="http://www.enhydra.org">www.enhydra.org). 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 mayy 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.
Tom Yager (tom_yager@infoworld.com) is a
senior analyst for the InfoWorld Test Center.
www.infoworld.com