Availability Guide for Application Design
Designing Applications for Change
Availability Guide for Application Design—525637-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