Versata Business Logic Server -- 100% Java server focused on application development and "business rules"
May 28, 1999
It seems misleading to refer to the Versta's Logic Server as a single product. Although this application server does offer many of the same features found in other application servers on the market -- which we'll discuss later in this review -- it's really built for and best suited for integration in Versata's suite of development and deployment products. These products combine Java with "business rules" in the Versata Logic Server to provide a solid server-based development solution.
The complete suite, which includes the application server, data connectors, and an application development environment (Versata Studio) is built in 100% Java. That commitment to Java is shown by the standards supported by Versata: Enterprise JavaBeans, CORBA, and IIOP. A commitment to Java isn't unique in the application-server world by any stretch; it's the value added by Versata that makes the product unique.
Business Rules"Business rules" is Versata's way of differentiating the Versata Logic Server from other application servers, and it's a pretty decent twist. Basically, business rules are an attempt to reduce decisions to some basic logic, implemented via Java. For instance, you can apply business rules to relationships among objects (one object is designated as being the parent, another is the child), constraints on objects (for example, users having a specific role have the power to make changes to specific portions of the database), validations and derivations, and event-driven happenings. These rules are then defined as metadata on business objects in the Versata Studio and compiled into server-side components, which are then run by the Versata Logic Server.
You could deploy the Versata Business Logic Server on its own, as it compares well with other application servers on the market in capabilities and performance.
There are certainly "check-list" items in the application-server field, items that every app server should have. By and large the Versata Logic Server contains most of them, even though they may not have the most sophisticated implementation in the marketplace. For instance, the Versata Logic Server offers load balancing, where requests to a heavily used server are routed to a less-busy server in a pool of servers. However, the load-balancing controls in the Versata Logic Server aren't as advanced as found in other application servers. It uses a round-robin method of determining which application server receives the request. Basically, the administrator sets the maximum number of connections a server can handle, and when that number is met an incoming request is shunted off to another server in the pool. A more elegant loadbalancing implementation would include some sort of algorithm to ensure that a connection was directed to the server with a low workload rather than just a simple numerical limit.Similarly, the Versata Logic Server offers failover, which guards users against server-connection problems. If a Versata Logic Server goes down, the user is informed and is asked to restart their application while a connection is made to another pooled server. However, the Versata Logic Server does not support fault tolerance, which would continue the current session on a different pooled server if the primary server goes down.
The Versata Logic Server does support, however, a nice implementation of connection pooling, which allows all clients logging into a data source with the same ID to join one connection pool for that server. These clients must be created in the Versata Studio environment, however. We're not going to get into the specific mechanics of connection pooling (mechanics that are, by the way, very well explained in the Versata Logic Server documentation), since it's as much a development issue as it is a deployment issue.
Adding together all these capabilities however, translates into a very scaleable solution. If your Versata Logic Server is bogged down, it's easy enough to add another server or two and distribute the workload without making huge changes to your applications. The Versata Logic Server can also be integrated into a larger enterprise situation, thanks to support of Object Transaction Services, which allows distributing transaction processing via data sources managed by the likes of Tuxedo and Encina. In addition, the administration tools in the Versata Logic Server are excellent, which means that it's easy to set up a server pool and implement the features described so far.
In addition, the Versata Logic Server features several other performance-enhancing capabilities. On a basic level, the Versata Logic Server uses buffered updates and object caching, not saving data to the database until the user explicitly requests the changes. The Performance Monitor tracks and displays monitoring information, showing how much memory is available, how many user sessions are running, what load they're placing on the server, how many transactions have been performed by the server, and how many transactions have been aborted by the server. A single session can be monitored with the Tracing Monitor.
Versata Logic Server's security measures are adequate. Users are assigned to roles, and then roles are assigned privileges to objects. Privileges can be assigned on a system level, to specific objects, or to specific applications. You can extend the security capabilities via two security APIs.
The Versata Logic Server also connects to many different databases on the network, although you must explicitly set up anything other than a SQL connection. Supported are Microsoft Access and JDBC drivers (JDBC-ODBC bridge, Oracle ThinClient, Jconnect) that include support for SQL connections to Oracle 7.2, Sybase 11, Microsoft SQL Server 6.5, and Informix 7.3. You are pretty much stuck with the JDBC drivers supplied with the Versata Logic Server; if you wanted to use another JDBC driver, you would need to write your own wrapper class to implement it. In addition, the Versata Logic Server doesn't support any native drivers for these DBMSes; everything is done via a JDBC connection.
The default object model in the Versata Logic Server is CORBA, although it will support COM if you run the server using the Java Virtual Machine provided by Microsoft (which is not shipped as part of the Versata Logic Server; you'll need to download it from the Microsoft Web site or install it from a Microsoft-supplied CD-ROM). There is no simultaneous support of CORBA and COM.
Administration of the Versata Business Logic Server is performed through the BLS Console, a Java application that must be run from a server. It's not a browser-based application, although it can be run remotely from any machine that has the proper permissions to access the Versata Logic Server.
The Versata Logic Server is really too expensive to be deployed on its own as a standalone application server for anything smaller than the enterprise. However, a look at the Versata Software Web site shows that many enterprise-level sites are choosing it, and at that higher-end level, it's a worthwhile choice.
Pros: 7 Supports both CORBA and COM, 7 Very scaleable, 7 "Business logic" suited for the enterprise, 7 Good administration tools, 7 Advanced connection pooling, 7 Supports OTS, 7 Good monitoring tools
Cons: 7 Relies on JDBC connections, not native drivers, 7 Load balancing are failover are adequate, 7 No fault tolerance
New in v4.1: enhanced support for dynamic e-business applications with new support for HTML and expanded integration that includes links to applications relying on IBM CICS, DB2 Connect, and MQSeries environments.
New in v5.0:
Supports EJB and CORBA application server environments; has a new XML repository;
presentation and design adapters are now part of the core system to more seamlessly operate with other key elements found in a B2B commerce site; a variety of features to
help address and manage change in e-business environments have been added;