ISPF (Interactive System Productivity Facility) is a software product for the z/OS operating system (and earlier OSes) that runs on IBM mainframes. ISPF primarily provides an IBM 3270 terminal interface with a set of panels. Each panel may include menus and dialogs to run tools on the underlying Time Sharing Option (TSO).
Introduced in 1975 as SPF (Structured Programming Facility) and later renamed SPF (System Productivity Facility), then ISPF (Integrated System Productivity Facility) and finally ISPF/PDF (Integrated System Productivity Facility/Program Development Facility).
ISPF is a separately priced product from z/OS and from TSO to which it provides a more friendly user interface. Some products, such as SDSF (Spool Display and Search Facility) will run on top of ISPF and cooperate with it, will also run from a TSO READY prompt.
ISPF consists of a set of components including
- Dialog Manager (DM)
- Program Development Facility (PDF)
- Software Configuration and Library Manager (SCLM)
- Client/Server component
The Dialog Manager component provides for the ability to create custom interactive applications that will run in an ISPF environment. Panels (screens) are written in Dialog Tag Language (which bears a passing resemblance to HTML), panel definition statements, or both. Code to handle I/O from these panels or indeed any other ISPF API can be written in Assembler, C, CLIST, COBOL, PL/I, or Rexx. It is common for z/OS products to include an ISPF interface.
The Program Development Facility consists of an editor (extensible via edit macros or DM applications), browse (in which files can be viewed but not changed), and view (a hybrid of edit and view), along with panel driven DM applications for dataset allocation, search, and management.
SCLM provides versioning, auditing, and promotion of source code, object code, test cases, etc. This is an area where a number of competing products engage, including CA-Endevor and Change Man, all of which provide an interface via ISPF DM.
The Client/Server component is installable on a workstation and provides a GUI for the standard ISPF panels.
ISPF documentation is available in the IBM Knowledge Center for z/OS. There is an entire manual on the ISPF editor and writing edit macros. This is an area where many people unfamiliar with command-driven applications become frustrated: it is common for those proficient in ISPF Edit to string a set of commands together to accomplish a task, such as x all;f all dsn=;hide x
to show only those lines in JCL where a dataset name appears.
ISPF can be run as a step in a batch job, allowing the execution of non-interactive edit macros for example. Setting up such a batch job step is shop-specific, the DD statements must point to the datasets for your IT shop.