Software Product Description ________________________________________________________________ PRODUCT NAME: VAX DSM, Version 6.0 SPD 25.08.19 DESCRIPTION VAX DSM (Digital Standard MUMPS[R]) is an implementation of the ANSI Standard Specification for MUMPS (X11.1-1990) that is layered on the VMS Operating System. It is a high level inter- pretive programming language and a multiuser data management system in which many users can share a common database. VAX DSM software supports a superset of the ANSI MUMPS specification and fully uses the capabilities of the VMS Operating System. The VAX DSM utility set includes the DSM Application Software Library (DASL) software. The DASL software is an application creation tool which combines a Data Dictionary, Screen (form) Compiler, Report Compiler, and an end user SQL compliant Query Driver. DASL software uses code generation techniques to trans- form DASL commands and SQL statements into efficient MUMPS code. The VAX DSM Language The VAX DSM language couples the flexible processing of variable length string data with a high-performance database system, mak- ing interactive database application systems easier to implement and maintain. The VAX DSM language includes the following extensions to the ANSI standard MUMPS specification: o 512 character maximum string length for local and global variables. o 245 character maximum string length for subscripted local and global variable names. o Commands and functions to load, save, and edit DSM routines. DIGITAL November 1990 AE-K412T-TE VAX DSM, Version 6.0 SPD 25.08.19 o Language elements that implement a subset of the VMS I/O options for the support of terminals, including foreign terminals, magnetic tape devices, mailboxes, and VMS RMS sequential, relative, and indexed sequential files. The use of DECnet for remote file access and task-to-task communi- cation is also possible. TCP/IP communication is supported through an interface to Wollongong WIN/TCP[TM]. o A symbolic debugger that aids in the development and main- tenance of DSM applications. The debugger permits the pro- grammer to set breakpoints and watchpoints and to display the current state of the call stack. o An error handling capability allowing a DSM application to establish hierarchical error processing routines. o An external call interface to procedures written in languages other than the DSM language through a $ZCALL function. Proce- dures invoked through $ZCALL are also capable of calling back the DSM interpreter. In addition to supporting the calling of user-written proce- dures, VAX DSM software also includes built-in interfaces to selected VMS system services and run-time library routines. This gives the VAX DSM language the ability to mount and dismount disk or magnetic tape volumes, spawn DCL subprocesses, manipu- late logical names, and call mathematical and text manipulation functions, or editors. For high run-time efficiency, the VAX DSM language is imple- mented as a precompiler that generates intermediate code that is interpreted at run-time. During the precompilation process, which is transparent to the user, VAX DSM software performs operations that optimize subsequent run-time execution. For example, precompilation strips comments, checks syntax, opti- mizes label references, and transforms numeric constants into an internal representation. Global Variables 2 VAX DSM, Version 6.0 SPD 25.08.19 The VAX DSM language allows symbolic reference to hierarchical arrays called global variables (or simply globals) which can be simultaneously accessed by many users of a DSM application. VAX DSM software provides a high performance implementation of global variables using multiway trees. VAX DSM stores global variables and DSM routines on data structures called DSM volume sets. Each is comprised of up to eight logical volumes. Volumes in a DSM volume set can be either files on a VMS volume or disk packs compatible with DSM-11, mounted as foreign VMS volumes. In a VAX DSM run-time environment, up to sixteen volume sets can be present simultaneously. Database Sharing in a VAXcluster Environment VAX DSM software allows volume sets to be mounted and made accessible to all members of a VAXcluster environment. The globals and routines resident within the cluster-mounted volume sets are accessible in the same manner as a local mounted volume set. Each cluster member maintains and updates a memory disk buffer cache for the cluster-mounted volume set. VAXcluster software is used to coordinate the access and update of physical disk blocks. Distributed Data Processing VAX DSM applications can access globals either locally or on a remote system. The VAX DSM software supports remote access to globals through a DSM-specific Distributed Data Processing (DDP) protocol. VAX DSM software implements this high-performance protocol on Ethernet in a manner compatible with DSM-11, Version 4.1 (SPD 12.18.xx) and DSM DDP-DOS Version 1.0 (SPD 50.19.xx). This allows the user to set up DSM networks consisting of any combination of PDP-11 processors, VAX processors, and personal computers in a local area network. The DDP autoconfiguration facility automatically updates the software tables of members of a DDP network when a new system goes on or off line. 3 VAX DSM, Version 6.0 SPD 25.08.19 VAX DSM software also supports DDP over DECnet logical links, allowing remote global access from VAX processor to VAX proces- sor in a wide area network. Distributed global access can be done either explicitly, through the extended DSM global syntax, or transparently to DSM appli- cations through a system of global translation. Optionally, the DSM environment manager can specify the replication of one or more globals across several systems. After-Image Journaling VAX DSM software supports a journaling facility to provide a record on secondary storage of all operations that modify the database (SET and KILL of global variables). Journaling can be done on a global-by-global basis or for a whole DSM environment. In the event of database degradation, it is possible to restore the current database from a full backup and the journal files using a dejournaling utility. Before-Image Journaling VAX DSM software provides a journaling capability that records the physical image of a database block before modifications have been made. This facility preserves database integrity in the event of a CPU failure. The physical before-image journal contains only a very small number of blocks and is used to quickly roll-back any operations in progress at the time of the failure. The operations protected are SETs to globals that result in a database block split, or KILLs that result in a database block merge. Transaction Processing The VAX DSM product provides extensions to the ANSI MUMPS lan- guage that allow MUMPS programmers to group global accesses into well-defined transaction recovery units. The use of transaction recovery units gives MUMPS application designers the ability to create highly reliable and efficient fault-tolerant application systems. 4 VAX DSM, Version 6.0 SPD 25.08.19 Database updates made within the context of a recovery unit are treated as a single unit of work. Upon conclusion of a recovery unit, VAX DSM software ensures that updates are either committed entirely or not at all. If a failure occurs during recovery unit processing, any partial updates made to the database are rolled-back so that the database is restored to its original state before the recovery unit began. Through the conventional use of the MUMPS LOCK command and the application of the recovery unit commands, MUMPS programmers can construct database transactions that exhibit the transaction processing properties of atomicity, consistency, isolation, and durability. VAX DSM software supports roll-back of recovery units through a system of Before-Image and After-Image Journal files. Transac- tion recovery unit processing is supported on database volume sets that are mounted locally. VAX DSM does not support transac- tion processing on volume sets mounted on multiple nodes within a VAXcluster environment. Recovery of updates made to databases that are shared using VAX DSM Distributed Data Processing (DDP) is not supported within a transaction recovery unit. Incremental Backup/Restore The VAX DSM product provides an Incremental Backup Utility (^BACKUP) for use with the DSM database. The ^BACKUP Utility backs up only those blocks that have been modified since the last full backup. Because modified blocks usually constitute a small portion of an entire DSM database, the ^BACKUP Utility represents a major reduction in the time required for backup and the amount of backup storage required. On volume sets that are not mounted clusterwide, the ^BACKUP Utility allows database modifications during the entire backup process. On cluster-mounted volume sets, database modifications are disabled during the second phase of the backup process. 5 VAX DSM, Version 6.0 SPD 25.08.19 Full database backup of VAX DSM volume set files is accomplished using the VMS Backup Utility. Restoration of an incremental backup is accomplished using the Incremental Restore Utility to apply an incremental backup file onto a fully restored primary database. The backup media supported by the ^BACKUP Utility is VMS sequential disk files. Callable Routines Interface The callable routines interface allows routines written in software languages that run under the VMS Operating System to directly call the VAX DSM image. This capability gives programs written in languages such as FORTRAN, C, PASCAL, and others complete read and write access to globals resident in a VAX DSM volume set. Functions such as global set, kill, get, or lock to a VAX DSM database can be accomplished using any VMS layered language. In addition, external programs can declare recovery units, access the VAX DSM local symbol table, and execute MUMPS code. The following functions are available to external programs: o Callable interface initialization and rundown o Global database access o Declare recovery unit (start, commit, abort) o LOCK command o Local symbol access o MUMPS command and routine execution Utilities The VAX DSM product provides application and system level util- ities written in the DSM language. Application level utilities help the DSM programmer develop and maintain application soft- ware and data. For example, there are utilities to edit and display DSM routines and globals. 6 VAX DSM, Version 6.0 SPD 25.08.19 System level utilities allow the management of a DSM application environment. The system manager can create and extend DSM vol- ume sets, specify DSM configuration parameters such as access control (security), the number of concurrent DSM jobs and disk buffers, define DSM command line defaults, establish DDP links and control journaling. For increased efficiency of routine calling, the system manager can map a selected set of DSM appli- cation routines in a shared virtual memory section, resulting in higher application throughput. DSM Application Software Library (DASL) DASL software is a set of menu-driven tools designed for de- velopers of interactive applications. The DASL package auto- mates many of the tasks involved in defining and documenting a database: generating data input, menu, and help text screens, designing reports for data output, and creating tables for database queries. The DASL package is fully integrated with the VAX DSM product. Therefore, DASL software provides both 4GL and 3GL capabilities within a single environment. Users interact with DASL soft- ware through menus and screens that were developed using DASL software and are stored as VAX DSM routines. The DASL package includes six major modules, each representing a group of related functions that programmers use to develop applications. o The Data Dictionary defines and documents the application database. o The Screen Driver contains options to develop and modify screen displays for data entry, menus, and help text. o The Report Driver contains options to define and modify application reports. 7 VAX DSM, Version 6.0 SPD 25.08.19 o The Query Driver contains options to define tables for the DASL database and create queries to extract data from the tables. The DASL Query Driver conforms to the syntax of the ANSI Standard Database Language SQL (Structured Query Language). o The Development Environment performs a variety of development tasks such as specifying application parameters, or cre- ating an international application using the DASL Language Utilities. o The Application Environment provides facilities for con- trolling the application's run-time environment such as a security system, message center, query database, and error logging. Portable Run-Time DASL Screens and reports defined using DASL can be compiled into MUMPS code for use on systems other than VAX DSM systems. The DASL software generates some non-ANSI Standard MUMPS code. This code has been isolated and can be modified by a DASL devel- oper so that DASL applications can run on platforms other than VAX DSM. The DASL Development Environment Menu contains Portable Run- Time DASL utilities that enable DASL developers to port their applications to other MUMPS implementations and computers. DASL developers use these utilities to create an application run- time package that contains their DASL application's screens and reports, as well as a DASL run-time environment. The application run-time package can be moved to a foreign MUMPS system (i.e., a MUMPS implementation on a computer other than the VAX computer). To run this package on a foreign MUMPS system, you must have a Run-Time DASL License. SOURCE CODE INFORMATION 8 VAX DSM, Version 6.0 SPD 25.08.19 VAX DSM provides source files in the SYS$EXAMPLES directory as examples for writing ZCALLs and ZCALL Tables, using the callable routines interface, and using Portable Run-Time DASL. This source code is provided on an AS IS basis without any warranty of any kind, either express or implied. HARDWARE REQUIREMENTS VAX, MicroVAX, or VAXstation configurations as specified in the System Support Addendum (SSA 25.08.19-x). SOFTWARE REQUIREMENTS For systems using terminals (no DECwindows interface): o VMS Operating System For workstations running VWS: o VMS Operating System o VMS Workstation Software Refer to the System Support Addendum (SSA 25.08.19-x) for avail- ability and required versions of prerequisite software. ORDERING INFORMATION Software Licenses (VAX DSM): QL-130A*-AA Software Licenses (Run-Time DASL): QL-YP29W-FA QL-YP299-FA Software Media: QA-130A*-** Software Documentation: QA-130AA-GZ Software Product Services: QT-130A*-** DASL Legend Strip: 36-20220-B1 * Denotes variant fields. For additional information on avail- able licenses, services and media, refer to the appropriate price book. SOFTWARE LICENSING 9 VAX DSM, Version 6.0 SPD 25.08.19 This software is furnished under the licensing provisions of Digital Equipment Corporation's Standard Terms and Conditions. For more information about the licensing terms and policies of Digital, contact your local Digital office. LICENSE MANAGEMENT FACILITY SUPPORT This layered product supports the VMS License Management Fa- cility (LMF). License units for this product are allocated on a CPU-capacity basis. For more information on the License Management Facility, refer to the VMS Operating System Software Product Description (SPD 25.01.xx) or the License Management Utility Manual of the VMS documentation set. For more information on the licensing terms and policies of Digital, contact your local Digital office. SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more information, contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the purchase of a license for the product as defined in the Software Warranty Addendum of this SPD. [R] MUMPS is a registered trademark of Massachusetts General Hospital. [TM] WIN/TCP is a trademark of The Wollongong Group. [TM] The DIGITAL Logo, DECnet, DECwindows, MicroVAX, RMS, VMS, VAX, VAX DSM, VAX DSM DDP, VAXserver and VAXstation are trademarks of Digital Equipment Corporation. 10