August 1993 AE-PZR0A-TE DSM Version 1.0 for DEC OSF/1 AXP Systems DSM (Digital Standard M) Version 1.0 for DEC OSF/1 AXP is an implementation of the ANSI Standard Specification for MUMPS (X11.1-1990) that is layered on the DEC OSF/1 AXP operating system. DSM Version 1.0 for DEC OSF/1 AXP is a high-level in- terpretive programming language and a multiuser data management system in which many users can share a common database. DSM Ver- sion 1.0 for DEC OSF/1 AXP is for use on Digital's Alpha AXP family of processors. DSM Version 1.0 for DEC OSF/1 AXP will be referred to here as DSM or DSM for DEC OSF/1. DSM software supports a superset of the ANSI MUMPS specification. The DSM utility set includes the DSM Application Software Li- brary (DASL) software. The DASL software is an application creation tool that 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 X Window Interface for DSM is included with DSM and allows the application programmer to create sophisticated graphical user interfaces. The DSM Language The 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 DSM language includes the following extensions to the ANSI Standard MUMPS specification: o 512 character maximum string length for local and global variable data. o 245 character maximum length for local and global variable subscripts. 1 o 512 character maximum routine line length. o Commands to load, save, and edit DSM routines. o I/O support for terminals, sequential files, magnetic tape devices, and TCP/IP communications. o MUMPS routine source code protection. o A symbolic debugger that aids in the development and mainte- nance of DSM applications. The debugger allows the programmer 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 facility that provides a MUMPS language interface to functions and procedures written in programming languages other than MUMPS. The MUMPS Standard external calling syntax is supported. In addition to supporting user-written external routines, DSM software also includes built-in interfaces to selected DEC OSF/1 services. For high run-time efficiency, the DSM language is implemented as a precompiler that generates intermediate code that is in- terpreted at run time. During the precompilation process, which is transparent to the user, DSM software performs operations that optimize subsequent run-time execution. For example, pre- compilation strips comments, checks syntax, optimizes label references, and transforms numeric constants into an internal representation. MUMPS ANSI 1993 Type A Language Extensions The following Type A language extensions are included in DSM: o Binary EXPONENTIATION operator (**) o Binary SORTS AFTER operator (]]) 2 o Logical OR capability for binary PATTERN MATCH o MERGE command o QUIT command indirection o Flexible device control mnemonic space definition and man- agement for use with the MUMPS WRITE, READ, OPEN and USE commands o Second argument to $GET function o $NAME function o $QLENGTH function o $QSUBSCRIPT function o $REVERSE function o $ZDEVTYPE special variable o Structured System Variables (^$GLOBAL, ^$JOB, ^$LOCK, ^$ROU- TINE) Global Variables The DSM language allows symbolic reference to hierarchical arrays called global variables (or simply globals) that can be simultaneously accessed by many users of a DSM application. DSM software provides a high performance implementation of global variables using multiway trees. 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 are DEC OSF/1 files. In a DSM run-time environment, up to 16 volume sets can be present simultaneously. Incremental Backup and Restore DSM 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 3 reduction in the time required for backup and the amount of backup storage required. The ^BACKUP Utility implements a multiphase backup. The ini- tial phases allow database read and write operations to occur unrestricted. The last phase temporarily inhibits database oper- ations for a short period to establish a final consistency check point. Restoring an incremental backup is done with the ^BACKUP Utility by applying an incremental backup file onto a fully restored primary database. The backup media supported by the ^BACKUP Utility is DEC OSF/1 sequential disk files. Full database backup of DSM volume set files is done using the DEC OSF/1 tar and dump utilities. Compatibility with DSM for OpenVMS, DSM for ULTRIX, and DSM-11 DSM for DEC OSF/1 provides substantial application programming language compatibility with DSM for OpenVMS, DSM for ULTRIX, and DSM-11. DSM for DEC OSF/1 includes the following compatible system facilities: o Magnetic Tape Operations Compatible tape I/O parameters and WRITE * control operations are supported to produce tapes formatted in fixed or variable length records. Tapes can be produced labeled or unlabeled. ASCII and EBCDIC character sets are supported. A tailorable EBCDIC translation table is included to allow you to cus- tomize how the DSM magnetic tape handler translates EBCDIC to ASCII and ASCII to EBCDIC. o External Call Facility The External Call Facility supports the ANSI MUMPS Standard external call syntax. External call tables used to describe the external interface are syntactically consistent with the DSM for OpenVMS and DSM for ULTRIX table format and supply a functional subset of calling mechanisms and data types. 4 o Management and Programming Utilities DSM for DEC OSF/1 provides many of the system maintenance and programming utilities available under other implementations of DSM. Utility names and capabilities parallel those used in other DSM implementations, and provide a compatible look and feel for both the programmer and the DSM environment manager. o System Environment and Operations DSM for DEC OSF/1 uses the DSM for OpenVMS and DSM for ULTRIX model of operations and system management. This model allows the initialization of multiple DSM environments. Each envi- ronment is initialized and associated with a specific DEC OSF /1 user account. Within an environment, the DSM environment manager defines and controls a DSM configuration. A configu- ration definition describes the enabled DSM capabilities and the associated databases accessible to users logged into the configuration. The utilities and procedures to accomplish these tasks are functionally compatible with DSM for OpenVMS and DSM for ULTRIX utilities. o Database Definition and Management DSM for DEC OSF/1 uses the DSM for OpenVMS, DSM for ULTRIX, and DSM-11 method of storing and organizing global data into volume sets, volumes, and UCIs. Utilities for creating and managing volume sets are similar to operational procedures in other DSM implementations. Utilities are provided to allow global and routine transfer between the DSM products. o DSM-11 Compatibility Mode The DSM Configuration Definition Utility (^CONFIG) allows the DSM environment manager to enable DSM-11 compatibility mode. DSM-11 compatibility is provided in the following areas: - Device numbers - Argument syntax of the MUMPS OPEN and USE commands - Error handling 5 - Error message formats - BREAK command processing DSM-11 compatibility mode is disabled by default. Distributed Data Processing DSM applications can access globals either locally or on a re- mote system. The DSM software supports remote access to globals through the DSM-specific Distributed Data Processing (DDP) pro- tocol. DSM software implements this high-performance protocol on Ethernet in a manner compatible with: o DSM Version 6.2 for OpenVMS (SPD 25.08.xx) o DSM for ULTRIX Version 1.0 (SPD 33.76.xx) o (DSM-11) Version 4.1 (SPD 12.18.xx) o DSM DDP-DOS Version 1.0 (SPD 50.19.xx) This allows the user to set up DSM networks consisting of any combination of Alpha AXP processors, DECstation or DECsystem processors, 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. Distributed global access can be done either explicitly, through the extended DSM global syntax, or transparently to DSM appli- cations using global translation. Optionally, the DSM environ- ment manager can specify the replication of one or more globals across several systems. TCP/IP Using the TCP/IP protocol, a DSM application can open a port to allow interprocess communication across a multivendor TCP network. The MUMPS OPEN, USE, READ, and WRITE commands are used to establish a TCP/IP communications channel and transmit data to a remote client or server process. The I/O syntax is 6 compatible with that provided by DSM for OpenVMS and DSM for ULTRIX. After-Image Journaling DSM software supports a journaling facility to provide a record on secondary storage media of all operations that modify the database (SET and KILL of global variables). Journaling can be performed on a global-by-global basis or for a whole DSM envi- ronment. 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 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. Application Programming Interface (API) Routines DSM supplies API routines that allow you to callback the inter- preter from a user-written external routine. You can use the API routines to access the DSM local symbol table and execute MUMPS code. The following functions are available: o Local symbol table access (get, SET, and KILL) o MUMPS command and routine execution (XECUTE) To use the API routines you must first call a user-written external routine. The external routine can then call back to the API routines. Utilities 7 DSM provides application and system level utilities written in the DSM programming language. Application level utilities help the DSM programmer develop and maintain application software and data. For example, there are utilities to edit and display DSM routines and globals. System level utilities allow the management of a DSM application environment. The DSM environment manager can create and extend DSM volume sets, specify DSM configuration parameters such as the number of concurrent DSM jobs and disk buffers, define DSM command line defaults, establish DDP links, and control journaling. 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, creating menus and help text screens, designing reports for data output, and creating tables for database queries. The DASL package is fully integrated with the DSM product, and provides 4GL and 3GL capabilities within a single environment. Users interact with DASL software through menus and screens that were developed using DASL software and are stored as 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. 8 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 devel- opment tasks such as specifying application parameters or creating 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. X Window Interface for DSM DSM provides a complete MUMPS language binding to the X Window and Motif systems. The binding is implemented as four separate external call packages that provide a MUMPS interface to the XLIB, XTOOLKIT, XMOTIF, and XMOTIF Resource Manager program libraries. The binding conforms to the MDC Type A specification. An additional package provides data manipulation primitives for allocating and modifying X Window data structures. These packages give the MUMPS programmer complete access to X Window routines for creating sophisticated graphical user interfaces. A set of example MUMPS programs is provided with complete docu- mentation of the interface. 1 SOFTWARE LICENSING 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, contact your local Digital office. License Management Facility 9 This layered product supports the DEC OSF/1 License Management Facility (LMF). License units for this product are allocated on a System Capacity (Traditional license) basis and Concurrent Use basis. Each Concurrent Use license allows any one DSM process at a time to use the layered product. For more information on the DEC OSF/1 License Management Fa- cility, refer to the appropriate DEC OSF/1 Operating System Software Product Description or documentation. 2 SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more information, contact your local Digital office. 3 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. 10