# IBM Systems Application Architecture

Systems Application Architecture (SAA), introduced in 1987, is a set of standards for computer software developed by IBM. The SAA initiative was started in 1987 under the leadership of Earl Wheeler, the "Father of SAA". The intent was to implement SAA in IBM operating systems including MVS, OS/400 and OS/2. AIX—IBM's version of the UNIX operating system—was not a target of SAA, but does have interoperability with the SAA family.
SAA did not define new standards, but selected from among IBM's existing guidelines and software. IBM also purchased some third party software from developers such as Bachman Information Systems, Index Technology, Inc., and KnowledgeWare, Inc. These were intended to be implemented uniformly across all SAA compliant environments.
The standard was "designed to make application programs look and work in the same manner across the entire range of the company's personal computing systems, midrange processors and System/370 processors."
SAA was labeled "complex, obscure, and potentially difficult to learn."$^{:p.xi}$ Under Lou Gerstner IBM later quietly discontinued use of the "SAA" umbrella. By 2001, SAA was being spoken of in the past tense. However many of the individual components of SAA are still in use as of 2014.

## Common programming interface (CPI)

The Common Programming Interface attempted to standardize compilers and application programming interfaces among all systems participating in SAA, with the objective of providing "a common programming interface for the entire IBM computer product line - PCs, System/3x, System/370. This implies that under SAA, a program written for any IBM machine will run on any other".
CPI included a number of pieces:$^{:pp.46–51}$
* Programming languages — PL/I, COBOL, Fortran, C, RPG and REXX
* Application generator — IBM Cross System Product (CSP)
* Communications — Common Programming Interface for Communications (CPI-C)
* Database access — SQL
* Query interface — QMF
* Presentation interface — the OS/2 Presentation Manager was defined to be and when developed was a full implementation of the SAA presentation interface. IBM Graphical Data Display Manager (GDDM) provided compatible SAA graphics support for MVS and VM.
* Dialog interface — ISPF represented the text mode dialog interface; OS/2 represented the full graphical interface.
* Resource Recovery — Common Programming Interface: Resource Recovery (CPI-RR)

## Common user access (CUA)

Common User Access aimed at providing "a common user interface for the entire IBM product line. A user who sits down at a PC should see the same menus, keyboards and procedures that he would at a 3270 terminal."
Because of hardware differences complete commonality was impossible to attain. IBM created two CUA standards, the Basic Interface for IBM 3270 and IBM 5250 terminals, and the Advanced Interface for so-called "intelligent workstations", or PCs. The keyboard was standardized to the Model M, 101 key, "AT Enhanced" keyboard layout.$^{:pp.39–40}$

## Common communications services (CCS)

Common Communications Services defined the methods by which heterogeneous systems communicated. CCS depended on Advanced Program-to-Program Communications, also known as APPC or LU6.2, Systems Network Architecture (SNA) PU2.1 or Low Entry Networking for peer-to-peer networking, and SNA Management Services for network control.$^{:p.52}$
Three types of data links were supported:$^{:pp.56–58}$
* Synchronous Data Link Control (SDLC) high speed wide area networks
* X.25 packet-switched networks
* Token Ring local area networks (LAN)
Application Services$^{:pp.58–59}$ were provided by:
* CCS supported IBM 3270 data streams, mainly for existing devices
* Document Content Architecture specified a format for documents to be exchanged among different word processors and other software
* Intelligent Printer Data Stream (IPDS) was a page description language like Xerox Interpress or Adobe PostScript
* SNA Distribution Services (SNADS) for store and forward document transmission
* Document Interchange Architecture (DIA) for electronic mail
* Distributed Data Management Architecture (DDM) for file sharing and as the base architecture of DRDA
* Distributed Relational Database Architecture (DRDA) for sharing relational databases

## Common applications

OfficeVision was the SAA-compliant successor to PROFS and AS/400 Office for "office automation". The AD/Cycle family of development tools was intended to simplify the development of SAA applications.$^{:p.60}$