Introduction
Revelation Software's OpenInsight database and development system consists of a modern, fully integrated suite of tools that enable today's application developers to create, deploy and maintain business critical database solutions for Windows environments. Whether they are single user standalone systems, multi-user server systems with hundreds of users, or even web solutions with thousands of users, OpenInsight provides one complete toolset that will enable your solutions to scale and grow with your business.
Developers can build solutions that will benefit their business and users equally for years to come. That is no pie in the sky statement either; there are still countless ARev (DOS-based-character systems) applications that Revelation clients wrote back in the mid 1980’s and 1990’s, now running on modern operating systems. Many of these solutions began as single-user standalone, or small department-level, applications, and they have grown into corporate-wide mission-critical systems.
This document has been written to summarize the main tools and features that make up this dynamic and powerful toolset. It is by no means comprehensive, as the toolset is being added to all of the time, but it does provide an overview of how you can expect to benefit from your investment in OpenInsight.
Revelation has over 2,000,000 users worldwide, in just about every industry and on every continent of the world. By investing in OpenInsight, you can be sure you’re making a sound investment in the future of your business.
OpenInsight 10.x Features
The OpenInsight application development suite is made up of a number of distinct modules that together provide Windows application developers with a single complete toolset, one that is able to be extended to other technologies as required. For ease of reading, this section will be divided into a number of topics that briefly summarize each module. OpenInsight 10 is now 64 bit.
Form Designer and Presentation Server
The OpenInsight Presentation Server is a core part of the OpenInsight Development suite. It hosts the OpenEngine virtual machine and provides Basic+ programs with an object based interface to create and manipulate Windows Desktop Applications. As well as providing the capability to create your own applications, the Presentation Server also provides the actual OpenInsight development environment itself, which comprises the IDE and its associated tools.
Every Windows based application requires data entry forms, collector windows, etc. The Forms Designer is king amongst the UI tools in OpenInsight and it provides a module where windows can be created with or without data associations. The controls panel provides controls that are both data and non data aware and it provides for most commonly used form controls, such as buttons, labels, edit lines, comboboxes, radio buttons, tab controls, image controls, etc.
In addition, the module includes tools for creating and managing form menus, the tab order for users tabbing through the forms controls and all of the features that you would expect for painting your windows.
The Forms Designer and OpenInsight IDE in OpenInsight v10 have been redesigned to match industry standard development suites such as Visual Studio.
OpenInsight for Web (O4W)
Along with its full complement of desktop tools, OpenInsight includes OpenInsight for Web (O4W), Revelation Software’s next generation of web database development tools. O4W is a rapid application development tool that lets you generate responsive forms, reports, and dashboards. Use our GUI drag-and-drop to lay out your forms and then test in both desktop and mobile browser mode, or use our full-function API to create the most sophisticated web pages.
Fully Web 2.0 compliant, the tool provides both developers and end-users with a largely parameter driven browser based development experience. This enables tabbed web forms to be created with data lookup (popup) windows, multi-page reporting and more.
OEngineServer
The Revelation Software OEngineServer is a java application designed to:
1. Listen (on a configurable tcp/ip port) for requests from various client applications;
2. Start up, manage, and terminate OpenEngines (OEngines) - the database engine for OpenInsight;
3. Route requests and responses from the clients to the OEngines
OpenEngine Common Gateway Interface v4 (OECGI4)
OECGI4.EXE is the OpenEngine Common Gateway Interface version 4. You utilize OECGI4.EXE as the connection to your OpenInsight application from a web server. Introduced in OpenInsight v10, OECGI4 offers improvements over OECGI3.EXE and OECGI2.EXE, including failover, load balancing, and greater security.
Repository Based Environment integrated with Git
OpenInsight is organized around a central repository that acts as a library of entities - individual or groups of application components. These entities can be easily reused within a single application or, through inheritance, they can be shared between multiple applications managed within the one OpenInsight development environment. An individual history can be maintained for each entity and this repository based approach enables team development capabilities to be maintained. Source code can be maintained through OpenInsight Git, an interface from OpenInsight to the Git source code management system. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. OpenInsight Git's philosophy is simple. It mirrors your OpenInsight source code, stored procedures, windows, messages, help, etc. as text files in Windows directories. From there, Git does the rest. Any change saved in an OpenInsight development tool such as the Editor++, the Form Designer, BRW or O4W can automatically be pushed to the local Git repository, making the source management process much easier.
Data Connectors
OpenInsight features data connectors for several flavors of SQL, Couchbase, as well as MultiValue databases including D3, QM, Universe and Unidata.
The SQL Connector provides the ability to easily connect OpenInsight to a SQL database. With this connector, SQL tables are now seen as native tables to all components of OpenInsight including forms, reports, popups and stored procedures. Use your existing knowledge of OpenInsight development tools, like the O4W web development toolkit, to build applications based on SQL database connections.
Our MultiValue Connectors for Universe, Unidata, D3, and QM have been combined into a single code set which we have named MVBFS (Multivalue Base Filing System). This base filing system will support rti_readu, rti_writeu, and rti_writerelease functions to allow developers to interact with multivalue servers in a more traditional multivalue style.
OpenInsight v10 introduces a Cloud Based Filing System (CBFS) which will allow the OpenInsight toolset to operate on data stored in Couchbase which is one of several cloud databases. A cloud database is an internet accessible NoSQL database key/value store. A key/value store is one which returns an entire document in response to a request for a key. The most popular vendors structure their documents as marked up text. OpenInsight's native data storage is a key/value store which stores data as marked up text, and thus OpenInsight is a natural fit as a toolset for working with these databases. The CBFS connector will translate the OpenInsight markup scheme to the markup scheme of Couchbase which is JSON.
Report Writing Tools
Getting data into your database is one thing, but any good application requires both pre-defined reports and the ability for power users to create their own custom reports. OpenInsight features a number of built in reporting tools to meet both developer and user requirements. These include:
Report Builder – An easy to use fully featured column based report writing tool with a report generation wizard for power users. As well as the ability to select fonts, set headers and footers and define sort orders, the report builder includes functionality to enable single or multiple select statements to be created to filter reports on a fixed basis or based on a user defined basis.
Banded Report Writer (BRW) – A tool similar to the standard Report Writer, but with the ability to band data. The BRW is a tool used for creating and editing powerful and easy-to-use banded reports with a user interface that is compatible with Access and Crystal models.
OIPI – Enables developers to create formatted reports where (usually) single record information is required. For example, a contact record. OIPI supports polygons, graphics and tables.
All of the reports are rendered in OpenInsight’s built in report viewer which features thumbnails, print preview, saving to multiple file formats (including .csv, .pdf and html). There is also a facility to find and select text within a report and more.
Management Console
The OpenInsight Management Console is a browser-based database management tool for system administrators. It utilizes an embedded web server included with the OpenInsight OEngineServer to allow system administrators to monitor and maintain the performance of an OpenInsight database system, either via an intranet or Internet connection.
Database Tool Panel
The Database Tool Panel brings together a number of tools for managing your database, data dictionaries and indexes. It also enables data tables to be added, attached, removed, deleted and provides MFS (Modifiable Filing System) control.
User and Policy Management
The OpenInsight Authentication Module (OAM) builds upon the legacy OpenInsight security processes and provides additional enhanced industry standard security processes. OpenInsight v10 by default utilizes this new enhanced login security policy. System administrators can choose to disable enhanced login security policy and retain legacy login processing instead.
The module provides support for login policies including locking out of users after a definable number of unsuccessful attempts, password construction requirements, etc. Sensitive data for policy and user information is stored in AES encrypted records. In addition, the OAM records ("journals") successful and unsuccessful login attempts, changes to policies and changes to user information.
Should the network infrastructure support it, OpenInsight also allows Single Sign-On (SSO) as an alternative authentication process.
Internationalization
While the toolset is largely developed in the USA, along with developers in the UK, OpenInsight applications are used worldwide. For this reason, OpenInsight is fully UTF8 compliant and it contains a language configuration utility and Form Language Configuration. The later enables forms to be created in the native language, but then the screen prompt text to be changed based on the users local language defined in the operating system.
Environment Settings
Most system wide, and many per-user and per-application, settings are configurable via the “Environment Settings” module. The module is divided into six key areas that include ‘General’ which enables default directories to be set, localization options, debugger settings, date and time formats, and more. There is also a tab for Index and Report default settings and the ability to set security at the report or column level. If a user does not have sufficient clearance, secure data will not appear in reports, etc. Finally, the module contains default settings for windows, including background colors (or gradients) for windows and color indicators for edit table cells with focus.
Index Management
OpenInsight features four types of indices, including Btree, Bitmap, Cross Reference and Relational. Indices are automatically updated, but this module provides for indices to be created, listed, removed and rebuilt as required.
Data Table Designer
OpenInsight’s native Linear Hash data has a highly flexible delimited data structure. Furthermore, it is fully optimized for today’s business applications and it is ultimately suited for use over distributed networks and the world wide web. Requiring fewer disk reads, fewer data tables to be joined and refined data requests, your system is sure to run as fast as possible.
This database forms the heart of your business application and the Table Designer provides you with tools to create standard data columns, calculated columns (data that is created on the fly using calculations, small programs, or data that is pulled in from another table using an XLate). In addition the tool supports Group columns.
The module enables column attributes to be set. These attributes include data type information, dictionary level data validation (input and output), display characteristics and a description of the column’s use.
Windows User Interface Tools
To support the data entry and other application windows, the application requires Context Menus, Message Boxes, OLE Controls, Quick Help Messages and Popups. It is the Windows UI Tools that enables all of these controls to be created and maintained.
As with the Forms Designer, the Windows User Interface Tools includes a test run facility that enables you to test the entity that you are working on, without having to take time to compile, close out of the designer and launch the application. It is therefore extremely quick and easy to make one small change and test it before enhancing further.
Entity-Specific Editors
OpenInsight’s IDE supports editors for a variety of different entities, including Stored Procedures, Stored Procedure Inserts, and Records.
One of the main functions of the Stored Procedure Editor is to provide developers with a central point for the creation and maintenance of the applications business logic. Using the editor, programming code can be written, debugged and compiled from one central resource. The interface enables multiple programs to be worked on at the same time and for record information to be monitored. In addition, it enables the developer to search their code and to also maintain a list of favorites. The entity editors are tightly integrated with Git.
Basic + Programming Language
OpenInsight uses a rich and powerful BASIC+ programming language. This high-level 4GL is compatible with most BASIC dialects and it was designed and created solely for database management and application definition, and especially for the event-driven architecture of OpenInsight.
Debugger
Providing the ability to create code is all well and good, but even the most skilled and diligent programmer needs help debugging their code from time to time. OpenInsight’s debugger is a powerful tool that enables developers to step into, over and through their code and watch how the system behaves as the code executes. The debugger is made up of several windows that display the source code and where the system is within the code, local variables and their state as the code executes and global variables and their state at any given time.
Remote Deployment Kit Module
Once your application is complete you need to get it into your users hands for testing and use. The Remote Deployment Kit Module is the area where you can create your application deployment and also your application updates. Once deployed, changed application entities can be bundled into an installation file based on several criteria including changed since a date, by a specific person, etc.
Arev64
The Arev64 interface contained within OpenInsight v10 allows users and developers to run Advanced Revelation applications in a console application powered by OpenInsight.
The Arev64 interface supplements the GUI interface that is synonymous with OpenInsight. Both the GUI and Arev64 interfaces communicate with the Revelation OpenEngine (the "heart" of the database environment). Therefore both interfaces have access to all tables and programs stored in the database, and can interoperate. Developers can have the best of both worlds - OpenInsight and Advanced Revelation - with no middleware add-on costs.
Because Arev64 runs within OpenInsight your Advanced Revelation application is no longer dependent upon MS-DOS to operate. Developers and users of Arev64 can take advantage of Windows interoperability with ease.
Character to OpenInsight (CTO)
The CTO interface built into OpenInsight provides the ability to run traditional "green screen" character-based applications written in D3, U2, QM, R83, etc. Multivalue developers will be able to take a virtual ACCOUNT-SAVE of their existing application and restore the saved account as an application within OpenInsight. All files will be created in a specified location, all dictionaries will be converted as best as possible and all character-based programs will be able to be pre-compiled and run "as is" under a VT100 emulation.
The CTO interface supplements the GUI interface that is synonymous with OpenInsight. Both the GUI and CTO interfaces communicate with the Revelation OpenEngine (the "heart" of the database environment). Therefore both interfaces have access to all tables and programs stored in the database, and can interoperate. Developers can have the best of both worlds - GUI and CTO - with no middleware add-on costs.
TCL
The toolset’s Terminal Command Line (TCL) provides developers and users with a large array of command line facilities. Comprising of a simple command line and assistant, the tool can be used to execute specific routines and functions.
Featuring over 40 commands for developers, TCL also provides power users (subject to the tool being made available to them) with the ability to write and execute List statements which can be rendered in the report viewer, printed or viewed in a data grid for further manipulation. Results from the data grid can be exported to numerous file types or data can be simply copied to the clipboard and pasted into Excel, Word, Notepad, etc.
NetOI
Using the NetOI .NET assembly, you can code entirely in Visual Studio (or your development environment of choice), and develop a Windows application that uses OpenInsight as its data source. The NETOI assembly contains classes to communicate with the OpenInsight Engine Server (the Server class); open and communicate with files (the OIFile class); and manage records and selectlists (the OIRecord and OISelectList classes). Using NETOI, you can perform all the basic file I/O needed to use OpenInsight.
RevDotNet
RevDotNet functionality is contained in a series of APIs that OpenInsight programmers can call to create and manipulate .NET classes. These can be either visible classes (like Tree Controls, ListView Controls, etc.) or functional classes (like encryption classes, etc.). You must first establish which assemblies you wish to use, and then you may create objects from the classes in those assemblies. Once you've created an object, you can determine its methods, properties, events, etc., and invoke those methods, set and get those properties, register for those events, etc.
Universal Driver
Data integrity and system performance is key to the success of any database solution. Revelation Software provides the Universal Driver to maximize system performance by effectively reducing network traffic through refined requests between workstation and server. Furthermore, by policing each workstation request, the Universal Driver ensures data integrity by capturing any corrupted request at the server before it reaches the database.
In addition, the Universal Driver can be configured to screen the data from any workstation or users computer so that the potential for malicious intent through bypassing the user interface and going direct to the data is reduced to an absolute minimum. This is especially important for sensitive data that is exposed over wide area networks, on machines linked to the internet and through browser based solutions.
Latest Communication Technology - The Universal Driver 5.2 utilizes the latest communication libraries to provide robust, reliable service between the UD server and its clients.
64-bit - The Universal Driver 5.2 may only be installed on 64-bit versions of Windows Operating Systems (e.g. Server 2008, Server 2012 or Server 2016).
Secure communications option - If desired, the communications channel between the UD server and its clients can be SSL encrypted, preventing unauthorized interception of sensitive information.
Authenticated clients option - If desired, only explicitly authorized client software can connect to the UD server over a secure SSL channel.
Connection Retry - If the communication link between the client and server is temporarily lost, and then restored, the client will attempt to reconnect and resume normal operations.
VSS friendly - The UD 5.2 is VSS (Volume Snapshot Service) aware and can thus be backed up with minimal disruption to normal operations.
Controllable Resizing - The UD 5.2 (through the OpenInsight UD console) can have its "resizing thread" programmatically disabled and re-enabled. This allows high-volume installations to disable resizing during peak processing times, improving performance.
Customizable Write Flags - An optional registry setting can now be specified to control the flags that Windows uses when opening LK/OV files, allowing sites to customize the behavior for their individual needs.
Developer Focused Organization
Revelation Software, Inc., RevSoftUK and BrightIdeas New Zealand are all run by professional application developers, backed by the usual array of sales and administration staff. Being primarily run by developers (who develop systems for clients using OpenInsight) means that the OpenInsight Development Suite delivers the tools and technology that you as a developer need to build the systems that your end users (or colleagues) need. Furthermore, that technology is usually delivered on a just in time basis, and by that we mean the Revelation team watch for and research emerging technologies, but embrace and deliver those new features when the technology is sound, reliable and ready for you to exploit in your applications.
This philosophy means that you can concentrate on delivering leading solutions in your chosen market sectors in a timely manner, while Revelation take the lead on moving the technology forward in line with your needs.
However, each regular new release includes new features and enhancements that are also driven by OpenInsight developers around the world. Since the mid 1990’s Revelation Software has hosted discussion boards, hosted user groups and maintained dedicated technical areas on www.revelation.com – all designed to build the Revelation developer community and support a self-help culture. This then evolved into the OpenInsight WORKS program specifically designed to provide you with the tools, support and knowledge to ensure your success with the company’s tools.
As mentioned earlier, with over 2,000,000 users worldwide, in just about every industry and on every continent of the world, you can be sure that an investment in OpenInsight is an investment in the future of your business and, as a Revelation Value Added Reseller, the future of your clients.