November 1, 1999
http://www.informationweek.com/759/java.htm
By Richard Hoffman and Anthony Frey with Mike Lee
ava applications aren't just for breakfast anymore--you need them all day, every day. Java on the server has earned credibility. The language is stabilizing, development tools are maturing, and solid, enterprise-class application servers have arrived. We tested five leading Java application servers in our Washington Real-World Labs. These products can ensure your server-side Java code and components are scalable and fault-tolerant, and provide critical system-level services, such as failover, load balancing, and performance monitoring. Further, many of these products help enable stable and scalable connections to back-end data sources, and most will let you deploy distributed data and business logic objects that can be accessed in a consistent way from almost any operating system and platform.
We tested BEA Systems' WebLogic Server 4.0, InfoSpinner's ForeSite Application Server 3.0.2, Lutris Technologies' Enhydra Java/Extensible Markup Language Application Server 2.2, Secant Technologies' Secant Extreme Enterprise Server for Enterprise JavaBeans, and TSI Software's Novera 4.6. The Sun MicrosystemsıNetscape alliance was going to participate with the latest version of its Netscape Application Server, but declined at the last minute, stating that the vast majority of Netscape customers and their solutions are deployed on Solaris and other forms of Unix, not Windows NT, our test platform.
Most of the entrants are strong contenders. Capable, straightforward server management along with wide support for standards tells the final story, however, making our pick a tie between TSI's Novera and Secant's EES. Novera's excellent management capabilities were unmatched, and it has one-of-a-kind directory integration. The Secant server provides excellent delivery of enterprise services and strong management, and supports Enterprise JavaBeans and Java servlets. WebLogic has all the basics we were looking for, and a capable underlying architecture, but it's harder to configure and use.
ForeSite's and Enhydra's Java servlet environments have less to offer. Enhydra, however, shows potential as an open-source environment for servlets or for managing a Java presentation layer. Its home-brewed XML Compiler, an alternative to Java Server Pages for separating graphical and design elements from Java code for dynamic page generation, is powerful if a bit raw. ForeSite does a good job of encapsulating and integrating diverse data sources, but its documentation is opaque, its enterprise-level features are limited, and it doesn't handle Java servlets in a standard fashion. Neither product directly supports Enterprise JavaBeans. We can only recommend them if your final application simply requires a way to encapsulate existing data sources (ForeSite) or is heavy on presentation-layer elements (Enhydra), and doesn't need a fully managed distributed app.
Secant Extreme Enterprise Server
Secant's Corba and programming roots show in Extreme Enterprise Server for EJB, with its commitment to interoperability and open standards. The vendor has ensured that code generated by the product's bean-building tools will never be specifically bound to Secant's environment. As application servers become more of a commodity, Secant's approach could bear fruit; the vendor plans to compete on the basis of tools and metadata management, and sell Enterprise JavaBeans and other components built with its tools.
EES's management and deployment tools give it an edge over the other products, and its underlying architecture is even more robust than Novera's. The tools allow all aspects of the Enterprise JavaBeans servers, services, and clustering to be configured from the console (though servers can be managed from the command line as well). However, the Secant server doesn't quite match Novera's ease of management, primarily because of its lack of directory integration. A better deployment wizard would be nice, though EES allows a single point of change for multiple servers that support the same objects.
Installation was simple. We successfully configured the database connection pool, and it maintained data connections without a hitch. Our only difficulty came from using the 1.2 Java Virtual Machine; the included Inprise's VisiBroker 3.3 development tools support only 1.1.x Java Virtual Machines. Once Secant sent us an updated version of the VisiBroker support files, we were able to run our console application smoothly. Like WebLogic, EES supports only Oracle Call Interface drivers (Java Type 2). It also supports database connectivity out of the box to Microsoft SQL Server, IBM DB2, Informix, and Sybase databases.
EES doesn't yet completely support the Enterprise JavaBeans 1.1 specification, but it complies substantially and handles container-managed persistence for entity beans. The application server also provides tools to automate the presentation of database information as objects, on a comparable level with Novera. Secant also provides an API to register services from within Java applications, which allows services to be installed dynamically. This compares well with Novera's ability to deploy beans remotely, though Novera is easier to use.
EES substantially supports version 2.1 of the servlet spec and has some capacity for managing context. It can also do load balancing among multiple copies of the same servlet. But it does not yet handle session information for servlets when managing failover. If a servlet has session information and fails, that information is lost. Java Server Pages aren't supported, but that enhancement is in beta.
The next version of EES is expected to enable Java Remote Method Invocation over the Internet Inter-ORB Protocol. This is a simpler approach for some applications and will enhance compatibility with other Enterprise JavaBeans servers. The trade-off is the loss of some compatibility with pure Corba. But Secant says it is determined to support the Java 2 Enterprise Edition specification fully, and is committed to licensing the spec from Sun.
EES can integrate with Rational Software Corp.'s Rational Rose via an add-on, Extreme Link. With it, developers can model Enterprise JavaBeans and containers in Rational Rose and then automatically generate the complete set of EJB bindings, Corba Interface Definition Language, and other components. Secant's server is one of the best products we tested, and if the vendor's forward-looking perspective and excellent range of tech-support offerings had been included as formal test criteria, it might have edged out Novera.
Extreme Enterprise Server for Enterprise JavaBeans is $2,599 per developer deployment licenses on a per-CPU basis for an unrestricted number of users.
TSI Software Novera 4.6
TSI Software's Novera knows Java like no other product we've seen. Novera's Enterprise JavaBeans support, directory integration, management, and database connection pooling give it an elegance matched only by Java itself.
Novera has the most complete support for Enterprise JavaBeans 1.1, and it handles session beans and entity beans with container-managed persistence. Integration modules are available for use in conjunction with Allaire's Cold Fusion, IBM's WebSphere and MQSeries for messaging, and Netscape's Application Server. Simple Network Management Protocol support is also available.
The Java graphical user interface console, with its nice use of the Java Swing interface, felt poky compared with native Windows applications, but was still usable on our 400-MHz Pentium II. The sluggishness is most likely the result of Novera pulling all its configuration information out of the onboard Lightweight Directory Access Protocol server.
We used the included University of Michigan LDAP server for directory services, though Novera has native support for LDAP servers from IBM, Netscape, and Sun (on Solaris), and provides sufficient documentation for inclusion in your own LDAP server.
Novera's Management Console uses the directory effectively. It allows control over the servers across multiple servers and domains. Its granularity could be improved in places, but it's still ahead of the competition. One weakness: If you stop a server from the console, you will be disconnected and must restart it manually on the server's host machine--inconvenient if you're using the management console remotely. The console can handle configuration management, event reporting, and performance monitoring, and it can be integrated with management platforms from OpenVision, Tivoli, and others via the SNMP module to manage Web apps. Access control can be managed in a granular fashion per container and object. A deployment wizard is available to automate deployment of objects to multiple servers.
Novera's Component Designer is remarkably intuitive to use and can put a lightweight Java wrapper around almost anything. Novera allowed us to take a Jar (Java archive) file and automatically deploy it to any other running server, letting us distribute application revisions with little thought given to installation procedures or dependencies. This is very difficult, if not impossible, in environments that require native operating-system executables. But the ability to use the Java Virtual Machine's classloader on a remote server to load Jar files from a central repository would be even better.
Server-side load balancing is flexible and capable, with first-available, random, and least-used algorithms at your service out of the box, along with exposed load-balancing interfaces to let you come up with your own algorithms for special needs. Novera supports object bind-time load balancing. There is no native capacity for transaction rollback, unless you use a third-party transaction processor.
Even though Novera functions well as a complete Java application server, TSI says one of Novera's core strengths is the integration capabilities it offers between back-end data sources and other app servers. Novera supports integration with Allaire's Cold Fusion, IBM's WebSphere Netscape Application Server, and SilverStream Software's SilverStream. TSI says it intends to keep integrating Novera with other application servers and possibly to produce E-commerce components. If TSI can avoid diluting the best-of-breed status of its application server, it may be able to deploy Novera into a variety of E-commerce applications.
Novera's biggest weakness is its lack of direct support for standard Java servlets. TSI says the Web server should handle the servlets. That may be partially true, but there's plenty of room for an enterprise Java application server to enhance servlet deployment via session management, load balancing, and failover. Novera handles servlets to an extent, but only if you implement them by extending Novera's epic.servlets.EpicServlet class instead of the standard Java servlet class. Interestingly, though we did not test this feature, Novera can handle standard servlets if it is used in conjunction with IBM WebSphere, through the WebSphere integration package. Aside from that flaw, Novera, priced starting at $30,000, proved to be an exemplary Java application server.
Novera was recently acquired by TSI Software, maker of the enterprise application integration product Mercator. Although TSI says Novera will remain a separate product, integration with Mercator should improve its EAI capabilities.
BEA Systems WebLogic Server 4.0
BEA Systems' WebLogic has a strong Java flavor, but you'll find yourself doing most of the grinding. A few hours with WebLogic's graphical user interface monitor made it clear that managing the server is like Sunday car shopping--no matter how hard you press your nose to the glass, you can't get in and drive.
Configuring and managing WebLogic must be done almost entirely by editing Java properties files. These files are text based and allow a great deal of control, but even minor changes, such as modifying an access-control list, require config file editing--which means the server must be stopped and restarted.
We were dismayed to discover that WebLogic's Java Database Connectivity drivers for Oracle are Type 2, and require Oracle Call Interface libraries to be installed. Secant's EES and InfoSpinner's ForeSite (via Open Database Connectivity) shared this limitation, whereas TSI's Novera deftly handled any Type 4 Java Database Connectivity we installed. WebLogic comes with Type 4 drivers for Informix and Microsoft SQL Server databases, and should support any standard third-party JDBC driver, such as IBM's for DB2.
BEA's overall architecture and functionality are strong. WebLogic supports version 2.1 of the servlet spec, can serve 1.0-compliant Java Server Pages and has implemented the full Enterprise JavaBeans 1.0 spec, plus elements of the 1.1 spec such as container-managed persistence for entity beans, which some other products lack. BEA says it expects WebLogic to be fully compliant with EJB 1.1 by year's end.
WebLogic supports a flexible server-clustering model, provides a high level of security, and can use various naming services, such as LDAP (Sun, Netscape, and others) and Unix NIS. We successfully configured database connection pooling with four to 10 linkups, and ran code under the installed 1.1.7B Java Virtual Machine, or a separately installed 1.2.2 JVM.
Unfortunately, WebLogic's administration is weak. It lacks an SNMP client and, though you can monitor a cluster of servers via a Web interface, you can't control anything from there. Reporting and performance measurement are also limited.
The Extensible Markup Language story is mixed. Servlets can consume or generate XML; an XML parser is included, and WebLogic can generate Document Object Model or custom objects. Amazingly, none of this built-in functionality is documented for use outside the server's internals. A documentation upgrade will fix this oversight soon.
We tested WebLogic primarily with its built-in HTTP server, but it supports any Netscape API Web server, such as Netscape Enterprise Server. It also supports Domino Go and Microsoft Internet Information Server, and it can make use of Apache's server and proxy capabilities.
As an all-Java application, WebLogic should function on any platform on which a Java Virtual Machine is available, but BEA has so far certified WebLogic for 1.1.7 and 1.1.8 Java Development Kits with Compaq True64, HP-UX, IBM AIX and AS/400, Microsoft Windows NT, and Sun Solaris. OS/390 and Linux will follow close behind. Certification for use with the 1.2.2 Java Development Kit is under way for Solaris and NT, the only two platforms for which that JDK is available. We found no problems during our testing while using 1.2.2 under NT.
WebLogic doesn't feature two-phase commit directly, though it makes use of Java Transaction Services for Enterprise JavaBeans and the Java Messaging Service engine. WebLogic supports data coordination/rollback/commit with distributed Enterprise JavaBeans objects only if they all share the same database connection. Clustering and load balancing or failover are fairly robust, with a balance of performance and fault-tolerance. Server-level load-balancing is done via DNS round-robin "spraying" or with a hardware-based solution.
Lower-level load balancing with Enterprise JavaBeans objects is flexible. It's possible to implement various kinds of load balancing for round-robin, weighted, and parameter-based cluster-aware objects, but it works only for stateless session beans. WebLogic doesn't replicate state for session beans, so you can't easily load-balance between instantiations of stateful beans. WebLogic trails Secant and Novera in providing tools for wrapping back-end data objects, such as beans. Tools to automate the process are in development.
WebLogic's support for an implementation of the Enterprise JavaBeans spec predates its competitors, and BEA's development teams are aware of the current status and modifications planned for the Java language and specs. WebLogic has solid internals and architecture, but it needs improved documentation and more advanced, intuitive administration, deployment, and performance-monitoring tools. WebLogic is a strong brew that could use a drop of cream to cut the bitter edge.
BEA WebLogic Server 4.0, WebLogic 4.0 is priced at $10,000 per CPU and $5,000 per CPU for clustering capability or $15,000 per CPU for clustering edition.
Lutris Enhydra Java XML 2.2
As the sole open-source entrant in our tests and the only one to separate the presentation and business-logic layers, Enhydra held great promise. But its immaturity as a result of its development path is evident.
Lutris says Enhydra originated before the Java servlet and Enterprise JavaBeans specs; as a result, it doesn't adhere strictly to either. It will run with the 1.2.2 Java Virtual Machine (and, as an all-Java product, under any operating system and platform with a Java Development Kit), but it doesn't fully support the JavaSoft Servlet 2.0 implementation. Lutris says support for the latest servlet version, 2.2, is imminent and that Enhydra includes almost all the features of that spec. But we couldn't run a generic servlet; instead, we had to use proprietary Lutris classes for HTTP request and response access.
Lutris describes one option for Enhydra-managed applications as a "super servlet" environment: An entire application can be implemented and managed as a single servlet. The Lutris Multiserver component flawlessly serves servlets directly to the network. Alternatively, Enhydra can be used in conjunction with any servlet-enabled Web server, such as Apache (JServ) or Netscape Enterprise Server.
Enhydra will let you maintain state via SessionData objects. We could fairly easily create and modify shopping carts and other state-keeping applications. However, Enhydra doesn't support Enterprise JavaBeans at all. Lutris recommends running Enhydra in conjunction with Bull Software's Open Source JoNAS for EJB functionality; while that combination might be all right for prototyping, it's not sufficient for large-scale enterprise use. Lutris is working on an Enterprise JavaBeans implementation but it isn't near completion.
Enhydra can separate an application's presentation layer from the business logic through a Lutris-designed technology called XMLC. This handy tool converts XML pages into Java classes that represent the page in the Document Object Model, and is a much more elegant solution than Java Server Pages for generating dynamic content. For enterprise use, however, we would rather see a working EJB container. Still, if you intend to use your Java application server to handle your presentation layer as well as to manage servlets, XMLC is worth exploring.
Enhydra's documentation also falls short--especially its tutorials and sample code. Lutris is working to remedy the problem. On the other hand, Enhydra is an open-source product, so you can add features yourself, an option no other package we tested offers. In keeping with Enhydra's open-source nature, improvements and new features come from real-world, grassroots requirements, which should make its evolution close to user needs.
If you are planning to investigate use of a Java application server or want a server you can modify in-house, Enhydra will work as long as you don't need robust Enterprise JavaBeans support. It lacks the polish and completeness of commercial products, but it's a promising start for a fairly powerful and sometimes very innovative option--and it won't cost you a dime.
InfoSpinner ForeSite 3.0.2
If some of the other products we tested could be likened to automatic espresso machines, InfoSpinner's ForeSite would be a hand-cranked coffee grinder. If all you need to do is grind a lot of different kinds of beans, ForeSite may be for you. But if you want to make something palatable, look elsewhere.
ForeSite barely met our test criteria. Although it may be well-suited to integrating host-based data systems into Java environments, it won't make your life much easier as an application server. It has some of the essential capabilities, but little in the way of mature tools to help develop, deploy, or manage enterprise Java deployments. Its HTML page development tool reflects a 3270 screen-based model. That perspective pulls a lot of weight in a host environment, but less so in the networking environment. It's also the only product we tested that has little cross-platform capability. Though it can integrate with a Web server running under Solaris, NT, HP-UX, or AIX (we used NES 4.0), the main ForeSite modules run under Windows exclusively.
ForeSite provides a variety of adequate system-level services, but it serves more as an integration tool between back-end data sources and Java apps than a full-fledged Java application server, especially taking manageability into account. As InfoSpinner states, "The ForeSite Application Server was designed from its inception to be an integration vehicle for otherwise nonintegrated enterprise systems."
The architecture is based on System Integration Modules, which can effectively encapsulate a wide variety of data sources, from host terminal-based VT, 3270 and 5250, to Component Object Model, ActiveX objects and application service provider Java classes and methods, to ODBC (though disappointingly, no native database drivers are supported), to products such as MQSeries and CICS. No Enterprise JavaBeans support is included. ForeSite installs the 1.1.6 Java Virtual Machine, but InfoSpinner says it should be able to support others, and the 1.2.2 JDK worked fine when we installed it.
A ForeSite module called the Dispatcher watches the HTTP port and, based on the URL requested, either passes it onto the Web server or does server-level load balancing by passing it to the least-used ForeSite server based on measured load. ForeSite does connection and database connection pooling and some caching as well.
But we were surprised that connection pooling is supported only if you use ODBC drivers. If you do any JDBC access from within a servlet, it is independent of the application server and nothing is pooled.
We tried to implement only servlet integration. ForeSite does not support a standard servlet environment. You cannot use standard JSDK sessions and, as with Novera, you must use vendor-specific classes to implement them. This is a side effect of ForeSite's method of caching, which is based on URLs. ForeSite does include an XML parser and it can produce composite XML documents.
All of ForeSite's documentation was on the CD, but it was neither especially complete nor easy to follow. In some instances it was terrible, and we found it nearly impossible to proceed with what was provided. As no-frills as ForeSite seems, it is absolutely not a tool for novices, and there's a significant learning curve--more involved than needed.
If you aren't comfortable mucking around in the guts of the system and hand-tooling Java code, ForeSite won't be any more appealing to you than WebLogic. ForeSite is fast, and it appears scalable, but it's a bare-bones product and, at $29,995 for version 3.0.2, it's a bit pricey.
Richard Hoffman is technology editor at Network Computing. He can be reached at rhoffman@nwc.com. Anthony Frey is president of Request/Response LLC, a consulting company specializing in enterprise network solutions. He can be reached at anthony@requestresponse.com.
Visit us at: http://www.informationweek.com
Hebrew Senior Life seeking Network Analyst in Dedham, MA
True Circuits seeking Mixed-Signal IC Layout Engineer in Los Altos, CA
BP seeking Desktop Strategy and Planning Manager in Houston, TX
ITT seeking Senior Staff Engineer, Systems in Fort Wayne, IN
Agilent Technologies seeking Marketing Manager in Melbourne, AU
For more great jobs, career-related news, features and services, please visit our Career Center.