Shared Variables
Shared Variables are a feature of the APL language which allowed mainframe APL programs to communicate with other facilities on a computer, which could include external files, DBMS, or other users. Shared Variables were first introduced by IBM in their APL.SV program product in 1973 and continue to be available today in IBM and Dyalog APL for Linux and Windows.
The Shared Variable facility is roughly analagous to a Windows out-of-process server today.
When APL\360 was first introduced in 1968, there were no built-in means by which a user could import data from outside of the APL system. Some of the timesharing vendors began offering an external file system at the time, however IBM's approach was to supply a more generic facility whereby an external process could be used by an APL program. Following APL.SV, the IBM VS APL and APL2 program products also supported shared variables, as well as the 5100 line of computers.
Shared Variable Processors were available to allow APL access to the following: Standard operating system files (TSIO) TSO and CMS command processors (AP100) VSAPL Stack Processor (AP101) VSAPL Session Manager (AP102) CMS Native Files (AP110) CMS and TSO Native Files (AP111) VSAM Files (AP123) Full Screen Display Manager (AP124) IBM Graphical Data Display Manager (AP126) IBM DB2 (AP127)
In the early 1980s, I. P. Sharp Associates, which offered a highly modified version of IBM APL\360, introduced Shared Variables in their product offering. Many of the Shared Variable Processors available for IBM products were also written for Sharp APL, notably TSIO (called PJAM), AP124, AP126, and AP127. Further, as I. P. Sharp also offered IPSANET which allowed in-house clients of SHARP APL to be connected to the network, a Network Shared Variable Processor, or NSVP, allowed programs from one mainframe site to access another. NSVP predates the widespread usage of the Internet by five years.
With the advent of more powerful personal computing, the exodus of the APL community to Microsoft Windows was inevitable. Although Shared Variables are still a feature of IBM APL2 for Linux and Windows, other APL vendors chose to embrace Microsoft COM and ActiveX as a means to provide services from external programs. Dyalog APL supported Shared Variables as an interface to Microsoft Direct Data Exchange (DDE), however today that interface has been largely supplanted by COM, ActiveX, and .Net.