Revelation Software's OpenInsight application development environment consists of a 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 millions of users, OpenInsight provides one complete toolset that will enable your solutions to scale and grow with your business.
With the facility to work with numerous backend databases, or stay with OpenInsight’s own fast, flexible and relatively maintenance free database, OpenInsight can enable you to build a solution that will benefit your business and users equally for years to come. That is no pie crust statement either; there are still countless ARev (DOS-based-character systems) applications that Revelation clients wrote back in the mid 1980’s and 1990’snow running on modern operating systems. Many of these solutions began life 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 a solid overview of what you can expect to benefit from through your investment in OpenInsight.
Revelation has over 2,000,000 users world wide, in just about every industry and on every continent of the world. By investing in OpenInsight, you can be sure to be investing in the future of your business.
The OpenInsight application development suite is made up of a number of distinct modules that all integrate to provide Windows application developers with a single complete toolset and technologies that enable this to be extended to other technologies as required. For the ease of reading, this section will be divided into a number of headings that summarize each module.
Repository Based Environment
OpenInsight is based 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 (covered later) to be maintained.
The Database manager brings together a number of tools for managing your database, users, indexes and more. It also enables data tables to be attached, removed, deleted and for the data to be viewed in a tabular format or verified.
User Management – Users can be created and maintained with unique passwords and a choice of access and security levels. The users password can be set to never expire, expire on their next login or on a specific date.
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 – This is where most of the system wide settings are configured. 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. It also contains the ability to enable or disable source code control.
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 colours (or gradients) for windows and colour indicators for edit table cells with focus.
Index Management – OpenInsight features four types of index, being Btree, Bitmap, Cross Reference and Relational. Indexes are automatically updated, but this module provides for indexes to be created, listed and rebuilt as required.
Data Connectors – OpenInsight features data connectors for several flavors of SQL, as well as MultiValue databases including D3, mvBase, QM, Universe, Unidata. This connector technology is called the SQL Connector and the MultiValue Connector. Once the data connector is configured, OpenInsight will use it’s shadow dictionaries and thereby ensure integrity of the third party database, but the developer and user will see the data as native to the toolset.
Documentation – Documentation can be automatically generated for both menus and for Windows (data entry forms).
Data Table Builder
OpenInsight’s native Linear Hash data has a highly flexible delimited data structure. Furthermore, it is fully optimised for today’s business application 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 a fast as possible.
This database forms the heart of your business application and the Table Builder provides you with tools to create standard data columns, calculated columns (data that is created on the fly using calculations and or small programs or data that is pulled in from another table using an XLate). In addition the tool supports Group columns.
The module enables both Quickdex and Rightdex indexes to be added or removed and for 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.
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 also includes a very simple HTML publishing feature where the system will take a simple OpenInsight form and create standard html with links to the database. Whilst still useful for those developers wishing to make their data available in their own html pages, this tool has effectively been superseded by O4W.
User Interface Workspace
To support the data entry and other application windows, the application requires message windows, help windows and lookup lists (we call them popups in the Revelation world). It is the User Interface Workspace that enables all of these controls to be created and maintained, there is also a wizard for super easy creation of popups.
As with the Forms Designer and the Report Builder, the User Interface Workspace 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.
The Create Wizard feature in OpenInsight enables developers to use a wizard to create other wizards for use within their applications. It creates a multi-part OpenInsight form which, when executed, can prompt the user for input to perform a task or operation. The new wizard can then be modified in the Form Designer.
OpenInsight’s System Editor enables Stored Procedures to be written, records to be interrogated, Inserts and Window Events to be created and maintained and for the interaction with Operating System files.
One of the main functions of the System 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.
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 (MDI children housed in one single MDI Frame (Window)), 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.
Report Writing Tools
Getting data into your database is one thing, but any good application requires both canned (pre-defined) reports and the ability for power users to create their own bespoke reports. OpenInsight features a number of built in reporting tools to meet both developer and user requirements. These include:
Report Writer – 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.
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.
Client Server Workspace
The Client Server Workspace is your interface to the Windows world outside of your OpenInsight sandbox.
Third Party Connections - There are several connectivity tools, such as XRev.dll, which can be used by advanced application developers, but the Client Server Workspace provides for the simple and easy creation of data connections and datasets. Supported connections include ODBC, SQL Server and Oracle.
Data Warehousing – Many organisations pay tens of thousands for data warehousing tools. Not with OpenInsight. From within the Client Server Workspace a data warehouse can be created and maintained to warehouse your MultiValue data to a SQL (or other supported) data store. Where warehousing MultiValue data to a Relational Store, the data can be normalised in multiple tables on the fly. Once created, the warehouse can be run manually, from a button on a form or a timed event for overnight data warehousing.
XML data is not dissimilar from OpenInsight delimited data and OpenInsight provides tools for XML data to be created, consumed and exported. To facilitate this, the tool includes an XML Importer and an XML Publisher, as well as an XML explorer, configuration tool and an XPath window.
Once your application is complete you need to get it into your users hands for testing and use. The Application Deployment Kit 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.
OpenInsight for Web (O4W) is Revelation Software’s next generation of web database development tools. It forms a development environment in its own right, or it can be used in conjunction with the main OpenInsight development environment seamlessly.
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.
The toolset includes full database, application and user management, data encryption, dashboard creation, the use of Stored Procedures as server side processes and the usual form, menu, report and data table generation and management tools.
Data Encryption at Rest
Data Encryption at Rest (RTIDER) is included for the encryption of data at the table, record or field level.
The toolsets 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.
While most OpenInsight development teams are a fraction of those teams using other (non-MultiValue tools), the toolset does provide for multi-developer teams to work collaboratively. Furthermore, the toolset and license also caters for developers working away from the central installation.
Entity History – Each individuals change history can be maintained within the entity itself. This enables team leaders to review the lifecycle of entities from time to time and as required.
Impact Analysis – Making a change to a single entity, form, report, etc. on a robust and well tested system can be a daunting task, even for the most seasoned developer. No one wants to labelled as the developer who broke the system. For this reason, OpenInsight enables developers to run impact analysis on any entity (or group of entities) that they plan to work on. The analysis will display all entities that might be affected by the change and then further analysis can be undertaken on those impacted entities until such time as the developer is happy to make the change.
Check Out / Check In – Once the impact analysis is complete, the developer can then check out one or more entities and work on them on that machine or drop them onto a removable drive for remote working. All checked out entities are marked in the repository, so developers and or team leaders can review those checked out entities at any time.
With OpenInsight’s team development capabilities and even impact analysis for single developer based systems, the risk of introducing bugs through breaking things where one entity relies on another is lessened. Not only does this reduce the stress and workload of the developer, but it greatly enhances the user experience and more importantly the users trust in the application and developer.
From time to time your application is likely to need to incorporate and link to third party technologies and vice versa. OpenInsight includes a number of connection objects (such as XRev.dll) that enable this flexibility.
In addition, there is functionality that enables your .NET developers to work on your system using their familiar tools and .NET controls can easily be wrapped and used within your application.
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 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.).
Data integrity and system performance is key to the success of any database solution. Revelation Software have invested in separate networking technologies (the Universal Driver) that 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.
The Universal Driver (NUL) is bundled free of charge with every multi-user Network User License purchased, ensuring that your deployed systems run as trouble free as possible for years to come.
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 client 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 have 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 world wide, in just about very industry and on every continent of the world, by investing in OpenInsight, you can be sure to be investing in the future of your business and, as a Revelation Value Added Reseller, the future of your clients.