Informix to Web migration thru AJAX

One of the major features of Informix 4GL is its ability to create field validations in Forms and sequence information input through different field paths. This powerful feature –proper of the so-called fourth-generation languages– was particularly important for the Client-Server architectures prevalent in the 90’s; these architectures highly differentiated those languages from the previous legacy development environments, which used the "screen-submit" paradigm to work on "dumb terminals."

For new web applications based on thin clients –such as the ones required by Service-Oriented Architecture and Software-as-a-service models– a paradigm closer to screen-submit implementation is now more favorable.

As a result, the Informix 4GL Form feature, as in other Form-based execution environments, imposes significant constrains on the natural conversion of Informix code to new web development and execution environments.

Migrating or putting a text-based application on the web is in some ways an easier task when dealing with a traditional legacy system than with an Informix 4GL application, because no major input validations have been made by the legacy application,.

There are several alternatives to resolve this problem. The first potential approach might be to put the Informix application on the web browser using an Applet; however, this is not a Thin-Client implementation, such as the Java Virtual Machine ("JVM"), and a substantial part of the application logic would have to be downloaded and run into the Client itself.

The original version of ArtinSoft’s Informix to Java conversion solution generated Client-Server architectures using Swing Clients that could also be put on a browser as an Applet. The following figure describes that architecture:

Informix to ajax
Figure 1: Current approach

Evolution

Based on this idea –which requires substantial post-migration manual work to adjust the generated code to a multi-tier architecture– ArtinSoft has evolved a real Thin-Client, Web-Based solution for its Informix to Java conversion solution by using AJAX (Asynchronous JavaScript + XML) technologies as a sound alternative.
The solution allows Forms to be displayed as HTML documents in an Internet Browser while the migrated Java code executes on a Web Server. AJAX enables both the validation of fields and flexible input-fields sequencing efficiently and without waiting for entire pages to reload
AJAX is not a technology but a set of different technologies put together:

  • XHTML and CCS: standards-based presentation
  • Document Object Model: dynamic display and interaction
  • XML XSLT: data interchange and manipulation
  • XMLHttpRequest: asynchronous data retrieval
  • JavaScript: Putting everything together
Informix to ajax
Figure 2: Evolved architecture approach

In this figure, the migrated Java application is outside the Client machine: it could be either inside the same Web Container or on a different Java Virtual Machine and hardware, depending on the specific application load on the Web Server.

Architecture

This proposed architecture has many advantages when compared to previous solutions. These must be taken into consideration when evaluating each application.
Some example advantages:

  • Thin-Client: there is no need for any other application on the Client side other than an Internet browser.
  • Easy deployment: the solution needs to be configured only on the Server side; no updates or downloads in the Client would be required (as apposed to the complications inherent to Applets).
  • Although the Web Server load capacity could decrease (migrated applications hold more resources than a traditional Informix 4GL application), the solution offers integration with other existing web interfaces and programs. Depending on the application load demands, additional requirements in the architecture might be needed, such as:
    • Additional hardware (CPU and Memory).
    • Load balancing in different Web Servers.
    • Additional hardware using load balancing, for example, a specific number of Pentium 3Ghz Dual Core CPU with 3GB of memory.

Moving forward to J2EE

The solution proposed herein can be highly improved upon with some extra manual development. Ideally, going towards J2EE could result in further advantages such as the following:

  • Separation of business logic-related processes into EJB Session Beans using code analysis and slicing. EJBs will allow the reuse of business logic objects, such as the ones required by SOA.
  • Third-party J2EE technologies allow the encapsulation of Database related operations.
  • Integration with other existing company’s web interfaces and programs.

ArtinSoft has solutions, technology and methodologies to deliver these additional benefits wherever necessary.