kuhn@swe.ncsl.nist.gov (Rick Kuhn) (05/04/90)
From: Rick Kuhn <kuhn@swe.ncsl.nist.gov> The Federal Information Processing Standard (FIPS) for user interface systems was approved by the Secretary of Commerce on May 1. It will be published in the Federal Register as FIPS 158. The text is given below. Briefly, the FIPS adopts X11 Release 3 X protocol, Xlib, Xt, and bitmap distribution format as a non-compulsory standard for use by Federal agencies. Release 3 was specified rather than Release 4 because Release 3 based products are much more widely available. NIST anticipates updating the standard as appropriate. Rick Kuhn Technology Bldg. B266 National Institute of Standards and Technology (formerly National Bureau of Standards) Gaithersburg, Md. 20899 +1 301/975-3337 +1 301/590-0932 - FAX DDN: kuhn@swe.ncsl.nist.gov kuhn@hook.ncsl.nist.gov DRKuhn@dockmaster.ncsc.mil ------------------------------------------------------------------------------- FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION Announcing the Standard for The User Interface Component of the Applications Portability Profile Federal Information Processing Standards Publications (FIPS PUBS) are issued by the National Institute of Standards and Technology after approval by the Secretary of Commerce pursuant to Section 111(d) of the Federal Property and Administrative Services Act of 1949 as amended by the Computer Security Act of 1987, Public Law 100-235. Name of Standard. The User Interface Component of the Applications Portability Profile. Category of Standard. Software Standard, Application Program Interface. Explanation. This publication announces the adoption of the X Protocol, Xlib Interface, Xt Intrinsics and Bitmap Distribution Format specifications of the X Window System, Version 11, Release 3 (X Window System is a trademark of the Massachusetts Institute of Technology (MIT)) as a Federal Information Processing Standard. This standard is for use by computing professionals involved in system and application software development and implementation. This standard is part of a series of specifications needed for application portability. The Appendix to this standard contains a reference model for network-based bit-mapped graphic user interface standards. This standard covers the Data Stream Encoding, Data Stream Interface, and Subroutine Foundation layers of the reference model. It is the intention of NIST to provide standards for other layers of the reference model as consensus develops within industry. This standard addresses the user interface functional area of the Applications Portability Profile that was announced in FIPS 151, POSIX: Portable Operating System Interface for Computer Environments. Approving Authority. Secretary of Commerce. Maintenance Agency. U.S. Department of Commerce, National Institute of Standards and Technology (NIST), National Computer Systems Laboratory. Cross Index. The X Window System, Version 11, Release 3. Related Documents. a. Federal Information Resources Management Regulation 201-39, Acquisition of Federal Information Processing Resources by Contracting. b. Draft Proposed American National Standard X3J11/87- 140,"Programming Language C". c. FIPS 151, POSIX: Portable Operating System Interface for Computer Environments. Objectives. This FIPS permits Federal departments and agencies to exercise more effective control over the production, management, and use of the Government's information resources. The primary objectives of this FIPS are: a. To promote portability of computer application programs at the source code level. b. To simplify computer program documentation by the use of a standard portable system interface design. c. To reduce staff hours in porting computer programs to different vendor systems and architectures. d. To increase portability of acquired skills, resulting in reduced personnel training costs. e. To maximize the return on investment in generating or purchasing computer programs by insuring operating system compatibility. f. To provide ease of use in computer systems through network-based bit-mapped graphic user interfaces with a consistent appearance. This FIPS is not intended to specify a government-wide appearance or "look and feel", but to enable agencies to develop interfaces with a consistent appearance and behavior. Individual government organizations should determine their own policies in this area. Government-wide attainment of the above objectives depends upon the widespread availability and use of comprehensive and precise standard specifications. Applicability. This FIPS should be considered for network-based bit- mapped graphic systems that are either developed or acquired for government use where distributed/networked bit-mapped graphic interfaces to multi-user computer systems are required. Specifications. The specifications for this FIPS are the following documents from the X Window System, Version 11, Release 3. These specifications define a C language source code level interface to a network-based bit-mapped graphic system. The computer program source code contained in Version 11, Release 3 is not part of the specifications for this FIPS. The specifications for this FIPS are the following documents from X Version 11, Release 3: a. X Window System Protocol, X Version 11, b. Xlib - C language X Interface, c. X Toolkit Intrinsics - C Language Interface, d. Bitmap Distribution Format 2.1. Implementation. This standard is effective (6 months after date of publication in the Federal Register). The other elements identified in the Appendix should be considered in planning for future procurements. a. Acquisition of a Conforming System. Organizations developing network-based bit-mapped graphic system applications which are to be acquired for Federal use after the effective date of this standard and which have applications portability as a requirement should consider the use of this FIPS. Conformance to this FIPS should be considered whether the network-based bit- mapped graphic system applications are: 1. developed internally, 2. acquired as part of an ADP system procurement, 3. acquired by separate procurement, 4. used under an ADP leasing arrangement, or 5. specified for use in contracts for programming services. b. Interpretation of the FIPS for the User Interface Component of the Applications Portability Profile. NIST provides for the resolution of questions regarding the FIPS specifications and requirements, and issues official interpretations as needed. All questions about the interpretation of this FIPS should be addressed to: Director National Computer Systems Laboratory Attn: APP User Interface Component FIPS Interpretation National Institute of Standards and Technology Gaithersburg, MD 20899 c. Validation of Conforming Systems. The X Testing Consortium has developed a validation suite for measuring conformance to this standard. NIST is considering the use of the X Testing Consortium validation suite as the basis for an NIST validation suite for measuring conformance to this standard. Where to Obtain Copies: Copies of this publication are for sale by the National Technical Information Service, U.S. Department of Commerce, Springfield, VA 22161. (Sale of the included specifications document is by arrangement with the Massachusetts Institute of Technology and Digital Equipment Corporation.) When ordering, refer to Federal Information Processing Standards Publication ____ (FIPSPUB____), and title. Payment may be made by check, money order, or deposit account. APPENDIX The FIPS for User Interface is part of a series of FIPS for the Applications Portability Profile (APP), first announced in FIPS 151 (POSIX). The functional components of the APP constitute a "toolbox" of standard elements that can be used to develop and maintain portable applications. The APP is an open systems architecture based upon non-proprietary standards. One of the most neglected aspects of applications software portability is the requirement to maintain a consistent user interface across all systems on which the application resides. The FIPS for User Interface is the first step in responding to a critical need within the Federal community for a set of tools to develop standard user interfaces. It is the first in a series which we intend to adopt as user interface technology progresses and consensus emerges. This initial FIPS is based upon the X Window System [1] developed by the Massachusetts Institute of Technology (MIT) X Consortium. The X Window System assumes a client/server model of distributed computing, and user interface applications based upon bit-mapped graphic displays. With this system, software vendors can develop applications that incorporate such interfaces without being concerned about the underlying display hardware on which the application runs. In addition, the application need not be resident on the same computer system as the one to which the user's display is attached. The X Window System Version 11, Release 4 has not been specified because there will be a significant time lag before products are available based upon Release 4. To specify release 4 at this time would severely limit product availability and reduce competition. However, Release 4 will be upwardly compatible with Release 3. It is the intention of NIST to revise this FIPS as appropriate. This FIPS is not intended to specify a government-wide style or "look and feel", nor is it intended as a specification of a general programming interface for graphics applications. It is intended to lay a foundation for standards that will help Federal agencies develop and acquire network-based, bit-mapped graphic user interface applications. It is customary to develop applications using toolkit interfaces that are at a higher level than the interfaces covered by this FIPS (see Reference Model in the Appendix). The interfaces specified in this FIPS are not intended to be a complete solution for application user interface development, but rather to provide a foundation on which other layers will be added as consensus emerges within the industry. The interfaces specified in this FIPS represent the consensus of the industry for lower-level X Window System interfaces. Agencies that seek to ensure portability and to reduce conversion costs are advised to acquire systems that support the interfaces specified in this FIPS, as a future toolkit standard is expected to be based on these interfaces. Agencies should develop migration strategies to ease the transition from proprietary systems to an open systems environment. The complexity of the migration towards open systems depends largely upon the extent to which proprietary interfaces are used. When portions of an application must be developed using proprietary interfaces, portability may be reduced. Developers should be aware that the source code for a toolkit may be freely available. If the source code is available, then it should be ported along with the application to another system that supports components at lower layers of the reference model. The X Window System program services and interface specifications adopted by this FIPS provide the foundation for a set of vendor independent building blocks that can be used to develop user interface applications. These specifications, however, must be extended to provide the additional program services and interface specifications for user interface applications. These additional specifications will be based on the NIST User Interface reference model shown in Figure 1. National and international standards organizations may develop standards for components of this FIPS. In particular, ANSI X3H3.6 is preparing a standard for the X Protocol, and IEEE P1201 has initiated an effort to develop a standard for Xlib. It is desirable to have only a single standard for each component. Therefore, it is the intention of NIST to reference such standards as appropriate in a revision of this FIPS. The NIST User Interface reference model is a layered model which defines the program services and interfaces required for network-based, bit-mapped graphic user interface applications. This FIPS covers the Data Stream Encoding, Data Stream Interface, and Subroutine Foundation layers of the framework. These layers provide a foundation upon which standard components for higher layers of the framework may be built. NIST User Interface Reference Model Model Layer System Component ----------------------------------------------------------------- 6: Application | Application -------------------------------------------| 5: Dialogue | | UIDL, UIMS -------------------------- | 4: Presentation | | UIDL, UIMS -------------------------------- | 3: Toolkit | | Toolkit -------------------------------------- | 2: Subroutine Foundation | | Xt Intrinsics -------------------------------------------| 1: Data Stream Interface | Xlib -------------------------------------------| 0: Data Stream Encoding | X Protocol ----------------------------------------------------------------- FIGURE 1. Layer 0: Data Stream Encoding Data Stream Encoding defines the format and sequencing of byte streams passed between client and server. In the X Window System, the Data Stream Encoding is the X "wire" or "network" protocol. As a specification of message formats, the Data Stream Encoding is independent of operating system, programming language, or network communication. Layer 1: Data Stream Interface The Data Stream Interface specifies a function call interface to build the messages defined in the Data Stream Encoding layer. In C programs for X, this interface is the Xlib function library. The Data Stream Interface converts parameters passed from a program into the bit stream that is transmitted over the network, and converts messages from the server into values passed to the program. The Data Stream Interface provides access to basic graphic functions from Layer 0, and may support system functions such as error handling and synchronization. Layer 2: Subroutine Foundation The Subroutine Foundation uses features of the Data Stream Interface to provide the means to build components of window interfaces such as scroll bars. Functions often provided by the Subroutine Foundation include initialization and destruction of objects, management of events and object hierarchy, and the saving and restoration of interface state. The Subroutine Foundation can be thought of as a toolkit with which to build toolkits. The X Window System's Xt Intrinsics set is a Subroutine Foundation for X. Layer 3: Toolkit Components such as menus, pushbuttons, scroll bars, or help boxes can be used to build an application interface. These "prefabricated" components make up the Toolkit. The components of Toolkits vary with vendors, but they typically contain most of the common user interface elements. Layer 4: Presentation The Presentation layer determines the appearance of the user interface, including aspects such as size, style, and color. It specifies how the components in the Toolkit should be composed to create windows. The appearance may be specified using a User Interface Definition Language (UIDL) and may be enforced by a window manager, which controls the size and location of windows, and decorates windows in the style specified by the user. Layer 5: Dialogue The Dialogue layer coordinates the interaction between the computer system and the user. It can be thought of as a mediator between the user and the application program. Communication between user and application program is through the Dialogue layer, which may be implemented by a User Interface Management System (UIMS). The user/application interaction is specified by a "dialogue" that associates user actions, such as clicking on a menu item, with application actions. Some UIMS tools can accept a dialogue and a presentation style from which to generate an instance of the UIMS that controls the interaction between user and application. Layer 6: Application The application program implements the functions required by the user. Its interaction with the user is through the Dialogue layer. The application may call routines at the Toolkit, Subroutine Foundation, or Data Stream Interface levels as well, but portability may be reduced. PLANS The FIPS for User Interface is an integral component of the APP. As with other components of the APP, the specifications adopted by this FIPS are expected to evolve as the technology matures, as additional experience using the technology is gained, and as consensus broadens in the national and international standards arena. NIST has established a process to ensure that the FIPS will evolve in a manner that serves the interests of both users who employ these specifications to acquire products and vendors who use them to build products. Both users and vendors are included in this process through an ongoing series of APP User Workshops and APP Implementor Workshops. The user workshops provide information on the evolving definition of the User Interface Component as well as other APP specifications. They also serve as a forum for users to identify user priorities and to provide input and feedback. The implementor workshops provide a forum for vendors to discuss the APP specifications and to provide feedback on the technical merits of the NIST proposals. The implementor workshops are designed to ensure that there is consensus on the part of the vendors building products to the evolving APP specifications. [1] Scheifler, R.W., and J. Gettys, "The X Window System," ACM Transactions on Graphics, Vol. 5, No. 2, April, 1986. Volume-Number: Volume 19, Number 102