CorVision is a fourth generation
programming tool (
4GL
A fourth-generation programming language (4GL) is any computer programming language that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the programming language generations ai ...
) currently owned by Attunity, Inc. CorVision was developed by Cortex Corporation for the
VAX/VMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
ISAM
ISAM (an acronym for indexed sequential access method) is a method for creating, maintaining, and manipulating computer files of data so that records can be retrieved sequentially or randomly by one or more keys. Indexes of key fields are mainta ...
environment. Although Cortex
beta tested
Beta (, ; uppercase , lowercase , or cursive ; grc, βῆτα, bē̂ta or ell, βήτα, víta) is the second letter of the Greek alphabet. In the system of Greek numerals, it has a value of 2. In Modern Greek, it represents the voiced labiod ...
CorVision-10 which was generated for PCs but CorVision itself stayed anchored on VMS. CorVision-10 proved more difficult than hoped, and was never released.
Lifecycle
The birth of CorVision
CorVision can be traced back to 1972 when Lou Santoro and Mike Lowery created INFORM for the newly formed
time-sharing
In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Number 1
Its emergence ...
company Standard Information Systems (SIS). INFORM contained some of CorVisions basic utility commands such as SORT, REPORT, LIST and CONSOLIDATE. Some of the first users of INFORM were
New England Telephone,
Polaroid and Temple Barker & Sloan. By 1972 SIS had offices in Los Angeles, Garden Grove, Minneapolis, Chicago, Boston, New York City, District of Columbia, Charlotte, Raleigh, Atlanta and Phoenix.
Establishing CorVision
Between 1976 and 1977 Ken Levitt and Dick Berthold of SIS ported INFORM from the
CDC-3600 to the
PDP-11
The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were so ...
/70 under
IAS IAS may refer to:
Science
* Institute for Advanced Study, in Princeton, New Jersey, United States
* Image Analysis & Stereology, the official journal of the International Society for Stereology & Image Analysis.
* Iowa Archeological Society, Uni ...
. They called this new tool INFORM-11. Cortex was founded in 1978 by Sherm Uchill, Craig Hill, Mike Lowery, and Dick Berthold to market INFORM-11. INFORM-11 was first used to deliver a 20-user order entry system at
Eddie Bauer
Eddie Bauer, LLC is an American clothing store chain headquartered in Seattle, Washington. Eddie Bauer sells its merchandise via retail stores, outlet stores, and online and via phone, with a call center in Groveport, Ohio. Its flagship store ...
, and to deliver an insurance processing system for Consolidated Group Trust.
Between 1981 and 1982 Cortex received significant investment from
A. B. Dick
The A. B. Dick Company (later stylized as ABDick) was a major American manufacturer of copy machines and office supplies in the late 19th century and 20th centuries.
Founding and growth
The company was founded in 1883 in Chicago as a lumber compa ...
. Using this new investment, Cortex ported INFORM to
Digital Equipment Corporation
Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president unti ...
's new VAX/VMS, adding compiled
executable
In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
s. INFORM-11 was promoted by both Cortex and Digital as a pioneering
rapid application development system.
In 1984 Jim Warner encapsulated INFORM in a repository-based development tool and called it Application Factory. INFORM's PROCESS procedural language became known as BUILDER within Application Factory. In 1986 the name of Application Factory was dropped in favor of the name CorVision.
CorVision's heyday
Between 1986 and 1989 CorVision experienced its heyday. It quickly became known as a robust and capable tool for
rapidly building significant multi-user applications. The addition of
relational database
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
support attracted major accounts. Cortex quickly became an international company.
In 1992, CorVision Version 5 was released with
Query and support for
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
. Query allowed read-only access by users and developers to a systems database backend. Where this seemed a desirable facility, allowing users to create "use once then throw away" reports without calling on developers this had a nasty habit of causing performance issues. Users often did not understand the database structure and could send large queries to the processing queues causing system-wide issues.
In 1993 Cortex started supported
''vesting'' to
Digital's new
64-bit
In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. A comp ...
Alpha line. In 1994, International Software Group Co. Ltd. (ISG) purchased Cortex.
The beginning of the end for CorVision
As early as 1987, Cortex recognized the growth in the popularity of the
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a tea ...
, supporting
wikt:diagrammatic editing of menus and data relationships in CorVision. In 1993 a client-server version was released, but not widely adopted. In 1997 ISG's work on CorVision-10 which was to herald the rebirth of CorVision onto the IBM PC platform stopped. CorVision-10 was proving very difficult to port and ISG finally refused to spend any more money on the now-dated system. 1994 saw the last innovative CorVision release: V5.11. The extra-fee
Y2K
The year 2000 problem, also known as the Y2K problem, Y2K scare, millennium bug, Y2K bug, Y2K glitch, Y2K error, or simply Y2K refers to potential computer errors related to the formatting and storage of calendar data for dates in and after ...
release, V5.12.2, marked the end of development.
CorVision as a legacy system
CorVision still exists in a handful of companies that have not yet found the time or money to upgrade their existing mainframe systems. As CorVision runs on the VMS environment it is very stable but the search for CorVision developers and contractors to support these ageing systems is a problem. Since around 1999, companies have started appearing offering conversion tools to convert BUILDER code to compiled
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (c ...
and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
.
In 2005 CorVision guru Michael Lowery, now president of Order Processing Technologies, attempted to revive the CorVision franchise with CV2VB, a process to convert CorVision applications into
.NET applications using a
SQL server. CV2VB is OPT's third generation CorVision conversion and replacement modeler/code generator. It is in commercial service at former CorVision clients. Information is available at th
CV2VB website
Application development
A brief explanation of application development using CorVison.
Application parameters
The first step in developing an application with CorVision is to fill in the parameters which control the miscellaneous aspects concerning application-wide functions.
The parameters fall into five groupings as follows:
# Heading, Title and Menu Information for the application.
# Development parameters which affect the CorVision working environment.
# Run-time parameters which affect run-time execution of the application (including Batch & Print Queue control).
# Application-wide navigation options.
# Application-wide standard menu items.
Usually the default values for these parameters are satisfactory. CorVision however allows for these setting to be changed at any time during development. The parameters file (WP) is accessed at runtime so the latest setting are always used.
Status Screen
CorVision keeps the information behind the Status Screen up-to-date so that it indicates the current state of the development process. The left hand side indicates specification tasks that need doing. The right hand side indicates generation tasks that need doing.
Changes or Additions to Specification and what they cause changes to.
Dictionary, Datasets and Keys
* Generate *.CRE, build Links
Dictionary, Datasets, Keys
* Screens, Reports, Dataviews
Screens, reports
* Generate *.SCR, *.RPT, *.JOB
Menus
* Generate *.DO
Field Search
CorVision provides a useful feature called Field Search. Field Search allows you to investigate and analyze the use of fields in different aspects of the application. This allows developers to assess the impact of changes before they are made.
To provide complete specification details in hardcopy form, CorVision has the Run Reports option. Over 80 different types of report can be produced. Component Specification Reports (CSRs), as they are known, can also be produced for tentative, unreferenced and unresolved items.
Procedures and processes
The key to CorVision is PROCEDURES. The procedures in CorVision eventually become Executable Images (.EDO's).
Three types of procedures are:
;Screen Procedures: Used for data entry and updating, can be accessed from a menu and is navigatable. A Procedure of this type consists of the Menu selection and any key screens and data screen. These are generated and compiled together. You can look upon the screen procedure as the MAIN procedure which is called MAIN by default in CorVision.
;Jobstream / Report Procedures:Presentation of data as a report. A Procedure of this type consists usually of one step to produce a report. It is generated and compiled separately from the screen procedure.
;Custom Procedure: Hand coded procedures in BUILDER. These procedures can perform any function that the BUILDER code will allow. A Procedure of this type is written entirely in BUILDER, the CorVision 4GL. It too is generated and compiled separately from the other two types.
It is not essentially true to consider a procedure as a program. In fact, a procedure is a set of instructions (BUILDER Commands) which build a program. A program in BUILDER is actually called a Process not a program. A Procedure therefore is a set of BUILDER commands which instruct BUILDER to build a process and save this in the program library as a compiled file with a .SAV extension.
Data independence
CorVision keeps the data structure files separate if they are to be manipulated by BUILDER. BUILDER keeps a structure file and a key structure file for each dataset used by the application.
When a process is compiled, the data structures are "bound" to the process at that time thus "binding" of data structures takes place at the precise moment the process is compiled.
Because the structure and key structure files are kept separate, the dataset definitions can be altered during development. This is a major strength of CorVision allowing for a prototyping environment where both code and data structures can be changed throughout development then brought together at compile time.
The structure and key structure files are loaded before the process is compiled. This is done by the load file. BUILDER makes the assumption that the data structures are already loaded when it compiles a process. It is at this point that the compilation "binds" the data structures to the code.
Creating a procedure
* Add / Change the procedure specification
* (Progressively) Construct the application components
** Menus
** Screens
** Reports
** Custom Code
* (Progressively) Generate the compilable files
* Compile the procedure
After generating the procedure
The following files are created:
* .DEF :Define fields used within the procedure.
* .DFS :Define (.DEF) files used within the procedure.
* .DO :Generated BUILDER for controlling the running / compiling of the procedure.
* .IOS : the procedure.
* .LOA :Generated BUILDER for controlling the loading of all required datasets used by the procedure.
* .SCS :List of all screens used in the procedure
The following files can also be added:
*
.DCL :DIGITAL command language file.
** Define specific CorVision logicals.
** Define any other processing before the procedure is run.
The following files are created after compiling:
*
VAX 32 bit
** .SAV
** .EDO
*
ALPHA 64 bit
** _TV.SAV (after vesting)
** _TV.HIF (after vesting)
** _TV.EDO (after vesting)
References
*
* {{cite book, title=CorVision Training Course Notes, author=Stephen Pickett, date=October 2001
CorVision History on CV2VB web site
Fourth-generation programming languages