The basic Runtime Environment includes the ICOBOL Runtime System, System Management Utilities, and the License Manager. Several optional modules for the Runtime Environment are available for an additional license fee and provide additional capabilities that may be beneficial or needed in your environment.
The Runtime System (ICRUN) provides the platform-independent program execution environment necessary for complete program and data portability. The Runtime System implements a virtual machine that executes the object code generated by the ICOBOL compiler. This allows programs to be authored and debugged on any host platform and placed into production on any target platform without being recompiled. A recent programming system that uses this same model is the Java programming language with its Java VM. The embedded file manager also stores and retrieves INDEXED, RELATIVE, and SEQUENTIAL records independent of the hosting platform.
Features of the Runtime System include:
- Running ICOBOL programs and data files without modification on multiple platforms
- Support for ANSI 74 COBOL, ANSI 85 COBOL, and VX COBOL.
- Access to many system management capabilities such as disk space usage, directory listings, environment variable values, and more
- Built-in screen-handling routines that permit pop-up menus and windows as well as "hot key" capabilities
- Support for Windows and UNIX/Linux (and even AOS/VS) pathname styles in COBOL programs on all supported environments
ICISAM, the imbedded file system used to implement INDEXED
and RELATIVE files, includes the following features:
- Large file support (multi-terabyte)
- INDEXED files that support up to 16 alternate keys and 4 billion records
- Capability to automatically reuse deleted records
- Capability to have case insensitive keys
- Capability to perform logical or physical deletes
- Support for suffixed (split) keys
- Support for multiple alternate key entries per record
- Support for multiple file format versions
- Local and/or remote logging capability
- Remote mirroring capability
- Built-in support for many popular terminals including ANSI, AT&T 605, DG, IBM 3151, Linux Console, Mac Console, VT 100/220, and Wyse 60. Linux platforms also support the terminfo mechanism.
- Support for intercept spooling and a print-job queuing and control facility for up to 2048 printers
- The Runtime System has built in support for source-level debugging. See the development page for a more complete description.
Successful deployment of an application goes beyond the application programs themselves. It includes the day-to-day aspects of system management and recovery from system failures. To that end, the Runtime package includes many system management utilities that work along with your application to provide a complete operating environment. A few features are:
- A comprehensive, user-friendly configuration utility to customize the ICOBOL environment
- A comprehensive set of ICISAM utilities to perform file reorganization, integrity verification, recovery, and reconstruction tasks
- An efficient and flexible sort/merge utility with scripting capability
- A powerful filename mapping facility
- A powerful program library management facility
Your pricing for ICOBOL is based on the maximum number of simultaneous "users" of each licensed component that you've chosen to support in your environment. The number of users can be equated to the number of processes being run of the licensed type. For example, in Windows, if the person using the PC opens an ICOBOL application 3 times in 3 different windows, this counts as 3 users of a Runtime license. If the application also requires the SP2 Runtime component, this also counts as 3 users of that component.
The licensing is enforced by our license manager, called ICPERMIT. The license manager runs as a service on Windows platforms and as a daemon on Linux systems. The various ICOBOL components that require a license communicate with the license manager via TCP/IP, so it is also possible to have a central license manager in a local area network that serves licenses to multiple client computers.
The maximum number of users for each component is controlled by an encrypted license key in combination with a protection method, which can be a device that transparently attaches to a standard I/O port (the parallel printer port or USB port under Windows and a serial port under Linux), or some feature of the system that is unique and does not change, such as a CPUID or network card mac address. Upgrades to increase the number of users or to add optional product modules require a higher license fee, and therefore a new or upgraded license key. The license key can be provided electronically; and, the license manager can be instructed to load the updated license "on the fly".