Columns

Vision Jade - too complex for its own good?

The Java language's increasing acceptance in the enterprise has caused it to be used on the server- as well as the client-side of computing. This new breed of application servers takes advantage of Java's interoperability, distributability and ease of use in handling and forming components. Vision Jade 4.0, from Oakland, Calif.-based Vision Software Tools Inc., is an example of the rapidly emerging class of master suites that emphasize the "business logic" approach to rapid development and, perhaps more significantly, rapid reengineering.

Often, one can become too immersed in development to step back and analyze the breakdown of the code's process (not to be confused with the management process). Vision Jade proposes that, aside from data management and the user interface, more than 50% of an application's code and creation boils down to business logic. This intriguing buzzword constitutes the various control structures, data validation, math computations and other declarative rules that define the flow of data through an application.

The development paradigm behind Vision Jade is that an operation declared by a business rule is explicitly maintained in a high-level rules repository and data-flow model, rather than buried in a number of code modules. This "Repository" approach to development is often championed in software engineering textbooks, but is seldom used in the real world beyond source-code control systems and desktop database products, such as Access. In Vision Jade, the repository comprises data objects and business rules that can be reused among any number of in-progress projects. This logical execution is encapsulated within Java components and extended through the server side, rather than just translated into generic Java bytecode.

In a nutshell, the Jade approach to development is as follows: create or import a repository using database tables that will be accessed by an application; develop visual forms and business rules with a mind to the overall data flow of the application; and then deploy the application using the Business Logic Server.

As with most products in Vision Jade's general class, it is necessary to evaluate the strengths of both the server and the development platform provided by the package. Perhaps the first question to be asked is: "Why have an application server at all, let alone a 'business logic' server?" Most modern client/server applications are deployed within Web browsers and dependent upon server-side databases. This has influenced both Web and database server vendors to implement many of the functions handled by an application server. The battle echoes the long-running holy war of "middleware vs. two-tier" and the closely related "centralized vs. distributed" conflict. The inherent advantages and disadvantages of each approach change in magnitude with each particular environment.

Jade's Business Logic Server is built upon a Corba foundation and comes with its own administration utilities. It offers the standard features of most application (or Web/database) servers, including load balancing across multiple machines, security and session management, and "fail-over" recovery. Yet it is the "Business Logic" portion that distinguishes Jade from its peers. Once business rules are declared, integrated into the repository and compiled into Java client components, they are then executed on the server side as a sequence of logical commands. The server then has the ability to optimize these incoming rules and their associated transactions for maximum throughput.

Vision Jade exhibits an interesting perspective on the paradox of interoperability. When investing in Jade, for example, one makes a commitment not only to the business logic approach but also to the proprietary server interface. While this is par for the course with any application server, Jade's "proprietary" interface can be a series of visual rules rather than a droll API that takes months to learn. Moreover, because Jade handles most of the enterprise model's server functions, it is easy to switch among database, client and Web server platforms.

If Jade's advantages on the server side are dependent mostly on the versatility paradigm, its Business Studio may be what wins developers over in the end. Upon initial creation of the data repository from a remote SQL server, Jade automatically generates a form-entry screen for the data objects. A graphical, high-level view of the application as a whole is also generated, with easy point-and-click access to particular screens within this model. Defining and modifying the business rules behind any particular form object is made very intuitive through use of context menus, as well as the object hierarchy pane on the left side of the window. Rules are divided into five categories: attributes, relationships, constraints, actions and properties.

Jade is at its brightest when making significant implementation changes with just a few mouse clicks. Rules can be changed, and relationships and constraints altered, with a simple recompilation. Although there is no direct way of accessing the code within Jade, there are facilities whereby a third-party editor can be invoked from within the Business Studio. Automating the maintenance and revision process is extremely promising, as most of the cost of software development lies in these tasks.

Underlying Vision Jade's impressive operation -- and features that no other application server appears to possess -- is the question "Is Jade too complex for its own good?". If Jade's declarative approach and optimal performance are primary, why use a procedural, and relatively slower, language like Java on the server side? And if Java was chosen for its interoperability, why then is the entire server written from the ground up in Java so that it can be run on any Java-capable operating system?

It is difficult to assess the future of Vision Jade 4.0 in a world in which languages, OSs and database servers are all competing to manage and deploy client/server applications. There will be a learning curve associated with developing around business rules, but Jade's user interface makes this task far easier than learning a new API with nothing but user documentation to comb through. Moreover, Jade has saved firms unparalleled resources and time with its ability to recompile projects swiftly every time an additional rule, database element or object relationship is altered. This latter advantage is what may make the difference to developers looking for a more robust and easier path to long-term enterprise applications than what is offered by most major database suites.