Availability Guide for Application Design

Designing Applications for Change
Availability Guide for Application Design525637-004
10-2
Considering Portability Requirements
Using a modular design of application and data for ease of distribution
Using version-labeled interfaces for intermodule communication
Supporting implementation through techniques such as avoiding dedicated names
or using variable or extensible procedures
Explicit action to enable upgrade
Handling changes in initialization information
The following paragraphs discuss these techniques.
Considering Portability Requirements
HP has developed a thorough and complete framework for designing an application for
portability—with particular emphasis on portability between the NonStop operating
system and Windows NT Server platforms. This analytical method considers the
following:
Application Program Interfaces
Application Architecture on page 10-6
Application Engineering on page 10-10
This method helps developers maximize their efficiency in creating platform-neutral
applications. The following subsections present portability considerations within each
of these categories.
Application Program Interfaces
Application program interfaces (APIs) are coding constructs used to invoke services or
functions from programs external to the module being coded. As such, they represent
source code that has to change if the same APIs are not available on alternative
platforms.
An application typically uses a wide set of APIs to access different resources. These
APIs, from hardware operating codes to the chosen source language, are frequently
represented as a stack with the more specific APIs in the lower levels and those
providing a greater degree of abstraction at the higher levels. The general rule for
portability is to use the highest-level API possible and to avoid direct use by the
business code of any implementation-specific API.
More specific considerations exist for:
Individual APIs
Operating System APIs
Source Languages on page 10-3
SQL APIs on page 10-4
Tuxedo APIs on page 10-5
Communication Subsystem APIs on page 10-5