WebGENCAT Architecture Overview

Eloquent Systems Inc.

March 2016

This document provides a very high level system overview of the WebGENCAT application and architecture. This architecture is quite complex because it is a high-level application generator. However, it can be broken down so it makes things a little easier to understand. This is not designed to be a technical document, rather, to simply explain some of the technologies utilized by WebGENCAT and how the many components of the system fit together. A Q&A also addresses some Eloquent Cloud issues.

Five-Tier System

The WebGENCAT application can be viewed as a five-tier application. The components of WebGENCAT include the following (in order from the presentation layer down to the database layer):

·  Browser Presentation (XML/ XSL / HTML / CSS / JavaScript from a Servlet)

·  Communication logic sitting in a servlet in Tomcat

·  JServer (Java Communication server – utilizing TCP/IP)

·  AServer (Application server for managing data and application business rules)

·  jBASE – a MultiValue Database to read and write from disk

Browser Presentation

The presentation layer of WebGENCAT is HTML, JavaScript, and CSS. Much of the JavaScript is stored within XSL stylesheets, as is much of the HTML code, and these are transformed by Xalan (Xalan is an XSLT processor for transforming XML documents into HTML) before the response is sent to the client.

Communication Logic

All requests made of the WebGENCAT system are made through a single point of entry, which is a servlet, running under Apache Tomcat. This servlet is known as the “Client Servlet”, and contains the communication logic to determine what to do with requests. TCP/IP is used to pass a request from the Client Servlet to the JServer, which is a standalone Java application running in a separate JVM, likely, but not necessarily, on the same physical machine that the Client Servlet is running on.

JServer

The JServer is responsible for a few things, notably, receiving requests from the Client Servlet and writing the messages, whatever that might be (query for information, request to write something to the database). There are two applications, the JServer & AServer, that are running separately that are both listening to and responding to the data within these “message queues”. Any items that are written out by the JServer to the queues are picked up by the AServer to perform any necessary operations or commands that are requested of it.

AServer

The AServer “listens” for messages written into the “queue”. If there are items to be read and processed, the AServer picks them up, and based on the content therein, decides what appropriate actions to take, and if necessary, writes a response back to the queue, where it can then be picked up by the JServer and passed back up the chain.

jBASE

A MultiValue database that stores data in fields, sub-fields, sub-sub-fields, separated by special characters forming records as long as 2GB. It reads and writes data and index information to the disk.

Technologies

This section will be a brief overview of the technologies used throughout the WebGENCAT architecture, and also describes which components, or tiers, utilize which technologies.

HTML, CSS, JavaScript

The presentation layer utilizes these technologies at the very front end of the presentation layer in order to display the application to the end user.

XML, XSL, Xalan

The client servlet, before sending a response to the end-user for presentation, executes an XSL transform which transforms all data that is as received and amalgamated into a final form that is to be sent to the end user.

Java Servlets, Tomcat

The Communication Logic layer that sits one level down from the presentation layer consists of an extensive set of Java logic in the form of a client servlet running within the Tomcat servlet container.

Java

The JServer, which is a communication layer between the Client Servlet and the AServer is simply a standalone Java Application / Server that communicates via TCP / IP to the Client Servlet and to the AServer.

AServer

The AServer component is written in language called RBasic provided by jBASE. This RBasic code contains extensive amounts of business logic, as well as all the code and logic necessary for querying, and manipulating the database.

JBase

jBASE runs the executables and dynamic link libraries that were created when the RBasic code for WebGENCAT that was compiled with the C compiler. It is used primarily to read and write to disk and to interpret the configuration records that form the business application. More information can be found at www.jbase.com.

Software Versions

For 2015 - 64 bit release

·  WebGENCAT: 6.1

·  Apache Tomcat: 6.0.44

·  Java: 1.6.0_24

·  JBase: 5.2.8


Q & A Section

1.  Which programming language is the platform written in? The server end of WebGENCAT Platform (generic catalog) is written in the jBASE multivalue version of RBasic and compiled as C++. The communication level is composed of Tomcat, Java servlets. The presentation level is HTML,CSS and JavaScript.

2.  When was the last revision of the code? We have an official release every year. The latest WebGENCAT Platform released in in 2015 v6.1 and is entirely 64bit. It contains Apache Tomcat 6.0.44, Java 1.6.0_24, and jBASE 5.2.8.

3.  What database is it using? If proprietary, what is it based upon? The WebGENCAT Platform uses jBASE. It is a multivalue relational database made popular by Temenos for their Banking software. It is now owned by Zumasys.

4.  Is WebGENCAT toolkit being used only to configure the system? The WebGENCAT toolkit was used to build all 4 of the applications. It is used by Eloquent and some customers to maintain, customize, and create new components.

5.  Is this a proper cloud-based solution (e.g. using Amazon Webservices etc) OR is the server relocated to a hosting provider that runs the server-side application? Eloquent has a HaaS agreement with Compunet who manage the colocation at Smartt. The same Eloquent software can easily run on any MS Windows server (physical or virtual). There is only one version. It is easily delivered via FTP. Each customer’s data is on their own files. One virtual server can hold several customers.

6.  Do we have design documentation for each of the software modules? Good quality documentation is lacking. Application Developers quickly learn the WebGENCAT Toolkit and rely on its online documentation.

Page 4 of 4