HP OpenVMS Systems Documentation
HP OpenVMS Programming Concepts Manual
1.3.1 OpenVMS Systems on Multiple Platforms
220.127.116.11 System Compatibility and Program Portability Across Platforms
The OpenVMS Alpha and OpenVMS I64 operating systems are compatible with
environments. For general users and system managers, OpenVMS Alpha and
OpenVMS I64 have the same interfaces as OpenVMS VAX. Virtually all
OpenVMS VAX system management utilities, command formats, and tasks are
identical in the OpenVMS Alpha and OpenVMS I64 environments.
Mixed-architecture and mixed-version clusters that contain both Alpha
systems and VAX systems are supported.
The OpenVMS operating system provides an array of capabilities that support the full range of computing environments. A computing environment is made up of resources that are compatible with each other and all work together toward a common goal. In general, OpenVMS environments can supply the following kinds of capabilities (which can exist in any combination):
OpenVMS software capabilities include both the standardized features of open systems computing and the commercial-strength functionality of traditional OpenVMS systems. System and network management software provides for control of heterogeneous, integrated environments.
The following sections describe the capabilities supported in OpenVMS
computing environments and summarize the software resources available
in each kind of environment.
The OpenVMS operating system makes available a set of services in an open domain, while still offering its traditional high-integrity computing services. Incorporation of open computing capabilities enhances the traditional feature-rich OpenVMS environment.
Software in the OpenVMS open systems environment enables the
development and use of portable applications and consistent user
interfaces and also permits systems to operate together. The keys to
openness of OpenVMS systems are standard programming interfaces,
standardized user interfaces, and standard protocols.
Application portability is the capability to easily move an application from one system to another. Standard programming interfaces permit application and data portability. Portable applications written strictly to a suite of open specifications provide the following benefits:
Applications that are developed on the three supported platforms and
conform to open standards can be easily ported to other systems that
conform to the same standard interfaces. Applications written in ISO
and ANSI languages are portable to other systems. In addition, The Open
Group/Motif graphical user interface supports application portability.
Applications written in ISO/ANSI languages are easily portable to other
platforms that support them. OpenVMS VAX, OpenVMS Alpha, and OpenVMS
I64 provide support for such languages as C, COBOL, and Fortran.
In a distributed computing environment, an application is distributed over two or more systems or processors, each of which has its own autonomous operating environment. A distributed application is composed of separate modules, running on different systems, that communicate with each other by passing data between modules or by sharing access to files or databases. A distributed application must be able to coordinate its activities over a dispersed operating environment.
The distributed computing environment can consist of software located
either in a single box or a single room or can comprise a worldwide
network of computers. The systems in the distributed configuration can
be uniprocessor, multiprocessor, or OpenVMS Cluster systems; systems
from different vendors can be included in the same configuration.
One style of distributed computing that permits resource sharing between different systems is client/server computing. In the client/server environment, portions of an application are distributed across the network between servers and clients:
This style of computing allows each portion of a distributed application to run in its own optimal environment. The whole application does not have to run on one centralized system (such as a mainframe system), but enterprisewide cohesiveness can still be maintained. For example, individuals or local offices, using their own computers and running software appropriate to their needs, can be linked to large computers or OpenVMS Cluster systems in a network. A distributed computing system can function as though it were a single system that connects all parts of an enterprise. The client can have transparent access to the integrated resources of the enterprise.
Any system can be a client or a server, and some systems may include
both client software for certain applications and server software for
other applications. Servers can be connected to many clients, and a
client can be connected to more than one server at a time. (Client and
server relationships may change frequently: at times it may not be
possible to tell which is the client and which is the server.) In some
cases, the application is stored on the server and run on the client,
using the resources of the client. The user, who does not need to know
what system is serving the application, can function in a familiar,
OpenVMS systems support a wide variety of client/server configurations. Clients requiring resources can be personal computers, workstations, point-of-sale devices, OpenVMS systems, or systems from other vendors that are running the appropriate client software. Users on client systems can use character-cell terminals or windowing desktops.
Servers fulfilling clients' requests can be located on OpenVMS systems or other operating systems running appropriate server software. OpenVMS servers, for example, can provide file access, printing, application services, communication services, and computing power as application engines to clients on desktop devices or in laboratories or factories. Client/server configurations permit the commercial-strength capabilities of OpenVMS host systems to be integrated with the personal-computing capabilities of desktop systems.
Middleware, which runs on OpenVMS and other systems from multiple vendors, can be used to tie together clients and servers. Middleware integrates various client and server systems through application, communication, data interchange, and multivendor support. Complex information-sharing environments involving PC clients and operating system servers are supported.
An essential feature of the OpenVMS operating system is its support of a rich environment for developing software application programs. The programming software integrated in the OpenVMS system provides the tools required to effectively develop new software applications. You also have the option of using additional powerful tools to enhance the productivity of software development in the OpenVMS environment.
The following sections summarize the primary program development
features available on all three supported platforms. The sections also
introduce the OpenVMS programming environment and present brief
functional descriptions of the OpenVMS programming tools.
The OpenVMS system supports a flexible programming environment that offers a wide range of tools and resources to support efficient program development. This robust OpenVMS programming environment permits the development of mixed-language application programs and portable programs, as well as application programs with distributed functions that run in client/server environments. This environment also provides tools that allow you to use the web and other information technologies.
In the OpenVMS programming environment, you can use OpenVMS resources to perform the following tasks:
The components of an OpenVMS application are the main program, shared libraries, functional routines, and a user interface. Software tools that support development of applications in the OpenVMS programming environment include:
Optional software development tools that run on the OpenVMS system enhance programmer productivity, saving programming time and promoting the development of error-free code. OpenVMS supports optional integrated software products that enhance program development capabilities in an organization. These software development products can make use of middleware services that facilitate the development of applications for multivendor networks and for web-enabling tools to help develop client/server applications.
Middleware and web-enabling tools allow you to access data and information by using the web. The various middleware and web-enabling tools perform the following:
Middleware products and capabilities include Distributed Computing Environment (DCE), COM for OpenVMS, and HP Reliable Transaction Router for OpenVMS. Web-enabling tools include HP DECforms Web Connector, and TP Web Connector. For more information about middleware and web-enabling tools, go to the following URL:
1.4.1 Programming to Standards
Coding of programs for the OpenVMS environment and for other
environments involves conforming to software development standards.
OpenVMS standards that define modular programming techniques and
procedure calling and condition handling practices pertain to
applications specific to OpenVMS. IEEE and international standards
apply to applications developed on OpenVMS that are designed to run on
other systems as well as on OpenVMS.
OpenVMS software programmers can write code in a common environment,
following standard OpenVMS modular programming practices. This standard
approach establishes the minimum criteria necessary to ensure the
correct interface at the procedure level between software written by
different programmers. If all programmers coding OpenVMS applications
follow this standard approach, modular procedures added to a procedure
library will not conflict with other procedures in the library.
Standard modular programming practices apply to OpenVMS programs that
have a public entry point. For details of this standard approach, see
the Guide to Creating OpenVMS Modular Procedures.
The OpenVMS system supports a common language environment, which
permits using a mixture of languages in programming. A program written
in any of the programming languages supported by OpenVMS can contain
calls to procedures written in other supported languages.
Mixed-language programming is possible because all supported languages
adhere to the OpenVMS calling standard. This standard describes the
techniques used by all supported languages for invoking routines and
passing data between them. It also defines the mechanisms that ensure
consistency in error and exception handling routines, regardless of the
mix of programming languages. Information about the calling standard
appears in the HP OpenVMS Calling Standard, and descriptions of how to use the calling
interface are given in Chapter 17 and Chapter 18.
The phases of a typical software development life cycle can include proposal of the concept; formulation of requirements and specifications for the software product; design, implementation, and testing of the software; and integration and maintenance of the product. Implementing the software product involves building and modifying source code modules and compiling, linking, and executing the resulting images. Testing involves refining code to optimize performance.
As part of the software development life cycle, OpenVMS operating system components and optional software products that run on OpenVMS are used to develop applications. Some of the major OpenVMS programming software components, such as editors and utilities, are listed in Table 1-2. Programming language software supported by OpenVMS is described in Section 1.5.2. Optional program development software tools that run on OpenVMS are described in Section 1.8.
The commands used to invoke some of the programming utilities (for
example, linker, debugger, LIBRARIAN) vary slightly for the three
OpenVMS text-processing utilities can be used to create and modify program source files. The DEC Text Processing Utility (DECTPU) is a high-performance text processor that can be used to create text-editing interfaces such as EVE. DECTPU includes a high-level procedure language with its own compiler and interpreter, as well as the customizable EVE editing interface. DECTPU features multiple buffers, windows, and subprocesses, and provides for text processing in batch mode. The EDT editor is an interactive text editor that provides editing in keypad and line modes. EDT supports multiple buffers, startup command files, and journaling. In general, the EVE editing interface offers more capability than EDT for complex editing tasks.
Other optional tools for creating source files on OpenVMS systems are
available separately or as part of the HP software development
The Language-Sensitive Editor/Source Code Analyzer for OpenVMS
(LSE/SCA) provides a multilanguage, multivendor editor for program
development and maintenance and also supplies cross-referencing
features and the capability to analyze source code.
OpenVMS supports a variety of optional language compilers, interpreters, and assemblers that translate source code to object code (in the form of object modules). These language implementations adhere to industry standards, including ISO, ANSI, X/Open standards as well as U.S. Federal Information Processing Standards (FIPS) and Military Standards (MIL-STD), as applicable.
Table 1-3 lists language compilers, interpreters, and assemblers supported in the OpenVMS VAX, OpenVMS Alpha, and OpenVMS I64 environments.