Intelligent Environment's Amazon 2.5

With every societal revolution, "transitional assistance" opportunities blossom. Wherever people have a legacy product, groups will form providing the service of bridging the old-model product into the new world. So passed the industrial revolution, and with the growth of the World-Wide Web, the information revolution. Proprietary accesses to proprietary databases are becoming passé; truly portable access to databases has become de rigeur. Data warehousing has compounded the issue; common interfaces to variant databases have become a necessity for corporate survival.

From this environment of incompatible standards has sprung the field of active Web database interfaces. Java, CGI, Netscape's LiveWire, Microsoft's Active Server Pages and Allaire's Cold Fusion all were created to fill a gaping void -- getting data from databases to the user. The general paradigm is fairly common by now -- a server-side application executes, communicates with a database and prepares dynamic HTML pages for the browser. A server-side Java program or CGI script may generate the entire page dynamically, while plug-in components like LiveWire, Active Server Pages and Cold Fusion may process HTML templates, replacing specific tags with database values. To this latter group, Intelligent Environment, Burlington, Mass., has added the Amazon system.

Amazon employs IRL, which produces a sequence of procedures and operations connected by "and" and "or" operations. Some shops' methodologies may not map well with IRL.


The Amazon product is a "Web development tool that connects your Web server to your corporate information systems." Further, it will connect via an entire alphanumeric soup of database and communications protocols from 3270 emulation to VSAM and back again. In this sense, it is a bridge from older database environments (in particular, ones which would not currently be available through ODBC or similar channels) into the "new Web world." It is a straightforward product, one that works and works well within its domain. However, its programming model, although conceptually simple, some may find it to be operationally tedious, interfering and restraining the process of programming as much as it simplifies it.

Functionally, Amazon allows you to create Web sites with back-end executable components. The back end works via a CGI task (or NSAPI/ISAPI or equivalent in-task component task) communicating with your page-specific programs. Instead of using C++, Java, Perl or any other of the current roster of applicative languages, your page-specific programs are written in an Intelligent Rules Language to facilitate the rapid development of applications. This IRL has its own advantages and disadvantages, as we shall see.

As a whole, the Windows NT version of Amazon is moderately well-integrated into the NT environment. However, within NT, the product could still use a minor amount of tuning. Installation of this product is reasonably simple. When the CD-ROM is inserted, it automatically executes ("plays") a setup shell, a behavior that is becoming expected under NT and Windows 95. This shell allows you to install any of the contained products. Unfortunately, I needed to reenter my name and registration key for each product -- an overall shell remembering the key would have been appreciated! Later, the installer requested if I wished my Web server's default tree to be re-pointed to the c:/amazon directory. I declined, as I have a currently active Web environment.

Amazon 2.5


Burlington, Mass.

617 272-9700


Unfortunately, without re-mapping my Web server's root, many of the internal paths were not functional. This was probably repairable with a little work, but I decided to be pure, clean and proper, by uninstalling and reinstalling the whole package. At this point, I found out there was no uninstall! A phone call to tech support, and I was clean. Delete a tree, run re-edit, muck around with the Internet Service Manager to clean up its virtual directory map list, and I'm done. As a side note, the next install went quite cleanly, and with my server's root reset to C:/amazon, everything worked nicely.

The product functioned quite well. It did what I wanted, when I wanted, without complaint or hesitation. It contrasted with Microsoft's Visual J++ (Visual Studio), the product I am currently spending most of my professional life with and which seems to delight in crashing. An upper screen serves as master screen for the current project. It displays the set of modules and libraries associated with the project. Amazon can provide a large set of libraries and workbenches, covering such topics as named pipes, SQL and ODBC database access, sockets, interprocess communications and 3270-style processing. From the primary window, you can also display lists of all available functions, procedures (IRL scripts) and data (database record structures).


The heart of Amazon is their Intelligent Rules Language·(IRL). The IRL concept (and the program creation process) is structured in classic principles of top-down design. A procedure is a sequence of operations logically (in the AND/OR sense) combined to produce a result. Procedures contain subprocedures, further defining the process until primitive operations are attained. The screen shot accompanying this review shows a Procedure Window from one of Amazon's sample applications. The left window presents a tree diagram of the program's structure. As shown, the procedure "On Line Shopping Application" is composed of four operations, "Initialize Variables" through "Processing for shopping application." "Processing for shopping application" has been opened and is shown to be a sequence of nine statements. The first eight are user-defined procedures; the last is a system operation.

The IRL language does not contain normal programming constructs (conditionals, loops). If your programming shop is highly structured and uses exclusively top-down flow-free design methodologies such as Jackson System Design/Jackson Structured Programming (JSD/JSP), this model may fit very well with your needs. It may very well allow you to avoid the bottom levels of programming, namely, converting structure diagrams into applicative language (for example, C++, Java) code. However, unless you are using a methodology that strictly maps onto the IRL model, you will find IRL to be an encumbrance.

Some shops will have difficulty with program structure as required by IRL. It is a sequence of procedures and operations, connected by "and" and "or" operations. What you encounter is, in fact, an infinite loop. To a programmer used to normal applicative programming models, IRL may prove difficult. To a programmer used to sequences and flow of operations across data, IRL is counterintuitive.

IRL doesn't sequence. It "ANDs" operations together. It doesn't have traditional selection operations (IF, CASE). Looping is also highly restricted. For example, an IF is encoded as

Test is the product valid
and add to the product set
or produce an error message

Basically, the language eliminates forty-plus years of development in language design in favor of a return to programmable logic. While I agree that applicative languages have gaping holes when dealing with parallel data models (for example, databases), IRL swings the pendulum too far in the other direction. By masking the concepts within mind-blurring syntax, the language instead leaves the programmer open to a wider variety of mistakes. By hiding the structure of subprocesses into nested environments, Amazon prevents the developer from directly seeing intermodule interactions, ones that might be obviously visible in a more traditional development environment.


As a Web publishing system, however, Amazon is as about as straightforward as it gets. HTML templates can be written using any editor; to make them function with Amazon, tags are added to the code. Within these sections, additional operations allow table construction, data/database accessing, and so on.

The approach of split template/back-end design contrasts with the server side processing models created by Microsoft and Netscape. In each of these (Active Server Pages and LiveWire, respectively), the HTML template directly contains JavaScript or VBScript (Visual Basic) code. (Note also that Microsoft allows additional language support, such as Perl.) A template is "executed" to produce final code; the page itself contains traditional loops and conditionals; tagged elements can refer directly to data/database elements and program elements can generate final HTML code. From a theoretical standpoint, neither can be viewed as directly superior. Some may prefer the intermingling of HTML and program code as it preserves the locality, while others may prefer the separation as it offers the potential for greater performance and code reusability. However, from a purely operational standpoint, Amazon's approach does not offer anything that is directly superior to its competition.

On the whole, I have to give Amazon a mixed review. Functionally, it works. It covers a wide range of operations and an equally wide range of data connectivity schemata. If you have a large collection of legacy data, if you have mainframe applications which you want to "Webify," Amazon will certainly do the trick. [Ed. Note: Amazon marketing data positions the product mainly for this purpose.] For this -- especially, if you are a believer in JSD/JSP or similar development models -- I would recommend it. Likewise, if you need any of the vast set of libraries or workbenches offered, Amazon may prove to be a very cost-effective solution. However, if you are looking to develop new databases, new applications, and new sites, I would recommend sticking with approaches utilizing the server-side functionality of the new breed of Web servers. You may find that Netscape's LiveWire or Microsoft's Active Server Page models to be more than adequate for your needs.