Sometimes, in the changing winds of competition and corporate strategy, good products don't get as favored or notable of a position as they deserve. In this case, Borland Enterprise Server: AppServer Edition is an underrated enterprise-level application server that distinguishes itself with excellent support of Java standards, good performance, and scalability, not to mention a tight fit with Borland's JBuilder application development environment.
The name, Enterprise Server, actually encompasses three editions: Web (essentially the Borland/Apache Web server), Visibroker (the CORBA distributed objects engine), and AppServer (a J2EE application server). The editions are complementary, if slightly confusing, as in fact the AppServer edition ships with Visibroker, and the Visibroker edition ships with the Web server. Customers, however, are free to mix and match as their developers see fit.
The Borland AppServer has the pedigree of being one of the first J2EE-1.3-compliant application servers on the market. Built largely on the VisiBroker (CORBA) technology acquired several years ago by Borland, the current version lists a string of state-of-the-art Java features: EJB 2.0 support, Servlet 2.3, Java Server Pages (JSP) 1.2, Java Message Service (JMS) 1.02, J2EE Connector Architecture (JCA), CMP 2.0, and RMI-over-IIOP -- among others. Of course, Borland is not alone in support of these Java standards, but we think most programmers will find AppServer helps to exploit Java features in ways that other application servers do not.
Breaking Up the Apps
As many have discovered, the difficulty with managing an application server is in the complexity of managing multiple applications. So many services are available that assigning, monitoring, and managing them all - for each application - can be a major task (if not a problem). AppServer addresses this in two ways: Application server partitioning and the Visual Management Hub.
Application server partitioning means that the Borland AppServer can create virtual instances of itself, each with its own set of properties and environment. In some cases, this capability can be used in lieu of additional hardware servers - a major cost savings. Perhaps more often than that though, we found the feature useful to control the modules of larger applications that required tailored services, such as transaction control (VisiTransact), failover, and session management.
A Great Console
Borland has put considerable effort into creating application server management tools consistent with ease of use in its application development products, which is to say, they are friendly. For example, how many application servers come with a clustering wizard and a performance tuning wizard? And these are not just fancy faces for tasks that would be easier done in a text file with a code editor. Like the main server console, called the Visual Management Hub, these GUI tools are well thought out and useful. Borland AppServer has a full complement of clustering, load balancing, and other multiple server capabilities that greatly benefit from the ease of configuration and management.
AppServer uses JDBC 2.0 for data access, and although it does a good job of this, some IS organizations may find the lack of optimized drivers for specific database management programs a drawback. Data handling, including connection pooling and caching, is not the product's strong suit. AppServer also supports a full list of security protocols (e.g., JSSE, JAAS, JCE, SSL, TLS, and X.509). Another important service is messaging (Java Message Service), which is provided by SonicMQ from Sonic Software.
Putting all this together - i.e., tuning a server has traditionally been the realm of high priests, metaphysics, and mumbo-jumbo; so it's more than interesting to see the Performance Tuning Wizard orchestrate services to get an optimized server. It doesn't cover everything (like session-related services) but it's more than a step in the right direction. In general, Borland AppServer is among the best performing application servers we have tested.
Web Services Ahead
Version 5.1 of Borland AppServer is much more alert to integrating Web services than previous versions, but it's caught in somewhat of a technology bind as it must juggle the nascent (and often changing) position of Sun on Web services, the work being done by Apache on Axis (the SOAP server), and the competitive pressure of Microsoft .NET. This probably accounts for some of the loose ends in making all the elements of Web services play together when using AppServer and JBuilder. We should also mention that Borland is doing a tap dance around CORBA, which is rapidly losing ground to Web services in the distributed apps arena. CORBA is deeply entwined in the AppServer, and at times developers may find it at cross-purposes.
The application server market is thinning but still crowded and competitive. Borland Enterprise Server AppServer may not have all the bells and whistles of the big names, like IBM WebSphere or BEA Web Objects, but it continues to hold position based on its fit with Borland's top-flight JBuilder development environment and because of its suitability for heavy-duty enterprise application deployment.
Pros: Tight integration with Borland JBuilder (Borland shops should obviously consider AppServer first); easily scalable and tunable
Cons: Relatively weak data handling features; Web services support functionality needs maturing