ERROS - A Deeper look

www.erros.co.uk

If I told you about a Business Model and Application Creator application that was:

  • over ten years in the making
  • contained a database of less than 10 physical files
  • had a program object footprint of under 4mb 
  • used no query, SQL and yet delivered information to the user at lightning speeds 
  • transactional based (journalling being off is NOT an option) 
  • fully auditable 
  • web enabled 
  • flexible enough to handle all known business scenarios
  • able to provide bi-directional indexing natively
  • not a CASE tool
  • could store millions of sub data references
  • currently unique to the AS/400

would you be interested?

If you answer 'YES' to this question, you are probably as excited as I was when I first heard the fascinating facts leading up to the creation of ERROS, the Neural Database for the AS/400.

Regular readers will know that I have expressed my interest in ERROS before in these pages (see ERROS - A New Era?), previously concentrating on the theory behind the concept along with taking part in the creation of the sample "Video Shop" application over the Internet. But to get a feel of the power of ERROS it was necessary to take the short journey Northwards to meet the creator of ERROS, Rob Dixon.

Rob directs his operations from Boarstall Tower (built 1312), a unique and historic feature in a beautiful part of Buckinghamshire. Inside the tower is the nerve centre of ERROS, which as you can imagine, gives an air of the famous English eccentricity. The setting aside, ERROS is different but not eccentric - this is a real life system, created from a real life need, and developed on a real life midrange platform.

But before getting down to the workings of ERROS, Rob delivered a brief history of himself and his relationship with ERROS, which included the early days of the project using one of the first privately owned Sys/38's in the UK. The Sys/38 was running a very early version of CPF and was being housed in a converted pigsty. The outside still resembling a pigsty whilst the inside was, what I can only imagine as, the near dust free environment. The favoured locale for the hallowed Sys/38.

ERROS is very different from anything else I have seen on the AS/400 previously. The obvious differences are that it does not use a relational database, but rather a form of Neural Database. Readers of my previous article and Rob's own papers (see www.erros.co.uk) will recall that the design is similar to the way that the brain is understood to store and retrieve data.

The Neural Database contains the instructions that make up procedures and menus as well as the user data. The processing kernel uses the instructional and user data to process as applications.

This concept has the benefit of the core application requiring much less resource than a conventional application. The same programs and files that form the Kernel application and Neural Database are the only objects in use, and so eliminates paging and is a lot more friendly on the disk arms. There is no need to generate or add any additional programs (except to cater for perhaps a new routine or mathematical function). The use of encoded index keys throughout the database means that the data is unlikely to be corrupted by the use of SQL or DFU, and eliminates the need for Query type processing. Database updates would be almost impossible by standard programs unless API functions were to be created. 

Is this a good thing? Impossible to tell at present, but if all updates could be made via the application this is not a bad thing. Any updates outside of an application to fix a problem have never solved any application's root problem - only disguised the fact that it ever occurred. 

ERROS is transactional, a cry that is often heard in newsgroups requesting that vendor's applications should be. ERROS is secure - allowing very low level field and function security. ERROS is Web enabled.

And above all, more functional, less complex and inherently more flexible than any Business Modeler/Application Generator that can be conceived using the conventional relational database method.

A closer look at the concept and functionality of ERROS is necessary to appreciate the full quality of what is offered.

The example of the business model and application of ERROS as a working commercial system is STIPPLE. STIPPLE is the name given to an application used to catalogue attributes that pertain to Prints (not of the spool type), paintings and other fine and applied art objects, biography and history). I had not previously considered the numerous classification attributes which can be used to link a print to another print, a group of prints, an artist and his original painting, a plate maker and even a series of subsequent plate makers. This is a much more complex configuration than most of us ever have to deal with. When compared to the relationships that are used in our regular business model (let's say between Customer and Order, Order and Item) we generally require a lot less connections, and yet we still manage to make it extremely complex!

In the example of STIPPLE I saw, the data was accessed through a Workstation Gateway (WSG) interface that allowed the user to navigate through various requests, drilling down to get the data required. WSG is used in conjunction with a web-browser and WSG supports the HTML than can be passed to it. ERROS can generate the necessary HTML to retrieve pictorial images from another area of a system by way of a URL. The URL is specified within the database itself, and only stored once, however many times it is indexed. Therefore, dynamic HTML was being created from within the Neural database specifications and delivered to the user via the WSG.

The employment of the new AS/400 BLOB files being used for holding the data image was mentioned during the review of ERROS, and although a probable feature to be added, it did not detract from the fact that should an image need to be changed, it is only changed in the database and would automatically feed through to the WSG at the next request.

The demonstration of STIPPLE was very detailed, but what was instantly apparent was the ease and speed in which all the bi-directional connections within the database were invoked when dealing with something as complex as fine art classification.

Next, we took a look at ERROS being used to create a simple Order Entry application. The aim was to be able to enter an Order for a Customer that had Order Lines containing Items. When an Item was used in an Order Line, the Available Quantity should decrease and the Allocated Quantity should increase by the Quantity Ordered for said Item.

This was completed in a matter of minutes using ERROS and performed as stated above, the mathematics working as expected for allocations, available and order total (displayed in the screen footer) quantities. No new AS/400 objects of any sort were created! This example was used using a standard PC5250 interface however, I understand that it would have worked over the Internet without change.

The connections were no where near as complex as STIPPLE, but the same quality of processing was achieved.

Features included with the order entry display included the ability to page left and right through the various "virtual" columns associated in the Order and Stock views. This is a standard feature handled by the kernel process, that also demonstrated how column widths could be changed within ERROS on the fly at field level, giving many custom possibilities.

Space and time constraints prevent a full study of all the features of ERROS, and I could not do the product justice. However, I ask you to think about what essentials are made available with ERROS:

  • An application design concept that stores and utilises business logic in and from the single database 
  • Bi-directional connections that can be specified between all user data elements 
  • A business modeler that removes most of the common design and build complexity 
  • Maintainable applications, all with standardised functions 
  • All data immediately indexed and available with no logical files

Leaving the demonstration a colleague and I, discussed what we had seen and we were in total agreement that in the right hands and with a small amount of additional development, traditional business applications could be easily addressed using ERROS. We saw that the flexibility of connections within the database presents a major step away from relational database mentality. The change to adopting a Neural database is a big step - but one which offers numerous rewards. But as always, no one likes change, and a hard job of convincing decision makers lies ahead. ERROS does not claim to solve all the problems of business system design - but it does help make solutions easier to arrive at.

The following day, I received a discussion paper on the Universal Business Model and the Developer Consortium. The Universal Business Model revolves around development using ERROS as a catalyst which, when combined with the Developer Consortium, brings the possibility of industry standard applications and/or modules being developed for the AS/400 at roughly the same price as PC software.

Should the two concepts ever become a reality it would shake the industry at the roots, but without killing it. Essentially it removes the need for inherently complex systems, and makes way for faster development with easier maintenance. The excellent controls and audits makes way for applications and data that can be controlled and trusted. My own experience of database and application audits has historically meant that failures are ignored or avoided, because either the cause cannot be found or no one knows where to look!

The Universal Business Model concept even starts to go beyond Open Source, but that is another story!

Next month we will look more closely at the Universal Business Model and how it could be used by a Developer Consortium.


The product ERROS is created and owned by Erros PLC. More details on the history and concept of ERROS can be found on their website at www.erros.co.uk

See also:

ERROS A New Era?

ERROS The Open Business Model and Developer Consortium