# OpenROAD

OpenROAD, which stands for "Open Rapid Object Application Development", is a fourth-generation programming language (4GL) and development suite from Actian Corporation.
It includes a suite of development tools, with built-in Integrated development environment (IDE) (Written in OpenROAD), and Code Repository.

## History

The history of OpenROAD is closely tied to that of the Ingres relational database.
The Ingres Product set, (marketed by ASK Corporation, Computer Associates, Ingres Corporation and then Actian) was popular in the governments of North West Europe, and can be found in many government departments. OpenROAD appeared in beta form on the SUN platform in 1991 as Windows4GL 1.0, and was available to British Universities under a special license agreement. The development environment was known as the Sapphire Editor.
The Sapphire Editor allowed the creation of complex GUI interfaces using an IDE, rather than large volumes of Motif code / resource files. This was one of the first environments to enable rapid prototyping of GUI clients.
Windows4GL 2.0 introduced Microsoft Windows compatibility and the debugger.
The suite included applications-by-forms (ABF), an early 4GL computer programming language. It provided an ASCII form painter, which automatically bound form fields to a database using ABF, a programming language, with embedded SQL, simplifying the task of making a "CRUD" application for textual data. ABF source code was interpreted into a 3GL language (C or COBOL), which is then compiled so snippets of the native language may be directly embedded in the ABF code. ABF was deprecated by OpenROAD in the early nineties.
Nowadays, OpenROAD includes migration tools to modernize “green screen” Ingres ABF applications by converting ABF forms into OpenROAD frames. It also enables to transform OpenROAD thick-client applications to browser-based equivalents without the cost, resource, effort, and risk associated with rewriting or replacing code. Developers can then extend these applications for web and mobile deployment, using HTML5, JavaScript, and WebView2.
Several other database vendors marketed comparable 4GLs at around the same time, such as Pick System Builder, Clipper, and DBASE III. ABF was deprecated by the OpenROAD business unit in the early nineties.

### Version history

| Release | General availability | End of Enterprise Support | End of Extended Support | End of Obsolescence Support | Notes |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 3.0" | Old version, not maintained: OpenROAD 3.0 | May, 1995 | 31-Dec-01 | 31-Dec-06 | 31-Dec-11 | OpenROAD 3.0 was when it became stable on MS Windows. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 3.5 (Windows)" | Old version, not maintained: OpenROAD 3.5 (Windows) | April, 1996 | 31-Jan-08 | 31-Dec-13 | 31-Dec-18 | OpenROAD 3.5(1) was when it became stable. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 3.5 (Unix)" | Old version, not maintained: OpenROAD 3.5 (Unix) | September, 1997 | 31-Dec-08 | 31-Dec-13 | 31-Dec-18 | After 3.51, the UNIX environments used a Commercial PC emulator to give native capability, possibly one of the hurdles on the ROAD to its Open Source status across all platforms. Variations in the distribution include FAT client (Requires Ingres NET for communication), Thin eClient (can be used without Ingres NET but needs to use the Application Server instead (DCOM)), and finally mClient for Mobile Windows Clients (HTTP services required to interface to the Application server). It was possible to use images in any environment (Unix, VMS or MS Windows up to version 3.51), however portability issues between GUI environments (mostly related to FONT differences) made this difficult. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 4.0)" | Old version, not maintained: OpenROAD 4.0) | April, 1998 | 31-Mar-09 | 31-Mar-14 | 31-Mar-19 | |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 4.1)" | Old version, not maintained: OpenROAD 4.1) | January, 2001 | 31-Mar-09 | 31-Mar-14 | 31-Mar-19 | It is an interpreted language that uses a runtime distributable client to process 'image' files, thus no DLL or .NET dependency issues under MS Windows (ActiveX aside). There was a Macintosh Beta version produced. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="OpenROAD 2006 (5.0)" | Old version, not maintained: OpenROAD 2006 (5.0) | December, 2006 | 31-Dec-13 | 31-Dec-18 | 31-Dec-23 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 5.1 (Windows and HP-UX)" | Old version, still maintained: OpenROAD 5.1 (Windows and HP-UX) | April, 2011 | 31-Dec-15 | 31-Dec-20 | 31-Dec-25 | The defining feature of the release was general-purpose system classes for XML support, to allow creation and parsing of arbitrary XML documents without the need to create additional user classes or to use external components (3GL Procedures or External Class Libraries). Providing an XML based export file format will that will be documented, human readable, produce clean differences between different revisions of a file, allow changes to be merged, will allow OpenROAD source components to be managed by many different Software Configuration Management (SCM) systems. |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 5.1 (Unix except HP-UX)" | Old version, still maintained: OpenROAD 5.1 (Unix except HP-UX) | August, 2012 | 31-Dec-16 | 31-Dec-20 | 31-Dec-25 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 6.0" | Old version, still maintained: OpenROAD 6.0 | March, 2012 | 31-Mar-17 | 31-Mar-22 | 31-Mar-27 | OpenROAD 6.0 included the additional UNICODE support of OpenROAD 2006 5.5, a special limited release. |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 6.2 (All Platforms) and Ingres 10.2 Client only for support of OpenROAD as a client" | Old version, still maintained: OpenROAD 6.2 (All Platforms) and Ingres 10.2 Client only for support of OpenROAD as a client | November, 2014 | 31-Dec-21 | 31-Dec-26 | 31-Dec-31 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 11.0 (Solaris, Aix)" | Old version, still maintained: OpenROAD 11.0 (Solaris, Aix) | Sep, 2020 31-Dec-22 | 31-Dec-24 | 31-Dec-26 | 31-Dec-26 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 11.0 (Linux, Windows)" | Old version, still maintained: OpenROAD 11.0 (Linux, Windows) | Sep, 2020 | 31-Dec-22 | 31-Dec-24 | 31-Dec-26 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 11.2 (Solaris SPARC, IBM AIX)" | Old version, still maintained: OpenROAD 11.2 (Solaris SPARC, IBM AIX) | May-21 | 31-Dec-24 | 31-May-29 | 31-May-33 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 11.2 (Linux)" | Old version, still maintained: OpenROAD 11.2 (Linux) | May-21 | 31-Dec-24 | 31-May-29 | 31-May-33 | |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="OpenROAD 11.2 (Windows)" | Old version, still maintained: OpenROAD 11.2 (Windows) | Aug, 2021 | 31-May-25 | 31-May-29 | 31-May-33 | |
| class="templateVersion c swatch-latest" style="color: var(--color-base, #202122); " title="Latest version" data-sort-value="OpenROAD 12 (Linux)" | Latest version: OpenROAD 12 (Linux) | 31-May-24 | 31-May-29 | 31-May-34 | 31-May-39 | |
| class="templateVersion c swatch-latest" style="color: var(--color-base, #202122); " title="Latest version" data-sort-value="OpenROAD 12 (Windows)" | Latest version: OpenROAD 12 (Windows) | 28-Jun-24 | 31-May-29 | 31-May-34 | 31-May-39 | |
The reason for the varying and shorter Lifecycle dates of latest versions is Actian is working to bring OpenROAD releases current to Actian X. The Lifecycle dates will re-align with the 11.2 release in 2021.

## Architecture
### OpenROAD Server

The OpenROAD Server enables business logic written in the OpenROAD 4GL language to be accessed by client applications. The OpenROAD Server is multi-threaded and allows concurrent access from a number of client interfaces. These client interfaces include the following:
* Java clients (JSP, Java Servlets, Java applications)
* .NET clients (VB.NET, C#, ASP.NET)
* COM clients (VB, C++, ASP)
* OpenROAD clients

### Open Database Access

OpenRoad Server has built-in support for Ingres/X and Vector/Avalanche databases. On IBM z/OS mainframes, EDBC (a separate product) provides the same level of access to native VSAM, DB2, IMS, and Datacom/DB databases to enable you to access data from anywhere.

## Features needed (Q2 2008)

* Intellisense for source, SQL statements and user defined objects.
* The ability to construct user objects that inherit from the system classes
* Better configuration management for large development teams
* Native access to .NET classes
* In process access to Ingres NET for FAT clients making distribution easier.
* Extension of the OpenROAD language into the Ingres database engine replacing the Procedure language.
* Access to the sources of the OpenROAD language