home *** CD-ROM | disk | FTP | other *** search
/ ftp.cse.unsw.edu.au / 2014.06.ftp.cse.unsw.edu.au.tar / ftp.cse.unsw.edu.au / pub / doc / standards / posix / p1003.0 / d13 / all < prev    next >
Encoding:
Text File  |  1992-10-18  |  770.6 KB  |  23,695 lines

  1.           IEEE P1003.0 Draft 13    - September 1991
  2.  
  3.  
  4.             Copyright (c) 1991 by the
  5.      Institute of Electrical and Electronics Engineers, Inc.
  6.                345 East 47th Street
  7.              New York, NY 10017, USA
  8.            All rights reserved as an unpublished work.
  9.  
  10.        This is an unapproved and unpublished IEEE Standards Draft,
  11.        subject to change.  The publication, distribution, or
  12.        copying of this draft, as well as all derivative    works based
  13.        on this draft, is expressly prohibited except as    set forth
  14.        below.
  15.  
  16.        Permission is hereby granted for    IEEE Standards Committee
  17.        participants to reproduce this document for purposes of IEEE
  18.        standardization activities only,    and subject to the
  19.        restrictions contained herein.
  20.  
  21.        Permission is hereby also granted for member bodies and
  22.        technical committees of ISO and IEC to reproduce    this
  23.        document    for purposes of    developing a national position,
  24.        subject to the restrictions contained herein.
  25.  
  26.        Permission is hereby also granted to the    preceding entities
  27.        to make limited copies of this document in an electronic
  28.        form only for the stated    activities.
  29.  
  30.        The following restrictions apply    to reproducing or
  31.        transmitting the    document in any    form:  1) all copies or
  32.        portions    thereof    must identify the document's IEEE project
  33.        number and draft    number,    and must be accompanied    by this
  34.        entire notice in    a prominent location; 2) no portion of this
  35.        document    may be redistributed in    any modified or    abridged
  36.        form without the    prior approval of the IEEE Standards
  37.        Department.
  38.  
  39.        Other entities seeking permission to reproduce this
  40.        document, or any    portion    thereof, for standardization or
  41.        other activities, must contact the IEEE Standards Department
  42.        for the appropriate license.
  43.  
  44.        Use of information contained in this unapproved draft is    at
  45.        your own    risk.
  46.  
  47.         IEEE Standards Department
  48.         Copyright and Permissions
  49.         445    Hoes Lane, P.O.    Box 1331
  50.         Piscataway,    NJ 08855-1331, USA
  51.         +1 (908) 562-3800
  52.         +1 (908) 562-1571 [FAX]
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                                                           P1003.0 Draft 13
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.                              STANDARDS PROJECT
  82.  
  83.                             Draft Guide to the
  84.                       POSIX Open Systems Environment
  85.  
  86.  
  87.                                   Sponsor
  88.                  Technical Committee on Operating Systems
  89.                        and Application Environments
  90.                                   of the
  91.                            IEEE Computer Society
  92.  
  93.  
  94.  
  95.  Abstract:  IEEE Std 1003.0-199x  presents  an  overview  of  open  system
  96.  concepts  and  their  application.   Information  is  provided to persons
  97.  evaluating systems on the existence  of,  and  interrelationships  among,
  98.  application   software   standards,   with   the  objective  of  enabling
  99.  application portability and  system  interoperability.   A  framework  is
  100.  presented  that  identifies key information system interfaces involved in
  101.  application portability and system  interoperability  and  describes  the
  102.  services   offered  across  these  interfaces.   Standards  or  standards
  103.  activities associated with the services are identified where they  exist,
  104.  or  are  in  progress.   Gaps  are  identified  where  POSIX Open Systems
  105.  Environment  (OSE)  requirements  are  not  being  addressed   currently.
  106.  Finally,  the OSE profile concept is discussed with examples from several
  107.  application domains.
  108.  
  109.  Keywords:  application portability, open systems environments,  profiles,
  110.  POSIX
  111.  
  112.  
  113.                                P1003.0 / D13
  114.                               September 1991
  115.  
  116.  
  117.                          Copyright (c) 1991 by the
  118.           Institute of Electrical and Electronics Engineers, Inc.
  119.                            345 East 47th Street
  120.                           New York, NY 10017, USA
  121.                            All rights reserved.
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  _T_h_i_s _i_s _a_n _u_n_a_p_p_r_o_v_e_d _I_E_E_E _S_t_a_n_d_a_r_d_s _D_r_a_f_t, _s_u_b_j_e_c_t _t_o _c_h_a_n_g_e. _P_e_r_m_i_s_s_i_o_n
  170.  _i_s _h_e_r_e_b_y _g_r_a_n_t_e_d _f_o_r _I_E_E_E _S_t_a_n_d_a_r_d_s _C_o_m_m_i_t_t_e_e _p_a_r_t_i_c_i_p_a_n_t_s _t_o _r_e_p_r_o_d_u_c_e
  171.  _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r _p_u_r_p_o_s_e_s _o_f _I_E_E_E _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _a_c_t_i_v_i_t_i_e_s. _P_e_r_m_i_s_s_i_o_n
  172.  _i_s _a_l_s_o _g_r_a_n_t_e_d _f_o_r _m_e_m_b_e_r _b_o_d_i_e_s _a_n_d _t_e_c_h_n_i_c_a_l _c_o_m_m_i_t_t_e_e_s _o_f _I_S_O _a_n_d _I_E_C
  173.  _t_o _r_e_p_r_o_d_u_c_e _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r _p_u_r_p_o_s_e_s _o_f _d_e_v_e_l_o_p_i_n_g _a _n_a_t_i_o_n_a_l _p_o_s_i_t_i_o_n.
  174.      _O_t_h_e_r _e_n_t_i_t_i_e_s _s_e_e_k_i_n_g _p_e_r_m_i_s_s_i_o_n _t_o _r_e_p_r_o_d_u_c_e _t_h_i_s _d_o_c_u_m_e_n_t _f_o_r
  175.    _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _o_r _o_t_h_e_r _a_c_t_i_v_i_t_i_e_s, _o_r _t_o _r_e_p_r_o_d_u_c_e _p_o_r_t_i_o_n_s _o_f _t_h_i_s
  176.      _d_o_c_u_m_e_n_t _f_o_r _t_h_e_s_e _o_r _o_t_h_e_r _u_s_e_s, _m_u_s_t _c_o_n_t_a_c_t _t_h_e _I_E_E_E _S_t_a_n_d_a_r_d_s
  177.  _D_e_p_a_r_t_m_e_n_t _f_o_r _t_h_e _a_p_p_r_o_p_r_i_a_t_e _l_i_c_e_n_s_e.  _U_s_e _o_f _i_n_f_o_r_m_a_t_i_o_n _c_o_n_t_a_i_n_e_d _i_n
  178.                 _t_h_i_s _u_n_a_p_p_r_o_v_e_d _d_r_a_f_t _i_s _a_t _y_o_u_r _o_w_n _r_i_s_k.
  179.  
  180.  IEEE Standards Department
  181.  Copyright and Permissions
  182.  445 Hoes Lane, P.O. Box 1331
  183.  Piscataway, NJ 08855-1331, USA
  184.  +1 (908) 562-3800
  185.  +1 (908) 562-1571 [FAX]
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  _S_e_p_t_e_m_b_e_r _1_9_9_1                                                   _S_H _X_X_X_X_X
  205.  
  206.  BEGIN_RATIONALE
  207.  
  208.  _E_d_i_t_o_r'_s _N_o_t_e_s
  209.  
  210.  This section will not appear in the  final  document.   It  is  used  for
  211.  editorial comments concerning this draft.
  212.  
  213.  Comments in italics are not intended to form part  of  the  final  guide;
  214.  they are editor's or coordinator comments for the benefit of reviewers.
  215.  
  216.  This draft uses small numbers in the right margin in lieu of change bars.  d
  217.  ``D''  denotes  changes  from  Draft  12 to Draft 13.  Per request of the  d
  218.  working group, I have removed all old diff-marks from  Drafts  3  through  d
  219.  12.    Purely   editorial   changes  such  as  grammar,  spelling,  cross
  220.  references,  or  removals  of  editorial  notes  are   not   diff-marked.
  221.  Unfortunately, it is not possible to accurately diff-mark the figures.
  222.  
  223.  To make draft handling in the meetings easier, each significant clause is
  224.  set  up  to  print  starting on a recto page.  This means that there is a
  225.  larger number of blank pages than in previous drafts (assuming  that  the
  226.  copy  room  handled  the print master correctly).  Just doing our bit for
  227.  deforestation ...
  228.  
  229.  This draft has not yet been converted to use proper  normative  reference  d
  230.  and bibliographic entries and cross references.  Since this will entail a  d
  231.  large amount of detailed work, I have been awaiting some degree  of  text  d
  232.  stability.   For  Draft  13,  three major sections were replaced in their  d
  233.  entirety  (and,   interestingly   enough,   all   three   were   received  d
  234.  approximately  one  month  after the input cutoff date), so I believe the  d
  235.  required stability has not yet been achieved.                              d
  236.  
  237.                                          Hal Jespersen                      d
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.                Copyright c 1991 IEEE.  All rights reserved.
  256.       This is an unapproved IEEE Standards Draft, subject to change.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  _E_d_i_t_o_r_i_a_l _C_o_n_t_a_c_t_s
  271.  
  272.  Please send comments regarding the content and approach of this document to:
  273.  
  274.          Fritz Schulz
  275.          Open Software Foundation
  276.          620 Herndon Parkway - Suite 200
  277.          Herndon, VA  22070
  278.          +1 (703) 481-9851
  279.          FAX: +1 (703) 437-0680
  280.          E-Mail: fschulz@osf.ORG
  281.  
  282.  Please report typographical errors (and index suggestions) to:
  283.  
  284.          Hal Jespersen
  285.          POSIX Software Group
  286.          447 Lakeview Way
  287.          Redwood City, CA 94062
  288.          +1 (415) 364-3410
  289.          FAX: +1 (415) 364-4498
  290.          E-Mail: hlj@Posix.COM
  291.  
  292.  (Electronic mail is preferred.)
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.                Copyright c 1991 IEEE.  All rights reserved.
  322.       This is an unapproved IEEE Standards Draft, subject to change.
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  _O_n_l_i_n_e _A_c_c_e_s_s                                                              d
  337.  
  338.  This draft is available in various electronic forms to assist the review   d
  339.  process.  Our thanks to Andrew Hume of AT&T Bell Laboratories for          d
  340.  providing online access facilities.  Note that this is a limited           d
  341.  experiment in providing online access; future drafts may be provided in    d
  342.  other forms, such as diskettes or a bulletin board arrangement, but the    d
  343.  instructions shown here are the only methods currently available.  Please  d
  344.  also observe the additional copyright restrictions that are described in   d
  345.  the online files.                                                          d
  346.  
  347.  Assuming you have access to the Internet, the scenario is approximately    d
  348.  
  349.        ftp research.att.com # research's IP address is 192.20.225.2         d
  350.        <login as netlib; password is your email address>                    d
  351.        cd posix/p1003.0/d13                                                 d
  352.        get toc index                                                        d
  353.        binary                                                               d
  354.        get p11-20.Z                                                         d
  355.  
  356.  The draft is available in several forms.  The table of contents can be     d
  357.  found in toc, pages containing a particular section are stored under the   d
  358.  section number, sets of pages are stored in files with names of the form   d
  359.  p_n-_m, and the entire draft is stored in all.  By default, files are        d
  360.  ASCII.  A .ps suffix indicates PostScript.  A .Z suffix indicates a        d
  361.  compress'_e_d file.  The file index contains a general description of the    d
  362.  files available.                                                           d
  363.  
  364.  These files are also available via electronic mail by sending a message    d
  365.  like                                                                       d
  366.  
  367.        send 3.4 4.6 6.2 from posix/p1003.0/d13                              d
  368.  
  369.  to netlib@research.att.com.  If you use email, you should _n_o_t ask for the  d
  370.  compressed version.  For a more complete introduction to this form of      d
  371.  _n_e_t_l_i_b, send the message                                                   d
  372.  
  373.        send help                                                            d
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.                Copyright c 1991 IEEE.  All rights reserved.
  388.       This is an unapproved IEEE Standards Draft, subject to change.
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  _P_O_S_I_X._0 _C_h_a_n_g_e _H_i_s_t_o_r_y
  403.  
  404.  This section is provided to track major changes between drafts.  Since it
  405.  was first added in Draft 10, earlier entries have been omitted.
  406.  
  407.     Draft 13       [September 1991]                                         d
  408.  
  409.                     - _T_o _B_e _P_r_o_v_i_d_e_d                                        d
  410.  
  411.     Draft 12       [June 1991]
  412.  
  413.                     - Clause 4.9:  Separated OLTP model discussion into     d
  414.                       two parts:  the part consistent with the POSIX OSE    d
  415.                       Model; and the ``real world'' part dealing with       d
  416.                       System Integration Interfaces.                        d
  417.  
  418.                     - Section 6:  Further clarified ``base standard'' and   d
  419.                       ``profile'' definitions.  Renamed profile ``types''.  d
  420.  
  421.                     - _A_d_d_i_t_i_o_n_a_l _T_o _B_e _P_r_o_v_i_d_e_d                             d
  422.  
  423.     Draft 11       [March 1991]
  424.  
  425.                     - _T_o _B_e _P_r_o_v_i_d_e_d
  426.  
  427.                       _H_L_J:  _I _d_o_n'_t _d_o _t_h_i_s _a_u_t_o_m_a_t_i_c_a_l_l_y _b_e_c_a_u_s_e _I _d_o_n'_t
  428.                       _k_n_o_w _w_h_a_t _i_s_s_u_e_s _y_o_u _c_o_n_s_i_d_e_r _i_m_p_o_r_t_a_n_t.  _T_h_i_s [_v_e_r_y
  429.                       _b_r_i_e_f] _t_e_x_t _s_h_o_u_l_d _b_e _p_r_o_v_i_d_e_d _b_y _e_a_c_h _S_e_c_t_i_o_n
  430.                       _L_e_a_d_e_r _a_l_o_n_g _w_i_t_h _t_h_e _r_e_g_u_l_a_r _s_u_b_m_i_s_s_i_o_n_s.  _I_t _i_s
  431.                       _m_e_a_n_t _t_o _p_r_o_v_i_d_e _c_a_s_u_a_l _r_e_a_d_e_r_s _o_f _t_h_e _g_u_i_d_e (_s_u_c_h
  432.                       _a_s _i_n _W_G_1_5, _w_h_e_r_e _t_h_e_y _d_o_n'_t _g_e_t _e_v_e_r_y _d_r_a_f_t) _w_i_t_h _a
  433.                       _b_r_o_a_d _o_v_e_r_v_i_e_w _o_f _t_h_e _b_i_g _c_h_a_n_g_e_s.
  434.  
  435.     Draft 10       [December 1990]
  436.  
  437.                     - _T_o _B_e _P_r_o_v_i_d_e_d
  438.  
  439.  END_RATIONALE
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.                Copyright c 1991 IEEE.  All rights reserved.
  454.       This is an unapproved IEEE Standards Draft, subject to change.
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  IEEE Standards documents are developed within the Technical Committees of
  470.  the IEEE Societies and the Standards Coordinating Committees of the IEEE
  471.  Standards Board.  Members of the committees serve voluntarily and without
  472.  compensation.  They are not necessarily members of the Institute.  The
  473.  standards developed within IEEE represent a consensus of the broad
  474.  expertise on the subject within the Institute as well as those activities
  475.  outside of IEEE that have expressed an interest in participating in the
  476.  development of the standard.
  477.  
  478.  Use of an IEEE Standard is wholly voluntary.  The existence of an IEEE
  479.  Standard does not imply that there are no other ways to produce, test,
  480.  measure, purchase, market, or provide other goods and services related to
  481.  the scope of the IEEE Standard.  Furthermore, the viewpoint expressed at
  482.  the time a standard is approved and issued is subject to change brought
  483.  about through developments in the state of the art and comments received
  484.  from users of the standard.  Every IEEE Standard is subjected to review
  485.  at least every five years for revision or reaffirmation.  When a document
  486.  is more than five years old and has not been reaffirmed, it is reasonable
  487.  to conclude that its contents, although still of some value, do not
  488.  wholly reflect the present state of the art.  Users are cautioned to
  489.  check to determine that they have the latest edition of any IEEE
  490.  Standard.
  491.  
  492.  Comments for revision of IEEE Standards are welcome from any interested
  493.  party, regardless of membership affiliation with IEEE.  Suggestions for
  494.  changes in documents should be in the form of a proposed change of text,
  495.  together with appropriate supporting comments.
  496.  
  497.  Interpretations:  Occasionally questions may arise regarding the meaning
  498.  of portions of standards as they relate to specific applications.  When
  499.  the need for interpretations is brought to the attention of the IEEE, the
  500.  Institute will initiate action to prepare appropriate responses.  Since
  501.  IEEE Standards represent a consensus of all concerned interests, it is
  502.  important to ensure that any interpretation has also received the
  503.  concurrence of a balance of interests.  For this reason, the IEEE and the
  504.  members of its technical committees are not able to provide an instant
  505.  response to interpretation requests except in those cases where the
  506.  matter has previously received formal consideration.
  507.  
  508.  Comments on standards and requests for interpretations should be
  509.  addressed to:
  510.  
  511.        Secretary, IEEE Standards Board
  512.        445 Hoes Lane
  513.        P.O. Box 1331
  514.        Piscataway, NJ 08855-1331
  515.  
  516.  
  517.  
  518.  
  519.                Copyright c 1991 IEEE.  All rights reserved.
  520.       This is an unapproved IEEE Standards Draft, subject to change.
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.     __________________________________________________________________
  535.     |IEEE Standards documents are adopted by the Institute of         |
  536.     |Electrical and Electronics Engineers without regard              |
  537.     |to whether their adoption may involve patents                    |
  538.     |on articles, materials, or processes.                            |
  539.     |Such adoption does not assume any liability to any patent owner, |
  540.     |nor does it assume any obligation whatever to parties adopting   |
  541.     _||t_h_e__s_t_a_n_d_a_r_d_s__d_o_c_u_m_e_n_t_s_.__________________________________________||
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.                Copyright c 1991 IEEE.  All rights reserved.
  586.       This is an unapproved IEEE Standards Draft, subject to change.
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.                                  Contents
  604.  
  605.  
  606.                                                                       PAGE
  607.  
  608.  Introduction........................................................   ii
  609.     Purpose..........................................................   ii
  610.     The POSIX Open System Environment Reference Model................   ii
  611.     Goals............................................................   ii
  612.     Benefits.........................................................   ii
  613.     Related Standards Activities.....................................   ii
  614.  
  615.  Section 1: General..................................................    1
  616.     1.1   Scope......................................................    1
  617.     1.2   Normative References.......................................    2
  618.     1.3   Conformance................................................    3
  619.  
  620.  Section 2: Terminology and General Requirements.....................    5
  621.     2.1   Conventions................................................    5
  622.     2.2   Definitions................................................    5
  623.           2.2.1  Terminology.........................................    5
  624.           2.2.2  General Terms.......................................    7
  625.           2.2.3  Abbreviations.......................................   13
  626.  
  627.  Section 3: POSIX Open System Environment............................   15
  628.     3.1   POSIX Open System Environment - General Requirements.......   16
  629.     3.2   POSIX Open System Environment Reference Model..............   19
  630.     3.3   POSIX Open System Environment Services.....................   28
  631.     3.4   POSIX Open System Environment Standards....................   29
  632.     3.5   POSIX Open System Environment Profiles.....................   32
  633.     3.6   Application Platform Implementation Considerations.........   33
  634.  
  635.  Section 4: POSIX Open System Environment Services...................   39
  636.     4.1   Language Services..........................................   43
  637.     4.2   System Services............................................   53
  638.     4.3   Network Services...........................................   77
  639.     4.4   Database Services..........................................  103
  640.     4.5   Data Interchange Services..................................  117
  641.     4.6   Windowing System Services..................................  125
  642.     4.7   Graphics Services..........................................  145
  643.     4.8   Character-Based User Interface Services....................  167
  644.     4.9   User Command Interface Services............................  173
  645.     4.10  Transaction Processing Services............................  183
  646.     4.11  Software Development Environments..........................  197
  647.  
  648.  Section 5: POSIX OSE Cross-Category Services........................  207
  649.     5.1   Internationalization.......................................  209
  650.  
  651.                Copyright c 1991 IEEE.  All rights reserved.
  652.       This is an unapproved IEEE Standards Draft, subject to change.
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  ii
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.                                                                       PAGE
  667.  
  668.     5.2   System Security Services...................................  229
  669.     5.3   Information System Management..............................  235
  670.     5.4   Fault Management...........................................  245
  671.  
  672.  Section 6: Profiles.................................................  249
  673.     6.1   Scope......................................................  249
  674.     6.2   Profile Concepts...........................................  250
  675.     6.3   Guidance to Profile Writers................................  252
  676.  
  677.  Section 7: POSIX SP Profiling Efforts...............................  261
  678.     7.1   Introduction...............................................  261
  679.     7.2   General Purpose POSIX SPs..................................  261
  680.  
  681.  Annex A (informative) Considerations for Developers of POSIX SPs....  273
  682.     A.1   Introduction...............................................  273
  683.     A.2   Scope......................................................  273
  684.     A.3   The Role of POSIX SPs......................................  274
  685.     A.4   Special Rules for POSIX SPs................................  275
  686.     A.5   Other Issues...............................................  277
  687.     A.6   Conformance to a POSIX SP..................................  279
  688.     A.7   Structure of Documentation for POSIX SPs...................  279
  689.     A.8   Rules for Drafting and Presentation of POSIX SPs...........  281
  690.  
  691.  Annex B (informative) Bibliography..................................  287
  692.  
  693.  Annex C (informative) Standards Infrastructure Description..........  289
  694.     C.1   Introduction...............................................  289
  695.     C.2   The Formal Standards Groups................................  291
  696.     C.3   The Informal Standards Organizations.......................  306
  697.  
  698.  Annex D (informative) Electronic-Mail...............................  321
  699.  
  700.  Alphabetic Topical Index............................................  323
  701.  
  702.  
  703.  FIGURES
  704.  
  705.  Figure 3-1  -  POSIX OSE Reference Model............................   20
  706.  Figure 3-2  -  POSIX OSE Reference Model - Entities.................   22
  707.  Figure 3-3  -  POSIX OSE Reference Model - Interfaces...............   24
  708.  Figure 3-4  -  POSIX OSE Reference Model - Distributed Systems......   28
  709.  Figure 3-5  -  Distributed System Environment Model.................   29
  710.  Figure 3-6  -  Service Components and Interfaces....................   33
  711.  Figure 3-7  -  Application Platform Implementation - Subdivision....   35
  712.  Figure 3-8  -  Application Platform Decomposition II - Layering.....   36
  713.  Figure 3-9  -  Application Platform Decomposition III -
  714.     Redirection......................................................   36
  715.  Figure 4-1  -  Language Service Reference Model.....................   44
  716.  
  717.                Copyright c 1991 IEEE.  All rights reserved.
  718.       This is an unapproved IEEE Standards Draft, subject to change.
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                                                        iii
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  Figure 4-2  -  System Services Reference Model......................   54
  735.  Figure 4-3  -  Realtime Metrics.....................................   57
  736.  Figure 4-4  -  POSIX Networking Reference Model.....................   78
  737.  Figure 4-5  -  ISO Networking Reference Model.......................   81
  738.  Figure 4-6  -  Relationship of ISO and POSIX OSE Network Reference
  739.     Models...........................................................   83
  740.  Figure 4-7  -  Multiple POSIX OSE APIs to Different OSI Layers......   84
  741.  Figure 4-8  -  Basic Network Services Model.........................   85
  742.  Figure 4-9  -  Directory Services Architecture......................   87
  743.  Figure 4-10  -  OSI Network Services Standards......................  101
  744.  Figure 4-11  -  The Traditional Database Model......................  105
  745.  Figure 4-12  -  POSIX Database Reference Model......................  106
  746.  Figure 4-13  -  Data Interchange Reference Model....................  118
  747.  Figure 4-14  -  Windowing Reference Model...........................  127
  748.  Figure 4-15  -  Computer Graphics Reference Model Level Structure...  149
  749.  Figure 4-16  -  POSIX OSE Graphics Service Reference Model..........  150
  750.  Figure 4-17  -  POSIX OSE Graphics Service Reference Model
  751.     Standards........................................................  156
  752.  Figure 4-18  -  Character-based Terminal Reference Model............  168
  753.  Figure 4-19  -  POSIX OSE Reference Model for Command Interfaces....  174
  754.  Figure 4-20  -  The Conventional Transaction Processing Model.......  186
  755.  Figure 4-21  -  The POSIX OSE Transaction Processing Reference
  756.     Model............................................................  187
  757.  Figure 4-22  -  Software Development Model..........................  199
  758.  Figure 4-23  -  Software Development Reference Model................  200
  759.  Figure 6-1  -  Development of a Profile.............................  258
  760.  Figure A-1  -  Universe of Profiles and Standards...................  274
  761.  Figure C-1  -  International and National Standards Bodies..........  291
  762.  Figure C-2  -  Selected Major Standards and Standards-Influencing
  763.     Bodies...........................................................  292
  764.  Figure C-3  -  IEEE Standards Diagram...............................  302
  765.  
  766.  
  767.  TABLES
  768.  
  769.  Table 4-1  -  Language Standards Activities.........................   49
  770.  Table 4-2  -  System Services Standards Activities..................   67
  771.  Table 4-3  -  Functionality of POSIX.1 Standard.....................   69
  772.  Table 4-4  -  Current Networking Standards..........................   98
  773.  Table 4-5  -  Emerging Networking Standards.........................   99
  774.  Table 4-6  -  Gaps in Networking Standards..........................  100
  775.  Table 4-7  -  Database Standards....................................  111
  776.  Table 4-8  -  Data Interchange Standards............................  121
  777.  Table 4-9  -  Windowing Standards...................................  140
  778.  Table 4-10  -  Shell and Utilities Standards Activities.............  179
  779.  Table 4-11  -  Transaction Processing Standards Activities..........  192
  780.  Table 4-12  -  Transaction Processing Standards Language Bindings...  193
  781.  Table 4-13  -  Software Development Standards Activities............  202
  782.  
  783.                Copyright c 1991 IEEE.  All rights reserved.
  784.       This is an unapproved IEEE Standards Draft, subject to change.
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  iv
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  Table 7-1  -  POSIX SPs In Progress.................................  262
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.                Copyright c 1991 IEEE.  All rights reserved.
  850.       This is an unapproved IEEE Standards Draft, subject to change.
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                                                                          v
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.                                Introduction
  867.  
  868.  
  869.  
  870.  (This Introduction is not a normative part of P1003.0 Guide to the POSIX
  871.  Open Systems Environment, but is included for information only.)
  872.  
  873.  
  874.  Purpose
  875.  
  876.  There are many standards efforts going on throughout the world today.
  877.  Standards are being developed in many areas of computing technology such
  878.  as:
  879.  
  880.      - Electrical Connectors
  881.  
  882.      - Disk Interfaces
  883.  
  884.      - Network Interfaces
  885.  
  886.      - Application Program Interfaces
  887.  
  888.  Each standards effort typically addresses a very small portion of the
  889.  overall needs of an information processing system.
  890.  
  891.  This guide is an attempt bring together many different standards
  892.  sufficient to address the scope of an entire information processing
  893.  system.  This combination of standards and specifications that are
  894.  sufficient to address all of the user requirements of an information
  895.  processing system is called an Open System Environment.
  896.  
  897.  User requirements and standards to meet those requirements are
  898.  continuously expanding.  As such, this guide will need regular revision
  899.  to incorporate new user requirements and the new standards that evolve to
  900.  meet those user requirements.
  901.  
  902.  This guide is not a standard itself; it merely identifies standards that
  903.  can be used when constructing a complete information processing system.
  904.  
  905.  It may never be necessary to implement an information processing system
  906.  that provides every standard in the POSIX Open System Environment.
  907.  Typically a subset of the standards is sufficient to satisfy the
  908.  particular user requirements in each situation.
  909.  
  910.  This process of selecting standards for a particular application is
  911.  called profiling.  Recommendations for the production of different types
  912.  of profiles are included in the guide.
  913.  
  914.  
  915.                Copyright c 1991 IEEE.  All rights reserved.
  916.       This is an unapproved IEEE Standards Draft, subject to change.
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  vi                                                           Introduction
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  This guide is intended to be used by any computer user interested in
  931.  using standards in their information processing systems including:
  932.  consumers, systems integrators, application developers, systems
  933.  providers, and procurement agencies.
  934.  
  935.  Taken as a whole, the guide maps existing and emerging standards onto the
  936.  general requirements of a complete information processing system.  In
  937.  addition to listing and categorizing existing standards efforts, the
  938.  guide identifies important requirements that standards efforts have not
  939.  yet addressed.
  940.  
  941.  The POSIX Open System Environment Reference Model
  942.  
  943.  To describe the POSIX Open System Environment, the guide develops a
  944.  reference model used to classify information processing standards.  The
  945.  reference model breaks standards into three general categories:
  946.  
  947.      - Platform External Interface Standards--These standards affect how
  948.        an information processing system interacts with its external
  949.        environment.  These standards affect system interoperability, user
  950.        interface look and feel, and data portability.
  951.  
  952.      - Application Program Interface Standards--These standards affect how
  953.        application software interacts with the computer system.  These
  954.        standards affect application portability.
  955.  
  956.      - System Integration Interface Standards--These interfaces have no
  957.        direct impact on the external interface of a system or the
  958.        application program interface to the system.  These interfaces are
  959.        between the various parts of an information processing system.
  960.        These standards are very important because they allow a user to
  961.        independently procure portions of their information processing
  962.        systems from multiple vendors according to each user's needs.
  963.  
  964.  The information processing system is broken into major component areas.
  965.  Using the reference model, a general set of requirements for each
  966.  component area is developed.  For each of the requirements existing or
  967.  emerging standards are identified that address the requirement.  If a
  968.  requirement is not completely met by an existing or emerging standard,
  969.  this gap in the standards is noted.
  970.  
  971.  Goals
  972.  
  973.  There are three goals of the POSIX OSE:  portability, interoperability,
  974.  and user portability.  (While these terms are formally defined later in
  975.  this guide and within various referenced standards, the following
  976.  descriptions provide an overview of their meaning.)
  977.  
  978.  
  979.  
  980.  
  981.                Copyright c 1991 IEEE.  All rights reserved.
  982.       This is an unapproved IEEE Standards Draft, subject to change.
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  Goals                                                                 vii
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.     Portability
  997.  
  998.           Portability is accomplished through the use of the respective
  999.           system/application interface standards and their extensions,
  1000.           thus allowing a user's application to operate on a wide range of
  1001.           systems.  It is important to note that the aforementioned phrase
  1002.           ``wide range of systems'' connotes diverse hardware as well as
  1003.           software platforms.
  1004.  
  1005.           Using standards to provide application portability also will
  1006.           allow an application to be moved to systems with varying compute
  1007.           capabilities based on the performance needs of the application.
  1008.  
  1009.     Interoperability
  1010.  
  1011.           Interoperability is characterized by the cooperative operation
  1012.           of applications resident on dissimilar computer systems.  This
  1013.           cooperative operation is illustrated by data and functionality
  1014.           exchange.
  1015.  
  1016.     User Portability
  1017.  
  1018.           User portability will allow users to move from system to system
  1019.           and between different applications on the same system with a
  1020.           minimum of retraining.
  1021.  
  1022.  Benefits
  1023.  
  1024.  The benefits derived in the use of the POSIX Open System Environment are
  1025.  real and quantifiable.
  1026.  
  1027.     Simplified Vendor Mixing System Integration
  1028.  
  1029.           As the standards for system integration and system
  1030.           interoperability are produced and implemented, the users will
  1031.           have the choice of mixing software and equipment from multiple
  1032.           vendors.  This will allow users to tailor their information
  1033.           processing system to their particular needs by selecting their
  1034.           hardware based on the application needs rather than its ability
  1035.           to interoperate with their existing equipment.
  1036.  
  1037.     Efficient Development and Implementation
  1038.  
  1039.           Normally, systems users and providers have development and
  1040.           implementation activities that utilize personnel possessing
  1041.           skills in a specific computer environment.  As a result of this
  1042.           specialization, a change in the target computer environment for
  1043.           a developer requires significant retraining expense.  As
  1044.           standards for application portability, system interoperability,
  1045.  
  1046.  
  1047.                Copyright c 1991 IEEE.  All rights reserved.
  1048.       This is an unapproved IEEE Standards Draft, subject to change.
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  viii                                                         Introduction
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.           and system integration are developed, computer personnel will
  1063.           begin to develop skills in working with these standards.  When
  1064.           these standards are widely used there will be large pool of
  1065.           personnel who are familiar with working with the standards.
  1066.  
  1067.           This will allow a company to hire personnel with existing skills
  1068.           which can be put to use in their operation.  In addition, within
  1069.           a company, resources can be redeployed between development
  1070.           efforts with a minimum of retraining.
  1071.  
  1072.           As the basic interfaces are developed and well defined, higher
  1073.           level standardized interfaces can be developed that add value to
  1074.           the basic interfaces.  Using the higher level interfaces may
  1075.           speed development efforts.
  1076.  
  1077.     Efficient Porting of Applications
  1078.  
  1079.           The difficulty of moving an application from one
  1080.           hardware/software environment to another is widely known.  The
  1081.           porting of an application that uses standards-based interfaces
  1082.           to another system that provides the same standards-based
  1083.           interfaces is considerably simpler than ports involving
  1084.           completely different systems.  The amount of system tailoring
  1085.           (i.e., changes to either the operating or application system
  1086.           required to make them work well together) is greatly reduced.
  1087.  
  1088.     Broadened Basis for Computer System Procurement Decisions
  1089.  
  1090.           Computer users can now select and match hardware and software
  1091.           components from potentially different suppliers to fulfill an
  1092.           application requirement.  This in turn allows decisions
  1093.           regarding computer systems procurements to be based less upon
  1094.           constraints imposed by incumbent vendors' products.  The basis
  1095.           for competition will refocus on such factors as price, quality,
  1096.           value-added features, performance, and support.  The stimulation
  1097.           of competition will benefit providers and users.
  1098.  
  1099.     Reduced Personnel Training
  1100.  
  1101.           Both providers and users of computer systems face high training
  1102.           costs when they switch hardware/software environments within
  1103.           which their application exists.  Usage of standards makes
  1104.           inroads into reducing the costs of retraining users of all
  1105.           types.  Reduced training will be incurred for developers and
  1106.           end-users alike.
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.                Copyright c 1991 IEEE.  All rights reserved.
  1114.       This is an unapproved IEEE Standards Draft, subject to change.
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  Benefits                                                               ix
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  Related Standards Activities
  1129.  
  1130.  The Standards Subcommittee of the IEEE Technical Committee on Operating
  1131.  Systems and Application Environments has authorized other standards
  1132.  activities that are related to the content of this guide.
  1133.  
  1134.  The following areas are under active consideration at this time, or are
  1135.  expected to become active in the near future:1)
  1136.  
  1137.      (1)  Language-independent service descriptions of the POSIX.1 {2}
  1138.           system application program interface (API)
  1139.  
  1140.      (2)  C, Ada, and FORTRAN Language bindings to (1)
  1141.  
  1142.      (3)  Shell and Utility facilities
  1143.  
  1144.      (4)  Verification testing methods
  1145.  
  1146.      (5)  Realtime facilities
  1147.  
  1148.      (6)  Secure/Trusted System considerations
  1149.  
  1150.      (7)  Network interface facilities
  1151.  
  1152.      (8)  System Administration
  1153.  
  1154.      (9)  Graphical User Interfaces
  1155.  
  1156.     (10)  Profiles describing application- or user-specific combinations
  1157.           of Open Systems standards for:  supercomputing, multiprocessor,
  1158.           and batch extensions; transaction processing; realtime systems;
  1159.           and multiuser systems based on historical models
  1160.  
  1161.  Extensions are approved as ``amendments'' or ``revisions'' to this
  1162.  document, following the IEEE and ISO/IEC Procedures.
  1163.  
  1164.  Approved amendments are published separately until the full document is
  1165.  reprinted and such amendments are incorporated in their proper positions.
  1166.  
  1167.  
  1168.  
  1169.  __________
  1170.   1) A _S_t_a_n_d_a_r_d_s _S_t_a_t_u_s _R_e_p_o_r_t that lists all current IEEE Computer
  1171.      Society standards projects is available from the IEEE Computer
  1172.      Society, 1730 Massachusetts Avenue NW, Washington, DC 20036-1903;
  1173.      Telephone: +1 202 371-0101; FAX: +1 202 728-9614.  Working drafts of
  1174.      POSIX standards under development are also available from this
  1175.      office.
  1176.  
  1177.  
  1178.  
  1179.                Copyright c 1991 IEEE.  All rights reserved.
  1180.       This is an unapproved IEEE Standards Draft, subject to change.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  x                                                            Introduction
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  If you have interest in participating in the TCOS working groups
  1195.  addressing these issues, please send your name, address, and phone number
  1196.  to the Secretary, IEEE Standards Board, Institute of Electrical and
  1197.  Electronics Engineers, Inc., P.O. Box 1331, 445 Hoes Lane, Piscataway, NJ
  1198.  08855-1331, and ask to have this forwarded to the chairperson of the
  1199.  appropriate TCOS working group.  If you have interest in participating in
  1200.  this work at the international level, contact your ISO/IEC national body.
  1201.  
  1202.  P1003.0 was prepared by the 1003.0 working group, sponsored by the
  1203.  Technical Committee on Operating Systems and Application Environments of
  1204.  the IEEE Computer Society.  At the time this standard was approved, the
  1205.  membership of the 1003.0 working group was as follows:
  1206.  
  1207.                  Technical Committee on Operating Systems
  1208.                     and Application Environments (TCOS)
  1209.  
  1210.                        Chair:   Jehan-Franc,ois Pa^ris
  1211.  
  1212.                         TCOS Standards Subcommittee
  1213.  
  1214.                        Chair:         Jim Isaak
  1215.                        Vice Chairs:   Ralph Barker
  1216.                                       Robert Bismuth
  1217.                                       Hal Jespersen
  1218.                                       Lorraine Kevra
  1219.                                       Pete Meier
  1220.                        Treasurer:     Quin Hahn
  1221.                        Secretary:     Shane McCarron
  1222.  
  1223.                       1003.0 Working Group Officials
  1224.  
  1225.        Chair:              Allen Hankinson
  1226.        Vice Chair:         Kevin Lewis
  1227.        Document Editor:    Hal Jespersen (sponsored by Mike Lambert)
  1228.        Technical Editor:   Fritz Schulz
  1229.        Secretary:          Charles Severance
  1230.  
  1231.                                Working Group
  1232.  
  1233.  <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.                Copyright c 1991 IEEE.  All rights reserved.
  1246.       This is an unapproved IEEE Standards Draft, subject to change.
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                                                         xi
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  The following persons were members of the 1003.0 Balloting Group that
  1261.  approved the standard for submission to the IEEE Standards Board:
  1262.  
  1263.             <_N_a_m_e>   <_I_n_s_t_i_t_u_t_i_o_n> _I_n_s_t_i_t_u_t_i_o_n_a_l _R_e_p_r_e_s_e_n_t_a_t_i_v_e
  1264.  
  1265.  <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>     <_N_a_m_e _t_o _b_e _p_r_o_v_i_d_e_d>
  1266.  
  1267.  When the IEEE Standards Board approved this standard on <_d_a_t_e _t_o _b_e
  1268.  _p_r_o_v_i_d_e_d>, it had the following membership:
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.                                    (to be pasted in by IEEE)
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.                Copyright c 1991 IEEE.  All rights reserved.
  1312.       This is an unapproved IEEE Standards Draft, subject to change.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  xii                                                          Introduction
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                                                                P1003.0/D13
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  Guide to the POSIX Open Systems Environment
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.                             Section 1: General
  1347.  
  1348.  
  1349.  
  1350.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _K_e_v_i_n _L_e_w_i_s
  1351.  
  1352.  
  1353.  
  1354.  1.1  Scope
  1355.  
  1356.  This guide identifies parameters for an open system environment using the
  1357.  POSIX operating system/application interface as the platform.  These
  1358.  parameters are determined in three basic ways:
  1359.  
  1360.      (1)  By specifying building blocks identified as components
  1361.  
  1362.           Currently these components are:  system services, networking,
  1363.           human/computer interaction (HCI), graphics, system security and
  1364.           privacy, database, data interchange, and language requirements.
  1365.           This guide identifies the standards required within each
  1366.           component to achieve the goals of a POSIX open system.
  1367.  
  1368.      (2)  By identifying intra- and intercomponent issues
  1369.  
  1370.           These issues involve the relationships that should exist between
  1371.           and among the different components.  It is in the attempt to lay
  1372.           out and address these relationships that the concept of profiles
  1373.           (see 2.2.2 and Section 6) arises.
  1374.  
  1375.  
  1376.  
  1377.                Copyright c 1991 IEEE.  All rights reserved.
  1378.       This is an unapproved IEEE Standards Draft, subject to change.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  1.1 Scope                                                               1
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  1391.  
  1392.      (3)  By identifying voids
  1393.  
  1394.           A void is determined by the absence, or lack of maturity, of
  1395.           formal standards development efforts.  Voids may exist within
  1396.           available standards or may be an entire component.  This guide
  1397.           provides assistance to those users who have already constructed,
  1398.           or plan to construct, profiles and to those users who currently
  1399.           use, or plan to use, profiles.  The profile concept allows users
  1400.           to identify those standards that address their specific needs.
  1401.           The profile also serves to identify the need for future
  1402.           standards development in a specific area.  This guide explains
  1403.           the manner in which these standards relate to each other.
  1404.  
  1405.  
  1406.  
  1407.  1.2  Normative References
  1408.  
  1409.  _H_L_J:  _A _l_i_s_t _o_f _r_e_f_e_r_e_n_c_e_d _s_t_a_n_d_a_r_d_s _a_n_d _o_t_h_e_r _p_u_b_l_i_c_a_t_i_o_n_s _n_e_e_d_s _t_o _b_e
  1410.  _p_r_o_v_i_d_e_d, _c_o_n_t_r_a_s_t_e_d _a_g_a_i_n_s_t _t_h_e _l_i_s_t _o_f _i_n_t_e_r_e_s_t_i_n_g _b_a_c_k_g_r_o_u_n_d _d_o_c_u_m_e_n_t_s
  1411.  _t_h_a_t _s_h_o_u_l_d _g_o _i_n_t_o _t_h_e _b_i_b_l_i_o_g_r_a_p_h_y, _i_n_c_l_u_d_e_d _a_s _A_p_p_e_n_d_i_x _C.  _I _h_a_v_e
  1412.  _i_n_c_l_u_d_e_d _s_o_m_e _d_u_m_m_y _r_e_f_e_r_e_n_c_e_s _h_e_r_e, _s_o _y_o_u _c_a_n _s_e_e _t_h_e _s_t_y_l_e; _t_h_e_s_e
  1413.  _s_t_a_n_d_a_r_d_s _n_e_e_d _n_o_t _b_e _a_p_p_r_o_p_r_i_a_t_e _n_o_r_m_a_t_i_v_e _r_e_f_e_r_e_n_c_e_s.
  1414.  
  1415.  The following standards contain provisions which, through references in
  1416.  this text, constitute provisions of this guide.  At the time of
  1417.  publication, the editions indicated were valid.  All standards are
  1418.  subject to revision, and parties to agreements based on this part of this
  1419.  International Standard are encouraged to investigate the possibility of
  1420.  applying the most recent editions of the standards listed below.  Members
  1421.  of IEC and ISO maintain registers of currently valid International
  1422.  Standards.
  1423.  
  1424.  {1}   ISO 8859-1: 1987, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g--_8-_b_i_t _s_i_n_g_l_e-_b_y_t_e _c_o_d_e_d
  1425.        _g_r_a_p_h_i_c _c_h_a_r_a_c_t_e_r _s_e_t_s--_P_a_r_t _1: _L_a_t_i_n _a_l_p_h_a_b_e_t _N_o. _1.1)
  1426.  
  1427.  {2}   ISO/IEC 9945-1: 1990, _I_n_f_o_r_m_a_t_i_o_n _t_e_c_h_n_o_l_o_g_y--_P_o_r_t_a_b_l_e _o_p_e_r_a_t_i_n_g
  1428.        _s_y_s_t_e_m _i_n_t_e_r_f_a_c_e (_P_O_S_I_X)--_P_a_r_t _1:  _S_y_s_t_e_m _a_p_p_l_i_c_a_t_i_o_n _p_r_o_g_r_a_m_m_i_n_g
  1429.        _i_n_t_e_r_f_a_c_e (_A_P_I) [_C _L_a_n_g_u_a_g_e]
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  __________
  1438.   1) ISO documents can be obtained from the ISO office, 1, rue de Varembe',
  1439.      Case Postale 56, CH-1211, Gene`ve 20, Switzerland/Suisse.
  1440.  
  1441.  
  1442.  
  1443.                Copyright c 1991 IEEE.  All rights reserved.
  1444.       This is an unapproved IEEE Standards Draft, subject to change.
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  2                                                               1 General
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  1457.  
  1458.  1.3  Conformance
  1459.  
  1460.  Not applicable.                                                            d
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.                Copyright c 1991 IEEE.  All rights reserved.
  1510.       This is an unapproved IEEE Standards Draft, subject to change.
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  1.3 Conformance                                                         3
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                                                                P1003.0/D13
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.               Section 2: Terminology and General Requirements
  1598.  
  1599.  
  1600.  
  1601.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _J_o_h_n _W_i_l_l_i_a_m_s
  1602.  
  1603.  
  1604.  
  1605.  2.1  Conventions
  1606.  
  1607.  This guide uses the following typographic conventions:
  1608.  
  1609.      - The _i_t_a_l_i_c font is used for cross references to defined terms
  1610.        within 1.3, 2.2.1, and 2.2.2.
  1611.  
  1612.                                                                             d
  1613.  
  1614.  In some cases tabular information is presented ``inline;'' in others it
  1615.  is presented in a separately labeled Table.  This arrangement was
  1616.  employed purely for ease of typesetting and there is no normative
  1617.  difference between these two cases.
  1618.  
  1619.  The typographic conventions listed above are for ease of reading only.
  1620.  Editorial inconsistencies in the use of typography are unintentional and
  1621.  have no normative meaning in this guide.
  1622.  
  1623.  NOTEs provided as parts of labeled Tables and Figures are integral parts
  1624.  of this guide (normative).  Footnotes and NOTEs within the body of the
  1625.  text are for information only (nonnormative).
  1626.  
  1627.  
  1628.  2.2  Definitions
  1629.  
  1630.  
  1631.  2.2.1  Terminology
  1632.  
  1633.  For the purposes of this guide, the following definitions apply:
  1634.  
  1635.  
  1636.  2.2.1.1  implementation defined:  An indication that the implementation
  1637.  shall define and document the requirements for correct program constructs
  1638.  and correct data of a value or behavior.
  1639.  
  1640.  
  1641.                Copyright c 1991 IEEE.  All rights reserved.
  1642.       This is an unapproved IEEE Standards Draft, subject to change.
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  2.2 Definitions                                                         5
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  1655.  
  1656.  2.2.1.2  informative:  Providing or disclosing information; instructive.   d
  1657.  
  1658.  Used in standards to indicate a portion of the text that poses no          d
  1659.  requirements; the opposite of _n_o_r_m_a_t_i_v_e.                                   d
  1660.  
  1661.  
  1662.  2.2.1.3  may:  An indication of an optional feature.
  1663.  
  1664.  With respect to implementations, the word _m_a_y is to be interpreted as an
  1665.  optional feature that is not required in this guide, but can be provided.
  1666.  
  1667.  2.2.1.4  normative:  Of, pertaining to, or prescribing a norm or           d
  1668.  standard.                                                                  d
  1669.  
  1670.  Used in standards to indicate a portion of the text that poses             d
  1671.  requirements.                                                              d
  1672.  
  1673.  
  1674.  2.2.1.5  should:  With respect to implementations, an indication of an
  1675.  implementation recommendation, but not a requirement.
  1676.  
  1677.  2.2.1.6  POSIX:  The term ``POSIX'' has been evolving recently into a
  1678.  generally positive term with, unfortunately, a number of different
  1679.  meanings.  This subclause attempts to define the word and some related
  1680.  terms.  The intent is to insure that the term POSIX is used in a useful
  1681.  and predictable manner in this document.
  1682.  
  1683.  As background, note that POSIX is sometimes used to denote the formal
  1684.  standard IEEE Standard 1003.1-1990, sometimes to denote that standard
  1685.  plus related standards and drafts emerging from IEEE P1003.x working
  1686.  groups, and sometimes to denote the groups themselves.  In all those
  1687.  cases, it should be noted, POSIX is used as a noun.
  1688.  
  1689.  This document will use the term ``POSIX'' only as an adjective, and will
  1690.  use it only in well defined ways.  This subclause serves as a preview of
  1691.  the usages in this book of POSIX terms.  (These terms are defined,
  1692.  formally, or informally in subsequent clauses, and you will be referred
  1693.  to those clauses as appropriate.)
  1694.  
  1695.  The original POSIX standard will be referred to by its name, ISO 9945,
  1696.  and not by the term POSIX.
  1697.  
  1698.  The IEEE groups developing standards related to ISO 9945 are called, in
  1699.  this document, _P_O_S_I_X _w_o_r_k_i_n_g _g_r_o_u_p_s.  Examples are the IEEE working
  1700.  groups P1003.2, P1003.3, etc.  The groups' names will be abbreviated
  1701.  POSIX.2, POSIX.3, etc.
  1702.  
  1703.  The standards emerging out of the POSIX working groups will be referred
  1704.  to by their formal names (e.g., IEEE P1003.2 Draft 9) and are called
  1705.  
  1706.  
  1707.                Copyright c 1991 IEEE.  All rights reserved.
  1708.       This is an unapproved IEEE Standards Draft, subject to change.
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  6                                  2 Terminology and General Requirements
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  1721.  
  1722.  either _P_O_S_I_X _B_a_s_e _S_t_a_n_d_a_r_d_s or _P_O_S_I_X _S_t_a_n_d_a_r_d_i_z_e_d _P_r_o_f_i_l_e_s (POSIX SPs).
  1723.  
  1724.  
  1725.  2.2.2  General Terms
  1726.  
  1727.  For the purposes of this guide, the following definitions apply:
  1728.  
  1729.  
  1730.  2.2.2.1  application:  The use of capabilities (services/facilities)
  1731.  provided by an information system specific to the satisfaction of a set
  1732.  of user requirements.
  1733.  NOTE:  These capabilities include hardware, software, and data.
  1734.  
  1735.  
  1736.  2.2.2.2  application platform:  A set of resources that support the
  1737.  services on which an application or application software will run.
  1738.  
  1739.  The application platform provides services at its interfaces that, as
  1740.  much as possible, make the specific characteristics of the platform
  1741.  transparent to the application.
  1742.  
  1743.  
  1744.  2.2.2.3  application program interface (API):  The interface between the
  1745.  applications software and the applications platform, across which all
  1746.  services are provided.
  1747.  
  1748.  The application program interface is primarily in support of application
  1749.  portability, but system and application interoperability are also
  1750.  supported via the communications API.
  1751.  
  1752.  2.2.2.4  application software:  Software that is specific to an
  1753.  application and is composed of programs, data, and documentation.
  1754.  
  1755.  
  1756.  2.2.2.5  Applications Environment Profile (AEP):  A profile, specifying a  d
  1757.  complete and coherent subset of an OSE, in which standards, options, and   d
  1758.  parameters chosen are necessary to support a class of applications.        d
  1759.  
  1760.  AEPs are intended for use in procurement, conformance testing, and
  1761.  designating a software engineering target.
  1762.  
  1763.  2.2.2.6  base standard:  A standard or specification that is recognized
  1764.  as appropriate for normative reference in a profile by the body adopting
  1765.  that profile.
  1766.  
  1767.  
  1768.  2.2.2.7  Communications Interface:  The boundary between application
  1769.  software and the external environment, such as other application
  1770.  software, external data transport facilities, and devices.
  1771.  
  1772.  
  1773.                Copyright c 1991 IEEE.  All rights reserved.
  1774.       This is an unapproved IEEE Standards Draft, subject to change.
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  2.2 Definitions                                                         7
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  1787.  
  1788.  The services provided are those whose protocol state, syntax, and format
  1789.  all must be standardized for interoperability.
  1790.  
  1791.  
  1792.  2.2.2.8  domain:  A field of influence, such as office or industrial
  1793.  automation, transaction processing, or realtime control systems.
  1794.  
  1795.  2.2.2.9  External Environment Interface (EEI):  The interface between the
  1796.  application platform and the external environment across which
  1797.  information is exchanged.
  1798.  
  1799.  The External Environment Interface is defined primarily in support of
  1800.  system and application interoperability.
  1801.  
  1802.  The primary services present at the External Environment Interface
  1803.  comprise:
  1804.  
  1805.      - Human/Computer Interaction Services
  1806.  
  1807.      - Information Services
  1808.  
  1809.      - Communications Services
  1810.  
  1811.  
  1812.  2.2.2.10  external environment:  A set of external entities to the
  1813.  application platform in which information is exchanged.
  1814.  
  1815.  These devices include displays, disk drives, sensors, and effectors
  1816.  directly accessible within the system.
  1817.  
  1818.  2.2.2.11  hardware:  Physical equipment used in data processing as
  1819.  opposed to programs, procedures, rules, and associated documentation.
  1820.  
  1821.  
  1822.  2.2.2.12  Human/Computer Interface:  The boundary across which physical
  1823.  interaction between a human being and the application platform takes
  1824.  place.
  1825.  
  1826.  2.2.2.13  Information Interchange Interface:  The boundary across which
  1827.  external, persistent storage service is provided.
  1828.  
  1829.  Only the format is required to be specified for data portability and
  1830.  interoperability.
  1831.  
  1832.  
  1833.  2.2.2.14  interface:  The shared boundary between two functional units,
  1834.  defined by functional characteristics and other characteristics, as
  1835.  appropriate.
  1836.  
  1837.  
  1838.  
  1839.                Copyright c 1991 IEEE.  All rights reserved.
  1840.       This is an unapproved IEEE Standards Draft, subject to change.
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  8                                  2 Terminology and General Requirements
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  1853.  
  1854.  2.2.2.15  internationalization:  The process of designing and developing
  1855.  a product with a set of features, functions, and options intended to
  1856.  facilitate the adaptation of the product to satisfy a variety of cultural
  1857.  environments.
  1858.  
  1859.  
  1860.  2.2.2.16  interoperability:  The ability of two or more systems to
  1861.  exchange information and to mutually use the information that has been
  1862.  exchanged.
  1863.  
  1864.  2.2.2.17  language-binding API:  The interface between applications and    d
  1865.  application platforms based on language-independent binding APIs and       d
  1866.  consistent with the paradigms used for a specific programming language.    d
  1867.  
  1868.  
  1869.  2.2.2.18  language-independent service specification:  A specification     d
  1870.  that facilitates the management and development of consistent language-    d
  1871.  binding standards.                                                         d
  1872.  
  1873.  2.2.2.19  locale:  A description of a cultural environment.
  1874.  
  1875.  
  1876.  2.2.2.20  localization:  The process of utilizing the
  1877.  internationalization features to create a version of the product for a
  1878.  specific culture.
  1879.  
  1880.  2.2.2.21  local adaptation:  The process of modifying a product that has
  1881.  hard-coded biases of one culture to the hard-coded biases of another
  1882.  culture.
  1883.  
  1884.  
  1885.  2.2.2.22  open specifications:  Public specifications that are maintained
  1886.  by an open, public consensus process to accommodate new technologies over
  1887.  time and that are consistent with international standards.
  1888.  
  1889.  2.2.2.23  Open System Application Program Interface:  A combination of
  1890.  standards-based interfaces specifying a complete interface between an
  1891.  application program and the underlying application platform.
  1892.  
  1893.  This is divided into the following parts:
  1894.  
  1895.      - Human/Computer Interaction Services API
  1896.  
  1897.      - Information Services API
  1898.  
  1899.      - Communications Services API
  1900.  
  1901.      - System Services API
  1902.  
  1903.  
  1904.  
  1905.                Copyright c 1991 IEEE.  All rights reserved.
  1906.       This is an unapproved IEEE Standards Draft, subject to change.
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  2.2 Definitions                                                         9
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  1919.  
  1920.  2.2.2.24  open system:  A system that implements sufficient open
  1921.  specifications for interfaces, services, and supporting formats to enable
  1922.  properly engineered applications software:
  1923.  
  1924.      - to be ported with minimal changes across a wide range of systems
  1925.  
  1926.      - to interoperate with other applications on local and remote systems
  1927.  
  1928.      - to interact with users in a style that facilitates user
  1929.        portability.
  1930.  
  1931.  
  1932.  2.2.2.25  Open System Environment (OSE):  The comprehensive set of         d
  1933.  interfaces, services, and supporting formats, plus user aspects for        d
  1934.  interoperability or for portability of applications, data, or people, as   d
  1935.  specified by information technology standards and profiles.                d
  1936.  
  1937.  2.2.2.26  performance:  A measure of a computer system or subsystem to
  1938.  perform its functions; for example, response time, throughput, number of
  1939.  transactions per second.
  1940.  
  1941.  
  1942.  2.2.2.27  performance evaluation:  The technical assessment of a system
  1943.  or system component to determine how effectively operating objectives
  1944.  have been achieved.
  1945.  
  1946.  2.2.2.28  performance requirement:  A requirement that specifies a
  1947.  performance characteristic that a system or system component must
  1948.  possess; for example, speed, accuracy, frequency.
  1949.  
  1950.  
  1951.  2.2.2.29  portability:  The ease with which software can be transferred
  1952.  from one information system to another.
  1953.  
  1954.  2.2.2.30  POSIX Open System Environment (POSIX OSE):  The Open System      d
  1955.  Environment in which the standards included are International, Regional,   d
  1956.  and National Information Technology Standards and profiles that are in     d
  1957.  accord with ISO/IEC 9945 (POSIX).                                          d
  1958.  
  1959.  This guide represents the POSIX OSE as it existed when the guide was
  1960.  approved.
  1961.  
  1962.  
  1963.  2.2.2.31  POSIX OSE Cross-Category Services:  A set of tools and/or
  1964.  features that has a direct effect on the operation of one or more
  1965.  component of the POSIX Open System Environment, but is not in and of
  1966.  itself a stand-alone component.
  1967.  
  1968.  
  1969.  
  1970.  
  1971.                Copyright c 1991 IEEE.  All rights reserved.
  1972.       This is an unapproved IEEE Standards Draft, subject to change.
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  10                                 2 Terminology and General Requirements
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  1985.  
  1986.  2.2.2.32  POSIX Standardized Profile (POSIX SP):  A Standardized Profile
  1987.  that specifies the application of certain POSIX base standards in support
  1988.  of a class of applications and does not require any departure from the
  1989.  structure defined by the POSIX.0 Reference Model for POSIX systems.
  1990.  
  1991.  NOTE:  Which POSIX base standards form the basis of the POSIX SPs is
  1992.  still open.  Annex A discusses some of the issues involved.
  1993.  
  1994.  
  1995.  2.2.2.33  process:  An address space and single thread of control that     d
  1996.  executes within that address space, and its required system resources.
  1997.  
  1998.  A process is created by another process issuing the _f_o_r_k() function.  The
  1999.  process that issues _f_o_r_k() is known as the parent process, and the new
  2000.  process created by the _f_o_r_k() as the child process.
  2001.  
  2002.  2.2.2.34  profile:  A set of one or more base standards, and, where
  2003.  applicable, the identification of chosen classes, subsets, options, and
  2004.  parameters of those base standards, necessary for accomplishing a          d
  2005.  particular function.                                                       d
  2006.  
  2007.  
  2008.  2.2.2.35  programming language API:  The interface between applications    d
  2009.  and application platforms traditionally associated with programming        d
  2010.  language specifications, such as program control, math functions, string   d
  2011.  manipulation, etc.                                                         d
  2012.  
  2013.  2.2.2.36  protocol (OSI):  A set of semantic and syntactic rules that
  2014.  determine the behavior of [OSI-] entities in the same layer in performing
  2015.  communication functions.
  2016.  
  2017.  
  2018.  2.2.2.37  redirection:  A system profile construction method of starting
  2019.  at a base platform and adding new services by allowing a service
  2020.  component to ask the base platform to redirect all requests for that type
  2021.  of service to the service component.
  2022.  
  2023.  2.2.2.38  public specifications:  Specifications that are available to     d
  2024.  anyone for implementation and distribution (i.e., sale) of that            d
  2025.  implementation without restriction.                                        d
  2026.  
  2027.  
  2028.  2.2.2.39  reference model:  A simplified description or representation of
  2029.  something.
  2030.  
  2031.  2.2.2.40  scaleability:  The ease with which software can be transferred   d
  2032.  from one graduated series of application platforms to another.             d
  2033.  A simplified description or representation of something.
  2034.  
  2035.  
  2036.  
  2037.                Copyright c 1991 IEEE.  All rights reserved.
  2038.       This is an unapproved IEEE Standards Draft, subject to change.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  2.2 Definitions                                                        11
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2051.  
  2052.  2.2.2.41  security:  The protection of computer hardware and software
  2053.  from accidental or malicious access, use, modification, destruction, or
  2054.  disclosure.
  2055.  
  2056.  Tools for the maintenance of security are focused on availability,
  2057.  confidentiality, and integrity.
  2058.  
  2059.  
  2060.  2.2.2.42  service delivery latency:  The interval between (a) context
  2061.  switch from an application context to the operating system context, and
  2062.  (b) satisfaction of the service request.
  2063.  
  2064.  2.2.2.43  service request latency:  The interval between (a) context
  2065.  switch from an application context to the operating system context, and
  2066.  (b) the reverse context switch from the operating system context to the
  2067.  application context for a given service request.
  2068.  
  2069.  
  2070.  2.2.2.44  software:  The programs, procedures, rules, and any associated
  2071.  documentation pertaining to the operation of a data processing system.
  2072.  
  2073.  2.2.2.45  specification:  A document that prescribes, in a complete,       d
  2074.  precise, verifiable manner, the requirements, design, behavior, or         d
  2075.  characteristics of a system or system component.                           d
  2076.  
  2077.  
  2078.  2.2.2.46  standardized profile:  A balloted, formal, harmonized document   d
  2079.  that specifies a profile.                                                  d
  2080.  
  2081.  2.2.2.47  standards:  Documents, established by consensus and approved by  d
  2082.  a recognized body, that provide, for common and repeated use, rules,
  2083.  guidelines, or characteristics for activities or their results, aimed at
  2084.  the achievement of the optimum degree of order in a given context.
  2085.  
  2086.  NOTE:  Standards should be based on the consolidated results of science,
  2087.  technology, and experience, and aimed at the promotion of optimum
  2088.  community benefits.
  2089.  
  2090.  
  2091.  2.2.2.48  System Internal Interface (SII):  The interface between          d
  2092.  application platform service components within that platform; it may be    d
  2093.  standardized or nonstandard.                                               d
  2094.  
  2095.  2.2.2.49  system services:  Firmware and software that provide an
  2096.  aggregation of network element functions into a higher level function;
  2097.  provide an interface to the data contained in the system.
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.                Copyright c 1991 IEEE.  All rights reserved.
  2104.       This is an unapproved IEEE Standards Draft, subject to change.
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  12                                 2 Terminology and General Requirements
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2117.  
  2118.  2.2.2.50  System Services API:  An interface providing access to services
  2119.  associated with the application's internal resources.
  2120.  
  2121.  The System Services API has two parts:  Language Specifications and
  2122.  Processing Services API.
  2123.  
  2124.  
  2125.  2.2.2.51  system software:  Application-independent software that
  2126.  supports the running of application software.
  2127.  
  2128.  2.2.2.52  transaction:  A unit of work consisting of an arbitrary number
  2129.  of individual operations all of which will complete successfully (or be
  2130.  of no effect) on the intended resources.
  2131.  
  2132.  A transaction has well defined boundaries.  A transaction starts with a
  2133.  request from the application program and either completes successfully
  2134.  (commits) or has no effect (abort).  Both the commit and abort signify a
  2135.  transaction completion.
  2136.  
  2137.  
  2138.  2.2.2.53  transaction application program:  A program written to meet the  d
  2139.  requirements of a chosen Transaction Processing (TP) application.
  2140.  
  2141.  Such programs allow a sequence of operations that involve resources such
  2142.  as terminals and databases.  The transaction AP specifies transaction
  2143.  boundaries.  The transaction AP as defined here is a logical entity and
  2144.  may involve an arbitrary number of processes.
  2145.  
  2146.  2.2.2.54  validation:  The process of evaluating a ported application,
  2147.  software, or system to ensure compliance with requirements.
  2148.  
  2149.  
  2150.  2.2.3  Abbreviations
  2151.  
  2152.  For the purposes of this guide, the following abbreviations apply:
  2153.  
  2154.  
  2155.  2.2.3.1  API:  Application Program Interface
  2156.  
  2157.  2.2.3.2  EEI:  External Environment Interface
  2158.  
  2159.  
  2160.  2.2.3.3  POSIX.0:  This guide.
  2161.  
  2162.  2.2.3.4  POSIX._nnnn:  An IEEE POSIX working group, where the number _n
  2163.  represents the decimal notation in the IEEE P1003 series.  Alternatively,
  2164.  when apparent from context, the latest standard issued, or under
  2165.  development, by that working group.
  2166.  
  2167.  
  2168.  
  2169.                Copyright c 1991 IEEE.  All rights reserved.
  2170.       This is an unapproved IEEE Standards Draft, subject to change.
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  2.2 Definitions                                                        13
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2183.  
  2184.  2.2.3.5  SII:  System Internal Interface.                                  d
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.                Copyright c 1991 IEEE.  All rights reserved.
  2236.       This is an unapproved IEEE Standards Draft, subject to change.
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  14                                 2 Terminology and General Requirements
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                                                                P1003.0/D13
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.                  Section 3: POSIX Open System Environment
  2258.  
  2259.  
  2260.  
  2261.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  2262.  
  2263.  The POSIX Open System Environment (OSE) is a collection of concepts that
  2264.  provide a context for user requirements and standards specification.  It
  2265.  provides a minimum, standard set of conceptual information system
  2266.  building blocks with associated interfaces and functionality.  The POSIX
  2267.  OSE consists of a reference model, service definitions, standards, and
  2268.  profiles.
  2269.  
  2270.  These OSE concepts are also intended to be conventional within computer
  2271.  science.  The intention is not to break new ground, but to establish a
  2272.  minimum and unambiguous terminology and set of concepts for
  2273.  identification and resolution of portability and interoperability issues.
  2274.  
  2275.  The POSIX Open System Environment is defined in five parts:
  2276.  
  2277.      (1)  General requirements are identified that apply to the POSIX OSE
  2278.           as a whole in 3.1.
  2279.  
  2280.      (2)  A reference model is developed that unambiguously identifies the
  2281.           system under consideration for purposes of specification.  The
  2282.           POSIX OSE reference model described in 3.2 defines system
  2283.           elements to identify interfaces across which service
  2284.           requirements should be satisfied.  The elements are chosen to
  2285.           expose those interfaces that are significant to the profile
  2286.           writer or user.
  2287.  
  2288.      (3)  Using the interfaces identified in the reference models, each
  2289.           subclause of Section 4 categorizes and describes the basic
  2290.           services available to users across each interface.  The services
  2291.           are defined in a generic way, based on the reference model, user
  2292.           requirements, and current industry practice, rather than any
  2293.           given implementation.
  2294.  
  2295.           Definition of the service requirements is not constrained by the
  2296.           availability of standards.  Service requirements that are not
  2297.           currently satisfied via standards are discussed in either the
  2298.           Emerging Standards subclause, or under Gaps.
  2299.  
  2300.  
  2301.                Copyright c 1991 IEEE.  All rights reserved.
  2302.       This is an unapproved IEEE Standards Draft, subject to change.
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  3 POSIX Open System Environment                                        15
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2315.  
  2316.           Each clause of Section 4 begins with a more detailed and
  2317.           specialized version of the reference model to provide a context
  2318.           for service specification.  After defining the interfaces and
  2319.           services, each of the Section 4 clauses concludes with a
  2320.           discussion of standards that are related to the services.
  2321.  
  2322.      (4)  Section 5 discusses issues and requirements that directly affect
  2323.           all of the service categories, such as internationalization,
  2324.           security, and administration.
  2325.  
  2326.      (5)  Section 6 provides guidelines for creating profiles that address
  2327.           various application domains.  This is a brief description of how
  2328.           the reference model and services are applied to a variety of
  2329.           existing types of systems.  Section 7 describes current POSIX
  2330.           profiles and profiling activities.
  2331.  
  2332.  The text emphasizes the concept of service requirements (rather than
  2333.  services) to emphasize that the POSIX OSE only includes requirements, not
  2334.  solutions which satisfy those requirements.  It is the standards and
  2335.  profiles listed in the subclauses of Sections 4 and 5 that will satisfy
  2336.  these requirements.
  2337.  
  2338.  Definition of the service requirements is not constrained by the
  2339.  availability of standards.  Services requirements that are not currently
  2340.  satisfied via standards are discussed in either the Emerging Standards
  2341.  subclause, or under Gaps.
  2342.  
  2343.  
  2344.  
  2345.  3.1  POSIX Open System Environment - General Requirements
  2346.  
  2347.  The POSIX Open System Environment should satisfy the requirements in the
  2348.  following list:
  2349.  
  2350.      (1)  Application Portability at the Source Code Level
  2351.  
  2352.           The POSIX OSE shall enable application software portability at
  2353.           the source code level.
  2354.  
  2355.           Rationale:  Comprehensive and consistent source code level
  2356.           service specifications allow porting of applications among
  2357.           processors (ideally without modification).  Binary portability
  2358.           requires too tight a coupling with the processor implementation.
  2359.  
  2360.      (2)  System Interoperability
  2361.  
  2362.           The POSIX OSE shall enable application software and system
  2363.           service interoperability.
  2364.  
  2365.  
  2366.  
  2367.                Copyright c 1991 IEEE.  All rights reserved.
  2368.       This is an unapproved IEEE Standards Draft, subject to change.
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  16                                        3 POSIX Open System Environment
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2381.  
  2382.           Rationale:  Communications services and format specifications     d
  2383.           allow two entities participating in a distributed system to
  2384.           exchange and make mutual use of data, including:
  2385.  
  2386.            - Homogeneous systems
  2387.  
  2388.            - Heterogeneous systems (i.e., a wide variety of
  2389.              hardware/software platforms)
  2390.  
  2391.            - POSIX-OSE-based and non-OSE-based systems
  2392.  
  2393.      (3)  User Portability
  2394.  
  2395.           The POSIX OSE shall enable human users to operate on a wide
  2396.           range of systems without retraining.
  2397.  
  2398.           Rationale:  Standard methods and services for supporting
  2399.           human/computer interaction are a key aspect of the definition of
  2400.           an open system (see Section 2).  Elimination of gratuitous
  2401.           differences in the interface that the application platform
  2402.           presents to the user via standards is a significant aspect of
  2403.           this task.
  2404.  
  2405.      (4)  Accommodation of Standards
  2406.  
  2407.           The POSIX OSE shall accommodate existing, imminent, and new
  2408.           information technology standards.
  2409.  
  2410.           Rationale:  If the POSIX OSE were constrained to current
  2411.           technology, it would quickly become obsolete.  It would also not
  2412.           be capable of providing a complete set of applicable standards
  2413.           and profiles, as efforts to-date have not yet provided a full
  2414.           suite of applicable standards.  The POSIX OSE must evolve as
  2415.           standards emerge and technology changes.
  2416.  
  2417.           An inevitable tension exists between establishing fixed
  2418.           standards and providing for technology enhancement.  Therefore,
  2419.           the POSIX OSE must be sufficiently general to allow for
  2420.           technology growth and yet specific enough to act as a guide for
  2421.           standards development.
  2422.  
  2423.      (5)  Accommodation of New Information System Technology
  2424.  
  2425.           The POSIX OSE shall accommodate new Information System
  2426.           Technology.
  2427.  
  2428.           Rationale:  The POSIX OSE must strive to satisfy the full range
  2429.           of the users' functional requirements.  This is undoubtedly a
  2430.           requirement that will only be fully realized over time, but it
  2431.  
  2432.  
  2433.                Copyright c 1991 IEEE.  All rights reserved.
  2434.       This is an unapproved IEEE Standards Draft, subject to change.
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  3.1 POSIX Open System Environment - General Requirements               17
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2447.  
  2448.           reflects the goal of the POSIX OSE.
  2449.  
  2450.      (6)  Application Platform Scalability
  2451.  
  2452.           The POSIX OSE shall be scalable to platforms of varying power
  2453.           and implementation complexity.
  2454.  
  2455.           Rationale:  This reflects the realities of the potential users
  2456.           of the POSIX OSE.  This requirement affects individual standards
  2457.           as well as the conditions under which various of the standards
  2458.           can or should be combined into profiles.
  2459.  
  2460.           For example, where similar services are provided by both
  2461.           workstation type application platforms and supercomputers, the
  2462.           same standards should be applied to each if possible.  This
  2463.           would enable a greater degree of portability across these
  2464.           specialized implementations of the application platform.
  2465.  
  2466.      (7)  Distributed System Scalability
  2467.  
  2468.           The POSIX OSE shall provide for distributed system scalability.
  2469.  
  2470.           Rationale:  The number of distributed system components
  2471.           connected should not be limited by any structural aspects of the
  2472.           POSIX OSE.
  2473.  
  2474.           For example, in the area of network services, the OSE standards
  2475.           should be such that it is possible to construct profiles (and
  2476.           therefore systems) in which remote and local operation and
  2477.           utilization of information system resources are
  2478.           indistinguishable, with the exception of unavoidable message
  2479.           transit delay.  In other words, it should be possible for
  2480.           applications to be unaware of whether the application platform
  2481.           on which they are executing is local or distributed and that
  2482.           lack of awareness should not affect their proper operation.
  2483.  
  2484.      (8)  Implementation Transparency
  2485.  
  2486.           The POSIX OSE shall provide implementation technology
  2487.           transparency.
  2488.  
  2489.           Rationale:  The mechanism for implementation of services is not
  2490.           visible to the service user; i.e., only the service is visible
  2491.           to the service user.
  2492.  
  2493.      (9)  User's Functional Requirements
  2494.  
  2495.           The POSIX OSE shall reflect the full scope of the user's
  2496.           functional requirements, within the context of the other
  2497.  
  2498.  
  2499.                Copyright c 1991 IEEE.  All rights reserved.
  2500.       This is an unapproved IEEE Standards Draft, subject to change.
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  18                                        3 POSIX Open System Environment
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2513.  
  2514.           requirements above.
  2515.  
  2516.           Rationale:  The POSIX OSE will provide the context within which
  2517.           application software portability can be addressed and it is the
  2518.           set of user's functional requirements that defines the scope of
  2519.           transportable service needs.
  2520.  
  2521.  
  2522.  
  2523.  3.2  POSIX Open System Environment Reference Model
  2524.  
  2525.  The POSIX OSE is based on a reference model with the full information
  2526.  system as its scope.  As such, it spans the gap between requirement
  2527.  specification and the design of any specific information system.  The
  2528.  reference model provides a set of conventions and concepts, mutually
  2529.  agreed upon between the information system user and provider communities.
  2530.  This common understanding is key to achieving application software
  2531.  portability, system interoperability, and may encourage software reuse.
  2532.  It will certainly allow for more compact and correct procurement
  2533.  specifications.
  2534.  
  2535.  The definition of this reference model is an engineering and management
  2536.  task and not a scientific one.  There are many possible models and, while
  2537.  it might be interesting to contemplate an optimal one, a reference model
  2538.  that satisfies the requirements is all that is necessary.
  2539.  
  2540.  An information system reference model must satisfy conflicting
  2541.  requirements similar to those encountered in traditional architectural
  2542.  disciplines.  The reference model must be structured enough to encourage
  2543.  the generation and use of standards and standard components.  Yet it must
  2544.  also be flexible enough to accommodate tailored and special purpose
  2545.  components necessary to meet realworld needs.
  2546.  
  2547.  The POSIX OSE Reference Model is a set of concepts, interfaces, entities,
  2548.  and diagrams that provides a basis for specification of standards.  The
  2549.  POSIX OSE Reference Model will provide guidance and direction for future
  2550.  standardization and integration efforts.  In order for the POSIX OSE to
  2551.  evolve and mature, it will be necessary for the reference model to
  2552.  provide insights into those services and capabilities for which standards
  2553.  do not currently exist and for which appropriate standardization
  2554.  activities cannot be identified.
  2555.  
  2556.  The POSIX OSE Reference Model is described from the user perspective;
  2557.  i.e., the reference model records the application platform user's
  2558.  perception (mental model) of the overall large distributed system used to
  2559.  support the user enterprise.  This point of view will assure that the:
  2560.  
  2561.      - Information technology users will have the proper services to meet
  2562.        their requirements, and
  2563.  
  2564.  
  2565.                Copyright c 1991 IEEE.  All rights reserved.
  2566.       This is an unapproved IEEE Standards Draft, subject to change.
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  3.2 POSIX Open System Environment Reference Model                      19
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2579.  
  2580.      - Information technology vendor implementations will not be
  2581.        constrained unnecessarily.
  2582.  
  2583.  _________________________________________________________________________
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  _________________________________________________________________________
  2610.                  Figure 3-1  -  POSIX OSE Reference Model
  2611.  
  2612.  
  2613.  Figure 3-1 depicts the basic elements of the POSIX Open System
  2614.  Environment Reference Model.  These include three entities (Application
  2615.  Software, Application Platform, and External Environment) and two
  2616.  interfaces between them, identified as the Application Program Interface
  2617.  (API) and the External Environment Interface (EEI).  The application
  2618.  platform provides API and EEI services across the associated interfaces.
  2619.  
  2620.  This model has been generalized to such a degree that it can accommodate
  2621.  a wide variety of general and special purpose systems.  More detailed
  2622.  requirements exist for each service category described in Section 4.  The
  2623.  service specification has been defined to be robust and flexible enough
  2624.  to allow subsets or extensions for each category as needed.  As a result,
  2625.  the POSIX OSE reference model is able to accommodate a variety of
  2626.  architectures and standardization approaches.  It should be possible to
  2627.  show where any relevant standard fits within the reference model.
  2628.  
  2629.  
  2630.  
  2631.                Copyright c 1991 IEEE.  All rights reserved.
  2632.       This is an unapproved IEEE Standards Draft, subject to change.
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  20                                        3 POSIX Open System Environment
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2645.  
  2646.  Standards (in the sense of formally adopted consensus specifications)
  2647.  address only interfaces between entities, as well as services and
  2648.  supporting formats offered across those interfaces.  The interface
  2649.  specification defines a convention adopted to represent the function
  2650.  offered across the interface in both directions.  Note that no set of
  2651.  standards can, by itself, assure portability of specific applications.
  2652.  Applications must be properly engineered with an explicit portability
  2653.  objective in order to achieve it.
  2654.  
  2655.  The Reference Model is not a layered model.  The application platform
  2656.  provides services to a variety of users across both platform interfaces.   d
  2657.  A human being invokes the platform services at the External Environment    d
  2658.  Interface.  If an application developer is the application platform user,  d
  2659.  the services offered at the application program interface (API) are
  2660.  invoked at the source code level.
  2661.  
  2662.  All of these features may be available locally or remotely if the system
  2663.  is connected to a larger distributed system.  All other resources and
  2664.  objects can be conceptualized as being contained within the application
  2665.  platform.
  2666.  
  2667.                                                                             d
  2668.  
  2669.  Note that the actual implementation of any given system element may
  2670.  differ greatly from the reference model presented.  The intention is to
  2671.  define a conceptual reference model that the widespread design,
  2672.  implementation, and integration communities may assume in executing their
  2673.  activities.  Partitioning of function for purposes of discussion or
  2674.  specification does not imply or endorse similar partitioning for design
  2675.  or implementation.
  2676.  
  2677.  
  2678.  3.2.1  Reference Model Entities and Elements
  2679.  
  2680.  Figure 3-2 expands Figure 3-1 to identify elements of the Reference Model
  2681.  entities.  For the purposes of this discussion, the term ``entities''
  2682.  will be used when discussing the classification of items (i.e.,
  2683.  ``things'') related to application portability.  The term ``component''
  2684.  will only be used when an entity is further decomposed into constituent
  2685.  parts.  The application software entity is the only entity that is
  2686.  decomposed into components.
  2687.  
  2688.  Application Software is defined (see 2.2.2.4) as software specific to an
  2689.  application.  It is composed of:
  2690.  
  2691.      - Programs (source code, command/script files, etc.)
  2692.  
  2693.      - Data (user data, application parameters, screen definitions, etc.),
  2694.        and
  2695.  
  2696.  
  2697.                Copyright c 1991 IEEE.  All rights reserved.
  2698.       This is an unapproved IEEE Standards Draft, subject to change.
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  3.2 POSIX Open System Environment Reference Model                      21
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2711.  
  2712.  _________________________________________________________________________
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  _________________________________________________________________________
  2739.             Figure 3-2  -  POSIX OSE Reference Model - Entities
  2740.  
  2741.  
  2742.      - Documentation (online documentation only; hardcopy not included).
  2743.  
  2744.  An application program is represented by source code, produced according   d
  2745.  to a specific programming language and a set of language bindings (i.e.,   d
  2746.  API specifications) for the required services.  These specifications may
  2747.  be public standards or other open specifications.
  2748.  
  2749.  An application program may be divided into two parts:
  2750.  
  2751.      - An _i_n_v_a_r_i_a_n_t portion of source code, requiring no change when
  2752.        ported, and
  2753.  
  2754.      - A _v_a_r_i_a_n_t portion of source code, which requires changes when
  2755.        ported.
  2756.  
  2757.  The objective of any effective application software portability method     d
  2758.  should be to minimize the ``variant'' portion of the application software  d
  2759.  via creation and use of API standards.  This would ideally allow           d
  2760.  application software components to be moved to a different (but
  2761.  
  2762.  
  2763.                Copyright c 1991 IEEE.  All rights reserved.
  2764.       This is an unapproved IEEE Standards Draft, subject to change.
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  22                                        3 POSIX Open System Environment
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2777.  
  2778.  portability-standard compliant) system and run without source code
  2779.  modification.  However, since standards exist for which strictly
  2780.  conforming application software requires modification (e.g., memory
  2781.  requirements, processor-specific COBOL statements), this can only be
  2782.  approximated.
  2783.  
  2784.  Separate but related standards may be required to support the portability
  2785.  of each of the elements listed above.  Examples of application software
  2786.  are the familiar word-processing, spreadsheet, or accounting packages, as
  2787.  developed by the consumer or a commercial application software developer.
  2788.  Each of these packages appears as an application software entity when
  2789.  executed on an application platform.
  2790.  
  2791.  One or more applications may run on a given application platform
  2792.  simultaneously, as represented by the boxes at the top of Figure 3-2.
  2793.  Each application can be thought of as an independent application entity,
  2794.  communicating and synchronizing with other applications, if necessary,
  2795.  via a variety of communications mechanisms.
  2796.  
  2797.  The Application Platform is defined (see 2.2.2.2) as the set of resources
  2798.  that support the services on which an application or application software
  2799.  will run.  It provides services at its interfaces that, as much as
  2800.  possible, make the implementation-specific characteristics of the
  2801.  platform transparent to the application software.
  2802.  
  2803.  In order to assure system integrity and consistency, application software
  2804.  entities competing for application platform resources must access all
  2805.  resources via service requests across the API.  Examples of application
  2806.  platform elements could include an operating system kernel, a realtime
  2807.  monitor program, and all hardware and peripheral drivers.
  2808.  
  2809.  The application platform concept does not imply or constrain any specific
  2810.  implementation beyond the basic requirement to supply services at the
  2811.  interfaces.  For example, the platform might be a single processor shared
  2812.  by a group of applications, or it might be a large distributed system
  2813.  with each application dedicated to a single processor.  (See 3.2.4.)
  2814.  
  2815.  The application platform for systems built to the POSIX OSE will differ
  2816.  greatly depending upon the requirements of the system and its intended
  2817.  use.  It is expected that application platforms defined to be consistent
  2818.  with the POSIX OSE will not necessarily provide all the features
  2819.  discussed here, but will use tailored subsets for a particular set of
  2820.  application software.
  2821.  
  2822.  The External Environment contains the external entities with which the
  2823.  application platform exchanges information.  These entities are
  2824.  classified into the general categories of human users, information
  2825.  interchange entities, and communications entities.
  2826.  
  2827.  
  2828.  
  2829.                Copyright c 1991 IEEE.  All rights reserved.
  2830.       This is an unapproved IEEE Standards Draft, subject to change.
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  3.2 POSIX Open System Environment Reference Model                      23
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2843.  
  2844.  Human users are not further classified, but are treated as an abstract,
  2845.  or average, person.  Information interchange entities include removable
  2846.  disk packs, floppy disks, and security badges.  Communications entities
  2847.  include phone lines, local area networks, and packet switching equipment
  2848.  
  2849.  
  2850.  3.2.2  Reference Model Interfaces
  2851.  
  2852.  _________________________________________________________________________
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  _________________________________________________________________________
  2881.            Figure 3-3  -  POSIX OSE Reference Model - Interfaces
  2882.  
  2883.  
  2884.  Figure 3-3 expands Figure 3-1 to identify the services available at the
  2885.  reference model interfaces.
  2886.  
  2887.  Between these three classes of entities there are two types of interface
  2888.  where standards and other open system specifications are required to
  2889.  enable application software portability and interoperability.  These two
  2890.  interface types are labeled as the Application Program Interface (API)
  2891.  and the External Environment Interface (EEI).
  2892.  
  2893.  
  2894.  
  2895.                Copyright c 1991 IEEE.  All rights reserved.
  2896.       This is an unapproved IEEE Standards Draft, subject to change.
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  24                                        3 POSIX Open System Environment
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  2909.  
  2910.  3.2.2.1  External Environment Interface (EEI)
  2911.  
  2912.  The External Environment Interface is defined (see 2.2.2.9) as the
  2913.  interface between the application platform and the external environment
  2914.  across which information is exchanged.  It is defined primarily in
  2915.  support of system and application software interoperability.  User and
  2916.  data portability are directly provided by the EEI, but application
  2917.  software portability also is indirectly supported by reference to common
  2918.  concepts linking specifications at both interfaces.  The services
  2919.  available at the EEI comprise:
  2920.  
  2921.      - Human/Computer Interaction Services
  2922.  
  2923.      - Information Services
  2924.  
  2925.      - Communications Services
  2926.  
  2927.  The Human/Computer Interaction EEI is the boundary across which physical
  2928.  interaction between the human being and the application platform takes
  2929.  place.  Examples of this type of interface include CRT displays,
  2930.  keyboards, mice, and audio input/output devices.  Standardization at this
  2931.  interface will allow users to access the services of compliant systems
  2932.  without costly retraining.
  2933.  
  2934.  The Information Services EEI defines a boundary across which external,
  2935.  persistent storage service is provided, where only the format and syntax   d
  2936.  is required to be specified for data portability and interoperability.
  2937.  
  2938.  The Communications Services EEI provides access to services for
  2939.  interaction between internal application software entities and
  2940.  application platform external entities, such as application software
  2941.  entities on other application platforms, external data transport
  2942.  facilities, and devices.  The services provided are those where protocol
  2943.  state, syntax, and format all must be standardized for application
  2944.  interoperability.
  2945.  
  2946.  
  2947.  3.2.2.2  Application Program Interface (API)
  2948.  
  2949.  The Application Program Interface (API) is defined (see 2.2.2.3) as the
  2950.  interface between the application software and the application platform
  2951.  across which all services are provided.  It is defined primarily in
  2952.  support of application portability, but system and application software
  2953.  interoperability also are supported via the communications services API.
  2954.  
  2955.  The POSIX OSE API is a combination of a number of standards-based
  2956.  interfaces.  It can be thought of as a bookshelf containing several
  2957.  standards-based APIs, with each API a separate book on the bookshelf.
  2958.  
  2959.  
  2960.  
  2961.                Copyright c 1991 IEEE.  All rights reserved.
  2962.       This is an unapproved IEEE Standards Draft, subject to change.
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  3.2 POSIX Open System Environment Reference Model                      25
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  2975.  
  2976.  The POSIX OSE API specifies a complete interface between the application
  2977.  software and the underlying application platform, and may be divided into
  2978.  the following parts:
  2979.  
  2980.      - Human/Computer Interaction Services API
  2981.  
  2982.      - Information Services API
  2983.  
  2984.      - Communications Services API
  2985.  
  2986.      - System Services API
  2987.  
  2988.  The first three APIs listed are required to provide the application
  2989.  software with access to services associated with each of the external
  2990.  environment entities.
  2991.  
  2992.  The fourth API is required to provide access to services associated with
  2993.  the application platform internal resources, identified as the System
  2994.  Services API.  This interface may be divided into two types of
  2995.  specifications; i.e., Language Service and System Services API
  2996.  specifications.
  2997.  
  2998.  Definitions of services at the API take the form of programming-language
  2999.  specifications, language-independent service specifications, and language
  3000.  bindings for the service specifications.  These specifications may be      d
  3001.  described as follows:                                                      d
  3002.  
  3003.      (1)  Those traditionally associated with the language specifications,
  3004.           such as program control (if ... then ... else), math functions,
  3005.           string manipulation, etc., defined as _t_h_e _p_r_o_g_r_a_m_m_i_n_g _l_a_n_g_u_a_g_e
  3006.           _A_P_I, and
  3007.  
  3008.      (2)  Services provided by the underlying application platform defined
  3009.           independent of language, such as interprocess communications,
  3010.           interobject messages, access to the user interface, and data
  3011.           storage.  Specifications of for these services are defined        d
  3012.           independently of any programming language, and are identified as  d
  3013.           _l_a_n_g_u_a_g_e-_i_n_d_e_p_e_n_d_e_n_t _s_e_r_v_i_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n_s.                      d
  3014.  
  3015.      (3)  The language-independent service specifications are translated    d
  3016.           into language-specific specifications used by programmers in      d
  3017.           writing applications.  These specifications provide access to     d
  3018.           the services using methods consistent with a specific             d
  3019.           programming language.  Such language-specific specifications are  d
  3020.           called _l_a_n_g_u_a_g_e-_b_i_n_d_i_n_g _A_P_I_s.                                     d
  3021.  
  3022.  Creation of a _l_a_n_g_u_a_g_e-_i_n_d_e_p_e_n_d_e_n_t _s_e_r_v_i_c_e _s_p_e_c_i_f_i_c_a_t_i_o_n facilitates the
  3023.  management and development of consistent language binding standards.  The
  3024.  language-binding specifications are used directly by programmers and
  3025.  
  3026.  
  3027.                Copyright c 1991 IEEE.  All rights reserved.
  3028.       This is an unapproved IEEE Standards Draft, subject to change.
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  26                                        3 POSIX Open System Environment
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3041.  
  3042.  application platform suppliers in implementing application software and
  3043.  platforms.
  3044.  
  3045.  The ``programming language''/``language binding'' dichotomy may be a
  3046.  result of the way Information Technology standards are currently
  3047.  developed.  Programming language specifications are developed with the
  3048.  goal of being ``system independent'' (e.g., C, COBOL, FORTRAN, etc.).
  3049.  Language Binding specifications (e.g., POSIX.1 {2}, MOSI, etc.) are being
  3050.  translated into ``language-independent'' specifications, with one or more
  3051.  bindings for specific languages.
  3052.  
  3053.  
  3054.  3.2.3  EEI-API Service Relationships
  3055.  
  3056.  The relationships between similarly named services provided at the API     d
  3057.  and the EEI are not simple one-to-one relationships.  For example, a data  d
  3058.  storage service interface may provide an application with transparent      d
  3059.  access to a remote file via network services.  In this case, the           d
  3060.  completion of the data storage service provided at the API is dependent    d
  3061.  upon, and can be thought of as having been ``translated'' into,            d
  3062.  communication services provided at the EEI.                                d
  3063.  
  3064.  Fortunately, it is not essential for the purpose of satisfying the
  3065.  requirements of the POSIX OSE to specify these relationships in detail.
  3066.  In fact, a detailed definition could unnecessarily constrain the
  3067.  implementation.  A given implementation of the application platform will
  3068.  define the relationship between the API and EEI in different ways.
  3069.  
  3070.  
  3071.  3.2.4  POSIX OSE-Based Distributed Systems                                 d
  3072.  
  3073.  In a distributed environment, multiple application platforms may interact
  3074.  by way of a network external to the platforms, but connected to them via
  3075.  the communications EEI, as in Figure 3-4.  For an application software
  3076.  entity to gain access to the EEI services, communications services are
  3077.  requested at the API.  The implementation of the application platform
  3078.  translates these API requests into appropriate action at the EEI.
  3079.  
  3080.  Communication occurs between application platforms via external entities
  3081.  that implement the data transport function.  These can use a wide variety
  3082.  of implementation methods and protocols, providing access to distributed
  3083.  data and services via the network.
  3084.  
  3085.  Distributed Systems are manifest in this model primarily through the use
  3086.  of the distributed system network services API.  As can be seen in
  3087.  Figure 3-5, distributed systems are a refinement of the POSIX Network
  3088.  Environment Model shown in Figure 4-4.  As such, a perceived Application
  3089.  Platform may in fact be comprised of several (or many) individual          d
  3090.  application platforms.  However, in the distributed environment, they      d
  3091.  
  3092.  
  3093.                Copyright c 1991 IEEE.  All rights reserved.
  3094.       This is an unapproved IEEE Standards Draft, subject to change.
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  3.2 POSIX Open System Environment Reference Model                      27
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  3107.  
  3108.  _________________________________________________________________________
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  _________________________________________________________________________
  3129.       Figure 3-4  -  POSIX OSE Reference Model - Distributed Systems
  3130.  
  3131.  
  3132.  operate and are viewed as a single entity by the using applications.
  3133.  Within this extended application platform are the embedded network
  3134.  services necessary for the elements of a distributed environment to
  3135.  function.
  3136.  
  3137.  Within the distributed environment, network access between the platforms
  3138.  that make up the ``perceived'' application platform are handled using the
  3139.  Distributed Systems Network Services APIs.  Network services for access
  3140.  between ``perceived'' application platforms will use the Network Services
  3141.  EEI between the platforms.
  3142.  
  3143.  
  3144.  
  3145.  3.3  POSIX Open System Environment Services
  3146.  
  3147.  This guide defines a uniform set of standard services provided to users
  3148.  of application platforms in support of POSIX objectives of application
  3149.  portability and system interoperability.  These services are available to
  3150.  users across specified interfaces keyed to the POSIX reference model
  3151.  defined in 3.2.
  3152.  
  3153.  The POSIX OSE services are divided into categories described by the        d
  3154.  clauses in Section 4.  Each category begins by defining a more detailed
  3155.  and specialized version of the OSE reference model (see 3.2) to provide
  3156.  context for service specification.  Services and associated standards are  d
  3157.  then defined for each category.  Finally, POSIX OSE Cross-Category         d
  3158.  
  3159.                Copyright c 1991 IEEE.  All rights reserved.
  3160.       This is an unapproved IEEE Standards Draft, subject to change.
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  28                                        3 POSIX Open System Environment
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3173.  
  3174.  _________________________________________________________________________
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  _________________________________________________________________________
  3200.             Figure 3-5  -  Distributed System Environment Model
  3201.  
  3202.  
  3203.  Services affecting each category are discussed.
  3204.  
  3205.  The service descriptions for each category are intended to be complete
  3206.  and not merely representative.  Further refinement through successive
  3207.  releases of this document will lead to a complete specification.
  3208.  
  3209.  
  3210.  3.4  POSIX Open System Environment Standards
  3211.  
  3212.  The identification of a complete, consistent suite of standards for the
  3213.  POSIX OSE will, by necessity, draw from many forums.  One of the criteria
  3214.  for judging completeness is the satisfaction of the full range of
  3215.  services required by the application platform user.  The factors used to
  3216.  select standards will be described followed by the selection precedence.
  3217.  
  3218.  Note that while the services are stated with a clear partitioning in
  3219.  mind, the standards reflect the current partitioning.  These standards
  3220.  were created within disparate organizations and projects, which were in
  3221.  many cases carried out in isolation from the others.  As a result,
  3222.  mapping of services to standards is not a simple relationship.
  3223.  
  3224.  
  3225.                Copyright c 1991 IEEE.  All rights reserved.
  3226.       This is an unapproved IEEE Standards Draft, subject to change.
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  3.4 POSIX Open System Environment Standards                            29
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  3239.  
  3240.  3.4.1  Factors in Standards Selection
  3241.  
  3242.  The selection criteria for standards to be included in the POSIX OSE are
  3243.  based upon four concepts.  Those concepts are Those concepts are
  3244.  openness, Stage of Completion, stability, Geographic Scope of Consensus,
  3245.  Functional Scope Addressed within this guide, Consistency with
  3246.  POSIX.1 {2}, and Availability for Unencumbered Implementation.
  3247.  
  3248.      (1)  Openness
  3249.  
  3250.           Standards development organizations can differ from one another
  3251.           by virtue of their ``openness.''  That is, some standards
  3252.           development bodies utilize an open forum for the development of
  3253.           standards while other bodies use a closed forum.  The result is
  3254.           a varying degree of consensus in the technical content of the
  3255.           standards across development bodies.
  3256.  
  3257.           As a general rule, standards developed by accredited standards
  3258.           development organizations (all of which use an open forum) are
  3259.           preferred over those standards developed by bodies using a
  3260.           closed forum.
  3261.  
  3262.      (2)  Stage of Completion
  3263.  
  3264.           Another factor involved in the selection of standards for
  3265.           inclusion in the POSIX OSE is ``stage of completion.''  That is,
  3266.           there is a standards development life cycle process whose
  3267.           effects need to be taken into account.  Most standards follow a
  3268.           sequence from approved development, through draft, and on to
  3269.           approved standard.
  3270.  
  3271.           As a general rule, where choices were made among standards, the
  3272.           more complete standards were favored.
  3273.  
  3274.      (3)  Stability
  3275.  
  3276.           A third factor in determining which standards are included in
  3277.           the POSIX OSE is stability.  This factor refers to anticipated
  3278.           change in the standard over time.  This change may expand or
  3279.           contract the technical coverage of the standard.
  3280.  
  3281.           As a general rule the more stable standards are preferred over
  3282.           those subject to change.
  3283.  
  3284.      (4)  Geographic Scope of Consensus
  3285.  
  3286.           There are differences among standards development bodies with
  3287.           respect to the scope of their geographic consensus.  Some among
  3288.           those bodies are formal standards bodies (i.e., accredited as
  3289.  
  3290.  
  3291.                Copyright c 1991 IEEE.  All rights reserved.
  3292.       This is an unapproved IEEE Standards Draft, subject to change.
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  30                                        3 POSIX Open System Environment
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3305.  
  3306.           standards developers by a recognized body).  It is typical for
  3307.           those bodies to be authorized to develop standards for a
  3308.           particular technical topic and have their standards applicable
  3309.           to some defined geographic area.  Formal standards development
  3310.           bodies are typically empowered to develop standards for either
  3311.           international, regional or national standards coverage.
  3312.  
  3313.           The general rule applied in the selection of standards for
  3314.           inclusion in the POSIX Open System Environment is to select
  3315.           standards developed by those bodies that have the greatest scope
  3316.           of coverage.  This results in a precedence for standards
  3317.           selection of international, followed by regional, followed by
  3318.           national body developed standards.
  3319.  
  3320.      (5)  Functional Scope Addressed within this guide
  3321.  
  3322.           A specification is listed only if it addresses some service
  3323.           requirement listed in this guide.  Standards and/or
  3324.           specifications listed are not, however, limited to one per set
  3325.           of services.
  3326.  
  3327.      (6)  Consistency with POSIX.1 {2}
  3328.  
  3329.           Standards listed in this guide are suitable for inclusion in a
  3330.           profile with POSIX.1 {2}, and do not contradict that standard in
  3331.           any way.
  3332.  
  3333.      (7)  Availability for Unencumbered Implementation
  3334.  
  3335.           A standard or specification is listed only if it is available
  3336.           for implementation to the specification and distribution of that
  3337.           implementation is unencumbered.  The specification qualifies for
  3338.           inclusion in the guide even if the document itself is a salable
  3339.           item.
  3340.  
  3341.  
  3342.  3.4.2  Selection Precedence
  3343.  
  3344.  The list below shows the precedence of standards and specifications as
  3345.  used for inclusion in the POSIX OSE.  The order from top to bottom is
  3346.  from most to least preferred.
  3347.  
  3348.      (1)  Approved standards developed by accredited international bodies
  3349.  
  3350.      (2)  Approved standards developed by accredited regional bodies
  3351.  
  3352.      (3)  Approved standards developed by accredited national bodies
  3353.  
  3354.  
  3355.  
  3356.  
  3357.                Copyright c 1991 IEEE.  All rights reserved.
  3358.       This is an unapproved IEEE Standards Draft, subject to change.
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  3.4 POSIX Open System Environment Standards                            31
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  3371.  
  3372.      (4)  Draft standards developed by accredited international bodies
  3373.  
  3374.      (5)  Draft standards developed by accredited regional bodies
  3375.  
  3376.      (6)  Draft standards developed by accredited national bodies.
  3377.  
  3378.      (7)  Recognized de facto standards and specifications developed by
  3379.           nonaccredited bodies using an open forum
  3380.  
  3381.      (8)  Approved standards and specifications developed by nonaccredited
  3382.           international standards bodies using a closed forum
  3383.  
  3384.      (9)  Approved standards and specifications developed by nonaccredited
  3385.           national standards bodies using a closed forum.
  3386.  
  3387.  Standards projects for which there is no draft or approved standard are
  3388.  never selected for inclusion in the POSIX OSE.
  3389.  
  3390.  ``Equivalent'' or ``derived'' standards lower in the precedence hierarchy
  3391.  are correlated in an annex.  _F_E_S:  _D_o _w_e _s_t_i_l_l _w_a_n_t _t_o _d_o _t_h_i_s?  Only the
  3392.  highest precedence specification is listed or discussed in the main text.
  3393.  
  3394.  This guide only cites government and de facto standards and
  3395.  specifications in discussion of gaps in available standards.
  3396.  
  3397.  
  3398.  
  3399.  3.5  POSIX Open System Environment Profiles
  3400.  
  3401.  The results of Open System specification projects are collected into an
  3402.  expanding set of ``Base Standards,'' addressing a growing subset of
  3403.  functional requirements.
  3404.  
  3405.  Profile projects then select among these base standards to create a
  3406.  tailored, consistent set of standards addressing a more specific type (or
  3407.  instance) of system or set of application software.  Profiles satisfy the
  3408.  requirements of application ``domains'' such as office or industrial
  3409.  automation, transaction processing, or realtime control systems.
  3410.  
  3411.  This framework provides a way to characterize the functionality of
  3412.  profile activities.  The current OSI profiles tend to focus strictly on    d
  3413.  the communications EEI.  Other profiles might focus on a single component  d
  3414.  or span multiple interface types.
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.                Copyright c 1991 IEEE.  All rights reserved.
  3424.       This is an unapproved IEEE Standards Draft, subject to change.
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  32                                        3 POSIX Open System Environment
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3437.  
  3438.  3.6  Application Platform Implementation Considerations
  3439.  
  3440.  _H_L_J:  _A_l_l _i_n_s_t_a_n_c_e_s _o_f ``_S_y_s_t_e_m _I_n_t_e_g_r_a_t_i_o_n _I_n_t_e_r_f_a_c_e'' _i_n _t_h_i_s _c_l_a_u_s_e     d
  3441.  _h_a_v_e _b_e_e_n _c_h_a_n_g_e_d _t_o ``_S_y_s_t_e_m _I_n_t_e_r_n_a_l _I_n_t_e_r_f_a_c_e'' _w_i_t_h_o_u_t _f_u_r_t_h_e_r _d_i_f_f    d
  3442.  _m_a_r_k_s.                                                                     d
  3443.  
  3444.  Profile writers need to be aware that in an open system environment, the
  3445.  application platform can be decomposed into independently procurable
  3446.  components.  While standards are interface specifications, and as such
  3447.  are independent of implementation, there are aspects of platform
  3448.  implementation or construction that may affect the specification of
  3449.  standards, and that profile writers may want to address.
  3450.  
  3451.  For each case, the portion of the application platform that implements
  3452.  any particular independently procurable service is described as the
  3453.  service component.  Figure 3-6 shows an application platform made up of
  3454.  several service components.  If components interact, the specification of
  3455.  the interface between service components within the application platform
  3456.  may be standardized or nonstandard (including proprietary).
  3457.  
  3458.  _________________________________________________________________________
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  _________________________________________________________________________
  3479.              Figure 3-6  -  Service Components and Interfaces
  3480.  
  3481.  
  3482.  An intercomponent interface is labeled in Figure 3-6 as ``System Internal
  3483.  Interface'' because it may be used to assemble an application platform
  3484.  from multiple components.  Figure 3-6 shows how a System Internal
  3485.  Interface is shown in the reference model.
  3486.  
  3487.  
  3488.  
  3489.                Copyright c 1991 IEEE.  All rights reserved.
  3490.       This is an unapproved IEEE Standards Draft, subject to change.
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  3.6 Application Platform Implementation Considerations                 33
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  3503.  
  3504.  A standards-based SII between the application platform service components
  3505.  addresses portability and interoperability of the application platform
  3506.  service components, not portability and interoperability of application
  3507.  software and systems.
  3508.  
  3509.  Development of an SII would also require a consensus to emerge on the
  3510.  ``best'' design and implementation of system software/hardware.  Very
  3511.  little consensus has developed on the partitioning of the platform into
  3512.  components and consequent allocation of function to each.  In fact, this
  3513.  aspect of system design has been in a constant and accelerating state of
  3514.  innovation for decades.  One of the major objectives of the API is to
  3515.  provide a more stable interface that decouples application software from
  3516.  the constantly changing platform.  This enables the migration of
  3517.  application software to platforms based on constantly upgraded
  3518.  technology.  (See 3.1 ``Accommodation of New Information System
  3519.  Technology''.)
  3520.  
  3521.  The relationship and services exchanged among the components may be quite
  3522.  complex and varied in different implementations.  This complexity and
  3523.  variety would, of necessity, be reflected in an SII.  It would not,
  3524.  however, be visible to the application software at the API, since one of
  3525.  the major objectives of the API is to hide this complexity.  (See 3.1
  3526.  ``Implementation Transparency''.)
  3527.  
  3528.  Since SII specifications
  3529.  
  3530.      - do not affect application portability and interoperability, and
  3531.  
  3532.      - do not affect specification of the API and EEI, and
  3533.  
  3534.      - are primarily driven by specific implementations of the application
  3535.        platform,
  3536.  
  3537.  SII specification is beyond the scope of this guide.                       d
  3538.  
  3539.  Specification of SII in this guide would represent an unnecessary
  3540.  constraint on the implementation of the application platform, and are
  3541.  unnecessary for the specification of the API and EEI.
  3542.  
  3543.  There are a number of ways which the Application Platform can be divided
  3544.  into separate service components.  The main decomposition methods are
  3545.  division, layering, and redirection.  These methods are indistinguishable
  3546.  to the application software and external entities, in that they all
  3547.  interface to the application platform via the API and EEI, respectively.
  3548.  They assume a starting base application platform, which provides a subset
  3549.  of the required services.
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.                Copyright c 1991 IEEE.  All rights reserved.
  3556.       This is an unapproved IEEE Standards Draft, subject to change.
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  34                                        3 POSIX Open System Environment
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3569.  
  3570.  3.6.1  Subdivision
  3571.  
  3572.  In this commonly used method, the application platform is simply
  3573.  subdivided into a base and one or more service components.  See
  3574.  Figure 3-7.
  3575.  
  3576.  _________________________________________________________________________
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  _________________________________________________________________________
  3592.      Figure 3-7  -  Application Platform Implementation - Subdivision
  3593.  
  3594.  
  3595.  One possible implementation of this is to link the appropriate service
  3596.  modules directly into the system kernel.
  3597.  
  3598.  The internal interfaces used in this method are normally proprietary, and
  3599.  hence normally imply that both components will come from the same vendor.
  3600.  
  3601.  In this case the Application Platform and the Application Platform Base
  3602.  are the same entity.
  3603.  
  3604.  
  3605.  3.6.2  Layering
  3606.  
  3607.  In layering, the service is interposed as a layer between the application
  3608.  software and the base application platform.  See Figure 3-8.
  3609.  
  3610.  This is the most common method of supplying a service component that is
  3611.  independent of the base.  One possible implementation is to provide the
  3612.  service component as a set of library routines.
  3613.  
  3614.  Whether the interface between the service layer and the base application
  3615.  platform conforms to any standards affects the portability of the service
  3616.  component.  Note that specifying a standard API for this interface
  3617.  guarantees only that this component will be portable at the source level.
  3618.  
  3619.  
  3620.  
  3621.                Copyright c 1991 IEEE.  All rights reserved.
  3622.       This is an unapproved IEEE Standards Draft, subject to change.
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  3.6 Application Platform Implementation Considerations                 35
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  P1003.0/D13
  3635.  
  3636.  _________________________________________________________________________
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  _________________________________________________________________________
  3654.       Figure 3-8  -  Application Platform Decomposition II - Layering
  3655.  
  3656.  _________________________________________________________________________
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  _________________________________________________________________________
  3674.     Figure 3-9  -  Application Platform Decomposition III - Redirection
  3675.  
  3676.  
  3677.  3.6.3  Redirection
  3678.  
  3679.  Redirection allows a service component to ask the base application
  3680.  platform to redirect all requests for that type of service to the service
  3681.  component.  See Figure 3-9.  Possible examples of such services are
  3682.  device drivers, network protocol handlers, and database engines.
  3683.  
  3684.  
  3685.  
  3686.  
  3687.                Copyright c 1991 IEEE.  All rights reserved.
  3688.       This is an unapproved IEEE Standards Draft, subject to change.
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  36                                        3 POSIX Open System Environment
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3701.  
  3702.  In actual implementation, the service component may or may not be a
  3703.  separate process.  Possible implementations are:  dynamically loadable
  3704.  kernel modules, library routines layered over IPC, and lightweight kernel
  3705.  processes.
  3706.  
  3707.  Note that there are three interfaces.  The application software normally
  3708.  sees a complete, standard API to the base.  The service component has two
  3709.  interfaces--one to effect the redirection, and one to provide base
  3710.  services to the service application software entity.  Considerations for
  3711.  portability discussed under Layering also apply here.
  3712.  
  3713.  Note also that no POSIX standardization activity currently exists for the
  3714.  redirection interface.
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.                Copyright c 1991 IEEE.  All rights reserved.
  3754.       This is an unapproved IEEE Standards Draft, subject to change.
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  3.6 Application Platform Implementation Considerations                 37
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.                                                                P1003.0/D13
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.              Section 4: POSIX Open System Environment Services
  3842.  
  3843.  
  3844.  
  3845.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  3846.  
  3847.  This section describes the services required in support of the objectives
  3848.  identified in this guide.  The services are grouped in major categories
  3849.  defined in Section 3, with more detailed breakdowns within each category
  3850.  as appropriate.  These categories are:
  3851.  
  3852.     Fundamental System Services
  3853.  
  3854.           4.1   Language Services
  3855.  
  3856.           4.2   System Services
  3857.  
  3858.     Communications Services
  3859.  
  3860.           4.3   Network Services
  3861.  
  3862.     Information Services
  3863.  
  3864.           4.4   Database Services
  3865.  
  3866.           4.5   Data Interchange Services
  3867.  
  3868.     Human-Computer Interaction Services
  3869.  
  3870.           4.6   Windowing System Services                                   d
  3871.  
  3872.           4.7   Graphic Services
  3873.  
  3874.           4.8   Character-Based User Interface Services
  3875.  
  3876.           4.9   User Command Interface Services
  3877.  
  3878.     Domain Services
  3879.  
  3880.           4.10  Transaction Processing Services                             d
  3881.  
  3882.  
  3883.  
  3884.  
  3885.                Copyright c 1991 IEEE.  All rights reserved.
  3886.       This is an unapproved IEEE Standards Draft, subject to change.
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  4 POSIX Open System Environment Services                               39
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  3899.  
  3900.           4.11  Software Development Environment Services
  3901.  
  3902.  Criteria used to partition services are outlined in 3.2, and discussed at
  3903.  the beginning of each clause.  The discussion for each of the service
  3904.  category subclauses follows the same outline, and is as follows:
  3905.  
  3906.     4._n.1
  3907.     4._n.2    Overview and Rationale, Scope
  3908.  
  3909.              This text introduces the scope of this service category, and
  3910.              the criteria used to identify the services within it.
  3911.  
  3912.     4._n.3    Reference Model
  3913.  
  3914.              This subclause builds on the model of clause 3.2 and gives
  3915.              additional detail related to the interfaces and services
  3916.              discussed there.  An optional subclause may discuss
  3917.              implementation considerations, similar to the discussion of
  3918.              3.6.
  3919.  
  3920.     4._n.4    Service Requirements
  3921.  
  3922.              This text provides the definition of service requirements
  3923.              within the scope described in 4._n.2.
  3924.  
  3925.     4._n.5    Standards, Specifications, and Gaps
  3926.  
  3927.              A table lists the standards and specifications available to
  3928.              meet the service requirements listed in 4._n.4.  This is
  3929.              followed by a brief discussion of services for which
  3930.              standards are not available.
  3931.  
  3932.     4._n.5.1  Current Standards
  3933.  
  3934.              The following subclauses cite existing specifications that
  3935.              have been approved as standards by accredited standards
  3936.              bodies, in the order of precedence identified in 3.4.2.  When  d
  3937.              service requirements are satisfied at a higher precedence      d
  3938.              level, specifications at a lower level are not listed.         d
  3939.                                                                             d
  3940.  
  3941.     4._n.5.2  Emerging Standards
  3942.  
  3943.              The following subclauses list specifications and/or
  3944.              activities that address the functional areas within the 4._n
  3945.              section, but which have not yet been completed.  Where a       d
  3946.              group or activity is cited, the charter of the group may
  3947.              address the functionality, but it is possible that a draft
  3948.              may not be available.  Only those services not currently
  3949.  
  3950.  
  3951.                Copyright c 1991 IEEE.  All rights reserved.
  3952.       This is an unapproved IEEE Standards Draft, subject to change.
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958.  40                               4 POSIX Open System Environment Services
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  3965.  
  3966.              addressed by existing standards are to be discussed in this
  3967.              subclause.  It is expected that documents will migrate from
  3968.              4._n.5.2 to 4._n.5.1 as they complete the consensus process.
  3969.                                                                             d
  3970.  
  3971.     4._n.5.3  Gaps in Available Standards
  3972.  
  3973.              This subclause identifies those service requirements that
  3974.              have not been satisfied by existing or emerging standards.
  3975.              If all service requirements in this category have been met by
  3976.              existing or emerging standards, this subclause will be empty.
  3977.              Text in this subclause will be minimal.
  3978.  
  3979.     4._n.5.3.1 Public Specifications
  3980.  
  3981.              This subclause lists any specification outside of the formal
  3982.              standards community that is available to anyone (e.g., no
  3983.              membership required) for implementation and distribution
  3984.              (including sale) without restriction, including all
  3985.              government and de facto standards.
  3986.  
  3987.     4._n.5.3.2 Unsatisfied Service Requirements
  3988.  
  3989.              This subclause lists the services for which no specification
  3990.              has been cited in this guide.  Products may be cited here to
  3991.              illustrate capabilities that are not addressed by standards.
  3992.  
  3993.     4._n.6    POSIX OSE Cross-Category Services
  3994.  
  3995.              This subclause contains any discussion of the Cross-Category
  3996.              Services in Section 5 that is specific to subclause 4._n.
  3997.  
  3998.     4._n.7    Related Standards
  3999.  
  4000.              This subclause is optional and may identify interdependencies
  4001.              among standards that should be taken into account when
  4002.              selecting among them.
  4003.  
  4004.     4._n.8    Open Issues
  4005.  
  4006.              This subclause is optional and may identify issues under
  4007.              discussion in the open systems community.
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.                Copyright c 1991 IEEE.  All rights reserved.
  4018.       This is an unapproved IEEE Standards Draft, subject to change.
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  4 POSIX Open System Environment Services                               41
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.                Copyright c 1991 IEEE.  All rights reserved.
  4084.       This is an unapproved IEEE Standards Draft, subject to change.
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090.  42                               4 POSIX Open System Environment Services
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4097.  
  4098.  4.1  Language Services
  4099.  
  4100.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d
  4101.  
  4102.  
  4103.  _4._1._1  Overview and Rationale
  4104.  
  4105.  While a consistent interface to the operating system is essential for
  4106.  applications portability, the application will have been developed using
  4107.  language and system development tools that, in turn, require to be
  4108.  supported by standards to achieve source code portability.
  4109.  
  4110.  Those responsible for system or software development will wish to write
  4111.  programs in code supported by an international standard and compile the
  4112.  code using a compiler that has a certificate of conformance issued by an
  4113.  accredited test center.  Noncompliant extensions must be avoided if
  4114.  applications portability is to be maintained.  Compilers should identify
  4115.  nonstandard-compliant code.
  4116.  
  4117.  The languages that have been identified in this document are those seen
  4118.  to be in most popular use today for software development.  The POSIX.2     d
  4119.  shell command language is discussed in 4.9.  The standards identified are  d
  4120.  the most widely recognized today, with significant use in the Information
  4121.  Technology industry on a broad range of processors, or where a large
  4122.  installed base of a particular version is known to exist.
  4123.  
  4124.  
  4125.  4.1.2  Scope
  4126.  
  4127.  The services described in this clause cover the most widely used third-
  4128.  generation computer languages in use today for the development of
  4129.  applications; i.e., the languages used to write application programs.
  4130.  Fourth-generation languages are not currently addressed in this guide.
  4131.  In order for a program to address an API to the services described in
  4132.  other clauses of this guide, an appropriate language binding to that
  4133.  interface is required.  References to those bindings will be found in the
  4134.  clause describing the relevant service.
  4135.  
  4136.  
  4137.  4.1.3  Reference Model
  4138.  
  4139.  This subclause identifies the entities and interfaces supporting language
  4140.  services.  The reference model based on the reference model in Figure 3-1
  4141.  is illustrated in Figure 4-1, but because the language services directly
  4142.  support the binding of the applications to the API, there is no EEI.
  4143.  However, the EEI is shown in Figure 4-1 for consistency.
  4144.  
  4145.  At the simplistic level, the programmer developing an application that
  4146.  requires only basic operating system services will use a compiler that
  4147.  
  4148.  
  4149.                Copyright c 1991 IEEE.  All rights reserved.
  4150.       This is an unapproved IEEE Standards Draft, subject to change.
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  4.1 Language Services                                                  43
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4163.  
  4164.  _________________________________________________________________________
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  _________________________________________________________________________
  4182.               Figure 4-1  -  Language Service Reference Model
  4183.  
  4184.  
  4185.  meets both the fundamental language standard (e.g., ISO 1989: 1985 for
  4186.  COBOL, ISO 1359: 1990 for Fortran) and the binding established for the     d
  4187.  relevant system calls in POSIX.1 {2}.
  4188.  
  4189.  As identified in 4.10, an application program may also require database
  4190.  services that will be provided by the Database Manager API.  The database
  4191.  vendor will offer an API to meet the requirements for the popular
  4192.  programming languages.
  4193.  
  4194.  In a POSIX Open System Environment the intention is that support is
  4195.  provided for all languages identified in 4.1.4.
  4196.  
  4197.  
  4198.  4.1.4  Service Requirements
  4199.  
  4200.  Programming language services provide the basic syntax and semantic
  4201.  definition for use by a software developer to describe the desired
  4202.  application software function.  While most clauses in this guide provide
  4203.  a comprehensive list of services, in the case of languages many services
  4204.  are a unique function of the language specification.  Rather than extend
  4205.  the size of this guide, the detail is more appropriately found in the
  4206.  relevant language manuals and supporting standards.
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.                Copyright c 1991 IEEE.  All rights reserved.
  4216.       This is an unapproved IEEE Standards Draft, subject to change.
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  44                               4 POSIX Open System Environment Services
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4229.  
  4230.  4.1.4.1  Application Program Services
  4231.  
  4232.  Programmers require the ability to compile a program in the language of    d
  4233.  their choice.  The selection of a particular programming language for the  d
  4234.  development of an application may depend on a variety of factors,
  4235.  including the capability to provide some of the functions listed here:
  4236.  
  4237.      - Arithmetic operation
  4238.  
  4239.      - Code structure
  4240.  
  4241.      - Data definition
  4242.  
  4243.      - Data representation
  4244.  
  4245.      - Error handling
  4246.  
  4247.      - I/O operations
  4248.  
  4249.      - Mathematical functions
  4250.  
  4251.      - Program control logic
  4252.  
  4253.  The programming languages identified in this clause are:
  4254.  
  4255.        Ada
  4256.        APL
  4257.        BASIC
  4258.        C
  4259.        C++
  4260.        COBOL
  4261.        Common LISP
  4262.        FORTRAN
  4263.        Pascal
  4264.        PL/1
  4265.        Prolog
  4266.  
  4267.  As well as making reference to the relevant language standard, where a     d
  4268.  programmer requires to call other services, e.g., seeks access to          d
  4269.  graphics kernel system, it will be necessary to refer to the relevant      d
  4270.  language binding to those services.  Language bindings are identified in   d
  4271.  the Standards subclause, 4._n.10, of each service clause in Chapter 4.      d
  4272.  
  4273.  4.1.4.1.1  Ada
  4274.  
  4275.  Ada is a procedural language based on the Pascal programming language.
  4276.  It is capable of processing both numerical and textual data, and has the
  4277.  key attributes of:
  4278.  
  4279.  
  4280.  
  4281.                Copyright c 1991 IEEE.  All rights reserved.
  4282.       This is an unapproved IEEE Standards Draft, subject to change.
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  4.1 Language Services                                                  45
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4295.  
  4296.      - Strong data typing
  4297.  
  4298.      - Data abstraction
  4299.  
  4300.      - Structured constructs
  4301.  
  4302.      - Multitasking
  4303.  
  4304.      - Concurrent processing
  4305.  
  4306.  Although Ada was developed initially for military purposes, it is
  4307.  considered suitable for a variety of business and industrial
  4308.  applications.
  4309.  
  4310.  4.1.4.1.2  APL
  4311.  
  4312.  APL is a language and interactive programming environment oriented around
  4313.  multidimensional arrays of characters and numbers.  It uses an extremely
  4314.  compact notation based on powerful primitive functions and function-
  4315.  combining operators.  Revisions to the language are in preparation to
  4316.  permit single array elements to contain arrays.
  4317.  
  4318.  4.1.4.1.3  BASIC
  4319.  
  4320.  BASIC is an interactive and procedural language with some similarity to
  4321.  FORTRAN.  It is readily learned by non-computer-literate individuals.
  4322.  Commonly used for educational purposes, it has also been adopted in a
  4323.  variety of business and commercial applications running on small business
  4324.  systems.  BASIC offers:
  4325.  
  4326.      - Conversational statements
  4327.  
  4328.      - Free style input
  4329.  
  4330.      - Segmentation of complex statements
  4331.  
  4332.      - Six significant digits of accuracy
  4333.  
  4334.      - Mathematical functions
  4335.  
  4336.  4.1.4.1.4  C
  4337.  
  4338.  C is a general purpose procedural language that was developed for the
  4339.  UNIX operating system.  It offers the control and data structure of a
  4340.  high-level language and the efficiency of primitive operators that have
  4341.  made it very suitable for system programming.
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.                Copyright c 1991 IEEE.  All rights reserved.
  4348.       This is an unapproved IEEE Standards Draft, subject to change.
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  46                               4 POSIX Open System Environment Services
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4361.  
  4362.  4.1.4.1.5  C++
  4363.  
  4364.  C++ has evolved as a superset of C and may be viewed as a procedural
  4365.  language, while at the same time offering the capability for object-
  4366.  oriented programming.  The concept of an object-oriented language is to
  4367.  define data objects that include sets of operations to manipulate the
  4368.  data, and so direct these objects to apply the necessary operations which
  4369.  comprise the application.
  4370.  
  4371.  4.1.4.1.6  COBOL
  4372.  
  4373.  COBOL is a procedural language designed originally to meet the needs of
  4374.  business.  It permits use of natural words and phrases, enabling the
  4375.  language to be adopted by non-technical writers with a basic appreciation
  4376.  of information processing.  The language offers file organization
  4377.  features, variable data length, input/output procedures, and report
  4378.  generation.
  4379.  
  4380.  4.1.4.1.7  Common LISP
  4381.  
  4382.  LISP is an interactive nonprocedural language.  The basic entity is the
  4383.  symbolic expression which is either an atomic symbol or a list structure.
  4384.  A list is a set of items in a specific order.  Lists can be variable
  4385.  length and dynamically adjusted; the items can be of different type.
  4386.  
  4387.  4.1.4.1.8  FORTRAN
  4388.  
  4389.  Though originally developed for processing scientific problems the
  4390.  language is widely used in commercial and educational applications.  It
  4391.  is a procedural language whose grammar, symbols, rules, and syntax are
  4392.  simple mathematical and English-language conventions.  Its focus is on
  4393.  numerical computation, using simple concise statements, operating on
  4394.  small amounts of input data and little text.
  4395.  
  4396.  4.1.4.1.9  Pascal
  4397.  
  4398.  This is a procedural language that is particularly effective in
  4399.  structured programming and was designed to help programmers in rapid
  4400.  error detection.  It is highly efficient, handling both numerical and
  4401.  textual data.  It is considered very suitable for small system
  4402.  applications such as typesetting, editorial work, computer aided design    d
  4403.  (CAD), and manufacturing processes.                                        d
  4404.  
  4405.  4.1.4.1.10  PL/1
  4406.  
  4407.  This is a procedural language introduced to offer in one language the
  4408.  strengths of both COBOL and FORTRAN; i.e., serving both the business and
  4409.  scientific communities.  It has the FORTRAN strength of simple
  4410.  statements, coupled with the ability, as in COBOL, to manipulate data and
  4411.  
  4412.  
  4413.                Copyright c 1991 IEEE.  All rights reserved.
  4414.       This is an unapproved IEEE Standards Draft, subject to change.
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  4.1 Language Services                                                  47
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4427.  
  4428.  organize files.  It is block structured, facilitating good programming
  4429.  techniques.
  4430.  
  4431.  4.1.4.1.11  Prolog
  4432.  
  4433.  This language, like LISP, is nonprocedural and has an emphasis on
  4434.  description rather than on action.  It is described as pattern-directed
  4435.  role-based programming using definitions of conditions established within
  4436.  the program to satisfy a query.  It is of particular value in
  4437.  applications of artificial intelligence, for constructing expert or
  4438.  knowledge-based systems.
  4439.  
  4440.  
  4441.  4.1.4.2  External Environment Interface Services
  4442.  
  4443.  Not applicable.
  4444.  
  4445.  4.1.4.3  Interapplication Software Entity Services
  4446.  
  4447.  Not applicable.
  4448.  
  4449.  
  4450.  4.1.4.4  Language Resource Management Services
  4451.  
  4452.  Not applicable.
  4453.  
  4454.  
  4455.  4.1.5  Standards, Specifications, and Gaps
  4456.  
  4457.  4.1.5.1  Current Standards in the POSIX OSE
  4458.  
  4459.  Most of the languages referenced in this clause are supported by
  4460.  International Standards; Table 4-1 provides a summary.
  4461.  
  4462.  4.1.5.1.1  International Standards
  4463.  
  4464.  _A_d_a
  4465.  
  4466.  ISO 8652: 1987 is the current version of the international standard for
  4467.  Ada, which was an endorsement of the ANSI standard 1815A-1983.
  4468.  
  4469.  _A_P_L
  4470.  
  4471.  ISO 8485 is the current version of the international standard for APL.
  4472.  
  4473.  _B_A_S_I_C
  4474.  
  4475.  ISO 6373: 1984 is the current version of the international standard for
  4476.  minimal BASIC.
  4477.  
  4478.  
  4479.                Copyright c 1991 IEEE.  All rights reserved.
  4480.       This is an unapproved IEEE Standards Draft, subject to change.
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  48                               4 POSIX Open System Environment Services
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4493.  
  4494.  
  4495.                 Table 4-1  -  Language Standards Activities
  4496.  __________________________________________________________________________________________________________________________________________________
  4497.                    Service     Specification   Subclause
  4498.                  ________________________________________
  4499.  
  4500.                  Ada           ISO 8652        4.1.5.1.1
  4501.                  APL           ISO 8485        4.1.5.1.1
  4502.                  BASIC         ISO 6373        4.1.5.1.1
  4503.                  C             ISO/IEC 9899    4.1.5.1.1
  4504.                  C++           n/a             4.1.5.3.2
  4505.                  COBOL         ISO 1989        4.1.5.1.1
  4506.                  Common LISP   n/a             4.1.5.3.2
  4507.                  FORTRAN       ISO 1539        4.1.5.1.1
  4508.                  Pascal        ISO 7185        4.1.5.1.1
  4509.                  PL/1          ISO 6160        4.1.5.1.1
  4510.                                ISO 6522        4.1.5.1.1
  4511.                  PROLOG        n/a             4.1.5.3.2
  4512.  __________________________________________________________________________________________________________________________________________________
  4513.  
  4514.  
  4515.  _C
  4516.  
  4517.  ISO/IEC 9899 is the current version of the international standard for the
  4518.  C language.
  4519.  
  4520.  _C_O_B_O_L
  4521.  
  4522.  ISO 1989: 1985 is the latest version of the international standard for
  4523.  COBOL, which was an endorsement of the ANSI standard X3.23-1985.  An
  4524.  Addendum is in process at present entitled ``Intrinsic function module.''
  4525.  
  4526.  _F_o_r_t_r_a_n                                                                    d
  4527.  
  4528.  ISO 1539: 1990 is the latest revision of the international standard for    d
  4529.  Fortran.                                                                   d
  4530.  
  4531.  _P_a_s_c_a_l
  4532.  
  4533.  ISO 7185: 1983 is the current version of the international standard for
  4534.  Pascal, which was an endorsement of the British standard BS 6192-1982.
  4535.  
  4536.  _P_L_/_1
  4537.  
  4538.  ISO 6160: 1979 is the current version of the international standard for
  4539.  PL/1, which was an endorsement of the ANSI standard X3.53-1976.  ISO
  4540.  6522: 1985 is the current version of the international standard for a
  4541.  General Purpose subset of PL/1, which is an endorsement of ANSI standard
  4542.  X3.74-1981.  A revision of this standard is at Draft IS stage.
  4543.  
  4544.  
  4545.                Copyright c 1991 IEEE.  All rights reserved.
  4546.       This is an unapproved IEEE Standards Draft, subject to change.
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  4.1 Language Services                                                  49
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4559.  
  4560.  4.1.5.1.2  Regional Standards
  4561.  
  4562.  4.1.5.1.3  National Standards
  4563.  
  4564.  
  4565.  4.1.5.2  Emerging Standards in the POSIX OSE
  4566.  
  4567.  4.1.5.2.1  International Standards
  4568.  
  4569.  _B_A_S_I_C
  4570.  
  4571.  DP 10279 is a proposal for Full BASIC.
  4572.  
  4573.  _P_a_s_c_a_l
  4574.  
  4575.  DIS 10206 is a draft international standard for extended Pascal.
  4576.  
  4577.  4.1.5.2.2  Regional Standards
  4578.  
  4579.  4.1.5.2.3  National Standards
  4580.  
  4581.  4.1.5.3  Gaps in Available Standards
  4582.  
  4583.  4.1.5.3.1  Standards and Specifications outside the POSIX OSE
  4584.  
  4585.  4.1.5.3.2  Unsatisfied Service Requirements
  4586.  
  4587.  There is a requirement for standardization of the following languages:
  4588.  
  4589.        C++
  4590.        LISP
  4591.        Prolog
  4592.  
  4593.  
  4594.  4.1.6  OSE Cross-Category Services
  4595.  
  4596.  Not applicable.                                                            d
  4597.  
  4598.  
  4599.  4.1.7  Related Standards
  4600.  
  4601.  Many of the services within the POSIX OSE require APIs with bindings to
  4602.  languages identified in this clause; e.g., Graphics, Database.  Reference
  4603.  to the particular language binding standard is to be found in the
  4604.  relevant service clause.
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.                Copyright c 1991 IEEE.  All rights reserved.
  4612.       This is an unapproved IEEE Standards Draft, subject to change.
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  50                               4 POSIX Open System Environment Services
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4625.  
  4626.  4.1.8  Open Issues
  4627.  
  4628.  While there are occasional calls for 4GL standards, there has been little
  4629.  effort applied so far.
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.                Copyright c 1991 IEEE.  All rights reserved.
  4678.       This is an unapproved IEEE Standards Draft, subject to change.
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  4.1 Language Services                                                  51
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.                Copyright c 1991 IEEE.  All rights reserved.
  4744.       This is an unapproved IEEE Standards Draft, subject to change.
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  52                               4 POSIX Open System Environment Services
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4757.  
  4758.  4.2  System Services
  4759.  
  4760.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _P_a_t_r_i_c_i_a _O_b_e_r_n_d_o_r_f                                        _d
  4761.  
  4762.  
  4763.  4.2.1  Overview and Rationale
  4764.  
  4765.  This clause describes the system services component of the application
  4766.  platform.  It presents a reference model for this component and describes
  4767.  the services provided to application software.  Those services are those
  4768.  usually considered as part of an operating system or executive and also
  4769.  those services that may be provided by system level entities such as
  4770.  spoolers and device drivers.  Standards, current and emerging, that
  4771.  specify the interface to those system services are also described.
  4772.  
  4773.  System services are a key component of the application platform and
  4774.  represent the focus of the IEEE effort to produce POSIX base standards.
  4775.  A common set of system services provides support for the portability and
  4776.  the interoperability of application software.  While other common
  4777.  services can aid application reuse, system services are those that are
  4778.  common to the largest number of applications.
  4779.  
  4780.  
  4781.  4.2.2  Scope
  4782.  
  4783.  System services cover those features that users have come to expect from
  4784.  operating systems or executives.  They cover the areas of process
  4785.  management, file management, input/output, memory management, and print
  4786.  spoolers.  Because there is a wide variety of platform users, ranging
  4787.  from large general purpose time-shared systems to small time-critical,
  4788.  special-purpose systems, services such as timers and clocks, event
  4789.  management, logical device drivers, and system
  4790.  initialization/reinitialization are included.  Services related to
  4791.  distributed systems are also discussed, since application software sees
  4792.  these capabilities through the platform.                                   d
  4793.  
  4794.  
  4795.  4.2.3  POSIX OSE System Services Reference Model                           d
  4796.  
  4797.  
  4798.  4.2.3.1  Reference Model                                                   d
  4799.  
  4800.  This subclause identifies the entities and interfaces specific to the
  4801.  system services of the POSIX OSE.  The reference model presented here is
  4802.  consistent with and expands upon the reference model of Section 3.  It
  4803.  provides the context for the discussion of System Services in this
  4804.  clause.  The basis System Services model is shown in Figure 4-2.           d
  4805.  
  4806.  
  4807.  
  4808.  
  4809.                Copyright c 1991 IEEE.  All rights reserved.
  4810.       This is an unapproved IEEE Standards Draft, subject to change.
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  4.2 System Services                                                    53
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4823.  
  4824.  _________________________________________________________________________
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  _________________________________________________________________________
  4842.               Figure 4-2  -  System Services Reference Model
  4843.  
  4844.  
  4845.  This clause describes the system services portion of the application
  4846.  platform as viewed by a software developer (not necessarily the viewpoint
  4847.  of the end user).  This view corresponds to the program design level of
  4848.  abstraction.
  4849.  
  4850.  The system services API provides the interface between the application
  4851.  software and the system services from the source code point of view.  The
  4852.  API defines the program designer's means of accessing the functions,
  4853.  objects, and services of the system.                                       d
  4854.  
  4855.  In order for the platform to protect system integrity and ensure system
  4856.  database consistency, application software competing for system resources
  4857.  must access all system resources via system service requests.  The formal
  4858.  definition of these requests (or system calls) defines the system
  4859.  services portion of the API.
  4860.  
  4861.  All of the system services may be available locally or remotely.  Some of
  4862.  the system services may be performed remotely if the system is a
  4863.  distributed system with multiple processor nodes.  Such distribution is
  4864.  not reflected in Figure 4-2 because it is transparent to users of the
  4865.  System Services.
  4866.  
  4867.  The platform's device drivers and other software entities are seen as      d
  4868.  being available to an application program via invocation of the system     d
  4869.  services.  Local devices include sensors, effectors, and connections to    d
  4870.  independent computing systems.  The local devices themselves are a part
  4871.  of the external entities element of the system services reference model.
  4872.  The interfaces used by the application software are the logical device
  4873.  
  4874.  
  4875.                Copyright c 1991 IEEE.  All rights reserved.
  4876.       This is an unapproved IEEE Standards Draft, subject to change.
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  54                               4 POSIX Open System Environment Services
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  4889.  
  4890.  interfaces and are part of the system services.  It should be noted that,
  4891.  even though the device drivers are represented within the system services
  4892.  portion of the application platform and the devices themselves are
  4893.  represented within the external entities, there is no unique system
  4894.  service interface illustrated at the EEI in Figure 3-3.  This is not an
  4895.  oversight; it is due to the belief that such interfaces are not within
  4896.  the scope of this guide.
  4897.  
  4898.  
  4899.  4.2.3.2  Implementation Aspects
  4900.  
  4901.  Although this reference model for system services appears to make no
  4902.  distinction, there are some very important real-world considerations for
  4903.  system services brought on by the essential differences between realtime
  4904.  and nonrealtime systems.  One of the best ways to understand these
  4905.  differences is to examine the performance requirements for system
  4906.  services.
  4907.  
  4908.  Several metrics are associated with the performance of system services.
  4909.  
  4910.  _S_e_r_v_i_c_e _R_e_q_u_e_s_t _L_a_t_e_n_c_y is defined as the interval between (a) context
  4911.  switch from an application context to the operating system context and
  4912.  (b) the reverse context switch from the operating system context to the
  4913.  application context for a given service request.  Note that for
  4914.  asynchronous services, the service request may not have been satisfied
  4915.  within the latency interval.  In error situations, return of an error
  4916.  status or dispatch of the error handler shall be the terminating event
  4917.  for the measurement.
  4918.  
  4919.  _S_e_r_v_i_c_e _D_e_l_i_v_e_r_y _L_a_t_e_n_c_y is the interval between (a) context switch from
  4920.  an application context to the operating system context and (b)
  4921.  satisfaction of the service request.
  4922.  
  4923.  In some contexts, the most important metric is the wall clock time from
  4924.  the point that an external, high-priority event occurs to the time the
  4925.  application actually responds to the event.
  4926.  
  4927.  However, response time exclusively need not always provide an appropriate
  4928.  metric.  It is also necessary to take into account what must be done
  4929.  within that time.  For example, one system with a one-second response
  4930.  time may be high-powered enough to handle and coordinate many tasks
  4931.  within that time.  Another system with a faster response time might not
  4932.  be handling the same amount of processing.
  4933.  
  4934.  _R_e_a_l_t_i_m_e__M_e_t_r_i_c_s
  4935.  
  4936.  Since a realtime system is defined as one that performs its functions
  4937.  within a bounded response time, the evaluation of a realtime system has
  4938.  two distinct requirements.  First, it must have the right functions.
  4939.  Second, each function must be able to guarantee a certain level of
  4940.  
  4941.                Copyright c 1991 IEEE.  All rights reserved.
  4942.       This is an unapproved IEEE Standards Draft, subject to change.
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  4.2 System Services                                                    55
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  4955.  
  4956.  performance.
  4957.  
  4958.  Two major metrics that are concerned with priority interrupts and
  4959.  scheduling are interrupt latency and context switch time.  These are the
  4960.  metrics most commonly associated with realtime systems.
  4961.  
  4962.  Interrupt latency is the longest time interval possible for an interrupt
  4963.  to be received and acknowledged and a process scheduled to service it
  4964.  (see Figure 4-3).
  4965.  
  4966.  The context switching time is the time required to switch from the task
  4967.  that is scheduled to service the interrupt.  It is determined by the time
  4968.  the operating system takes to store the state (context) of the current
  4969.  process so it can continue processing its previous task after servicing
  4970.  the interrupt.
  4971.  
  4972.  
  4973.  4.2.4  Service Requirements
  4974.  
  4975.  This subclause identifies those processor-oriented system services
  4976.  required to support application portability and system interoperability.
  4977.  Subclause 4.2.4.1 describes those system services directly available to
  4978.  an application program via the System Services API.  Other processor-
  4979.  oriented services are described in 4.2.4.4.  Subclause 4.2.5 identifies
  4980.  the applicable standards.
  4981.  
  4982.  This subclause describes the major groups of system services that an
  4983.  application may require of a platform.  Not all of these services require
  4984.  a programming interface; therefore, services are described as either
  4985.  explicit or implicit services.  Explicit services are those that can be
  4986.  accessed from an application program (via the API) and generally are only
  4987.  provided when requested.  Implicit services, on the other hand, are
  4988.  services that the platform provides without a direct request.  An example
  4989.  of an implicit service is the prevention of one program from writing over
  4990.  the memory of another.  An example of an explicit service is a call to a
  4991.  system service routine to output the contents of a block of memory to
  4992.  some device.
  4993.  
  4994.  
  4995.  4.2.4.1  Application Program Interface Services
  4996.  
  4997.  This subclause describes the major categories of system services
  4998.  available at the System Services API.  These services include:
  4999.  
  5000.      - Process Management Services
  5001.  
  5002.      - Task Management Services
  5003.  
  5004.  
  5005.  
  5006.  
  5007.                Copyright c 1991 IEEE.  All rights reserved.
  5008.       This is an unapproved IEEE Standards Draft, subject to change.
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  
  5014.  56                               4 POSIX Open System Environment Services
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5021.  
  5022.  _________________________________________________________________________
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.  
  5040.  
  5041.  
  5042.  
  5043.  
  5044.  
  5045.  
  5046.  
  5047.  
  5048.  
  5049.  
  5050.  
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  _________________________________________________________________________
  5067.                       Figure 4-3  -  Realtime Metrics
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.                Copyright c 1991 IEEE.  All rights reserved.
  5074.       This is an unapproved IEEE Standards Draft, subject to change.
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  4.2 System Services                                                    57
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5087.  
  5088.      - Environment Services
  5089.  
  5090.      - Node Internal Communication and Synchronization Services
  5091.  
  5092.      - Generalized Input/Output Services
  5093.  
  5094.      - File Oriented Services
  5095.  
  5096.      - Event, Error, and Exception Management Services
  5097.  
  5098.      - Time Services
  5099.  
  5100.      - Memory Management Services
  5101.  
  5102.      - Logical Naming Services
  5103.  
  5104.      - System Initialization, Reinitialization, and Shutdown Services
  5105.  
  5106.  4.2.4.1.1  Process Management Services
  5107.  
  5108.  These services relate to the creation, management, and deletion of
  5109.  processes executing within the scope of an operating system.  These
  5110.  processes are distinguished from ``tasks'' via the following
  5111.  characteristics:
  5112.  
  5113.      - They have a single thread of execution per address space.
  5114.  
  5115.      - There is substantial overhead for context switches.
  5116.  
  5117.      - Specific attributes are associated only with processes.
  5118.  
  5119.  In this context, ``management'' consists of those services that affect
  5120.  the execution of a process:
  5121.  
  5122.      - Stop and restart execution of a process (e.g., suspend, resume)
  5123.  
  5124.      - Modify processor allocation to a process (e.g., priority,
  5125.        timeslice)
  5126.  
  5127.      - Modify scheduling of the process based on timer (or other) events
  5128.  
  5129.      - Protect the process from interruption during critical periods
  5130.  
  5131.      - Create a process and make it ready for execution
  5132.  
  5133.      - Destroy a process and recover its resources
  5134.  
  5135.      - Evaluate a reference to a process
  5136.  
  5137.  
  5138.  
  5139.                Copyright c 1991 IEEE.  All rights reserved.
  5140.       This is an unapproved IEEE Standards Draft, subject to change.
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  
  5146.  58                               4 POSIX Open System Environment Services
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5153.  
  5154.      - Evaluate a connection to a process, where a connection is a logical
  5155.        communication path between any two processes
  5156.  
  5157.  These services schedule or arbitrate the usage of various resources of
  5158.  the OS, particularly the central processing unit (CPU).  The scheduling    d
  5159.  services must be able to queue up requests to use a particular resource.
  5160.  This situation is made more complicated by the common need to schedule
  5161.  processes to run cyclically at a fixed period.  When a resource becomes
  5162.  idle, the scheduler must select one of the ``requesters'' of the resource
  5163.  to grant use of the resource.  These services are listed separately
  5164.  rather than under the services that use scheduling to emphasize that
  5165.  there should be uniformity and consistency of scheduling across the range
  5166.  of resources.
  5167.  
  5168.  Typically, there are at least two types of scheduling occurring in an
  5169.  operating system:  short-term and long-term.  Long-term schedulers
  5170.  determine which possible requesters at a given time may actually request
  5171.  a resource.  The short-term scheduler selects from among the active
  5172.  ``requesters'' that currently have need of the resource and allocates the
  5173.  resource to the selected ``requester.''  For example, if the requesters
  5174.  are processes and the resource is the CPU, the long-term scheduler
  5175.  manages the movement of processes from inactive (waiting in batch queues
  5176.  or in hibernation) to active (in wait or execute).  The short-term
  5177.  scheduler, on the other hand, would determine which process should
  5178.  execute next on the CPU.  Hybrid services between the two may also be
  5179.  available in the operating system.
  5180.  
  5181.  When a request for a resource is submitted to the operating system (at
  5182.  some local operating system node), it is not always serviced at that
  5183.  local node.  The most advantageous way to service the request may result
  5184.  in part or all of the work being performed at a different processor node.
  5185.  Several reasons may cause this to occur, including load balancing,
  5186.  resource availability, computation speedup, hardware preference, and
  5187.  software preference.  These services may hide from the application the
  5188.  fact that the functionality was being performed at a different node.
  5189.  This has the advantage that the code needs to know little about the
  5190.  system on which it is running.  Alternately, the services may allow the
  5191.  user to specify directly on which logical resource the function should be
  5192.  executed.
  5193.  
  5194.  The priority scheduling of resources allows the requester to have
  5195.  associated with it its importance to use the service.  More complex
  5196.  schemes also have a criticalness of the request that is used for graceful
  5197.  degradation purposes.  The scheduler(s) will use the priority information
  5198.  to arbitrate resource requests and to queue requests in the specific
  5199.  order.  A priority scheduler may need to support multilevel queues to
  5200.  support proper execution.
  5201.  
  5202.  
  5203.  
  5204.  
  5205.                Copyright c 1991 IEEE.  All rights reserved.
  5206.       This is an unapproved IEEE Standards Draft, subject to change.
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  4.2 System Services                                                    59
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5219.  
  5220.  Preemptive schedulers will deallocate a resource from a requester when
  5221.  certain events occur.  Usually this is when a requester of a higher
  5222.  priority or importance requests the resource or a specified time limit
  5223.  for the resource has expired.
  5224.  
  5225.  4.2.4.1.2  Task Management Services
  5226.  
  5227.  These services relate to the creation, management, and deletion of tasks
  5228.  executing within the scope of an operating system.  These tasks are
  5229.  distinguished from ``processes'' via the following characteristics:
  5230.  
  5231.      - There may be multiple threads of execution per address space.
  5232.  
  5233.      - There is low overhead for context switches between threads located
  5234.        in the same address space.
  5235.  
  5236.  In this context, ``management'' consists of those services that affect
  5237.  the execution of a task:
  5238.  
  5239.      - Stop and restart execution of a task (e.g., suspend, resume).
  5240.  
  5241.      - Modify processor allocation to a task (e.g., priority, timeslice).
  5242.  
  5243.      - Modify scheduling of the task based on timer (or other) events.
  5244.  
  5245.      - Protect the task from interruption during critical periods.
  5246.  
  5247.      - Create a task and make it ready for execution.
  5248.  
  5249.      - Destroy a task.
  5250.  
  5251.      - Evaluate a reference to a task.
  5252.  
  5253.      - Evaluate a connection to a task, where a connection is a logical
  5254.        communication path between any two tasks.
  5255.  
  5256.  4.2.4.1.3  Environment Services
  5257.  
  5258.  These services provide an application access to a variety of information
  5259.  relating to the operating system environment in which the application is
  5260.  executing.  The specific characteristics are:
  5261.  
  5262.      - Process-specific attributes (process identification, priority,
  5263.        stack size, scheduling attributes, status, memory allocation).
  5264.  
  5265.      - Task-specific attributes (task identification, priority, scheduling
  5266.        attributes, status, memory allocation).
  5267.  
  5268.  
  5269.  
  5270.  
  5271.                Copyright c 1991 IEEE.  All rights reserved.
  5272.       This is an unapproved IEEE Standards Draft, subject to change.
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  60                               4 POSIX Open System Environment Services
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5285.  
  5286.      - Processor-specific attributes (node identification, electronic
  5287.        nameplate information).
  5288.  
  5289.      - User-specific attributes (user identification and terminal ID, user
  5290.        interaction profile).
  5291.  
  5292.      - Environment variables (command-line arguments, menu selections).
  5293.  
  5294.      - Current time and date
  5295.  
  5296.  4.2.4.1.4  Node Internal Communication and Synchronization Services
  5297.  
  5298.  One or more applications and application subcomponents may run on a        d
  5299.  processor within an application platform simultaneously.  The              d
  5300.  applications run as independent software entities and communicate among    d
  5301.  themselves via a variety of mechanisms provided or managed by the system   d
  5302.  services (see Figure 3-2).  An important class of system services relates  d
  5303.  to the coordination and synchronization of these software entities.  In    d
  5304.  traditional systems, entities execute on a single hardware processor.      d
  5305.  However, it is becoming common to have multiple processors and networked   d
  5306.  processors that place more requirements on the system services to provide  d
  5307.  coordination and synchronization among the many truly concurrent software  d
  5308.  entities.                                                                  d
  5309.  
  5310.  When a platform has several software entities executing concurrently, the  d
  5311.  applications need system services so that the entities can be coordinated  d
  5312.  and synchronized with each other.  With respect to applications written    d
  5313.  using concurrency, there are two levels of concurrency that are usually    d
  5314.  seen by the application developer.  The first level of concurrency, task   d
  5315.  level concurrency, is seen when the application is split into multiple     d
  5316.  subcomponents (tasks) that share access to the data and subprograms of     d
  5317.  the application.  Concurrency services at this level concern the relative  d
  5318.  priorities and scheduling of tasks within a single application program     d
  5319.  and their communication with each other.  At the second level of           d
  5320.  concurrency, application level concurrency, a unit is a single             d
  5321.  application including all its subcomponents.  Concurrency services at      d
  5322.  this level concern the relative importance of the individual applications  d
  5323.  competing for and sharing system resources.                                d
  5324.  
  5325.  These services are used to communicate among processes, among tasks, and
  5326.  among processes and tasks residing on the same node.  The methods
  5327.  outlined do not include the network specific services described in 4.3,
  5328.  but are limited to methods open to entities executing within the scope of
  5329.  a single operating system.  Both synchronous and asynchronous services
  5330.  are defined.  The specific services are:
  5331.  
  5332.      - Create, delete, open, close, read, and write shared memory.
  5333.  
  5334.  
  5335.  
  5336.  
  5337.                Copyright c 1991 IEEE.  All rights reserved.
  5338.       This is an unapproved IEEE Standards Draft, subject to change.
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  4.2 System Services                                                    61
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5351.  
  5352.      - Create, delete, read, and write event flags.
  5353.  
  5354.      - Create, delete, set, and wait on semaphores.
  5355.  
  5356.      - Create/send and receive signals.
  5357.  
  5358.      - Create, delete, open, close, send to, get from, and control message
  5359.        queues.
  5360.  
  5361.      - Create, delete, send, and receive streams.
  5362.  
  5363.  4.2.4.1.5  Generalized Input/Output Services
  5364.  
  5365.  These services are used by an application to perform generalized device
  5366.  I/O operations.  These operations include synchronous and asynchronous
  5367.  operations for device and class specific functions.  Specifically, these
  5368.  form the services needed to implement or include logical device drivers
  5369.  in a system.  These services are device initialization, device
  5370.  attachment, asynchronous operation, and error notification.  In addition,
  5371.  they include those services that are used to directly access specific
  5372.  device capabilities, particularly those services often referred to as
  5373.  ``raw I/O.''
  5374.  
  5375.  4.2.4.1.6  File Oriented Services
  5376.  
  5377.  Mass storage in the form of hierarchy of directories, subdirectories and
  5378.  files will be available to an application executing within the
  5379.  application platform.  The following paragraphs describe the services
  5380.  available for creating, accessing, managing, and deleting these entities
  5381.  with mass storage.  Both synchronous and asynchronous services are
  5382.  defined.
  5383.  
  5384.  _N_a_m_i_n_g__a_n_d__D_i_r_e_c_t_o_r_y__S_e_r_v_i_c_e_s
  5385.  
  5386.  These services allow the access of files and directories through logical
  5387.  names rather than the actual hardware device naming conventions.  The
  5388.  services allow sharing of files at various levels.  For example, the
  5389.  services may not allow any shared naming of files and directories between
  5390.  systems, or they may allow shared files by explicit naming, or they may
  5391.  allow shared files by implicit naming.  The directory services present a
  5392.  view or views of the directory structure to the application or target
  5393.  system operator.
  5394.  
  5395.  _F_i_l_e__M_o_d_i_f_i_c_a_t_i_o_n__P_r_i_m_i_t_i_v_e_s
  5396.  
  5397.  Primitive services for files and directories are:
  5398.  
  5399.      - Read a portion of the file.
  5400.  
  5401.  
  5402.  
  5403.                Copyright c 1991 IEEE.  All rights reserved.
  5404.       This is an unapproved IEEE Standards Draft, subject to change.
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410.  62                               4 POSIX Open System Environment Services
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5417.  
  5418.      - Write to a portion of the file.
  5419.  
  5420.      - Open access to a file.
  5421.  
  5422.      - Create a new file.
  5423.  
  5424.      - Close access to a file.
  5425.  
  5426.      - Delete a file.
  5427.  
  5428.      - Copy a file.
  5429.  
  5430.      - Merge two or more files.
  5431.  
  5432.      - Append one file to another.
  5433.  
  5434.      - Split one file into two or more files.
  5435.  
  5436.      - Support read and write locks at both the record and file levels.
  5437.  
  5438.  These services may be very complex.  For example, the access to read or
  5439.  write may be direct (by record number), sequential (one record at a
  5440.  time), or indexed (by a key).  The services must also support a variety
  5441.  of file structures, including linked, segmented, contiguous, serial, and
  5442.  directory.
  5443.  
  5444.  _F_i_l_e__S_u_p_p_o_r_t__S_e_r_v_i_c_e_s
  5445.  
  5446.  Additional services support the physical devices on which the files and
  5447.  directory reside.  These services include the dismounting/mounting of
  5448.  medium, the formatting of medium, and the partitioning of media.
  5449.  
  5450.  _R_e_a_l_t_i_m_e__F_i_l_e_s
  5451.  
  5452.  Realtime systems often need special files to ensure fast, bounded, and
  5453.  consistent performance in time critical situations.  The need for a
  5454.  bounded response time for a given I/O function drives the design of these
  5455.  files and services.  One service preallocates the complete disk space
  5456.  needed for a file at creation time, while another guarantees that records
  5457.  within files are aligned in an optimal way (such as along word
  5458.  boundaries).  Services support the access of records within the file in
  5459.  ways that make response time constant or bounded, including by direct
  5460.  access.
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.                Copyright c 1991 IEEE.  All rights reserved.
  5470.       This is an unapproved IEEE Standards Draft, subject to change.
  5471.  
  5472.  
  5473.  
  5474.  
  5475.  
  5476.  4.2 System Services                                                    63
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5483.  
  5484.  4.2.4.1.7  Event, Error, and Exception Management Services
  5485.  
  5486.  These services provide a common facility for the generation and
  5487.  communication of asynchronous events among the system and application
  5488.  programs.  A major use of the event services is to report error
  5489.  conditions, but they are also used by device drivers and the platform to
  5490.  provide an indication of some condition to the application programs.
  5491.  These services are:
  5492.  
  5493.      - Event and error receipt.
  5494.  
  5495.      - Event and error distribution.
  5496.  
  5497.      - Event and error management, including user-selectable error
  5498.        processing alternatives (filtering, retry, ignore, accumulate
  5499.        occurrences).
  5500.  
  5501.      - Event logging.
  5502.  
  5503.      - Enable/disable and mask/unmask interrupts.
  5504.  
  5505.  4.2.4.1.8  Time Services
  5506.  
  5507.  Timers may be a static or dynamic resource on the system, necessitating a
  5508.  variety of allocation and management strategies.  These services are used
  5509.  by applications to perform a variety of services based on absolute and
  5510.  relative time.  These services are:
  5511.  
  5512.      - Create a timer.
  5513.  
  5514.      - Delete a timer.
  5515.  
  5516.      - Initiate the measurement of an arbitrary specified time duration.
  5517.  
  5518.      - Receive an indication when the specified duration has elapsed.
  5519.  
  5520.      - Read the current value of a timer.
  5521.  
  5522.      - Initialize a timer with a value and count direction (i.e.,
  5523.        increment or decrement).
  5524.  
  5525.      - Trigger a timer to begin incrementing or decrementing.
  5526.  
  5527.      - Associate with a timer some action to be taken when the specified
  5528.        duration has elapsed.
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.                Copyright c 1991 IEEE.  All rights reserved.
  5536.       This is an unapproved IEEE Standards Draft, subject to change.
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  64                               4 POSIX Open System Environment Services
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5549.  
  5550.  4.2.4.1.9  Memory Management Services
  5551.  
  5552.  These services are used by application processes and tasks to request
  5553.  additional memory and return it to the processor for reuse.  They cover
  5554.  the services required to fulfill the needs of both virtual and fixed
  5555.  memory.  Specifically, there is a service for locking pages in real
  5556.  memory to support the needs of virtual memory systems.
  5557.  
  5558.  4.2.4.1.10  Logical Naming Services
  5559.  
  5560.  These services allow the usage of system resources through logical names
  5561.  rather than the actual hardware device naming conventions.  Furthermore,
  5562.  they allow the resources of other processor nodes to be accessed via a
  5563.  logical name so that no knowledge of the resource's location is needed
  5564.  and the resource's location may change over time.  Logical names are also
  5565.  used by security services to hide resources from unauthorized processes
  5566.  by only letting authorized processes know the logical name that is needed
  5567.  to use the physical resource.
  5568.  
  5569.  The logical name to physical name relationship can be one to many, many
  5570.  to one, or many to many.  Many times, one physical resource may have
  5571.  multiple logical names as well as one logical name representing a
  5572.  ``bank'' of available physical resources.  These services must provide
  5573.  the proper resolution of names, logical and physical, in all of these
  5574.  cases.
  5575.  
  5576.  4.2.4.1.11  System Initialization, Reinitialization, and Shutdown
  5577.              Services
  5578.  
  5579.  System initialization consists of services for a complete restarting of
  5580.  the software, starting up the attached hardware subsystems devices, doing
  5581.  subsystem and system self tests, and completely initializing the
  5582.  database.
  5583.  
  5584.  System reinitialization consists of services for restarting the software
  5585.  while using the existing database information.  The software may have to
  5586.  be reloaded and the database may have been reestablished by a system
  5587.  recovery.  Attached hardware subsystems may also need to be
  5588.  reinitialized.
  5589.  
  5590.  Reinitialization also includes a function to restart applications
  5591.  redistributed to other processors after a processor module failure.
  5592.  Within a processor, there is a service to initialize applications in a
  5593.  system with the existing software, but with the database reinitialized.
  5594.  Also within a processor, there is a service to restart the applications
  5595.  in a system with the existing software and database retained.
  5596.  
  5597.  Shutdown services are those required to perform planned orderly shutdown
  5598.  at the local and remote levels for each and all processor(s) throughout a
  5599.  
  5600.  
  5601.                Copyright c 1991 IEEE.  All rights reserved.
  5602.       This is an unapproved IEEE Standards Draft, subject to change.
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  4.2 System Services                                                    65
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5615.  
  5616.  system.  These services support both crisis and non-crisis situations
  5617.  that call for system shutdown.  They make sure that the persistent store
  5618.  is in a consistent state, see to the clean termination of all processes,
  5619.  programs, devices, etc., and take care of user notification.  They also
  5620.  provide for the running of system diagnostics.
  5621.  
  5622.  
  5623.  4.2.4.2  External Environment Interface Services
  5624.  
  5625.  Data Interchange External Environment Interface Services are required by
  5626.  the System Services.  Of particular interest are the formats, locations,
  5627.  and procedures for using system administration files, such as password
  5628.  files, system startup files, and configuration files.
  5629.  
  5630.  4.2.4.3  Interapplication Software Entity Services
  5631.  
  5632.  This could include support for generalized network/multisession services,
  5633.  such as message handling between system components, global object
  5634.  definition specification, and intermediate language definition.
  5635.  
  5636.  
  5637.  4.2.4.4  Resource Management Services
  5638.  
  5639.  These services provide general management functions across the entire
  5640.  platform.  They consist primarily of system administration-oriented
  5641.  functions (i.e., management of system interfaces within the scope of the
  5642.  administrator, such as setting up defaults and limits.)
  5643.  
  5644.  4.2.4.4.1  System Operator Services
  5645.  
  5646.  The system operator needs to access and control the system services in
  5647.  order to allow the platform to perform properly.  If a system has an
  5648.  operator, the major functions that need to be supported are system
  5649.  control, reconfiguration, and status reporting.  Currently, these
  5650.  services are usually made available to an operator through a command
  5651.  language interpreter, which is an application program that accesses these
  5652.  system services.
  5653.  
  5654.  Note that the Windowing Services provide the building blocks (menu
  5655.  utilities, command parsers, etc.) for building the user interface while
  5656.  the System Operator Services make available operating system status and
  5657.  control functions to appropriate application programs with the proper
  5658.  security level.
  5659.  
  5660.  These services support general conventions and specifications for
  5661.  interaction between system components.
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.                Copyright c 1991 IEEE.  All rights reserved.
  5668.       This is an unapproved IEEE Standards Draft, subject to change.
  5669.  
  5670.  
  5671.  
  5672.  
  5673.  
  5674.  66                               4 POSIX Open System Environment Services
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5681.  
  5682.  4.2.4.4.2  System Administration
  5683.  
  5684.  These services and procedures are those required to assure management and
  5685.  allocation of system services to system users, both local and remote.
  5686.  They consist primarily of those services required to establish authorized
  5687.  users of the system, with associated allocation of processor resources,
  5688.  including memory, processor time, priority, and mass storage space.
  5689.  These services are both static (as in the establishment of a new user
  5690.  identification) and dynamic (as in login/logout).
  5691.  
  5692.  
  5693.  4.2.5  Standards, Specifications, and Gaps
  5694.  
  5695.  
  5696.             Table 4-2  -  System Services Standards Activities
  5697.  __________________________________________________________________________________________________________________________________________________
  5698.            Service                  Specification              Subclause    d
  5699.  _________________________________________________________________________  d
  5700.  
  5701.  Process Management                 ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5702.  
  5703.  Task Management                    ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5704.  
  5705.  Environment Services               ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5706.  
  5707.  Node Internal Comm/Synch           ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5708.  
  5709.  Generalized I/O                    ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5710.                                     OSF AES - OSC             4.2.5.3.1     ddd
  5711.                                     SVID                      4.2.5.3.1     ddd
  5712.  
  5713.  File Oriented Services             ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5714.  
  5715.  Event, Error, and Exception        ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5716.                                     OSF AES - OSC             4.2.5.3.1     ddd
  5717.                                     SVID                      4.2.5.3.1     ddd
  5718.  
  5719.  Time Services                      ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5720.  
  5721.  Memory Management                  ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5722.  
  5723.  Logical Naming                     ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5724.  
  5725.  System Init/Reinit/Shutdown        ISO/IEC 9945-1            4.2.5.1.1.1   ddd
  5726.                                     OSF AES - OSC             4.2.5.3.1     ddd
  5727.                                     SVID                      4.2.5.3.1     ddd
  5728.  __________________________________________________________________________________________________________________________________________________  d
  5729.  
  5730.  
  5731.  
  5732.  
  5733.                Copyright c 1991 IEEE.  All rights reserved.
  5734.       This is an unapproved IEEE Standards Draft, subject to change.
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  4.2 System Services                                                    67
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5747.  
  5748.  4.2.5.1  Current Standards in the POSIX OSE
  5749.  
  5750.  4.2.5.1.1  International Standards
  5751.  
  5752.  4.2.5.1.1.1  _P_o_r_t_a_b_l_e__O_p_e_r_a_t_i_n_g__S_y_s_t_e_m__I_n_t_e_r_f_a_c_e__(_P_O_S_I_X_)__P_a_r_t__1
  5753.  
  5754.  ISO/IEC 9945-1 (IEEE Std 1003.1) is the first in a set of planned
  5755.  international POSIX standards.  It defines services and characteristics
  5756.  that need to be in the platform for portable applications, as do some of
  5757.  the other planned standards.  Another type of POSIX-related standard is
  5758.  bindings for those services to specific languages.  The third type deals
  5759.  with concepts that cross between various groupings of services, such as
  5760.  security and distributed processing.
  5761.  
  5762.  _O_b_j_e_c_t_i_v_e_s
  5763.  
  5764.  The purpose of the ISO/IEC 9945-1 standard is to define a standard
  5765.  operating system interface based on the UNIX Operating System
  5766.  documentation to support application portability at the source level.
  5767.  The document is intended for systems implementors and applications
  5768.  software developers.
  5769.  
  5770.  In addition to ISO/IEC 9945-1, ISO is planning to publish ISO/IEC 9945-3
  5771.  Conformance Test Procedures (which will be identical to IEEE 1003.3).
  5772.  This standard will cover conformance testing procedures for 9945-1.
  5773.  
  5774.  _F_u_n_c_t_i_o_n_a_l_i_t_y
  5775.  
  5776.  Table 4-3 outlines the contents of the current document.  This document
  5777.  is identical in its ISO/IEC form (ISO/IEC 9945-1) and the US national
  5778.  standard form (IEEE Std 1003.1).  Revisions are currently in progress to
  5779.  deal with:
  5780.  
  5781.      - A language-independent services specification
  5782.  
  5783.      - A unified data interchange format
  5784.  
  5785.      - Service interfaces for control of character cell terminals
  5786.  
  5787.      - Miscellaneous functions identified in comments on the current
  5788.        standard.
  5789.  
  5790.  _O_p_t_i_o_n_s__a_n_d__V_a_r_i_a_t_i_o_n_s
  5791.  
  5792.  The ISO/IEC 9945-1 standard draws heavily upon major implementations of
  5793.  the UNIX Operating System, including System V and the Berkeley versions.
  5794.  Where a specific behavior was clearly needed (e.g., signals), only a
  5795.  single behavior was permitted.  However, there are points where functions
  5796.  were considered optional and others where two different behaviors were
  5797.  
  5798.  
  5799.                Copyright c 1991 IEEE.  All rights reserved.
  5800.       This is an unapproved IEEE Standards Draft, subject to change.
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  68                               4 POSIX Open System Environment Services
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5813.  
  5814.  
  5815.               Table 4-3  -  Functionality of POSIX.1 Standard
  5816.  __________________________________________________________________________________________________________________________________________________
  5817.  
  5818.        File system organization, and file naming conventions
  5819.  
  5820.        System configuration and file system configuration
  5821.        characteristics
  5822.  
  5823.        Error messages and reporting mechanism (_e_r_r_n_o)
  5824.  
  5825.        Application environment information (_e_n_v_i_r_o_n)
  5826.  
  5827.        Process creation, management, and termination:  _e_x_e_c(),
  5828.        _f_o_r_k(), _w_a_i_t()
  5829.  
  5830.        Process environment: user ID, process ID, Group ID
  5831.  
  5832.        Exception conditions and handling (signals)
  5833.  
  5834.        Timer operations
  5835.  
  5836.        File and Directory operations:  FIFO files, pipes, status,
  5837.        open/close, read/write
  5838.  
  5839.        File protection mechanisms
  5840.  
  5841.        Record and file locking mechanism
  5842.  
  5843.        Device specific functions: Terminal controls:  Processing
  5844.        modes: echo, baud rate, modem termination
  5845.  
  5846.        C language specific routines:  _s_e_t_l_o_c_a_l_e(), nonlocal jumps
  5847.  
  5848.        User and Group database information (excluding password
  5849.        information)
  5850.  
  5851.        Data interchange formats (USTAR and CPIO)
  5852.  
  5853.        Also included is a rationale appendix that provides insight
  5854.        on the selection of various functions and features, including
  5855.        some guidance to developers to understand what types of
  5856.        variations may exist and how that can impact portability.
  5857.  
  5858.  __________________________________________________________________________________________________________________________________________________
  5859.  
  5860.  
  5861.  considered acceptable.  However, in many cases, a solid technical
  5862.  argument favoring one approach over the other was not established.  In
  5863.  
  5864.  
  5865.                Copyright c 1991 IEEE.  All rights reserved.
  5866.       This is an unapproved IEEE Standards Draft, subject to change.
  5867.  
  5868.  
  5869.  
  5870.  
  5871.  
  5872.  4.2 System Services                                                    69
  5873.  
  5874.  
  5875.  
  5876.  
  5877.  
  5878.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  5879.  
  5880.  this case, two behaviors (usually System V and BSD) are defined as being
  5881.  permitted.  This is of benefit in writing portable applications, since
  5882.  those that can tolerate both behaviors will run on a wider range of
  5883.  systems.  It is also a slight disadvantage in writing such applications,
  5884.  since it can mean handling a wider range of implementations.
  5885.  
  5886.  
  5887.  NOTE:  In a related U.S. national standard, the United States Government
  5888.  Department of Commerce National Institute of Standards and Technology has
  5889.  adopted the ISO/IEC 9945-1 standard as a Federal Information Processing
  5890.  Standard (FIPS 151-1) for use in computer systems procurement.  FIPS
  5891.  151-1 requires options and characteristics that have not been required by
  5892.  ISO/IEC 9945-1, requiring implementations to function in a specific way
  5893.  in many of these cases.  While buyers may want to make such requirements,
  5894.  the impact should be understood.  Applications written for FIPS systems
  5895.  may only run on FIPS systems, whereas applications written for full
  5896.  ISO/IEC 9945-1 implementations will run on both FIPS systems and POSIX
  5897.  conforming systems that are not FIPS conforming.  FIPS systems will run
  5898.  applications written either way.
  5899.  
  5900.  FIPS 151-1 requires all three POSIX.1 options.  In addition, it
  5901.  eliminates several additional possible behaviors, thus narrowing the
  5902.  variation between conforming implementations.
  5903.  
  5904.  4.2.5.1.2  Regional Standards
  5905.  
  5906.  None.
  5907.  
  5908.  4.2.5.1.3  National Standards
  5909.  
  5910.  None.
  5911.  
  5912.  
  5913.  4.2.5.2  Emerging Standards in the POSIX OSE
  5914.  
  5915.  4.2.5.2.1  International Standards
  5916.  
  5917.  None.
  5918.  
  5919.  4.2.5.2.2  Regional Standards
  5920.  
  5921.  None.
  5922.  
  5923.  4.2.5.2.3  National Standards
  5924.  
  5925.  The IEEE P1003.4 Group is defining realtime extensions to ISO/IEC 9945-1.
  5926.  Draft 9 of the realtime POSIX extensions proposes standardized interfaces
  5927.  to the following functions:
  5928.  
  5929.  
  5930.  
  5931.                Copyright c 1991 IEEE.  All rights reserved.
  5932.       This is an unapproved IEEE Standards Draft, subject to change.
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  70                               4 POSIX Open System Environment Services
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  5945.  
  5946.      - Response to asynchronous events
  5947.  
  5948.      - Priority interrupts and scheduling
  5949.  
  5950.      - Preemptive scheduling
  5951.  
  5952.      - Memory locking
  5953.  
  5954.      - High-performance file system (contiguous or other)
  5955.  
  5956.      - Realtime timers (with nanosecond resolution times)
  5957.  
  5958.      - Shared memory
  5959.  
  5960.      - Semaphores
  5961.  
  5962.      - Interprocess communications (message passing)
  5963.  
  5964.      - Asynchronous event notification
  5965.  
  5966.      - Synchronous input and output.
  5967.  
  5968.  The P1003.4 group is also specifying an interface to threads (P1003.4a).
  5969.  
  5970.  
  5971.  4.2.5.3  Gaps in Available Standards
  5972.  
  5973.  While ISO/IEC 9945-1 and P1003.4 both represent very important work, they
  5974.  do not yet address all of the services indicated in 4.2.4.  Areas of
  5975.  particular shortfall include Event, Error, and Exception Management
  5976.  Services, some Generalized I/O Services (particularly concerning services
  5977.  for device drivers), and System Initialization, Reinitialization, and
  5978.  Shutdown Services.  In addition, Security (see 5.2) and Reliability,
  5979.  Adaptability, and Maintainability (Fault Tolerance; see 5.4) services are
  5980.  not reflected in these two base standards, and some capabilities are
  5981.  explicitly considered to be implementation defined.  For some of the
  5982.  services discussed here, adequate consideration is not given to the
  5983.  implications of multiprocessor and distributed implementations of the
  5984.  services and interface provided.  Finally, since these are intended to be
  5985.  base standards (or, in the case of P1003.4, an extension to a base
  5986.  standard), profiles are needed in order to select appropriate features
  5987.  and provide appropriate combinations with other related capabilities.
  5988.  
  5989.  4.2.5.3.1  Public Specifications                                           d
  5990.  
  5991.  The following are public specifications that define interfaces to          d
  5992.  services for which no formal standards are currently available.            d
  5993.  
  5994.  
  5995.  
  5996.  
  5997.                Copyright c 1991 IEEE.  All rights reserved.
  5998.       This is an unapproved IEEE Standards Draft, subject to change.
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  4.2 System Services                                                    71
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6011.  
  6012.  _O_S_F_/_1                                                                      d
  6013.  
  6014.  The Open Software Foundation (OSF) ``Application Environment               d
  6015.  Specification (AES)--Operating System Component'' (OSC).                   d
  6016.  
  6017.  Service Gaps Addressed:                                                    d
  6018.  
  6019.      - Generalized I/O                                                      d
  6020.  
  6021.      - Event, Error, and Exception                                          d
  6022.  
  6023.      - System Init/Reinit/Shutdown                                          d
  6024.  
  6025.  _S_V_I_D                                                                       d
  6026.  
  6027.  The AT&T System V Interface Definition (SVID), Issue 3.                    d
  6028.  
  6029.  Service Gaps Addressed:                                                    d
  6030.  
  6031.      - Generalized I/O                                                      d
  6032.  
  6033.      - Event, Error, and Exception                                          d
  6034.  
  6035.      - System Init/Reinit/Shutdown                                          d
  6036.  
  6037.  4.2.5.3.2  Unsatisfied Service Requirements
  6038.  
  6039.  There are two significant areas of the services described above for which
  6040.  no standards currently exist.  One is the considerations implied by the
  6041.  use of multiprocessors to implement some or all of the services described
  6042.  herein.  The other area is that of interfaces to logical device drivers.
  6043.  
  6044.  4.2.5.3.3  Standards/Specifications Outside the POSIX OSE
  6045.  
  6046.  
  6047.  4.2.6  OSE Cross-Category Services
  6048.  
  6049.  
  6050.  4.2.6.1  Capability and Security Services
  6051.  
  6052.  These services support the ability of the system to control usage such
  6053.  that system integrity is protected from inadvertent or malicious misuse.
  6054.  These protection services provide a mechanism for the enforcement of the
  6055.  policies governing resource usage.  Note that many of the security
  6056.  services are implicit services; i.e., they are provided without an
  6057.  explicit request to the operating system.  There are two distinct classes
  6058.  of system access with which operating system services must be concerned:
  6059.  physical access and logical access.
  6060.  
  6061.  
  6062.  
  6063.                Copyright c 1991 IEEE.  All rights reserved.
  6064.       This is an unapproved IEEE Standards Draft, subject to change.
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  72                               4 POSIX Open System Environment Services
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6077.  
  6078.  Security services at the physical level are used to protect against
  6079.  security compromise, given unauthorized personnel may have physical
  6080.  access to system hardware.  Typically, the physical access is to a
  6081.  terminal and/or terminal/display cables; however, physical access may
  6082.  also include network cables, central processing units, disk drives, or
  6083.  tape drives.  Prevention of physical access by unauthorized personnel may
  6084.  require different operating system services under different
  6085.  circumstances.
  6086.  
  6087.  Logical access is the ability to interact with the operating system via a
  6088.  terminal/display.  Security services at the logical level can be
  6089.  implemented through passwords and watchdog timers.
  6090.  
  6091.  Capability services attach operation lists that limit a process's ability
  6092.  to act on resource objects.  This is to ensure the resources are not
  6093.  misused.  Access to resources can be protected by services using
  6094.  capability lists as well as access lists, lock/key mechanisms, global
  6095.  tables, or through dynamic protection structure services.
  6096.  
  6097.  _P_r_e_v_e_n_t_i_o_n__o_f__U_n_a_u_t_h_o_r_i_z_e_d__A_c_c_e_s_s
  6098.  
  6099.  The system may need to be guarded from attempted access by unauthorized
  6100.  personnel.  The point of access to the operating system that is typically
  6101.  of concern is through the API.  Given the mode of operation (system high,
  6102.  multilevel, open) at which the system is operating, these services differ
  6103.  and have differing implications on other system services (such as
  6104.  reliability and naming) and system performance.
  6105.  
  6106.  _P_r_e_v_e_n_t_i_o_n__o_f__D_a_t_a__C_o_m_p_r_o_m_i_s_e
  6107.  
  6108.  These services prevent access of data by users not authorized to the
  6109.  data.  These services may be implemented using access lists on files (and
  6110.  directories) and/or encryption of data or in other ways.
  6111.  
  6112.  _P_r_e_v_e_n_t_i_o_n__o_f__S_e_r_v_i_c_e__D_e_n_i_a_l
  6113.  
  6114.  These services ensure that a service request will be met by the operating
  6115.  system in a reasonable time if the requester is authorized to use the
  6116.  service.  These services ensure that a bandit user or process cannot
  6117.  cause system malfunction by monopolizing system services or resources.
  6118.  
  6119.  _S_e_c_u_r_i_t_y__A_d_m_i_n_i_s_t_r_a_t_i_o_n
  6120.  
  6121.  This category involves services to allow the management of the security
  6122.  system, including the administration of permissions to personnel, data,
  6123.  and services as well as capability lists.  In addition, it permits the
  6124.  administration access mechanisms (most often passwords and capability
  6125.  lists) and services that allow the system to switch modes of operation.
  6126.  The services will likely be accessed by the target system operator with
  6127.  
  6128.  
  6129.                Copyright c 1991 IEEE.  All rights reserved.
  6130.       This is an unapproved IEEE Standards Draft, subject to change.
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  4.2 System Services                                                    73
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6143.  
  6144.  security responsibilities through the target system operator services.
  6145.  
  6146.  
  6147.  4.2.6.2  Fault Management
  6148.  
  6149.  Many of the fault management capabilities described in 5.4 are normally
  6150.  the responsibility of the operating system and fall under the sorts of
  6151.  services described in this clause.
  6152.  
  6153.  
  6154.  4.2.7  Related Standards
  6155.  
  6156.  The following emerging standards are related to the services covered in    d
  6157.  this clause, in as much as they address at some level services either
  6158.  explicitly listed in or implied by the services found in 4.2.4:
  6159.  
  6160.     P1003.6     Security Interface for POSIX.
  6161.  
  6162.     P1003.12    Protocol Independent Interfaces (for networks).
  6163.  
  6164.     P1238       OSI Application Program Interfaces (initial effort is to
  6165.                 provide at least sufficient facilities for the support of
  6166.                 FTAM API specifications).
  6167.  
  6168.  
  6169.  4.2.8  Open Issues
  6170.  
  6171.  [_P_O:  _P_C_T_E _a_n_d _C_A_I_S-_A _h_a_v_e _b_e_e_n _m_o_v_e_d _h_e_r_e _l_a_r_g_e_l_y _b_e_c_a_u_s_e _i_t _i_s _n_o_t
  6172.  _c_l_e_a_r _w_h_a_t _t_o _d_o _w_i_t_h _t_h_e_m.  _T_h_e_y _a_r_e _n_o_t _a_d_e_q_u_a_t_e_l_y _a_c_c_o_m_m_o_d_a_t_e_d _b_y _t_h_i_s
  6173.  _m_o_d_e_l.  _T_h_e_y _a_r_e _b_o_t_h _h_y_b_r_i_d_s _o_f _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m _a_n_d _d_a_t_a_b_a_s_e _m_a_n_a_g_e_m_e_n_t
  6174.  _s_y_s_t_e_m _c_a_p_a_b_i_l_i_t_i_e_s _t_h_a_t _s_e_e_m _t_o _b_e_l_o_n_g _e_i_t_h_e_r _e_v_e_r_y_w_h_e_r_e _o_r _n_o_w_h_e_r_e.
  6175.  _T_h_e_y _c_o_u_l_d _b_o_t_h _w_e_l_l _b_e _u_s_e_d _i_n _c_o_n_j_u_n_c_t_i_o_n _w_i_t_h _a _P_1_0_0_3._1
  6176.  _i_m_p_l_e_m_e_n_t_a_t_i_o_n, _b_u_t _t_h_e_y _c_o_u_l_d _a_l_s_o _b_e _i_m_p_l_e_m_e_n_t_e_d _o_n _o_t_h_e_r _b_a_s_e
  6177.  _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s, _o_r _i_m_p_l_e_m_e_n_t_a_t_i_o_n_s _c_o_u_l_d _e_v_e_n _e_x_p_a_n_d _t_h_e_i_r
  6178.  _c_a_p_a_b_i_l_i_t_i_e_s _t_o _p_r_o_v_i_d_e _f_u_l_l _o_p_e_r_a_t_i_n_g _s_y_s_t_e_m_s.  _P_1_0_0_3._0 _m_u_s_t _d_e_c_i_d_e _w_h_a_t
  6179.  _t_o _d_o _w_i_t_h _t_h_e_m.]
  6180.  
  6181.  _P_C_T_E
  6182.  
  6183.  An effort by the European Computer Manufacturers Association (ECMA) has
  6184.  resulted in the definition by Technical Committee 33 of the Basis for the
  6185.  Portable Common Tools Environment (PCTE).  This is now an ECMA standard
  6186.  and is referred to as Standard ECMA-149.
  6187.  
  6188.  _C_A_I_S_-_A
  6189.  
  6190.  MIL-STD-1838A (CAIS-A) was developed by the US Department of Defense to
  6191.  provide a common foundation for Ada Programming Support Environments.
  6192.  Similar in nature to PCTE (see above), it too covers many of the system
  6193.  services covered by 4.2.4.  In addition, it provides data management
  6194.  
  6195.                Copyright c 1991 IEEE.  All rights reserved.
  6196.       This is an unapproved IEEE Standards Draft, subject to change.
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  74                               4 POSIX Open System Environment Services
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6209.  
  6210.  services such as those discussed in 4.4 and data interchange services
  6211.  (specifically, a Common External Form) similar to those discussed in 4.5.
  6212.  
  6213.                                                                             d
  6214.  
  6215.  _X_/_O_p_e_n
  6216.  
  6217.  [_P_O:  _T_h_e _f_o_l_l_o_w_i_n_g _t_e_x_t _o_n _X_P_G _w_a_s _g_i_v_e_n _t_o _m_e _a_t _t_h_e _l_a_s_t _m_e_e_t_i_n_g.
  6218.  _H_o_w_e_v_e_r, _I _c_a_n_n_o_t _t_e_l_l _f_r_o_m _t_h_e _t_e_x_t _w_h_e_t_h_e_r _X_P_G _i_s _m_o_r_e _l_i_k_e _t_h_i_s _g_u_i_d_e
  6219.  _o_r _m_o_r_e _l_i_k_e _P_1_0_0_3._1.  _I_f _i_t _i_s _t_h_e _f_o_r_m_e_r, _i_t _d_o_e_s _n_o_t _b_e_l_o_n_g _h_e_r_e.  _I_f
  6220.  _i_t _i_s _t_h_e _l_a_t_t_e_r, _t_h_e_n _t_h_i_s _t_e_x_t _s_h_o_u_l_d _b_e _m_o_v_e_d _i_n_t_o _4._2._5._3._1._2.]
  6221.  
  6222.  X/Open is a consortium formed to create interface definitions and
  6223.  guidelines that will provide portability and interoperability to its
  6224.  members' products.  Its primary output is the X/Open Portability Guide.
  6225.  The functional content of this guide is heavily based on the AT&T SVID.
  6226.  The current version is XPG3.
  6227.  
  6228.  [_P_O:  _D_o_c_u_m_e_n_t_a_t_i_o_n _o_f _o_p_e_n _i_s_s_u_e:  _w_h_a_t _a_r_e _w_e _g_o_i_n_g _t_o _d_o _w_i_t_h _F_I_P_S?
  6229.  _F_o_r _t_h_i_s _s_e_c_t_i_o_n, _t_h_e _d_e_c_i_s_i_o_n _w_a_s _m_a_d_e _i_n _C_h_i_c_a_g_o _t_o _s_t_i_c_k _F_I_P_S _1_5_1-_1 _i_n
  6230.  _t_h_e _s_e_c_t_i_o_n _o_n _9_9_4_5-_1, _b_u_t _t_h_i_s _p_r_o_v_e_d _q_u_i_t_e _a_w_k_w_a_r_d:  _i_t _c_o_u_l_d_n'_t _b_e
  6231.  _p_l_a_c_e_d _i_n _t_h_e _r_e_g_u_l_a_r _t_e_x_t _b_e_c_a_u_s_e _i_t _d_i_d_n'_t _p_e_r_t_a_i_n _d_i_r_e_c_t_l_y _t_o _9_9_4_5-_1
  6232.  (_i._e., _i_t _w_a_s _i_n_a_p_p_r_o_p_r_i_a_t_e _t_o _d_i_s_c_u_s_s _i_t _i_n _t_h_e _t_e_x_t _t_h_a_t _w_a_s _t_o _b_e
  6233.  _d_e_v_o_t_e_d _t_o ``_i_n_t_e_r_n_a_t_i_o_n_a_l _s_t_a_n_d_a_r_d_s''), _s_o _i_t _e_n_d_e_d _u_p _i_n _a_n _i_n_f_o_r_m_a_t_i_v_e
  6234.  _n_o_t_e.  _I _d_o_n'_t _f_i_n_d _t_h_i_s _a _s_a_t_i_s_f_a_c_t_o_r_y _a_n_s_w_e_r.  _I _t_h_i_n_k _t_h_a_t _i_t _p_r_o_p_e_r_l_y
  6235.  _b_e_l_o_n_g_s _u_n_d_e_r _G_o_v_e_r_n_m_e_n_t/_L_e_g_a_l _S_t_a_n_d_a_r_d_s; _t_h_e ``_g_a_p'' _i_t _f_u_l_f_i_l_l_s _i_s _o_n_e
  6236.  _o_f _p_r_o_f_i_l_i_n_g.
  6237.  
  6238.  _D_o_c_u_m_e_n_t_a_t_i_o_n _o_f _n_e_w _o_p_e_n _i_s_s_u_e:  _W_e _a_r_e _b_e_g_i_n_n_i_n_g _t_o ``_u_s_e _o_u_r _h_e_a_d_s,''
  6239.  _a_s _i_n_d_i_c_a_t_e_d _b_y _t_h_e _d_i_s_c_u_s_s_i_o_n_s _w_e _h_a_d _o_n _t_h_i_s _s_e_c_t_i_o_n _i_n _C_h_i_c_a_g_o.  _I_t _i_s
  6240.  _e_s_s_e_n_t_i_a_l _t_h_a_t _w_e _c_a_p_t_u_r_e _t_h_e _r_a_t_i_o_n_a_l_e _f_o_r _o_u_r _d_e_c_i_s_i_o_n_s, _p_a_r_t_i_c_u_l_a_r_l_y
  6241.  _f_o_r _o_u_r _i_n_c_l_u_s_i_o_n_s _a_n_d _e_x_c_l_u_s_i_o_n_s.  _I _h_a_v_e _t_r_i_e_d _t_o _d_o _t_h_a_t _h_e_r_e _t_o _s_o_m_e
  6242.  _e_x_t_e_n_t, _b_u_t _w_h_a_t _i_s _o_u_r _o_v_e_r_a_l_l _p_l_a_n _f_o_r _m_a_k_i_n_g _s_u_r_e _t_h_a_t _o_u_r _r_a_t_i_o_n_a_l_e_s
  6243.  _a_r_e _n_o_t _l_o_s_t?]
  6244.  
  6245.  
  6246.  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.                Copyright c 1991 IEEE.  All rights reserved.
  6262.       This is an unapproved IEEE Standards Draft, subject to change.
  6263.  
  6264.  
  6265.  
  6266.  
  6267.  
  6268.  4.2 System Services                                                    75
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6275.  
  6276.  
  6277.  
  6278.  
  6279.  
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.  
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305.  
  6306.  
  6307.  
  6308.  
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315.  
  6316.  
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327.                Copyright c 1991 IEEE.  All rights reserved.
  6328.       This is an unapproved IEEE Standards Draft, subject to change.
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  76                               4 POSIX Open System Environment Services
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6341.  
  6342.  4.3  Network Services
  6343.  
  6344.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _C_h_a_r_l_e_s _S_e_v_e_r_a_n_c_e                                         _d
  6345.  
  6346.  _H_L_J:  _T_h_i_s _i_s _a _c_o_m_p_l_e_t_e _c_l_a_u_s_e _r_e_p_l_a_c_e_m_e_n_t _i_n _D_r_a_f_t _1_3.  _I_t _i_s _n_o_t        _d
  6347.  _f_u_r_t_h_e_r _d_i_f_f-_m_a_r_k_e_d.                                                       _d
  6348.  
  6349.  
  6350.  4.3.1  Overview and Rationale
  6351.  
  6352.  This clause describes the network services component of the application
  6353.  platform.  It also describes the services provided to application
  6354.  programs and users, and it describes current and emerging standards that
  6355.  are standardizing these services.
  6356.  
  6357.  Applications gain direct access to network services via the POSIX API.
  6358.  The network is just another system resource (albeit an important one)
  6359.  allocated among the competing processes.
  6360.  
  6361.  
  6362.  4.3.2  Scope
  6363.  
  6364.  Network services include those capabilities required to allow application
  6365.  programs to execute on platforms that may be connected via a network.
  6366.  They cover the areas of file transfer, namespace and directory services,
  6367.  services in support of distributed environments such as remote procedure
  6368.  call, distributed time management, transparent file access, and data
  6369.  representation services.  The application programs using these services
  6370.  should be able to access them via a high-level, context-insensitive or
  6371.  low-level, context-dependent interface.
  6372.  
  6373.  In the open systems and distributed systems environments,
  6374.  interoperability is of equal or greater importance than portability.  The
  6375.  interfaces provided by the network services must be network protocol
  6376.  independent and provide for this level of interoperability.  The network
  6377.  protocols defined for both Open Systems Interconnect (OSI) and Internet
  6378.  Protocol Suite (IPS) for TCP/IP should provide the basis for the open
  6379.  networking interfaces; however, these interfaces should not preclude the
  6380.  use of some subsequent networking protocol in the future.
  6381.  
  6382.  Rationale:  It is important for an open system to interoperate with more
  6383.  systems than just other open systems.  Many open systems users will have
  6384.  requirements to interoperate with non-ISO networks for the near future.
  6385.  
  6386.  
  6387.  
  6388.  
  6389.  
  6390.  
  6391.  
  6392.  
  6393.                Copyright c 1991 IEEE.  All rights reserved.
  6394.       This is an unapproved IEEE Standards Draft, subject to change.
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  
  6400.  4.3 Network Services                                                   77
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6407.  
  6408.  4.3.3  POSIX OSE Network Services Reference Model
  6409.  
  6410.  _________________________________________________________________________
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.  
  6417.  
  6418.  
  6419.  
  6420.  
  6421.  
  6422.  
  6423.  
  6424.  
  6425.  
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  _________________________________________________________________________
  6433.               Figure 4-4  -  POSIX Networking Reference Model
  6434.  
  6435.  
  6436.  This subclause identifies the entities and interfaces specific to the
  6437.  construction of an POSIX Network Environment.  This environment is
  6438.  consistent with and extends the environment of Section 3.
  6439.  
  6440.  As illustrated in Figure 4-4, the components of a network architecture
  6441.  that require standardization are divided into two groups called external
  6442.  environment interfaces (EEI) and application program interfaces (API).
  6443.  
  6444.  There may be some correspondence between services offered to the
  6445.  application across the API and the interfaces available at the EEI.  It
  6446.  is quite possible for an API service to have no corresponding effect at
  6447.  the EEI.  A good example of this is an interapplication communication
  6448.  service provided by the Network API between two applications on the same
  6449.  application platform.  There may also be services available at the EEI
  6450.  provided by the Application Platform that are not available at the API
  6451.  such as remote login services.
  6452.  
  6453.  
  6454.  
  6455.  
  6456.  
  6457.  
  6458.  
  6459.                Copyright c 1991 IEEE.  All rights reserved.
  6460.       This is an unapproved IEEE Standards Draft, subject to change.
  6461.  
  6462.  
  6463.  
  6464.  
  6465.  
  6466.  78                               4 POSIX Open System Environment Services
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6473.  
  6474.  4.3.3.1  Network Application Program Interface (API) Services
  6475.  
  6476.  The API is concerned with the interfaces and associated standards that
  6477.  apply to the interface between the application and the application
  6478.  platform.
  6479.  
  6480.  The services available at the API are:
  6481.  
  6482.      - Directory Services
  6483.  
  6484.      - Application to Platform Services
  6485.  
  6486.      - Application to Application Communication Services
  6487.  
  6488.      - Data Representation Services Services
  6489.  
  6490.      - Distributed System Services
  6491.  
  6492.      - Network Management and Security Services
  6493.  
  6494.  Directory Services are those services associated with identifying and
  6495.  naming network elements.
  6496.  
  6497.  Application to Platform Services provide an application with a very high
  6498.  level interface to networking capabilities.  This interface provides
  6499.  applications with capabilities such as ``mail this file to this address''
  6500.  or ``transfer user xxx file from host yyy to the local host.''  These
  6501.  services do not require the application to be aware of any of the low
  6502.  level network details.
  6503.  
  6504.  Application to Application Services are the services provided by the
  6505.  Application Platform that allow an application to communicate with
  6506.  another application to exchange information.  These interfaces support
  6507.  applications that range from having extremely simple networking
  6508.  requirements to the most complicated applications that must make full use
  6509.  of every possible network capability.
  6510.  
  6511.  Data Representation Services provide the application with network
  6512.  oriented data representation services to insure the application can
  6513.  interchange information with other entities in the proper format.
  6514.  
  6515.  Distributed system services provide the application with the ability to
  6516.  make use of multiple physical computer systems resources.
  6517.  
  6518.  Network management and security services allow the application to control
  6519.  and configure the network resources.
  6520.  
  6521.  
  6522.  
  6523.  
  6524.  
  6525.                Copyright c 1991 IEEE.  All rights reserved.
  6526.       This is an unapproved IEEE Standards Draft, subject to change.
  6527.  
  6528.  
  6529.  
  6530.  
  6531.  
  6532.  4.3 Network Services                                                   79
  6533.  
  6534.  
  6535.  
  6536.  
  6537.  
  6538.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6539.  
  6540.  4.3.3.2  External Environment Interface Elements
  6541.  
  6542.  4.3.3.2.1  User Interface EEI Elements
  6543.  
  6544.  The User interface EEI elements include the commands that users can use
  6545.  to perform network functions such as:
  6546.  
  6547.      - File transfer
  6548.  
  6549.      - Electronic Mail
  6550.  
  6551.      - Remote printing
  6552.  
  6553.  These commands are considered to be beyond the scope of this clause and
  6554.  will be covered in 4.9.
  6555.  
  6556.  The User interface EEI elements that will be covered in this section are
  6557.  the commands that are used to perform network management and security
  6558.  functions.
  6559.  
  6560.  4.3.3.2.2  Communication EEI Elements
  6561.  
  6562.  The primary focus of the network EEI is the network protocols and
  6563.  supporting formats for network communication.
  6564.  
  6565.  The entities in the external environment may be other application
  6566.  platforms or user interface equipment connected to the network using the
  6567.  open networking protocols.  The standards at the EEI will be in several
  6568.  areas including:
  6569.  
  6570.      - Physical connections
  6571.  
  6572.      - Network protocols and formats
  6573.  
  6574.      - Distributed systems services
  6575.  
  6576.  The standards at the EEI will impact system interoperability but also may
  6577.  have an effect on application portability because certain applications
  6578.  may require particular types of network access to operate.
  6579.  
  6580.  
  6581.  4.3.3.3  Implementation Aspects
  6582.  
  6583.  The POSIX OSE Network reference model focuses on the requirements of
  6584.  application portability and system interoperability.  As such, the model
  6585.  does not represent how systems are actually put together.
  6586.  
  6587.  In the network area, there is much effort dedicated to the design of
  6588.  network standards to allow network components to be re-usable.  This
  6589.  subclause shows how some of these network standards are related within
  6590.  
  6591.                Copyright c 1991 IEEE.  All rights reserved.
  6592.       This is an unapproved IEEE Standards Draft, subject to change.
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  80                               4 POSIX Open System Environment Services
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6605.  
  6606.  the POSIX Network Reference Model.
  6607.  
  6608.  Other network models are also related to the POSIX OSE Network Reference
  6609.  models.  None of these other models are in conflict with the POSIX OSE
  6610.  Network Reference model.  These models show much more detail in the area
  6611.  of how different standards work together.
  6612.  
  6613.  4.3.3.3.1  Relationship Between the OSI Reference Model and the POSIX OSE
  6614.             Network Reference Model
  6615.  
  6616.  _________________________________________________________________________
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.  
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636.  _________________________________________________________________________
  6637.                Figure 4-5  -  ISO Networking Reference Model
  6638.  
  6639.  
  6640.  Figure 4-5 shows the OSI seven layer model for networking as standardized
  6641.  by ISO [ref].
  6642.  
  6643.  There are many aspects of network architecture that are specified by the
  6644.  OSI Network Model model:
  6645.  
  6646.      - The number of layers in the model and the roles for each layer.
  6647.  
  6648.      - An indication of which layers are logically end to end and which
  6649.        layers are simply to the next physical network node.
  6650.  
  6651.      - The protocols between the layers and the protocols between the
  6652.        peers within the same layer.  This has an impact on the actual
  6653.        format of the information transferred between nodes at the physical
  6654.        layer.
  6655.  
  6656.  
  6657.                Copyright c 1991 IEEE.  All rights reserved.
  6658.       This is an unapproved IEEE Standards Draft, subject to change.
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664.  4.3 Network Services                                                   81
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6671.  
  6672.  In addition, this model specifies how networks of computer systems can be
  6673.  assembled using the routing capabilities of intermediate nodes.
  6674.  
  6675.  The POSIX OSE Network Reference Model has a much more limited scope than
  6676.  the OSI network model.  The POSIX OSE reference model only looks at two
  6677.  interfaces to an application platform:  the interface between application
  6678.  software and the application platform (API) and the interface between the
  6679.  application Platform and the External Environment (EEI).  At both the API
  6680.  and EEI, the POSIX OSE network model describes the services that are
  6681.  provided to the application or external environment at the interface.
  6682.  
  6683.  Figure 4-6 shows how the two models could be related for one of the POSIX
  6684.  OSE Network Reference Model Application Programming Interfaces and three
  6685.  of the External Environment Interfaces.  The POSIX OSE reference model
  6686.  focuses on a single application platform rather than a whole network.
  6687.  The POSIX Network API includes the API provided to interface to the
  6688.  application layer of the OSI model.
  6689.  
  6690.  Because the OSI portions of the Application Platform External Environment
  6691.  Interface depend on the format, protocol, and services of what is
  6692.  produced at the physical level of the OSI reference model, the EEI
  6693.  technically depends on all seven layers the OSI model plus the services
  6694.  added on top of the application layer such as platform provided services
  6695.  or network management services.
  6696.  
  6697.  This guide will not call out all of the standards that specify the
  6698.  protocols, formats, and options for all seven layers of the ISO network
  6699.  standards.  Instead, this guide will focus on the services provided at
  6700.  the EEI using all of those formats and protocols.
  6701.  
  6702.  Figure 4-7 shows an API interface to only layer seven of the OSI Network
  6703.  interface, which is intended to be the primary API for accessing network
  6704.  services.  It is possible to define APIs that interact directly with any
  6705.  of the seven layers.  There are a number of pragmatic reasons to provide
  6706.  APIs that access layers below layer 7.  The cost of using one of these
  6707.  lower layer APIs is that the applications may sacrifice portability
  6708.  and/or interoperability.
  6709.  
  6710.  It is important to note that while these APIs are represented as a part
  6711.  of a layered network architecture, from the point of view of the
  6712.  application interacting with the application platform, this layering is
  6713.  not critical to the use of the services.  From the application
  6714.  perspective, there are simply three different types of network services,
  6715.  each with a different set of capabilities and requirements.  Whether or
  6716.  not there is any actual layering or code common to the three services is
  6717.  implementation dependent.
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.                Copyright c 1991 IEEE.  All rights reserved.
  6724.       This is an unapproved IEEE Standards Draft, subject to change.
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.  82                               4 POSIX Open System Environment Services
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6737.  
  6738.  _________________________________________________________________________
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  _________________________________________________________________________
  6777.  Figure 4-6  -  Relationship of ISO and POSIX OSE Network Reference Models
  6778.  
  6779.  
  6780.  4.3.3.3.2  POSIX Network Standards Efforts
  6781.  
  6782.  The current POSIX approach to networking focuses on producing Application
  6783.  Program Interface (API) specifications.  Most of the network connectivity
  6784.  specifications at the External Environment Interface are well covered on
  6785.  other standardization areas such as ISO (OSI networking) and the RFC
  6786.  process (TCP/IP).
  6787.  
  6788.  
  6789.                Copyright c 1991 IEEE.  All rights reserved.
  6790.       This is an unapproved IEEE Standards Draft, subject to change.
  6791.  
  6792.  
  6793.  
  6794.  
  6795.  
  6796.  4.3 Network Services                                                   83
  6797.  
  6798.  
  6799.  
  6800.  
  6801.  
  6802.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6803.  
  6804.  _________________________________________________________________________
  6805.  
  6806.  
  6807.  
  6808.  
  6809.  
  6810.  
  6811.  
  6812.  
  6813.  
  6814.  
  6815.  
  6816.  
  6817.  
  6818.  
  6819.  
  6820.  
  6821.  
  6822.  
  6823.  
  6824.  
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830.  _________________________________________________________________________
  6831.       Figure 4-7  -  Multiple POSIX OSE APIs to Different OSI Layers
  6832.  
  6833.  
  6834.  One important aspect of the POSIX networking approach is that it is not
  6835.  focusing solely on producing standard APIs for OSI Network services.  The
  6836.  POSIX Simple Network Interface (P1003.12 SNI) is explicitly designed so
  6837.  to be implemented transparently on a wide variety of networks.  At the
  6838.  current time the possible list includes:
  6839.  
  6840.      - OSI Application Layer
  6841.  
  6842.      - OSI Transport Layer
  6843.  
  6844.      - TCP/IP
  6845.  
  6846.      - Other networks including proprietary networks
  6847.  
  6848.  The current POSIX API standardization efforts include:
  6849.  
  6850.      - P1003.12 -- Simple Network API
  6851.  
  6852.  
  6853.  
  6854.  
  6855.                Copyright c 1991 IEEE.  All rights reserved.
  6856.       This is an unapproved IEEE Standards Draft, subject to change.
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  
  6862.  84                               4 POSIX Open System Environment Services
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  6869.  
  6870.      - P1003.12 -- Detailed Network API
  6871.  
  6872.      - P1003.17 -- Directory Services API
  6873.  
  6874.      - P1238.0 -- OSI Application Layer API (ASCE)
  6875.  
  6876.      - P1238.1 -- OSI Application Layer API (FTAM)
  6877.  
  6878.  _________________________________________________________________________
  6879.  
  6880.  
  6881.  
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.  
  6899.  
  6900.  
  6901.  
  6902.  
  6903.  
  6904.  
  6905.  
  6906.  
  6907.  
  6908.  
  6909.  
  6910.  _________________________________________________________________________
  6911.                 Figure 4-8  -  Basic Network Services Model
  6912.  
  6913.  
  6914.  Figure 4-8 shows how the basic network services can be related.  The
  6915.  Simple Network Services API is designed so that a Simple Network Services
  6916.  Implementation can be done using the services available using the
  6917.  Detailed Network Interface API.  An application can use the Detailed
  6918.  Network Interface to access multiple network transports but there may be
  6919.  
  6920.  
  6921.                Copyright c 1991 IEEE.  All rights reserved.
  6922.       This is an unapproved IEEE Standards Draft, subject to change.
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.  4.3 Network Services                                                   85
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  6935.  
  6936.  differences between networks visible at the API.  Applications that need
  6937.  to be portable across different types of network transports should be
  6938.  written using the Simple Networking Interface.
  6939.  
  6940.  It is important to note that while the SNI API and DNI API standards have
  6941.  been designed so that the SNI Services can make use of the DNI API to
  6942.  access transport services, it is not a requirement that every
  6943.  implementation of SNI Services be written using the DNI API to access
  6944.  transport services.  From the point of view of the application program,
  6945.  it is only important that the application platform provide an API for
  6946.  both the SNI and DNI services.  This interface between the SNI Services
  6947.  and the Transport Services is an example of a Systems Integration
  6948.  Interface as described in 3.6.
  6949.  
  6950.  Another example of Systems Integration Interface that is the subject of
  6951.  discussion in the POSIX Network area is the interface between the OSI
  6952.  Network Services and the transport services.  This may or not be required
  6953.  to be the DNI API.  This is an example of an interface that should have
  6954.  no impact on user application portability but may have great impact on
  6955.  the ability to procure the different types of network services from
  6956.  different vendors.
  6957.  
  6958.  The area of Directory Services (P1003.17) is also specified so to be able
  6959.  to make use of different types of Directory Services including:
  6960.  
  6961.      - X.500 Directory Services
  6962.  
  6963.      - TCP/IP Directory Services
  6964.  
  6965.      - POSIX P1003.7 System Administration and Management Services
  6966.  
  6967.  Figure 4-9 shows how the Directory Services are related to the other
  6968.  network services.  All of the APIs and SIIs from the previous figure have
  6969.  been eliminated to reduce the number of interfaces shown on the figure.
  6970.  
  6971.  
  6972.  4.3.4  Service Requirements
  6973.  
  6974.  The service requirements for the network component of an open system are
  6975.  very wide ranging.  Many of the other components of the application
  6976.  platform make implicit or explicit use of network services.
  6977.  
  6978.  Much standardization effort has gone into the aspects of networking that
  6979.  are available at the external environment interface.  Effective
  6980.  networking standards at the external interface are fundamental to
  6981.  providing system interoperability.
  6982.  
  6983.  The service requirements for both the API and EEI are described in this
  6984.  section.
  6985.  
  6986.  
  6987.                Copyright c 1991 IEEE.  All rights reserved.
  6988.       This is an unapproved IEEE Standards Draft, subject to change.
  6989.  
  6990.  
  6991.  
  6992.  
  6993.  
  6994.  86                               4 POSIX Open System Environment Services
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7001.  
  7002.  _________________________________________________________________________
  7003.  
  7004.  
  7005.  
  7006.  
  7007.  
  7008.  
  7009.  
  7010.  
  7011.  
  7012.  
  7013.  
  7014.  
  7015.  
  7016.  
  7017.  
  7018.  
  7019.  
  7020.  
  7021.  
  7022.  
  7023.  
  7024.  
  7025.  
  7026.  
  7027.  
  7028.  
  7029.  
  7030.  
  7031.  
  7032.  
  7033.  
  7034.  _________________________________________________________________________
  7035.               Figure 4-9  -  Directory Services Architecture
  7036.  
  7037.  
  7038.  _C_R_S:  _C_o_m_m_e_n_t _t_o _m_o_c_k _b_a_l_l_o_t _r_e_v_i_e_w_e_r_s:  _T_h_i_s _s_e_c_t_i_o_n _i_s _s_u_p_p_o_s_e_d _t_o
  7039.  _s_t_a_t_e _t_h_e _s_e_r_v_i_c_e_s _r_e_q_u_i_r_e_d _b_y _a_n _a_p_p_l_i_c_a_t_i_o_n _a_t _t_h_e _A_P_I _a_n_d _t_h_e
  7040.  _r_e_q_u_i_r_e_m_e_n_t_s _t_h_a_t _u_s_e_r_s _a_n_d _n_e_t_w_o_r_k_s _p_l_a_c_e _o_n _t_h_e _e_x_t_e_r_n_a_l _i_n_t_e_r_f_a_c_e _o_f
  7041.  _t_h_e _c_o_m_p_u_t_e_r _s_y_s_t_e_m.  _W_e _h_a_v_e _f_o_u_n_d _t_h_a_t _a_n _e_f_f_e_c_t_i_v_e _w_a_y _t_o _s_t_a_t_e _t_h_e_s_e
  7042.  _r_e_q_u_i_r_e_m_e_n_t_s _i_n _a _g_e_n_e_r_a_l _w_a_y _i_n _t_o _u_s_e _t_h_e _p_h_r_a_s_e ``_a_b_i_l_i_t_y _t_o ....''
  7043.  _C_o_m_m_e_n_t_s _a_r_e _w_e_l_c_o_m_e_d _t_o _a_d_d _s_e_r_v_i_c_e _r_e_q_u_i_r_e_m_e_n_t_s _t_o _t_h_e_s_e _s_e_c_t_i_o_n_s.  _W_e
  7044.  _k_n_o_w _t_h_e_r_e _a_r_e _g_e_n_e_r_a_l _s_e_r_v_i_c_e _r_e_q_u_i_r_e_m_e_n_t_s _t_h_a_t _c_o_u_l_d _b_e _a_d_d_e_d.
  7045.  _C_o_m_m_e_n_t_s _a_d_d_i_n_g _s_e_r_v_i_c_e _r_e_q_u_i_r_e_m_e_n_t_s (_e_s_p_e_c_i_a_l_l_y _t_h_o_s_e _u_s_i_n_g _o_u_r
  7046.  _t_e_r_m_i_n_o_l_o_g_y) _a_r_e _g_r_e_a_t_l_y _a_p_p_r_e_c_i_a_t_e_d.
  7047.  
  7048.  
  7049.  
  7050.  
  7051.  
  7052.  
  7053.                Copyright c 1991 IEEE.  All rights reserved.
  7054.       This is an unapproved IEEE Standards Draft, subject to change.
  7055.  
  7056.  
  7057.  
  7058.  
  7059.  
  7060.  4.3 Network Services                                                   87
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7067.  
  7068.  4.3.4.1  Application Program Interface Services
  7069.  
  7070.  4.3.4.1.1  Directory Services
  7071.  
  7072.  _C_R_S:  _R_o_b, _a_n_y _a_d_d_i_t_i_o_n_a_l _s_e_r_v_i_c_e _d_e_s_c_r_i_p_t_i_o_n_s _w_o_u_l_d _b_e _a_p_p_r_e_c_i_a_t_e_d.  _Y_o_u
  7073.  _k_n_o_w _t_h_i_s _a_r_e_a _m_u_c_h _b_e_t_t_e_r _t_h_a_n _I _d_o.
  7074.  
  7075.  Directory services allow an application to find the names and addresses
  7076.  of objects and services available to the application.  These services
  7077.  include:
  7078.  
  7079.      - Ability to look up the name to be used to access a particular
  7080.        service
  7081.  
  7082.      - Ability to look up the address of a named object
  7083.  
  7084.  4.3.4.1.2  Application to System Services
  7085.  
  7086.  These are the services requested by the application that are performed by
  7087.  the Application Platform on behalf of the application without the
  7088.  application actually communicating directly with another application.
  7089.  Many of these services may actually connect to some remote application
  7090.  but the details of the connection are left up to the application
  7091.  platform.
  7092.  
  7093.  These services will be provided by a relatively simple high level API.
  7094.  These services include:
  7095.  
  7096.      (1)  File transfer
  7097.  
  7098.      (2)  Remote execution of commands
  7099.  
  7100.      (3)  Mail delivery
  7101.  
  7102.      (4)  Remote login
  7103.  
  7104.      (5)  Remote printer access
  7105.  
  7106.      (6)  Network status
  7107.  
  7108.      - Ability to access remote or local systems using remote procedure
  7109.        calls (RPC).  When this type of access is provided, nearly all of
  7110.        the details of the network connection and interaction are masked
  7111.        from the application.
  7112.  
  7113.  
  7114.  
  7115.  
  7116.  
  7117.  
  7118.  
  7119.                Copyright c 1991 IEEE.  All rights reserved.
  7120.       This is an unapproved IEEE Standards Draft, subject to change.
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  
  7126.  88                               4 POSIX Open System Environment Services
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7133.  
  7134.  4.3.4.1.3  Application to Application Service
  7135.  
  7136.  There are three areas of application to application service requirements:
  7137.  
  7138.      - RPC Services
  7139.  
  7140.      - Simple Network Services
  7141.  
  7142.      - Detailed Network Services
  7143.  
  7144.  The RPC services allow an application to register with the network
  7145.  application platform as the provider for a particular RPC Service.  Once
  7146.  the service has been properly registered, other applications can
  7147.  transparently request services using a subroutine call.  The details of
  7148.  communicating the service request to the application that is registered
  7149.  to provide the service and the return of the response to the requesting
  7150.  application are handled transparently by the Application Platform.
  7151.  
  7152.  Applications making use of RPC services may not even be aware that the
  7153.  service are being provided via an RPC mechanism.
  7154.  
  7155.  The Simple Network Services are application to application services
  7156.  provided using a simple set of interface routines.  These will allow a
  7157.  wide variety of networking applications to be written that do not need to
  7158.  exercise control their network access at a very complex level of detail.
  7159.  
  7160.  In addition, these services should be provided over a wide variety of
  7161.  network transport mechanisms.  Applications written exclusively using the
  7162.  simple services should be portable across a wide variety of networking
  7163.  environments.
  7164.  
  7165.  Applications written using the simple network services may not be able to
  7166.  make use of unique advantages of a particular physical networking scheme.
  7167.  To make use of these network-specific features the Detailed Network
  7168.  Services must be used.
  7169.  
  7170.  The service requirements for the simple network services are intended to
  7171.  be the minimum requirements to write a large subset of network
  7172.  applications.
  7173.  
  7174.  The Simple Network Services sacrifice the capability to control every
  7175.  detail of the network services in the interest of portability across
  7176.  networking environments and applications simplicity.
  7177.  
  7178.  The Detailed Network Services API allows the application to control over
  7179.  much more detail of the network services.  In addition, using the
  7180.  Detailed Network Services an application may be able to make use of
  7181.  unique networking capabilities available in particular networking
  7182.  environments.
  7183.  
  7184.  
  7185.                Copyright c 1991 IEEE.  All rights reserved.
  7186.       This is an unapproved IEEE Standards Draft, subject to change.
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.  4.3 Network Services                                                   89
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7199.  
  7200.  4.3.4.1.3.1  _R_P_C__S_e_r_v_i_c_e_s
  7201.  
  7202.  These service requirements include:
  7203.  
  7204.      - Ability to register as an RPC service provider
  7205.  
  7206.      - Ability to wait for incoming requests
  7207.  
  7208.      - Ability for an application using RPC services to control parameters
  7209.        such as timeout
  7210.  
  7211.  _C_R_S:  _S_o_m_e_o_n_e _w_h_o _i_s _a_n _R_P_C _w_h_i_z _s_h_o_u_l_d _b_e_e_f _t_h_i_s _u_p _w_i_t_h _m_o_r_e _d_e_t_a_i_l_e_d
  7212.  _R_P_C _s_e_r_v_i_c_e_s
  7213.  
  7214.  4.3.4.1.3.2  _S_i_m_p_l_e__N_e_t_w_o_r_k__S_e_r_v_i_c_e_s
  7215.  
  7216.  The services provided at the simple network interface are:
  7217.  
  7218.      (1)  Name resolution
  7219.  
  7220.      (2)  Connection oriented services
  7221.  
  7222.            - Ability to indicate willingness to accept incoming
  7223.              connections
  7224.  
  7225.            - Establishing and destroying connections
  7226.  
  7227.            - Data transfer over connections
  7228.  
  7229.               +o Read
  7230.  
  7231.               +o Read with timeout
  7232.  
  7233.               +o Write
  7234.  
  7235.               +o Write with timeout
  7236.  
  7237.            - Simple error handling
  7238.  
  7239.               +o Connection dropped notification
  7240.  
  7241.               +o Connection read failure
  7242.  
  7243.               +o Connection write failure
  7244.  
  7245.            - Ability to close a connection
  7246.  
  7247.               +o Unconditionally
  7248.  
  7249.  
  7250.  
  7251.                Copyright c 1991 IEEE.  All rights reserved.
  7252.       This is an unapproved IEEE Standards Draft, subject to change.
  7253.  
  7254.  
  7255.  
  7256.  
  7257.  
  7258.  90                               4 POSIX Open System Environment Services
  7259.  
  7260.  
  7261.  
  7262.  
  7263.  
  7264.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7265.  
  7266.               +o Only after all data has been received
  7267.  
  7268.      (3)  Connectionless services
  7269.  
  7270.            - Ability to indicate willingness to accept incoming requests
  7271.  
  7272.            - Ability to send requests
  7273.  
  7274.               +o With acknowledgment
  7275.  
  7276.               +o Without acknowledgment
  7277.  
  7278.               +o Specified timeout
  7279.  
  7280.            - Ability to receive requests
  7281.  
  7282.               +o Wait unconditionally
  7283.  
  7284.               +o Wait with timeout
  7285.  
  7286.            - Ability to query as to whether any requests are available
  7287.  
  7288.            - Simple event notification
  7289.  
  7290.               +o Lost request
  7291.  
  7292.               +o Request acknowledgment
  7293.  
  7294.            - Simple error handling
  7295.  
  7296.               +o General network failure
  7297.  
  7298.      (4)  Support for server applications
  7299.  
  7300.            - Ability to register as the provider for a service
  7301.  
  7302.      (5)  Simple status inquiry
  7303.  
  7304.            - General network availability
  7305.  
  7306.  4.3.4.1.3.3  _D_e_t_a_i_l_e_d__N_e_t_w_o_r_k__S_e_r_v_i_c_e__R_e_q_u_i_r_e_m_e_n_t_s
  7307.  
  7308.  The services provided at the Detailed Networking Interface include all of
  7309.  the service requirements in the Simple Network Service Requirements plus
  7310.  the following:
  7311.  
  7312.      (1)  Ability to query the network services to get detailed
  7313.           information about network configuration and status
  7314.  
  7315.  
  7316.  
  7317.                Copyright c 1991 IEEE.  All rights reserved.
  7318.       This is an unapproved IEEE Standards Draft, subject to change.
  7319.  
  7320.  
  7321.  
  7322.  
  7323.  
  7324.  4.3 Network Services                                                   91
  7325.  
  7326.  
  7327.  
  7328.  
  7329.  
  7330.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7331.  
  7332.      (2)  Ability to specify performance metrics
  7333.  
  7334.      (3)  Ability to control routing
  7335.  
  7336.      (4)  Ability to select between different network protocols
  7337.  
  7338.      (5)  Ability to negotiate capabilities
  7339.  
  7340.            - Required capabilities
  7341.  
  7342.            - Optional capabilities
  7343.  
  7344.            - Ability to determine the results of the negotiation
  7345.  
  7346.      (6)  Capability to deliver information with different priorities
  7347.  
  7348.      (7)  Ability to request and process extended event notification
  7349.  
  7350.      (8)  Ability to request and process extended error recovery including
  7351.           allowing the application to completely control error recovery.
  7352.  
  7353.      (9)  Ability to make full use of network resources for performance
  7354.           critical applications
  7355.  
  7356.  This should provide the application with the ability to completely
  7357.  control connection oriented services and connectionless services.
  7358.  
  7359.  4.3.4.1.4  Data Representation Services
  7360.  
  7361.      - Ability to access all of the data representation and format
  7362.        conversion services to allow an application to communicate with a
  7363.        wide variety of computer systems.
  7364.  
  7365.  4.3.4.1.5  Distributed System Services
  7366.  
  7367.  The services provided in this area include:
  7368.  
  7369.      - The ability to identify available resources in a distributed system
  7370.  
  7371.      - The ability to dynamically make use of the resources in a
  7372.        distributed system.
  7373.  
  7374.      - The ability to access files regardless of the physical location of
  7375.        the files.
  7376.  
  7377.      - The ability to have reliable time services across all of the
  7378.        resources of the distributed system.
  7379.  
  7380.  
  7381.  
  7382.  
  7383.                Copyright c 1991 IEEE.  All rights reserved.
  7384.       This is an unapproved IEEE Standards Draft, subject to change.
  7385.  
  7386.  
  7387.  
  7388.  
  7389.  
  7390.  92                               4 POSIX Open System Environment Services
  7391.  
  7392.  
  7393.  
  7394.  
  7395.  
  7396.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7397.  
  7398.  4.3.4.1.6  Network Management Services
  7399.  
  7400.  The services provided at the Network Management API are:
  7401.  
  7402.      (1)  The ability to manage
  7403.  
  7404.            - Network objects
  7405.  
  7406.            - Network relationships
  7407.  
  7408.            - Network security
  7409.  
  7410.      (2)  The ability to monitor and report on
  7411.  
  7412.            - Network events
  7413.  
  7414.            - Network service alarms
  7415.  
  7416.            - Network security alarms
  7417.  
  7418.      (3)  The ability to log
  7419.  
  7420.            - Network events
  7421.  
  7422.            - Network availability
  7423.  
  7424.            - Network load
  7425.  
  7426.            - Network performance
  7427.  
  7428.      (4)  The ability to test network performance and reliability
  7429.  
  7430.  
  7431.  4.3.4.2  External Environment Interface Services
  7432.  
  7433.  At the external interface, there are several types of services that are
  7434.  provided.  These include:
  7435.  
  7436.      - Data transfer and connectivity
  7437.  
  7438.      - Routing and relay services
  7439.  
  7440.      - Services provided by the application platform directly to an
  7441.        incoming connection
  7442.  
  7443.      - Network management and security services provided to other networks
  7444.        and other nodes within a network
  7445.  
  7446.  
  7447.  
  7448.  
  7449.                Copyright c 1991 IEEE.  All rights reserved.
  7450.       This is an unapproved IEEE Standards Draft, subject to change.
  7451.  
  7452.  
  7453.  
  7454.  
  7455.  
  7456.  4.3 Network Services                                                   93
  7457.  
  7458.  
  7459.  
  7460.  
  7461.  
  7462.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7463.  
  7464.      - Network management user interface
  7465.  
  7466.  This clause does not address the user interface to the general network
  7467.  services such as file transfer or mail sending.  That is covered by the
  7468.  command interface clause, 4.9.  As stated above, this clause covers the
  7469.  network management user interface.
  7470.  
  7471.  In addition, there are a number of other areas of external interface
  7472.  requirements that are not covered in this guide.  They include:
  7473.  
  7474.      - Physical network interface connections
  7475.  
  7476.      - Electrical specifications for network connections
  7477.  
  7478.      - Specifications for physical network construction
  7479.  
  7480.  These are important requirements that need to be specified when
  7481.  describing the complete external interface of a computer system.  There
  7482.  is a great deal of important standardization in this area, but it is
  7483.  beyond the scope of this guide to cover the subject.  For more detail on
  7484.  these areas of the external environment interface, see the ``OMNICOM
  7485.  book.''
  7486.  
  7487.  _C_R_S:  _T_h_i_s _i_s _i_n_t_e_n_d_e_d _t_o _b_e _a _r_e_f_e_r_e_n_c_e _t_o _t_h_e _3 _i_n_c_h _t_h_i_c_k _b_o_o_k _t_h_a_t
  7488.  _A_n_d_y _b_r_o_u_g_h_t _i_n...
  7489.  
  7490.  4.3.4.2.1  Data Transfer and Connectivity
  7491.  
  7492.  Services required at the EEI in the area of data transfer and
  7493.  connectivity include:
  7494.  
  7495.      - The ability to connect and interoperate with other standards-based
  7496.        systems using standards-based protocols including X.25 and OSI.
  7497.  
  7498.      - The ability to connect and interoperate with systems using de facto
  7499.        networking interfaces such as TCP/IP and UUCP
  7500.  
  7501.      - The ability to connect and interoperate with personal computer and
  7502.        workstation networks.
  7503.  
  7504.      - The ability to interoperate with industry leading networking
  7505.        interfaces.
  7506.  
  7507.  4.3.4.2.2  Routing and Relay Services
  7508.  
  7509.  Services required at the EEI in the area of routing and relay
  7510.  capabilities include:
  7511.  
  7512.  
  7513.  
  7514.  
  7515.                Copyright c 1991 IEEE.  All rights reserved.
  7516.       This is an unapproved IEEE Standards Draft, subject to change.
  7517.  
  7518.  
  7519.  
  7520.  
  7521.  
  7522.  94                               4 POSIX Open System Environment Services
  7523.  
  7524.  
  7525.  
  7526.  
  7527.  
  7528.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7529.  
  7530.      (1)  Ability to relay information through a system between like
  7531.           networks.
  7532.  
  7533.      (2)  Ability to gateway information through a system between unlike
  7534.           networks at a data transfer level.  Examples of this type of
  7535.           gateway include:
  7536.  
  7537.            - Local Area Network (LAN) to LAN
  7538.  
  7539.            - LAN to Wide Area Network (WAN)
  7540.  
  7541.            - WAN to Global Area Network (GAN)
  7542.  
  7543.            - Networks to point-to-point connections
  7544.  
  7545.            - Point-to-point connections to networks
  7546.  
  7547.      (3)  Ability to convert information from one format to another when
  7548.           transferring between unlike computer systems or networks.
  7549.           Information that may need to be converted includes:
  7550.  
  7551.            - Mail messages
  7552.  
  7553.            - File contents
  7554.  
  7555.            - Printer file contents
  7556.  
  7557.  The primary requirement for the routing and gateway services is to make
  7558.  any necessary relays and gateways transparent to the applications and
  7559.  systems using the network.  This requires complete gateways and relays.
  7560.  
  7561.  4.3.4.2.3  Services Provided by the Application Platform at the EEI
  7562.  
  7563.  These EEI services are those provided to incoming connections that are
  7564.  not directed to an end-user application or server.  These incoming
  7565.  connections are directed to standard services that can be provided by
  7566.  systems.  These services include:
  7567.  
  7568.      - Remote logon and terminal emulation
  7569.  
  7570.      - Remote execution of commands
  7571.  
  7572.      - File transfer services
  7573.  
  7574.      - Remote authentication
  7575.  
  7576.      - Remote data access
  7577.  
  7578.  
  7579.  
  7580.  
  7581.                Copyright c 1991 IEEE.  All rights reserved.
  7582.       This is an unapproved IEEE Standards Draft, subject to change.
  7583.  
  7584.  
  7585.  
  7586.  
  7587.  
  7588.  4.3 Network Services                                                   95
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7595.  
  7596.      - Remote status information
  7597.  
  7598.      - Mail delivery services
  7599.  
  7600.      - Directory services
  7601.  
  7602.  To access these services each user does not need to provide an
  7603.  application on the remote host.  Simply by connecting to the service, the
  7604.  application platform will provide the service.
  7605.  
  7606.  4.3.4.2.4  Network Management and Security Services
  7607.  
  7608.  These EEI Services allow remote systems to be managed and monitored.
  7609.  Network management services include:
  7610.  
  7611.      - The ability to get network status information
  7612.  
  7613.      - The ability to get network configuration information
  7614.  
  7615.      - The ability to test network functionality
  7616.  
  7617.      - The ability to make network configuration changes
  7618.  
  7619.  The security services allow the system management to control access to
  7620.  system resources and system information.  Security services include:
  7621.  
  7622.      - The ability to protect the system from intruders
  7623.  
  7624.      - The ability to provide selective access to sensitive system
  7625.        resources
  7626.  
  7627.      - The ability to manage the network security
  7628.  
  7629.  4.3.4.2.5  Network Management and Security User Services
  7630.  
  7631.  These EEI Services allow users and/or network administrators to control
  7632.  and configure their network.  These network management services include:
  7633.  
  7634.      - The ability to get network status information
  7635.  
  7636.      - The ability to get network configuration information
  7637.  
  7638.      - The ability to test network functionality
  7639.  
  7640.      - The ability to make network configuration changes
  7641.  
  7642.  The security services allow the system management to control access to
  7643.  system resources and system information.  Security services include:
  7644.  
  7645.  
  7646.  
  7647.                Copyright c 1991 IEEE.  All rights reserved.
  7648.       This is an unapproved IEEE Standards Draft, subject to change.
  7649.  
  7650.  
  7651.  
  7652.  
  7653.  
  7654.  96                               4 POSIX Open System Environment Services
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7661.  
  7662.      - The ability to protect the system from intruders
  7663.  
  7664.      - The ability to provide selective access to sensitive system
  7665.        resources
  7666.  
  7667.      - The ability to manage the network security
  7668.  
  7669.  
  7670.  4.3.5  Standards, Specifications, and Gaps
  7671.  
  7672.  
  7673.  4.3.5.1  Current Standards in the POSIX OSE
  7674.  
  7675.  _C_R_S:  _T_h_e_s_e _a_r_e _t_h_e _b_e_g_i_n_n_i_n_g _o_f _t_h_e _s_t_a_n_d_a_r_d_s _s_e_c_t_i_o_n_s.  _I _s_t_i_l_l _h_a_v_e
  7676.  _y_e_t _t_o _t_y_p_e _i_n _a_l_l _o_f _t_h_e _s_t_a_n_d_a_r_d_s _d_e_s_c_r_i_p_t_i_o_n_s.  _P_l_e_a_s_e _p_r_o_v_i_d_e
  7677.  _c_o_m_m_e_n_t_s _r_e_g_a_r_d_i_n_g _o_t_h_e_r _s_e_r_v_i_c_e_s _l_i_s_t_e_d _a_b_o_v_e _t_h_a_t _h_a_v_e _c_u_r_r_e_n_t _o_r
  7678.  _e_m_e_r_g_i_n_g _s_t_a_n_d_a_r_d_s.
  7679.  
  7680.  _C_R_S:  _F_i_g_u_r_e _4-_6 _f_r_o_m _d_r_a_f_t _1_2 _i_s _r_e_t_a_i_n_e_d _i_n _t_h_i_s _s_e_c_t_i_o_n.  _T_h_e _b_o_x
  7681.  ``_p_o_s_i_x _a_p_p_l_i_c_a_t_i_o_n _i_n_t_e_r_f_a_c_e'' _i_s _r_e_m_o_v_e_d.  _T_h_e _f_i_g_u_r_e _i_s _r_e_f_e_r_e_n_c_e_d _a_s
  7682.  _p_a_r_t _o_f _t_h_e _O_S_I _p_r_o_t_o_c_o_l _s_t_a_c_k _i_n _t_h_e _s_t_a_n_d_a_r_d_s _t_a_b_l_e.
  7683.  
  7684.  See Table 4-4.
  7685.  
  7686.  4.3.5.2  Emerging Standards
  7687.  
  7688.  See Table 4-5.
  7689.  
  7690.  
  7691.  4.3.5.3  Gaps in Available Standards
  7692.  
  7693.  See Table 4-6.
  7694.  
  7695.  
  7696.  
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.  
  7705.  
  7706.  
  7707.  
  7708.  
  7709.  
  7710.  
  7711.  
  7712.  
  7713.                Copyright c 1991 IEEE.  All rights reserved.
  7714.       This is an unapproved IEEE Standards Draft, subject to change.
  7715.  
  7716.  
  7717.  
  7718.  
  7719.  
  7720.  4.3 Network Services                                                   97
  7721.  
  7722.  
  7723.  
  7724.  
  7725.  
  7726.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7727.  
  7728.  
  7729.                 Table 4-4  -  Current Networking Standards
  7730.  __________________________________________________________________________________________________________________________________________________
  7731.              Service                API/EEI      Specification          Subclause
  7732.  ____________________________________________________________________________________
  7733.  
  7734.  Protocol Stack                        E      ISO/OSI               4.3.?  (See
  7735.                                                                     Figure 4-10)
  7736.  
  7737.  Local Area Networking                 E      ISO 802.3             4.3.?
  7738.                                        E      ISO 802.4
  7739.                                        E      ISO 802.5
  7740.  
  7741.  Wide Area Networking                  E      CCITT X.25            4.3.?
  7742.  
  7743.  Directory Services                    E      X.500                 4.3.?
  7744.  
  7745.  File Transfer                         E      OSI FTAM              4.3.?
  7746.  
  7747.  Message Handling                      E      ISO/CCITT X.400       4.3.?
  7748.                                        A      APIA ?
  7749.  
  7750.  Virtual Terminal                      E      OSI/VT                4.3.?
  7751.  
  7752.  Network Management                    E      ISO 9596              4.3.?
  7753.                                        E      ISO 9593
  7754.                                        E      ISO/NMF
  7755.  
  7756.  Network Security                      E      ISO 803.10            4.3.?
  7757.  
  7758.  Distributed System Services          E?      ISO DP                4.3.?
  7759.  
  7760.  Distributed Transaction Services     E?      ISP 10026, ISO 8587   4.3.?
  7761.  __________________________________________________________________________________________________________________________________________________
  7762.  
  7763.  
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.  
  7778.  
  7779.                Copyright c 1991 IEEE.  All rights reserved.
  7780.       This is an unapproved IEEE Standards Draft, subject to change.
  7781.  
  7782.  
  7783.  
  7784.  
  7785.  
  7786.  98                               4 POSIX Open System Environment Services
  7787.  
  7788.  
  7789.  
  7790.  
  7791.  
  7792.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7793.  
  7794.  
  7795.                 Table 4-5  -  Emerging Networking Standards
  7796.  __________________________________________________________________________________________________________________________________________________
  7797.              Service                API/EEI      Specification           Subclause
  7798.  _____________________________________________________________________________________
  7799.  
  7800.  Mainframe Networking                  A      IEEE P1003.10          4.3.?
  7801.                                        A      IEEE P1003.11
  7802.  
  7803.  Network Security                    Both?    IEEE P1003.6           4.3.?
  7804.                                      Both?    SIRS 233
  7805.                                        ?      X3T4
  7806.  
  7807.  Simple Network Interface              A      IEEE P1003.12          4.3.?
  7808.  
  7809.  Detailed Network Interface            A      IEEE P1238.1           4.3.?
  7810.                                        A      X.400, APIA
  7811.                                        A      IEEE P1003.10
  7812.  
  7813.  Distributed File Management           A      IEEE P1003.8 TFA       4.3.?
  7814.  
  7815.  Directory Services                    A      IEEE P1003.17          4.3.?
  7816.  
  7817.  File Transfer                         A      IEEE P1238 Bindings    4.3.?
  7818.                                        A      IEEE P1237
  7819.                                        ?      ECMA 127
  7820.  
  7821.  Message Handling                      E      IEEE P1224 Bindings    4.3.?
  7822.                                        A      IEEE P1003.13
  7823.  
  7824.  Remote Procedure Call (RPC)           A      ECMA 127               4.3.?
  7825.                                       A?      ISO DIS 10148
  7826.                                        A      IEEE P1237
  7827.  
  7828.  Distributed System Services           ?      ECMA 127               4.3.?
  7829.  
  7830.  Remote Data Access                  Both?    SAG X3.T2              4.3.?
  7831.  
  7832.  Distributed Transaction Services    Both?    IEEE P1003.11          4.3.?
  7833.  
  7834.  Print Services                       E?      X3H3                   4.3.?
  7835.  __________________________________________________________________________________________________________________________________________________
  7836.  
  7837.  
  7838.  
  7839.  
  7840.  
  7841.  
  7842.  
  7843.  
  7844.  
  7845.                Copyright c 1991 IEEE.  All rights reserved.
  7846.       This is an unapproved IEEE Standards Draft, subject to change.
  7847.  
  7848.  
  7849.  
  7850.  
  7851.  
  7852.  4.3 Network Services                                                   99
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7859.  
  7860.  
  7861.                 Table 4-6  -  Gaps in Networking Standards
  7862.  __________________________________________________________________________________________________________________________________________________
  7863.              Service                API/EEI          Specification           Subclause
  7864.  ______________________________________________________________________________________
  7865.  
  7866.  Local Area Networking                 E      MIL-STD-1777 (IP)              4.3.?
  7867.                                        E      MIL-STD-1778 (TCP)
  7868.  
  7869.  PC Networking                         E      X/Open PCI:SMB                 4.3.?
  7870.                                        E      X/Open PCI:(PC)NFS
  7871.  
  7872.  Wide Area Networking                  E      TCP/IP                         4.3.?
  7873.                                        E      UUCP
  7874.  
  7875.  Mainframe Networking                  ?      X/Open CPIC                    4.3.?
  7876.  
  7877.  Network Management                  Both?    X/Open System Management       4.3.?
  7878.                                        E      RFC-1098 (SNMP)
  7879.  
  7880.  Simple Network Interface              A      X/Open XTI                     4.3.?
  7881.  
  7882.  Detailed Network Interface            A      System V Streams               4.3.?
  7883.                                        A      Berkeley Sockets
  7884.  
  7885.  Directory Services                    E      RFC-1034 (TCP/IP Domain        4.3.?
  7886.                                                  Naming)
  7887.  
  7888.  System Status                         E      RFC-1194 (TCP/IP Finger)       4.3.?
  7889.  
  7890.  File Transfer                         E      MIL-STD-1780 (TCP/IP FTP)      4.3.?
  7891.  
  7892.  Message Handling                      E      MIL-STD-1781 (TCP/IP SMTP)     4.3.?
  7893.  
  7894.  Virtual Terminal                      E      MIL-STD-1782 (TCP/IP Telnet)   4.3.?
  7895.  
  7896.  Network Time Protocol                 E      RFC-1129 (Internet Time)       4.3.?
  7897.  
  7898.  Distributed Transaction Services    Both?    X/Open XTP                     4.3.?
  7899.  __________________________________________________________________________________________________________________________________________________
  7900.  
  7901.  
  7902.  
  7903.  
  7904.  
  7905.  
  7906.  
  7907.  
  7908.  
  7909.  
  7910.  
  7911.                Copyright c 1991 IEEE.  All rights reserved.
  7912.       This is an unapproved IEEE Standards Draft, subject to change.
  7913.  
  7914.  
  7915.  
  7916.  
  7917.  
  7918.  100                              4 POSIX Open System Environment Services
  7919.  
  7920.  
  7921.  
  7922.  
  7923.  
  7924.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  7925.  
  7926.  _________________________________________________________________________
  7927.  
  7928.  
  7929.  
  7930.  
  7931.  
  7932.  
  7933.  
  7934.  
  7935.  
  7936.  
  7937.  
  7938.  
  7939.  
  7940.  
  7941.  
  7942.  
  7943.  
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  
  7950.  
  7951.  
  7952.  
  7953.  
  7954.  
  7955.  
  7956.  
  7957.  
  7958.  
  7959.  
  7960.  
  7961.  
  7962.  
  7963.  
  7964.  
  7965.  
  7966.  
  7967.  _________________________________________________________________________
  7968.               Figure 4-10  -  OSI Network Services Standards
  7969.  
  7970.  
  7971.  
  7972.  
  7973.  
  7974.  
  7975.  
  7976.  
  7977.                Copyright c 1991 IEEE.  All rights reserved.
  7978.       This is an unapproved IEEE Standards Draft, subject to change.
  7979.  
  7980.  
  7981.  
  7982.  
  7983.  
  7984.  4.3 Network Services                                                  101
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  7991.  
  7992.  
  7993.  
  7994.  
  7995.  
  7996.  
  7997.  
  7998.  
  7999.  
  8000.  
  8001.  
  8002.  
  8003.  
  8004.  
  8005.  
  8006.  
  8007.  
  8008.  
  8009.  
  8010.  
  8011.  
  8012.  
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.  
  8024.  
  8025.  
  8026.  
  8027.  
  8028.  
  8029.  
  8030.  
  8031.  
  8032.  
  8033.  
  8034.  
  8035.  
  8036.  
  8037.  
  8038.  
  8039.  
  8040.  
  8041.  
  8042.  
  8043.                Copyright c 1991 IEEE.  All rights reserved.
  8044.       This is an unapproved IEEE Standards Draft, subject to change.
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  
  8050.  102                              4 POSIX Open System Environment Services
  8051.  
  8052.  
  8053.  
  8054.  
  8055.  
  8056.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8057.  
  8058.  4.4  Database Services
  8059.  
  8060.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _S_a_n_d_r_a _S_w_e_a_r_i_n_g_e_n
  8061.  
  8062.  
  8063.  4.4.1  Overview and Rationale
  8064.  
  8065.  This subclause describes an overview of an architectural framework for
  8066.  discussing database management.  It also describes the services provided
  8067.  to application programs and users, and it describes standards, current
  8068.  and emerging, that standardize those database services.
  8069.  
  8070.  Database management is an important component of the POSIX Open System
  8071.  Environment; in a large class of application programs, especially those
  8072.  used in business, database access through a database management system
  8073.  plays a key role.  For portability and interoperability, an application
  8074.  using a database must be isolated from the hardware and software
  8075.  retrieval methods as much as possible.  Otherwise the application must
  8076.  have the data manipulation capability coded in its own programs.  This
  8077.  might be done if performance is a key issue and the data is very unique.
  8078.  The cost is portability and interoperability.
  8079.  
  8080.  The following metrics can be used to measure the performance of specific
  8081.  implementations of Database Management Systems.  In some cases there are
  8082.  standardized benchmarks, such as the Transaction Processing Council
  8083.  (TPC-A) performance benchmark, that allow rigorous comparison of
  8084.  competing products.
  8085.  
  8086.      - Time to load a database
  8087.  
  8088.      - Time to recover a database after a failure
  8089.  
  8090.      - Database throughput in ``transactions per second''
  8091.  
  8092.      - Maximum size database in bytes
  8093.  
  8094.      - Maximum size of a table in rows
  8095.  
  8096.      - Service response time
  8097.  
  8098.      - Concurrency
  8099.  
  8100.      - Maximum number of concurrent users
  8101.  
  8102.      - Maximum number of concurrent transactions
  8103.  
  8104.  
  8105.  
  8106.  
  8107.  
  8108.  
  8109.                Copyright c 1991 IEEE.  All rights reserved.
  8110.       This is an unapproved IEEE Standards Draft, subject to change.
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.  4.4 Database Services                                                 103
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8123.  
  8124.  4.4.2  Scope
  8125.  
  8126.  Included within the component of database management are various
  8127.  structured ``data models,'' including indexed files and network,
  8128.  relational, semantic, and object-oriented databases.  Specifically
  8129.  excluded from consideration are services for accessing data that is not
  8130.  part of a database.  This subclause discusses database management
  8131.  services from both the application program and user points of view.
  8132.  
  8133.  Database services provided to application programs by this component, for
  8134.  example, include the ability to create, alter, or drop tables, records,
  8135.  and fields and the ability to insert, select, and update data included in
  8136.  the structures above.
  8137.  
  8138.  Included within this component are also utility capabilities such as
  8139.  database administration services.
  8140.  
  8141.  The list of standards below is comprehensive:  there are no standards or
  8142.  emerging standards in the database area that are excluded from the POSIX
  8143.  OSE.  There are no standards in this area that are known to be
  8144.  inconsistent with POSIX.1 {2}.
  8145.  
  8146.  
  8147.  4.4.3  POSIX OSE Database Services Reference Model                         d
  8148.  
  8149.  
  8150.  4.4.3.1  Reference Model                                                   d
  8151.  
  8152.  In this subclause, the conventional view of Database Management is
  8153.  related to the POSIX reference model described earlier.
  8154.  
  8155.  The application programmer's view of the database model is introduced
  8156.  first.  Quite simply, an application program, through a _D_a_t_a_b_a_s_e _A_P_I,
  8157.  requests database services.  For convenience in the following discussion,
  8158.  the agent responsible for providing those services is called the _D_a_t_a_b_a_s_e
  8159.  _M_a_n_a_g_e_r.  The database manager is responsible for providing the
  8160.  application access to the _D_a_t_a_b_a_s_e.  See Figure 4-11.
  8161.  
  8162.  This figure also demonstrates the concept of a _D_a_t_a_b_a_s_e _U_t_i_l_i_t_y _P_r_o_g_r_a_m:
  8163.  one or more special application programs, usually provided by a database
  8164.  vendor, that perform utility services on the database.  Such utilities
  8165.  might reorganize the database, recover the database after a system
  8166.  failure, etc.
  8167.  
  8168.  The traditional database model can be incorporated into the POSIX
  8169.  reference model, as in Figure 4-12.  This depiction of the model shows
  8170.  that the database manager is really just part of the overall POSIX Open
  8171.  System Environment and is available to the application through the POSIX
  8172.  OSE API.
  8173.  
  8174.  
  8175.                Copyright c 1991 IEEE.  All rights reserved.
  8176.       This is an unapproved IEEE Standards Draft, subject to change.
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  104                              4 POSIX Open System Environment Services
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8189.  
  8190.  _________________________________________________________________________
  8191.  
  8192.  
  8193.  
  8194.  
  8195.  
  8196.  
  8197.  
  8198.  
  8199.  
  8200.  
  8201.  
  8202.  
  8203.  
  8204.  
  8205.  
  8206.  
  8207.  
  8208.  
  8209.  
  8210.  _________________________________________________________________________
  8211.               Figure 4-11  -  The Traditional Database Model
  8212.  
  8213.  
  8214.  The model depicted in Figure 4-12.  is sufficient to describe an
  8215.  application developer's view of the POSIX OSE API in general, and the
  8216.  database API specifically.  The four lines labeled ``Database API''
  8217.  represent the Database Applications Program Interface services, which are
  8218.  discussed in 4.4.4.1.
  8219.  
  8220.  
  8221.  4.4.3.2  Implementation Aspects                                            d
  8222.  
  8223.  Some real world considerations of the POSIX Reference Model were
  8224.  discussed in 3.6.  One of the real-world approaches described is
  8225.  ``layering.''  Note that in the marketplace, Database Managers are often
  8226.  independently purchasable components that are effectively implemented as
  8227.  layers.  Another consideration is Database Manager portability.  It is
  8228.  not a requirement that a a database manager sit on top of a POSIX OSE
  8229.  API, but there is very important value to the user in terms of
  8230.  portability if the database manager implementation does indeed sit on a
  8231.  POSIX API.  This means that the database manager itself is portable.  It
  8232.  should be noted that there will probably be implementations available of
  8233.  database managers that do not, in fact, sit on top of a POSIX API (or sit
  8234.  only partially on top of a POSIX API), that nonetheless provide the user
  8235.  the same database API.  Such an implementation, using both POSIX API
  8236.  services and non-POSIX API services was described as ``expansion'' (see
  8237.  3.6.1).  Note that even though the model is drawn with only a single
  8238.  database manager, that does not imply that there may only be a single
  8239.  database manager available to an application.  In fact, the coexistence
  8240.  
  8241.                Copyright c 1991 IEEE.  All rights reserved.
  8242.       This is an unapproved IEEE Standards Draft, subject to change.
  8243.  
  8244.  
  8245.  
  8246.  
  8247.  
  8248.  4.4 Database Services                                                 105
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8255.  
  8256.  _________________________________________________________________________
  8257.  
  8258.  
  8259.  
  8260.  
  8261.  
  8262.  
  8263.  
  8264.  
  8265.  
  8266.  
  8267.  
  8268.  
  8269.  
  8270.  
  8271.  
  8272.  
  8273.  
  8274.  
  8275.  
  8276.  _________________________________________________________________________
  8277.               Figure 4-12  -  POSIX Database Reference Model
  8278.  
  8279.  
  8280.  of several database managers on the same system is consistent with this
  8281.  model, as is the ability of a single application to access two or more
  8282.  different database managers.  The following extensions to the above model
  8283.  are specifically accommodated:
  8284.  
  8285.      - There may be more than one database API.  For example, there may be
  8286.        an ``SQL'' API and an ``ISAM'' API.
  8287.  
  8288.      - There may be more than one database manager implementation for each
  8289.        different API.  (For example, by two competing database vendors.)
  8290.  
  8291.      - Applications may access more than one database manager.
  8292.  
  8293.  This document has not described how a database manager is implemented in
  8294.  a POSIX Open System Environment, nor is it within the scope of this
  8295.  document to do so.  It should be noted, though, that this model is very
  8296.  general and does not constrain the implementor.  This model supports a
  8297.  number of varying real world implementation techniques, including:
  8298.  
  8299.      - Application and database manager linked into a single process.
  8300.  
  8301.      - Database manager consisting of more than one process.
  8302.  
  8303.      - Database manager consisting of a client part linked into the
  8304.        application process and a server part running as a process on the
  8305.  
  8306.  
  8307.                Copyright c 1991 IEEE.  All rights reserved.
  8308.       This is an unapproved IEEE Standards Draft, subject to change.
  8309.  
  8310.  
  8311.  
  8312.  
  8313.  
  8314.  106                              4 POSIX Open System Environment Services
  8315.  
  8316.  
  8317.  
  8318.  
  8319.  
  8320.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8321.  
  8322.        same or another system.
  8323.  
  8324.  
  8325.  4.4.4  Service Requirements
  8326.  
  8327.  The Database Manager described in the previous subclause provides
  8328.  services to the Application Program via the Database API, and the
  8329.  Database Utility Programs provide other services (e.g., to human users
  8330.  such as a ``Database Administrator'').  This subclause describes the
  8331.  service requirements of all service users of the system.  It is intended
  8332.  to be a complete list of service requirements rather than examples.
  8333.  Database Services are the specialized data services required to create,
  8334.  access, and manage databases located on a processor node.  A uniform use
  8335.  of database services shall be available across POSIX-compliant machines.
  8336.  Users of these services include end users and those charged with the
  8337.  ongoing management of the information processing and database
  8338.  infrastructure.
  8339.  
  8340.  
  8341.  4.4.4.1  Application Program Interface Services
  8342.  
  8343.  This subclause describes the major categories of database services
  8344.  available at the POSIX Application Program Interface (API).  These
  8345.  services include:
  8346.  
  8347.      - Data Definition and Manipulation Services
  8348.  
  8349.      - Data Access Services
  8350.  
  8351.      - Data Integrity Services
  8352.  
  8353.      - Miscellaneous Services
  8354.  
  8355.  The following paragraphs clarify that these services should be provided
  8356.  for a large class of objects, access methods, and types of database
  8357.  systems.
  8358.  
  8359.     Types of Data Objects
  8360.              Ability to perform the above operations on a variety of types
  8361.              of data objects, such as text, graphics, image, documents,
  8362.              and voice.
  8363.  
  8364.     Types of Access Methods
  8365.              Ability to perform the above operations using a variety of
  8366.              access methods, such as indexed sequential access, nonindexed
  8367.              sequential access, and direct access.
  8368.  
  8369.     Types of Database Management Systems
  8370.              Ability to perform the above operations on a variety of types
  8371.              of file and database management systems, and database
  8372.  
  8373.                Copyright c 1991 IEEE.  All rights reserved.
  8374.       This is an unapproved IEEE Standards Draft, subject to change.
  8375.  
  8376.  
  8377.  
  8378.  
  8379.  
  8380.  4.4 Database Services                                                 107
  8381.  
  8382.  
  8383.  
  8384.  
  8385.  
  8386.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8387.  
  8388.              management systems, such as relational, network, semantic,
  8389.              and object oriented databases, and heterogeneous combinations
  8390.              of these database management systems.
  8391.  
  8392.  4.4.4.1.1  Data Definition and Manipulation Services
  8393.  
  8394.  These services relate to the ability of application programs to define
  8395.  and manipulate data.  These services are:
  8396.  
  8397.      - Data definition -- ability to create, alter, or drop tables, views,
  8398.        records, fields, and/or data
  8399.  
  8400.      - Data Manipulation -- ability to insert, select, update, and delete
  8401.        tables, views, records, fields, and data
  8402.  
  8403.  4.4.4.1.2  Data Access Services
  8404.  
  8405.  These services relate to the ability of application programs to
  8406.  interrogate databases.  These services are:
  8407.  
  8408.      - Data Query Facilities -- ability to specify search conditions,
  8409.        consisting of a combination of select lists, predicates, and
  8410.        comparison operators
  8411.  
  8412.      - Data Transparency -- ability to transparently access data
  8413.        regardless of the location of that data.
  8414.  
  8415.      - Remote Data Access -- ability to access and update remote data
  8416.  
  8417.  4.4.4.1.3  Data Integrity Services
  8418.  
  8419.  These services relate to the ability of database management systems to
  8420.  protect the databases from hardware and software malfunctions.
  8421.  
  8422.      - Locking -- ability to specify locking of data to some degree of
  8423.        granularity
  8424.  
  8425.      - Consistency -- ability to specify and execute check and referential
  8426.        constraints that help ensure data correctness
  8427.  
  8428.      - Transaction Control -- ability to specify commit and rollback
  8429.        commands and guarantee serializability
  8430.  
  8431.      - Synchronous Writes (Durability?) -- ability to force the writing of
  8432.        data to nonvolatile storage
  8433.  
  8434.  
  8435.  
  8436.  
  8437.  
  8438.  
  8439.                Copyright c 1991 IEEE.  All rights reserved.
  8440.       This is an unapproved IEEE Standards Draft, subject to change.
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.  108                              4 POSIX Open System Environment Services
  8447.  
  8448.  
  8449.  
  8450.  
  8451.  
  8452.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8453.  
  8454.  4.4.4.1.4  Miscellaneous Services
  8455.  
  8456.  These services relate to other services required for the automated
  8457.  management of databases.
  8458.  
  8459.      - Privilege Administration -- ability to grant and revoke privileges
  8460.        for accessing and administering data
  8461.  
  8462.      - Exception Handling -- ability to have applications that are
  8463.        interrupted and notified of exception conditions, to receive
  8464.        control of the machine and take action in response to these
  8465.        exception conditions--even if the action is to ``continue''
  8466.  
  8467.      - Screen Definitions -- ability to create screen definitions, and
  8468.        define, display, and/or paint screens
  8469.  
  8470.      - Reporting -- ability to create formatted reports.
  8471.  
  8472.      - Dynamic Facilities -- ability to temporarily turn control of a
  8473.        database to the end user for interactive access and manipulation of
  8474.        data, and then return control to the application.
  8475.  
  8476.      - Data Dictionary Services -- ability to get data about the data
  8477.        (i.e., metadata) stored in the database.  This allows users and
  8478.        applications to use the database contents in a much more flexible
  8479.        way.  These services allow a user to create, access, and manage
  8480.        this metadata much in the same way as other databases are
  8481.        maintained.
  8482.  
  8483.  
  8484.  4.4.4.2  External Environment Interface Services
  8485.  
  8486.  External Environment Interface services are required for distributed
  8487.  database management systems.  Also, to enable two or more databases to
  8488.  communicate with each other, a common interchange format is required.
  8489.  See 4.5.
  8490.                                                                             d
  8491.  
  8492.  4.4.4.3  Database Resource Management Services
  8493.  
  8494.  These services are not visible to the application programmer at the
  8495.  Database API.  These services are usually provided by Database Utility
  8496.  Programs.  These services include:
  8497.  
  8498.      - Database Administration Services
  8499.  
  8500.      - Database Recovery Services
  8501.  
  8502.  
  8503.  
  8504.  
  8505.                Copyright c 1991 IEEE.  All rights reserved.
  8506.       This is an unapproved IEEE Standards Draft, subject to change.
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  4.4 Database Services                                                 109
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8519.  
  8520.      - Distributed Database Management Services
  8521.  
  8522.      - Heterogeneous Environment Support Services
  8523.  
  8524.  4.4.4.3.1  Database Administration Services
  8525.  
  8526.  Ability for a designated data administrator to structure and
  8527.  configuration manage a database as a whole.  The administrator allocates
  8528.  resources and monitors utilization to assure that authorized users
  8529.  receive the proper services.  Archive functions, journaling, and logging
  8530.  services are available to the user and administrator on a selective
  8531.  basis.
  8532.  
  8533.  4.4.4.3.2  Database Recovery Services
  8534.  
  8535.  Ability to decide that there has been a failure, allow recovery from
  8536.  failure, and permit a slave copy to become a master copy.
  8537.  
  8538.  4.4.4.3.3  Distributed Database Management Services
  8539.  
  8540.  Supports the partitioning and partial replication of the databases.
  8541.  
  8542.  4.4.4.3.4  Heterogeneous Environment Support Services
  8543.  
  8544.  Permits local database systems to be of different types (e.g., inverted
  8545.  list, hierarchical, network, relational) by providing translators between
  8546.  the local database form and a general ``network language.''
  8547.  
  8548.  4.4.4.3.5  Flagger
  8549.  
  8550.  Ability for programmers to be alerted about any code that does not
  8551.  conform to the standard in question, or about any code that is not
  8552.  processed in a conforming manner.
  8553.  
  8554.  
  8555.  4.4.5  Standards, Specifications, and Gaps
  8556.  
  8557.  There are currently four database standards, either completed or under
  8558.  development.  These are the relational data language SQL, a network data
  8559.  language called NDL, the Information Resource Dictionary System (IRDS)
  8560.  for data dictionary work, and a Remote Data Access (RDA) protocol.
  8561.  Table 4-7 summarizes the service requirements provided by the various
  8562.  standards.
  8563.  
  8564.  
  8565.  
  8566.  
  8567.  
  8568.  
  8569.  
  8570.  
  8571.                Copyright c 1991 IEEE.  All rights reserved.
  8572.       This is an unapproved IEEE Standards Draft, subject to change.
  8573.  
  8574.  
  8575.  
  8576.  
  8577.  
  8578.  110                              4 POSIX Open System Environment Services
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8585.  
  8586.  
  8587.                      Table 4-7  -  Database Standards
  8588.  __________________________________________________________________________________________________________________________________________________
  8589.           Service                     Specification              Subclause
  8590.  _________________________________________________________________________
  8591.  Data Definition and            SQL:   ISO 9075                  4.4.5.1
  8592.  Manipulation Services                 ANSI X3.135
  8593.  Data Access Services                  ANSI X3.168
  8594.  Data Integrity Services
  8595.  
  8596.  Data Definition and            NDL:   ISO 8907                  4.4.5.1
  8597.  Manipulation Services
  8598.  Data Access Services
  8599.  Data Integrity Services
  8600.  
  8601.  Miscellaneous Services         IRDS:  ISO DP 10027.N2642,       4.4.5.2
  8602.  (Data Security and                    (IRDS Framework)
  8603.  Integrity, Exception                  ISO DP 8800 N2132,
  8604.  Handling, Screen                      (IRDS Interfaces)
  8605.  Definitions, Reporting,               ANSI X3.138
  8606.  Dynamic Facilities, Data
  8607.  Dictionary Services)
  8608.  
  8609.  Database Resource
  8610.  Management Services
  8611.  (Database Administration,
  8612.  Recovery From Failure)
  8613.  
  8614.  External Environment           RDA:   ISO/IEC DP 9759           4.4.5.2
  8615.  Interface Services
  8616.  __________________________________________________________________________________________________________________________________________________
  8617.  
  8618.  
  8619.  4.4.5.1  Current Standards in the POSIX OSE
  8620.  
  8621.  This subclause describes the current accepted standards that apply to
  8622.  this area.
  8623.  
  8624.  _S_Q_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e
  8625.  
  8626.     ANSI X3.135.1 (ISO 9075, FIPS 127)
  8627.  
  8628.     ANSI X3.168
  8629.  
  8630.  There is a lot of activity by ANSI and ISO in this area.  The standards
  8631.  referenced above are all related, but may not all be ``current'' at the
  8632.  time you read this guide.  The base document is the 1989 ANSI document.
  8633.  ISO and FIPS documents based on it should be used.  Earlier ISO and FIPS
  8634.  documents are based on earlier versions of the ANSI document and
  8635.  consequently may not be consistent with the latest ANSI document.  Beware
  8636.  
  8637.                Copyright c 1991 IEEE.  All rights reserved.
  8638.       This is an unapproved IEEE Standards Draft, subject to change.
  8639.  
  8640.  
  8641.  
  8642.  
  8643.  
  8644.  4.4 Database Services                                                 111
  8645.  
  8646.  
  8647.  
  8648.  
  8649.  
  8650.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8651.  
  8652.  of this in making decisions about which of the standards are relevant to
  8653.  your decisions.  These standards, developed in 1982-1989 by the ANSI X3H2
  8654.  Database Committee, specify data access capabilities based on
  8655.  ``structured query language'' and the relational database model.
  8656.  
  8657.  The X3.135 standard provides for many of the services described in 4.4.4,
  8658.  including Data Definition, Manipulation, and Integrity.  It provides for
  8659.  two levels of compliance:  the weaker Level 1 and the more capable Level
  8660.  2.
  8661.  
  8662.  While X3.135 deals with SQL independently of programming language, X3.168
  8663.  binds, or embeds SQL within the programming languages COBOL, FORTRAN,
  8664.  Pascal, PL/1, C, and Ada.
  8665.  
  8666.  Work is currently planned by ANSI and ISO to include ``generalized
  8667.  triggers,'' ``generalized assertions,'' ``recursive expressions,''
  8668.  ``escape from SQL,'' subtables, and support tools for object oriented and
  8669.  knowledge-based systems.
  8670.  
  8671.  _N_D_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e
  8672.  
  8673.     ISO 8907
  8674.  
  8675.     ANSI X3.133
  8676.  
  8677.  This standard, developed in 1981-1986 by the ANSI X3H2 Database
  8678.  Committee, specifies a data definition language (DDL) and data
  8679.  manipulation language (DML) for network model databases.  This work is an
  8680.  outgrowth of the 1978 CODASYL specifications.
  8681.  
  8682.  This standard provides for many of the services described in 4.4.4,
  8683.  including Data Definition, Manipulation, Access, and Integrity.  The
  8684.  above services apply only to network databases (i.e., not to relational
  8685.  or semantic databases.)
  8686.  
  8687.  No follow-on NDL activities are being conducted by ISO or ANSI.
  8688.  
  8689.  
  8690.  4.4.5.2  Emerging Standards in the POSIX OSE
  8691.  
  8692.  This subclause describes the activities currently in progress to further
  8693.  standardize this area.
  8694.  
  8695.  _R_e_m_o_t_e__D_a_t_a__A_c_c_e_s_s__(_R_D_A_)__P_r_o_t_o_c_o_l
  8696.  
  8697.     ISO DP 9579:
  8698.  
  8699.  
  8700.  
  8701.  
  8702.  
  8703.                Copyright c 1991 IEEE.  All rights reserved.
  8704.       This is an unapproved IEEE Standards Draft, subject to change.
  8705.  
  8706.  
  8707.  
  8708.  
  8709.  
  8710.  112                              4 POSIX Open System Environment Services
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8717.  
  8718.        Part I, _G_e_n_e_r_i_c _R_e_m_o_t_e _D_a_t_a_b_a_s_e _A_c_c_e_s_s -- DP 2
  8719.  
  8720.        Part II, _S_Q_L _S_p_e_c_i_a_l_i_z_a_t_i_o_n -- DP 1
  8721.  
  8722.  This standard, developed by the ECMA Technical Committee on Database
  8723.  Standards, TC22, submitted to ISO in 1985, specifies a protocol that
  8724.  allows remote access and updating, via OSI communications protocols, of
  8725.  relational databases or of database systems that support SQL.
  8726.  
  8727.  This standard provides for the Data Transparency, Remote Data Access, and
  8728.  Support for Heterogeneous Environment requirements described in 4.4.
  8729.  This protocol is aimed at relational databases and other database types
  8730.  that provide access via relational interfaces such as SQL.
  8731.  
  8732.  Much work is planned on in this area by the ISO committee ISO
  8733.  TC97/SC21/WG3.  A specific area of current interest is a generic RDA that
  8734.  uses a nonspecific database language (i.e., not SQL.)
  8735.  
  8736.  _I_n_f_o_r_m_a_t_i_o_n__R_e_s_o_u_r_c_e__D_i_c_t_i_o_n_a_r_y__S_y_s_t_e_m__(_I_R_D_S_)
  8737.  
  8738.     ANSI X3.138                FIPS Pub 156, April 5, 1989
  8739.  
  8740.     ANSI X3H4/90-28 (draft, 4 Apr 90)
  8741.                                IRDS Export/Import File Format
  8742.  
  8743.     ISO DP 10027 N2642 (1988)  IRDS Framework
  8744.  
  8745.     ISO DP 8800 N2132 (1988)   IRDS Services Interfaces
  8746.  
  8747.  These standards are being developed by the ANSI X3H4 Database Group and
  8748.  the ISO/IEC /JTC 1/SC21 Working Group 3.  Both groups are addressing the
  8749.  general area of data dictionaries, but, as described below, the emphases
  8750.  of the activities differ.
  8751.  
  8752.  The ANSI group addresses, primarily, the user interface area, that is,
  8753.  how does a human user access the Data Dictionary Services described in
  8754.  4.4.4.
  8755.  
  8756.  The ISO groups concentrate more on the service interfaces (APIs) among
  8757.  lower level components and utilities of the database model.
  8758.  
  8759.  Differences in scope and incompatibilities exist between the model being
  8760.  developed by ISO and the model approved by ANSI.  They are independently
  8761.  developing the Services Interface, and an export/import facility.
  8762.  
  8763.  
  8764.  
  8765.  
  8766.  
  8767.  
  8768.  
  8769.                Copyright c 1991 IEEE.  All rights reserved.
  8770.       This is an unapproved IEEE Standards Draft, subject to change.
  8771.  
  8772.  
  8773.  
  8774.  
  8775.  
  8776.  4.4 Database Services                                                 113
  8777.  
  8778.  
  8779.  
  8780.  
  8781.  
  8782.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8783.  
  8784.  4.4.5.3  Gaps in Available Standards
  8785.  
  8786.  There are two significant areas described in 4.4.4 as requirements that
  8787.  are not addressed by standards:
  8788.  
  8789.      - Methods to access data such as hashing and indexed sequential
  8790.        access to data is not currently standardized.  There is no
  8791.        consensus in the standards community as to whether such
  8792.        standardization would be beneficial.
  8793.  
  8794.      - Standardization of semantic and object oriented models have also
  8795.        not taken place, though groups like the ANSI Database system study
  8796.        group (DBSSG) are currently investigating the feasibility of
  8797.        standardization in these areas.
  8798.  
  8799.      - I/O Services such as screen generation.
  8800.  
  8801.      - Management and control of database services.  Also include all gaps
  8802.        (all services without standards).
  8803.  
  8804.  
  8805.  4.4.6  OSE Cross-Category Services
  8806.  
  8807.                                                                             d
  8808.  
  8809.  
  8810.  4.4.6.1  Security
  8811.  
  8812.  Ability to specify access control mechanisms.
  8813.  
  8814.  
  8815.  4.4.7  Related Standards
  8816.  
  8817.  The standards and activities described in this subclause are related to
  8818.  the above and may also be relevant to your activities.
  8819.  
  8820.  There are several areas closely related to the Database area that are
  8821.  worth considering with respect to standardization.
  8822.  
  8823.  The first area to consider is the communications and networking area.
  8824.  Interoperability for distributed applications or the use of distributed
  8825.  databases may indicate the use of communications software adhering to
  8826.  networking standards.  See 4.3 for further discussion of that area.
  8827.  (Specifically consider the following standards described in that
  8828.  subclause:
  8829.  
  8830.     ISO/IEC 9804.3             (OSI CCR services)
  8831.  
  8832.  
  8833.  
  8834.  
  8835.                Copyright c 1991 IEEE.  All rights reserved.
  8836.       This is an unapproved IEEE Standards Draft, subject to change.
  8837.  
  8838.  
  8839.  
  8840.  
  8841.  
  8842.  114                              4 POSIX Open System Environment Services
  8843.  
  8844.  
  8845.  
  8846.  
  8847.  
  8848.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8849.  
  8850.     ISO/IEC 9805.3             (OSI CCR protocol)
  8851.  
  8852.     ISO 8824                   _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_S_I--
  8853.                                _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n
  8854.                                _O_n_e (_A_S_N._1)
  8855.  
  8856.     ISO 8825                   _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_S_I--
  8857.                                _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _B_a_s_i_c _E_n_c_o_d_i_n_g _R_u_l_e_s _f_o_r
  8858.                                _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e (_A_S_N._1)
  8859.  
  8860.  The second area to consider is transaction processing.  That area goes
  8861.  further in addressing the total requirements for distributed
  8862.  applications.  See 4.10.
  8863.  
  8864.  
  8865.  
  8866.  
  8867.  
  8868.  
  8869.  
  8870.  
  8871.  
  8872.  
  8873.  
  8874.  
  8875.  
  8876.  
  8877.  
  8878.  
  8879.  
  8880.  
  8881.  
  8882.  
  8883.  
  8884.  
  8885.  
  8886.  
  8887.  
  8888.  
  8889.  
  8890.  
  8891.  
  8892.  
  8893.  
  8894.  
  8895.  
  8896.  
  8897.  
  8898.  
  8899.  
  8900.  
  8901.                Copyright c 1991 IEEE.  All rights reserved.
  8902.       This is an unapproved IEEE Standards Draft, subject to change.
  8903.  
  8904.  
  8905.  
  8906.  
  8907.  
  8908.  4.4 Database Services                                                 115
  8909.  
  8910.  
  8911.  
  8912.  
  8913.  
  8914.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  8915.  
  8916.  
  8917.  
  8918.  
  8919.  
  8920.  
  8921.  
  8922.  
  8923.  
  8924.  
  8925.  
  8926.  
  8927.  
  8928.  
  8929.  
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.  
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952.  
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960.  
  8961.  
  8962.  
  8963.  
  8964.  
  8965.  
  8966.  
  8967.                Copyright c 1991 IEEE.  All rights reserved.
  8968.       This is an unapproved IEEE Standards Draft, subject to change.
  8969.  
  8970.  
  8971.  
  8972.  
  8973.  
  8974.  116                              4 POSIX Open System Environment Services
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  8981.  
  8982.  4.5  Data Interchange Services
  8983.  
  8984.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _R_i_c_h_a_r_d _S_c_o_t_t
  8985.  
  8986.  
  8987.  4.5.1  Overview and Rationale
  8988.  
  8989.  The Data Interchange/Information Exchange components of the POSIX Open
  8990.  System Environment provide specialized support for the exchange of data
  8991.  between applications or components of applications.  Without support for
  8992.  data interchange, problems can arise when attempts are made to move data
  8993.  between different operational environments or between two related
  8994.  applications.  More specifically, data interchange problems arise in each
  8995.  of the five following situations:
  8996.  
  8997.      - Movement of a single application program and its associated data
  8998.        between operational environments,
  8999.  
  9000.      - Movement of data between cooperating application software within
  9001.        the same operational environment,
  9002.  
  9003.      - Movement of data between cooperating application software operating
  9004.        in differing operational environments,
  9005.  
  9006.      - Movement of data between related, but not cooperating, application
  9007.        software within a single operational environment, and across
  9008.        differing operational environments.
  9009.  
  9010.  From the global view, the data interchange components can provide the
  9011.  means to satisfy the needs in each of these situations.  These standards
  9012.  need to define physical formats, data formats, code sets, and data
  9013.  descriptions that are consistent across all implementations of the POSIX
  9014.  Open System Environment.
  9015.  
  9016.  
  9017.  4.5.2  Scope
  9018.  
  9019.  The data interchange component of the POSIX Open System Environment
  9020.  includes standard services, protocols, and data formats required to
  9021.  ensure that data can be interchanged between related application
  9022.  software.  Physical media formats are beyond the scope of the POSIX Open
  9023.  System Environment.
  9024.  
  9025.  
  9026.  
  9027.  
  9028.  
  9029.  
  9030.  
  9031.  
  9032.  
  9033.                Copyright c 1991 IEEE.  All rights reserved.
  9034.       This is an unapproved IEEE Standards Draft, subject to change.
  9035.  
  9036.  
  9037.  
  9038.  
  9039.  
  9040.  4.5 Data Interchange Services                                         117
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9047.  
  9048.  4.5.3  Reference Model
  9049.  
  9050.  _________________________________________________________________________
  9051.  
  9052.  
  9053.  
  9054.  
  9055.  
  9056.  
  9057.  
  9058.  
  9059.  
  9060.  
  9061.  
  9062.  
  9063.  
  9064.  
  9065.  
  9066.  
  9067.  
  9068.  
  9069.  
  9070.  _________________________________________________________________________
  9071.              Figure 4-13  -  Data Interchange Reference Model
  9072.  
  9073.  
  9074.  The Data Interchange Services relate directly to the POSIX Open System
  9075.  Environment reference model that was presented in Figure 3-1.  Figure 4-
  9076.  13 shows the components of the reference model that are significant for
  9077.  data interchange.  The reference model defines the conceptual
  9078.  relationships required to provide these facilities.  It should not be
  9079.  viewed as a description of an implementation.  The key entities within
  9080.  the figure are the Application Software, the Application Platform, and
  9081.  the External Environment.  To satisfy the data interchange service
  9082.  requirements, the POSIX Open System Environment must permit application
  9083.  software to transfer data to and from the external environment.
  9084.  
  9085.  The application software requests this transfer through the Application
  9086.  Program Interface.  In response to those requests, the data interchange
  9087.  components of the Application Platform handle conversions to and from
  9088.  standard formats and the transfer of the information across the External
  9089.  Environment Interface (EEI).  The EEI, which defines the format
  9090.  specifications required to support data interchange, can be divided into
  9091.  Data Description Protocols and Data Format Protocols.  Data Description
  9092.  Protocols provide a means to identify the data that is present.  Data
  9093.  Format Protocols provide the storage representation of the actual data.
  9094.  
  9095.  Today, this model is only partially supported by standards.  Physical
  9096.  formats are fairly well standardized.  Some work is beginning on data
  9097.  
  9098.  
  9099.                Copyright c 1991 IEEE.  All rights reserved.
  9100.       This is an unapproved IEEE Standards Draft, subject to change.
  9101.  
  9102.  
  9103.  
  9104.  
  9105.  
  9106.  118                              4 POSIX Open System Environment Services
  9107.  
  9108.  
  9109.  
  9110.  
  9111.  
  9112.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9113.  
  9114.  format protocols standards, particularly in the networking area.  At this
  9115.  time, no general standards exist to support Data description protocols.
  9116.  
  9117.  
  9118.  4.5.4  Service Requirements
  9119.  
  9120.  This subclause details the Data Interchange Services and protocols that
  9121.  are required to support application portability and interoperability.
  9122.  Subclause 4.5.4.1 describes the API service requirements.  4.5.4.2
  9123.  describes the EEI service (i.e., protocol) requirements.
  9124.  
  9125.  Data interchange is one of the components of the POSIX Open System
  9126.  Environment that is now just beginning to evolve.  At this time, the
  9127.  general requirements for services are understood, but there is little
  9128.  general existing practice that can be pointed to as showing that current
  9129.  service requirements are both necessary and complete.  Most existing
  9130.  practice is limited to a specific application domain.  As a developing
  9131.  area, data interchange represents gaps in both the definition of service
  9132.  requirements and standards.  The data interchange component is, none the
  9133.  less, critical for supporting application portability and
  9134.  interoperability.  The data interchange service requirements are
  9135.  currently described to the extent possible at this time in their
  9136.  evolution.  More detail will be added in future revisions of this guide.
  9137.  
  9138.  
  9139.  4.5.4.1  Application Program Interface Services
  9140.  
  9141.  The API services to support data interchange need to provide the ability
  9142.  to store and retrieve data using the formats and protocols provided at
  9143.  the data interchange EEI.
  9144.  
  9145.  At this time little work has been directed at defining API-level service
  9146.  requirements for data interchange.  Data interchange API services need to
  9147.  provide a means to request that specific data be represented using the
  9148.  EEI services defined below.  Progress in this area is similar to the
  9149.  development of the networking area.  Initial standards defined protocols
  9150.  and only after those were in use has attention shifted to providing a
  9151.  standard mechanism for requesting those networking services.
  9152.  
  9153.  4.5.4.2  External Environment Interface Services
  9154.  
  9155.  This section identifies the EEI services required to support data
  9156.  interchange.  These services are all in the form of protocol and format    d
  9157.  definitions.  As shown in Figure 4-13, these protocols include:
  9158.  
  9159.      - Character Sets and Data Representation
  9160.  
  9161.      - Data Format Protocols
  9162.  
  9163.  
  9164.  
  9165.                Copyright c 1991 IEEE.  All rights reserved.
  9166.       This is an unapproved IEEE Standards Draft, subject to change.
  9167.  
  9168.  
  9169.  
  9170.  
  9171.  
  9172.  4.5 Data Interchange Services                                         119
  9173.  
  9174.  
  9175.  
  9176.  
  9177.  
  9178.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9179.  
  9180.      - Data Description Protocols
  9181.  
  9182.  These protocols are required to support the exchange of information
  9183.  between application software entities, both within a single application
  9184.  platform and between application platforms.
  9185.  
  9186.  4.5.4.2.1  Character Sets and Data Representation
  9187.  
  9188.  The ability to support Character Sets and Data Representation is crucial
  9189.  to providing effective data interchange between application software
  9190.  operating under differing language and cultural conventions.  These
  9191.  services add facilities to the POSIX Open System Environment to identify
  9192.  the character set and data representations associated with textual data.
  9193.  A detailed description of the requirements in this area can be found in
  9194.  5.1.
  9195.  
  9196.  4.5.4.2.2  Data Format Protocols
  9197.  
  9198.  The data format protocols need to provide the ability to identify the
  9199.  representation of the data in a manner that is independent of the
  9200.  specific execution environment.  The data format protocol layer adds
  9201.  attributes that describe the physical characteristics of the data that
  9202.  must be known to properly retrieve the data value, given the storage
  9203.  formats that are native on the hardware/software environment where the
  9204.  data is used.  The complete attribute information required to decipher
  9205.  that data value includes:
  9206.  
  9207.      - Detailed storage format for the value
  9208.  
  9209.      - The data value in an environment-neutral format
  9210.  
  9211.  The data format protocols protect applications from hardware/software
  9212.  differences between environments.  Specifically, the protocols ensure
  9213.  that data remains stable when moving between environments where the
  9214.  character set, word size, or byte ordering may differ.
  9215.  
  9216.  4.5.4.2.3  Data Description Protocols
  9217.  
  9218.  Data description protocols provide the ability to share data between
  9219.  related application software entities, even if they were not specifically
  9220.  written to cooperate.  Building upon the facilities provided by the
  9221.  previous two Data Interchange EEI Services, data description protocols
  9222.  provide a means of associating a name or other identifier with the
  9223.  individual data elements in a standard manner.  This permits an
  9224.  application program to correctly identify data that was created by an
  9225.  unrelated application.  To date, most standards in this area have limited
  9226.  themselves to specific application areas and no general solution has been
  9227.  provided.
  9228.  
  9229.  
  9230.  
  9231.                Copyright c 1991 IEEE.  All rights reserved.
  9232.       This is an unapproved IEEE Standards Draft, subject to change.
  9233.  
  9234.  
  9235.  
  9236.  
  9237.  
  9238.  120                              4 POSIX Open System Environment Services
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9245.  
  9246.  4.5.5  Standards, Specifications, and Gaps
  9247.  
  9248.  See Table 4-8.
  9249.  
  9250.  
  9251.                  Table 4-8  -  Data Interchange Standards
  9252.  __________________________________________________________________________________________________________________________________________________
  9253.                  Service                    Specification      Subclause
  9254.   ______________________________________________________________________
  9255.  
  9256.   Data Description Protocols ODA/ODIF     ISO 8613 Parts 1-8   4.5.5.?      d
  9257.                              SGML         ISO 8879             4.5.5.?      d
  9258.                              EDIFACT      ISO 9735             4.5.5.?      d
  9259.                              STEP         ISO DP 10303         4.5.5.?      d
  9260.                              EDIFACT      ANSI X.12            4.5.5.?      d
  9261.                              IGES         NBSIR 86             4.5.5.?      d
  9262.                              VHDL VHSIC   IEEE P1076           4.5.5.?      d
  9263.   Data Format Protocols      ODA/ODIF     ISO 8613 Parts 1-8   4.5.5.?      d
  9264.                              SGML         ISO 8879             4.5.5.?      d
  9265.                              CGM          ISO 8632             4.5.5.?      d
  9266.                              CGM          ANSI X3.122-1986     4.5.5.?      d
  9267.                              STEP         ISO DP 10303         4.5.5.?      d
  9268.                              EDIFACT      ISO 9735             4.5.5.?      d
  9269.                              EDIFACT      ANSI X.12            4.5.5.?      d
  9270.                                                                             d
  9271.                              IGES         NBSIR 86-3359        4.5.5.?      d
  9272.                              VHDL VHSIC   IEEE P1076           4.5.5.?      d
  9273.                              CDIF                              4.5.5.?      d
  9274.                              GDSII                             4.5.5.?      d
  9275.  __________________________________________________________________________________________________________________________________________________
  9276.  
  9277.  
  9278.  4.5.5.1  Current Standards in the POSIX OSE
  9279.  
  9280.  4.5.5.1.1  International Standards
  9281.  
  9282.  _O_p_e_n__D_o_c_u_m_e_n_t__A_r_c_h_i_t_e_c_t_u_r_e__(_O_D_A_)_/_O_p_e_n__D_o_c_u_m_e_n_t__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_O_D_I_F_)
  9283.  
  9284.  The ODA/ODIF standard (ISO 8613 Parts 1-8) provides a standard for the
  9285.  structures used to represent documents.  The ODA model defines a
  9286.  comprehensive description of a documents format.  It supports both
  9287.  reproduction of the original document and also editing and formatting of
  9288.  the document.
  9289.  
  9290.  Part 5 of the ISO ODA standard specifies the interchange format for ODA
  9291.  documents; specifically ODIF.  ODIF is an ASN.1 (ISO 8825) based
  9292.  presentation of the ODA document.
  9293.  
  9294.  
  9295.  
  9296.  
  9297.                Copyright c 1991 IEEE.  All rights reserved.
  9298.       This is an unapproved IEEE Standards Draft, subject to change.
  9299.  
  9300.  
  9301.  
  9302.  
  9303.  
  9304.  4.5 Data Interchange Services                                         121
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9311.  
  9312.  _S_t_a_n_d_a_r_d__G_e_n_e_r_a_l_i_z_e_d__M_a_r_k_u_p__L_a_n_g_u_a_g_e__(_S_G_M_L_)
  9313.  
  9314.  SGML (ISO 8879) is a language that allows users to precisely define the
  9315.  structure of a document.  The key difference between SGML and ODA/ODIF is
  9316.  that the former provides the flexibility to define custom document types.
  9317.  
  9318.  _C_o_m_p_u_t_e_r__G_r_a_p_h_i_c_s__M_e_t_a_f_i_l_e__(_C_G_M_)
  9319.  
  9320.  CGM (ISO 8632, ANSI X3.122-1986) provides a standard means for the
  9321.  storage and exchange of computer graphics.  Graphic information is stored
  9322.  in a device- and resolution-independent fashion that can support both the
  9323.  display and the manipulation of the data.
  9324.  
  9325.  _E_l_e_c_t_r_o_n_i_c__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__(_E_D_I_)
  9326.  
  9327.  The EDI standards [ISO 9735 (EDIFACT), ANSI X.12] provide support for the
  9328.  exchange of structured business data.  EDI is typically used to transfer
  9329.  business documents such as purchase orders, invoices, promotional
  9330.  announcements, and electronic funds transfer information.
  9331.  
  9332.  4.5.5.1.2  Regional Standards
  9333.  
  9334.  None.
  9335.  
  9336.  4.5.5.1.3  National Standards
  9337.  
  9338.  None.
  9339.  
  9340.  
  9341.  4.5.5.2  Emerging Standards in the POSIX OSE
  9342.  
  9343.  4.5.5.2.1  International Standards
  9344.  
  9345.  _S_t_a_n_d_a_r_d__f_o_r__t_h_e__E_x_c_h_a_n_g_e__o_f__P_r_o_d_u_c_t__M_o_d_e_l__D_a_t_a__(_S_T_E_P_)                     d
  9346.  
  9347.  STEP (ISO DP 10303) is a neutral mechanism capable of completely           d
  9348.  representing product data throughout the life cycle of a product.  The     d
  9349.  completeness of this representation makes it suitable not only for file    d
  9350.  exchange, but also as a basis for implementing and sharing databases of    d
  9351.  archiving.                                                                 d
  9352.  
  9353.  4.5.5.2.2  Regional Standards
  9354.  
  9355.  None.
  9356.  
  9357.  
  9358.  
  9359.  
  9360.  
  9361.  
  9362.  
  9363.                Copyright c 1991 IEEE.  All rights reserved.
  9364.       This is an unapproved IEEE Standards Draft, subject to change.
  9365.  
  9366.  
  9367.  
  9368.  
  9369.  
  9370.  122                              4 POSIX Open System Environment Services
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9377.  
  9378.  4.5.5.2.3  National Standards
  9379.  
  9380.  None.
  9381.  
  9382.  
  9383.  4.5.5.3  Gaps in Available Standards
  9384.  
  9385.  4.5.5.3.1  Standards and Specifications Outside the POSIX OSE
  9386.  
  9387.  Most standards activity in the data interchange area has been isolated to
  9388.  specialized application areas.  These activities have attempted to
  9389.  support data interchange by limiting the scope of the effort to a
  9390.  specific type of data.  These industry standards include:
  9391.  
  9392.  4.5.5.3.1.1  _G_o_v_e_r_n_m_e_n_t_/_L_e_g_a_l__S_t_a_n_d_a_r_d_s
  9393.  
  9394.  _I_n_i_t_i_a_l__G_r_a_p_h_i_c_s__E_x_c_h_a_n_g_e__S_p_e_c_i_f_i_c_a_t_i_o_n__(_N_B_S_I_R__8_6_-_3_3_5_9_)
  9395.  
  9396.  IGES is used heavily in the exchange of graphical information between
  9397.  applications.
  9398.  
  9399.  4.5.5.3.1.3  _D_e__F_a_c_t_o__S_t_a_n_d_a_r_d_s
  9400.  
  9401.  _C_A_S_E__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_C_D_I_F_)                                        d
  9402.  
  9403.  The CDIF Technical Committee is developing a data interchange format to    d
  9404.  serve as an industry standard for exchanging information between           d
  9405.  Computer-Aided Software Engineering (CASE) tools.  CDIF is an EIA-         d
  9406.  endorsed initiative.  It assumes that two or more tools may interface      d
  9407.  asynchronously with each other and will transfer information from one to   d
  9408.  another via ``CDIF files.''  The types of information that may be          d
  9409.  contained in these files is defined by the CDIF Conceptual Models.         d
  9410.  
  9411.  _G_r_a_p_h_i_c__D_e_s_i_g_n__S_y_s_t_e_m__I_I__(_G_D_S_I_I_)__C_A_D__E_x_c_h_a_n_g_e__F_o_r_m_a_t
  9412.  
  9413.  CAD exchange format.
  9414.  
  9415.  _H_a_r_d_w_a_r_e__D_e_s_c_r_i_p_t_i_o_n__L_a_n_g_u_a_g_e__(_V_H_D_L__V_H_S_I_C_)
  9416.  
  9417.  The VHDL standard (IEEE P1076) defines a representation for the exchange
  9418.  of CAD representations of electronic circuits.
  9419.  
  9420.  4.5.5.3.2  Unsatisfied Service Requirements
  9421.  
  9422.  None of these standards addresses a general means to handle application
  9423.  data in a manner to ensure portability between environments.  The closest
  9424.  attempt is the effort just beginning in POSIX.8 to define a means within
  9425.  the network interface to provide data portability.  However, even this
  9426.  effort is not attempting to solve the broader issue of interoperability
  9427.  of multiple applications.  The existing standards have all evolved to
  9428.  
  9429.                Copyright c 1991 IEEE.  All rights reserved.
  9430.       This is an unapproved IEEE Standards Draft, subject to change.
  9431.  
  9432.  
  9433.  
  9434.  
  9435.  
  9436.  4.5 Data Interchange Services                                         123
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9443.  
  9444.  support the interchange of specific types of data between separate
  9445.  applications.  Support for general data portability is not addressed by
  9446.  existing standard, except for ISIS, which does not appear to have caught
  9447.  on.
  9448.  
  9449.  
  9450.  4.5.6  OSE Cross-Category Services
  9451.  
  9452.  Not applicable.                                                            d
  9453.  
  9454.  
  9455.  4.5.7  Related Standards
  9456.  
  9457.  The following standards are related to the services covered in this
  9458.  clause as they address some of the services described in section 4.6.4 at
  9459.  some level.  Each of these related standards are addressed fully as part
  9460.  of another service category.
  9461.  
  9462.   ASN.1   ISO 8824               Abstract Syntax Notation   (Clause 4.3)
  9463.           ISO 8825               ASN.1 Basic Encoding Rules (Clause 4.3)
  9464.  
  9465.   MHS     ISO/CCITT X.400-1984   Message Handling System (Clause 4.3)
  9466.           ISO/CCITT X.400-1988   Message Handling System (Clause 4.3)
  9467.  
  9468.  
  9469.  4.5.8  Open Issues
  9470.  
  9471.  Data interchange support must address hardware/software differences
  9472.  between environments.  The key concerns in transporting data that must be
  9473.  addressed will include the character set, word size, and byte ordering
  9474.  for the operating environment along with a accurate identification of the
  9475.  data value.
  9476.  
  9477.  The data portability standards adopted within POSIX Open System
  9478.  Environment need to define data formats that will enable applications to
  9479.  create data that can be used read and properly interpreted on differing
  9480.  operating environments and by other application software.
  9481.  
  9482.  
  9483.  
  9484.  
  9485.  
  9486.  
  9487.  
  9488.  
  9489.  
  9490.  
  9491.  
  9492.  
  9493.  
  9494.  
  9495.                Copyright c 1991 IEEE.  All rights reserved.
  9496.       This is an unapproved IEEE Standards Draft, subject to change.
  9497.  
  9498.  
  9499.  
  9500.  
  9501.  
  9502.  124                              4 POSIX Open System Environment Services
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9509.  
  9510.  4.6  Windowing System Services                                             d
  9511.  
  9512.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _M_a_r_t_i _S_z_c_z_u_r _a_n_d _R_u_t_h _K_l_e_i_n
  9513.  
  9514.  
  9515.  4.6.1  Overview and Rationale
  9516.  
  9517.  Human user interface standards are considered in this clause.  The user
  9518.  interface is a key component of all computer systems that support direct
  9519.  human-machine interaction.  Until recently, most computer operating
  9520.  systems interpreted commands that were typed in from the keyboard of an
  9521.  alphanumeric computer terminal.  Special purpose applications, such as
  9522.  those for CAD/CAM, have always presented user interfaces based on series
  9523.  of menus or pointing at visual displays with tablets and lightpens.  The
  9524.  availability of low-cost bitmapped graphic workstations and personal
  9525.  computers has lead to the proliferation of graphical user interfaces
  9526.  (GUIs), windowing technologies, generic commands, and an assortment of
  9527.  selection techniques (e.g., mouse, track ball, tablets).  In several of
  9528.  these technologies de facto standards are emerging and becoming
  9529.  informally accepted by the user community, and with more frequency,
  9530.  mandated for use in systems being developed within government agencies
  9531.  and private industry.  The primary motivations for considering
  9532.  human/computer interaction standards and their relation to POSIX
  9533.  standards include:
  9534.  
  9535.      - The existence and popularity of windowing systems
  9536.  
  9537.      - The requirement for development of applications that take advantage
  9538.        of the windowing system environment
  9539.  
  9540.      - The requirement of many users and manufacturers for a basic
  9541.        consistency in the presentation and behavior of human computer
  9542.        interaction across multiple graphics platforms
  9543.  
  9544.  As the windowing system technology evolves within the graphics
  9545.  environment, the differences between windowing services and graphic
  9546.  services becomes less distinct.  The distinction for purposes of this
  9547.  document is that graphic services are associated with providing general
  9548.  purpose interfaces for creating virtually any kind of two- and three-
  9549.  dimensional graphics (e.g., GKS for 2-D and PHIGS for 3-D).  HCI services
  9550.  certainly utilize graphic technologies, but are limited to providing
  9551.  graphics related to window-based user interfaces and specifications on
  9552.  how human users may interact with an application within a window
  9553.  environment.  The graphic services are addressed independently in 4.7.
  9554.  
  9555.  Performance metrics are used in the specification of HCI components.  It
  9556.  is intended that (eventually) a set of metrics that will be sufficient to
  9557.  characterize all of the services defined above.
  9558.  
  9559.  
  9560.  
  9561.                Copyright c 1991 IEEE.  All rights reserved.
  9562.       This is an unapproved IEEE Standards Draft, subject to change.
  9563.  
  9564.  
  9565.  
  9566.  
  9567.  
  9568.  4.6 Windowing System Services                                         125
  9569.  
  9570.  
  9571.  
  9572.  
  9573.  
  9574.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9575.  
  9576.      - Screen width--effective horizontal width of screen
  9577.  
  9578.      - Screen height--effective vertical height of screen
  9579.  
  9580.      - Screen depth--effective depth of screen (i.e., bit width, gray
  9581.        scale)
  9582.  
  9583.      - Screen resolution--size in units of 106
  9584.  
  9585.      - Application display latency--time to satisfy a display request
  9586.        measured in units of milliseconds; the interval begins with release
  9587.        of the request from the (possibly remote) application.  The
  9588.        interval ends with completion of requested service.
  9589.  
  9590.  
  9591.  4.6.2  Scope
  9592.  
  9593.  Standards and standards initiatives in the user interface area cover a
  9594.  wide area, ranging from keyboard layout to screen management.  In this
  9595.  clause, the following specific standards are considered:
  9596.  
  9597.      - Protocols for window management on a local or remote display device
  9598.  
  9599.      - Application Program Interfaces (API) for such protocols
  9600.  
  9601.      - HCI drivability features that define a common subset of ``look and
  9602.        feel''; i.e., appearance, screen positioning, and behavior of
  9603.        human/computer interaction objects within windows on a graphic
  9604.        screen
  9605.  
  9606.      - Language-independent functional specifications and appropriate
  9607.        associated language bindings for the display, manipulation, and
  9608.        management of interaction objects within windows on a graphic
  9609.        screen
  9610.  
  9611.      - Command-language interface that may be entered interactively by the
  9612.        human user or retrieved from a stored procedure.
  9613.  
  9614.      - Language-independent functional specifications and appropriate
  9615.        associated language bindings required to support character (non-
  9616.        bitmapped) terminals.
  9617.  
  9618.      - Language-independent functional specifications and appropriate
  9619.        associated language bindings for the translation, manipulation, and
  9620.        management of command statements (or messages).
  9621.  
  9622.  Standards relating to the following are not considered:
  9623.  
  9624.  
  9625.  
  9626.  
  9627.                Copyright c 1991 IEEE.  All rights reserved.
  9628.       This is an unapproved IEEE Standards Draft, subject to change.
  9629.  
  9630.  
  9631.  
  9632.  
  9633.  
  9634.  126                              4 POSIX Open System Environment Services
  9635.  
  9636.  
  9637.  
  9638.  
  9639.  
  9640.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9641.  
  9642.      - Graphics; see 4.7.
  9643.  
  9644.      - Keyboard layout (out of scope for HCI Services)
  9645.  
  9646.      - Network transport protocols; see 4.3.
  9647.  
  9648.      - Hardware device interfaces (out of scope for HCI Services)
  9649.  
  9650.  
  9651.  4.6.3  Reference Model
  9652.  
  9653.  This subclause identifies the entities and interfaces specific to the
  9654.  construction of an HCI architecture.  This architecture is consistent
  9655.  with, and extends the architecture of, Section 3.  As illustrated in
  9656.  Figure 4-14, the interface components involved in the user interface
  9657.  process are divided into two groups, called the external environment
  9658.  interface (EEI) and the application program interface (API).
  9659.  
  9660.  _________________________________________________________________________
  9661.  
  9662.  
  9663.  
  9664.  
  9665.  
  9666.  
  9667.  
  9668.  
  9669.  
  9670.  
  9671.  
  9672.  
  9673.  
  9674.  
  9675.  
  9676.  
  9677.  
  9678.  
  9679.  
  9680.  
  9681.  
  9682.  
  9683.  
  9684.  
  9685.  
  9686.  _________________________________________________________________________
  9687.                  Figure 4-14  -  Windowing Reference Model                  d
  9688.  
  9689.  
  9690.  
  9691.  
  9692.  
  9693.                Copyright c 1991 IEEE.  All rights reserved.
  9694.       This is an unapproved IEEE Standards Draft, subject to change.
  9695.  
  9696.  
  9697.  
  9698.  
  9699.  
  9700.  4.6 Windowing System Services                                         127
  9701.  
  9702.  
  9703.  
  9704.  
  9705.  
  9706.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9707.  
  9708.  The EEI is concerned with the communication with the user via the
  9709.  physical HCI devices (e.g., keyboard terminal, mouse, display screen).
  9710.  The applicable EEI standards are driven primarily in support of user and
  9711.  data portability across different application platforms.  standards and
  9712.  guidelines are intended to define a minimal set of commonality in human
  9713.  user interfaces, which will eliminate problem areas such as:
  9714.  
  9715.      - Error provoking inconsistencies
  9716.  
  9717.      - Misleading expectations about the results of user actions
  9718.  
  9719.      - Gross inconsistencies in the high level user model or metaphor
  9720.  
  9721.      - Incompatible motor control tendencies
  9722.  
  9723.  The drivability concept derives its name from the concept of ``driving''
  9724.  an interface.  A frequently cited analogy is the automobile.  Having a
  9725.  standard location for the clutch, brake, accelerator pedals, ignition
  9726.  key, and steering wheel allows a driver to move between car models with
  9727.  relative ease (until he/she has to roll down the window, turn on the
  9728.  lights or windshield wipers!)  Similarly, the EEI drivability guidelines
  9729.  will provide standards for human user interfaces that will ensure ease of
  9730.  moving between application platform models.  For example, which mouse
  9731.  click causes an interaction object (e.g., radio button) to be selected or
  9732.  how a scroll bar should behave would be candidates for standard EEI
  9733.  specification.
  9734.  
  9735.  The API is concerned with the interface between the application semantics
  9736.  and the HCI services.  It is the interface between the application
  9737.  software and the application platform and is defined primarily in support
  9738.  of application portability.  These services provide functions for
  9739.  creation and manipulation of visual display objects such as menus,
  9740.  buttons, scrollbars, and dialog boxes.  In addition, these functions
  9741.  allow information about user actions to flow back to the application
  9742.  software; for example, when the user has selected an item from a menu.
  9743.  This information about user actions is known as an event.  Applications
  9744.  that require communication with the human user are inherently event-
  9745.  driven.  That is, associated with an application's dialog window (i.e., a
  9746.  window in which a user response is expected) is a main event loop waiting
  9747.  for the user to make a selection that will trigger an operation to be
  9748.  performed by the application.
  9749.  
  9750.  The API will support a specific user interface policy, which will define
  9751.  the application's ``look and feel.''  Although the specific look and feel
  9752.  need not be standard across application platforms (i.e., different
  9753.  implementations of the API may have unique styles) the API definition
  9754.  shall ensure that the application software can be ported across POSIX
  9755.  platforms; and the API shall support the EEI drivability guidelines,
  9756.  enabling human users to easily operate the application across platforms.
  9757.  
  9758.  
  9759.                Copyright c 1991 IEEE.  All rights reserved.
  9760.       This is an unapproved IEEE Standards Draft, subject to change.
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  
  9766.  128                              4 POSIX Open System Environment Services
  9767.  
  9768.  
  9769.  
  9770.  
  9771.  
  9772.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9773.  
  9774.  Elements of the HCI Architecture are Application Software elements,
  9775.  Application Program Interface (API) elements, and External Environment
  9776.  Interface (EEI) elements.  These elements are linked by the use of common
  9777.  concepts and definitions associated with the HCI entities, interfaces,
  9778.  services, and standards.
  9779.  
  9780.  
  9781.  4.6.3.1  Application Software Elements
  9782.  
  9783.  Application Entity Elements include:
  9784.  
  9785.      (1)  Window System Server
  9786.  
  9787.           The Window System Server provides a function that handles
  9788.           communication connections from clients, demultiplexes graphics
  9789.           requests onto the screens, and multiplexes input back to the
  9790.           appropriate client.  Applications and other programs that use
  9791.           basic windowing services are called ``clients.''  Many clients
  9792.           may talk to the same server.  All application requests to write
  9793.           to the screen must go through the server via the basic windowing
  9794.           services.  The server is independent of operating system,
  9795.           programming languages, or network communication.
  9796.  
  9797.      (2)  Window Manager
  9798.  
  9799.           A Window Manager provides a uniform method for manipulating
  9800.           windows, which includes a basic set of window management
  9801.           capabilities that allow for development of alternative and/or
  9802.           user-preferred window managers.  Required human user
  9803.           capabilities shall include but are not limited to:
  9804.  
  9805.            - Resize window
  9806.  
  9807.            - Move window
  9808.  
  9809.            - Push/pop window to top/bottom
  9810.  
  9811.            - Shrink window to a reduced visual representation of window
  9812.              (i.e., frequently referred to as an icon of the window)
  9813.  
  9814.      (3)  Local and Remote Applications
  9815.  
  9816.           These applications are clients that provide the functions
  9817.           required to perform the specific task(s) that the human user
  9818.           needs to achieve (e.g., spreadsheets, scientific analysis
  9819.           systems, CASE tools, process and control tasks.)
  9820.  
  9821.  
  9822.  
  9823.  
  9824.  
  9825.                Copyright c 1991 IEEE.  All rights reserved.
  9826.       This is an unapproved IEEE Standards Draft, subject to change.
  9827.  
  9828.  
  9829.  
  9830.  
  9831.  
  9832.  4.6 Windowing System Services                                         129
  9833.  
  9834.  
  9835.  
  9836.  
  9837.  
  9838.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9839.  
  9840.  4.6.3.2  Application Program Interface (API) Elements
  9841.  
  9842.  The API are language binding specifications that define the services
  9843.  available to the application programmer.  API Elements are: basic window
  9844.  services, toolkit window services, and dialog services.
  9845.  
  9846.  
  9847.  4.6.3.3  External Environment Interface (EEI) Elements
  9848.  
  9849.  The EEI elements are specifications (and in some cases, aspects of
  9850.  physical objects) that define how the application platform interacts with
  9851.  the external world.  Note that application software, as defined here,
  9852.  interacts with the outside world only via the application platform.
  9853.  
  9854.  External Environment Interface Elements include:
  9855.  
  9856.      - Display Device Specifications
  9857.  
  9858.      - Data Protocol Format
  9859.  
  9860.      - User Drivability Guidelines (e.g., ``look and feel'' of window
  9861.        interface)
  9862.  
  9863.      - Keyboard Device Specification
  9864.  
  9865.      - Selection Device Specification (e.g., mouse, graphics tablet, touch
  9866.        screen)
  9867.  
  9868.      - Command-language Definition (syntax and semantics guidelines)
  9869.  
  9870.  
  9871.  4.6.4  Service Requirements
  9872.  
  9873.  Human-Computer Interaction (HCI) Services provide a controlled interface
  9874.  between the application-specific software and the user-interface-specific
  9875.  (i.e., HCI) software, allowing each to be designed and implemented
  9876.  separately.  Users of these services include all POSIX system users and
  9877.  those charged with maintaining the processor and human interface
  9878.  communication.  A common, standardized human/computer interaction for
  9879.  applications shall be available to users across all POSIX Open Systems
  9880.  Environments.
  9881.  
  9882.  Services shall support raster (i.e., bitmapped) graphics displays.
  9883.  Methods for supporting vector graphics displays can be addressed, but are
  9884.  not mandatory.
  9885.  
  9886.  
  9887.  
  9888.  
  9889.  
  9890.  
  9891.                Copyright c 1991 IEEE.  All rights reserved.
  9892.       This is an unapproved IEEE Standards Draft, subject to change.
  9893.  
  9894.  
  9895.  
  9896.  
  9897.  
  9898.  130                              4 POSIX Open System Environment Services
  9899.  
  9900.  
  9901.  
  9902.  
  9903.  
  9904.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  9905.  
  9906.  4.6.4.1  Application Program Interface Services
  9907.  
  9908.  Application services include those services made available to the
  9909.  application developer to separate the application functions from the HCI
  9910.  functions as much as possible.  They include such areas as screen
  9911.  management, windowing, and user input device services.
  9912.  
  9913.  These standard services support requirements for application portability,
  9914.  software commonality, application interoperability and data
  9915.  communications transparency.
  9916.  
  9917.  A programmer shall have access to the following services from an
  9918.  application via language bindings.
  9919.  
  9920.  4.6.4.1.1  Basic Window Services
  9921.  
  9922.  The basic window services, callable from client applications, support a
  9923.  window-based user interface.  They should be based on a ``client-server''
  9924.  model.  The server is a program that handles communication connections
  9925.  from clients, demultiplexes graphics requests onto the screens, and
  9926.  multiplexes input back to the appropriate client.  Many clients may talk
  9927.  to the same server.  All application requests to write to the screen must
  9928.  go through the server via the basic windowing services.
  9929.  
  9930.  The major functional areas are:
  9931.  
  9932.      - Window Management
  9933.  
  9934.      - Presentation Management
  9935.  
  9936.      - Event Handling
  9937.  
  9938.      - Error Handling
  9939.  
  9940.      - Interclient Communications
  9941.  
  9942.      - Input Device Management: Keyboard, Pointing Device
  9943.  
  9944.      - Screen Management
  9945.  
  9946.      - User Preferences Management
  9947.  
  9948.      - Server Connection Management
  9949.  
  9950.  The following functions are available under each functional area.
  9951.  
  9952.  
  9953.  
  9954.  
  9955.  
  9956.  
  9957.                Copyright c 1991 IEEE.  All rights reserved.
  9958.       This is an unapproved IEEE Standards Draft, subject to change.
  9959.  
  9960.  
  9961.  
  9962.  
  9963.  
  9964.  4.6 Windowing System Services                                         131
  9965.  
  9966.  
  9967.  
  9968.  
  9969.  
  9970.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  9971.  
  9972.  _W_i_n_d_o_w__M_a_n_a_g_e_m_e_n_t
  9973.  
  9974.  Functions available for Window Management are:
  9975.  
  9976.      - Create a window, map a window onto the screen, delete a window
  9977.        (includes support for character-based emulator window)
  9978.  
  9979.      - Manipulate a window (move, resize, change view precedence)
  9980.  
  9981.      - Manipulate window attributes (set, get, change; attributes may be
  9982.        related to appearance, redraw performance, event handling, or
  9983.        change authority)
  9984.  
  9985.      - Seize and relinquish control over the Server for display purposes
  9986.        (permits uninterrupted client output; output requests from other
  9987.        clients will be queued and displayed later)
  9988.  
  9989.  _P_r_e_s_e_n_t_a_t_i_o_n__M_a_n_a_g_e_m_e_n_t
  9990.  
  9991.  Functions available for Presentation Management are:
  9992.  
  9993.      - Associate data with a window (context manager functions and
  9994.        association table functions)
  9995.  
  9996.      - Manipulate the graphics context for a given object (create a
  9997.        graphics context, obtain current graphics context, change graphics
  9998.        context, etc.)
  9999.  
  10000.      - Get and set fonts (load font, list fonts, unload font, etc.)
  10001.  
  10002.      - Draw graphics primitives (draw arc, draw line, fill rectangle,
  10003.        clear rectangular window, clear entire window, etc.)
  10004.  
  10005.      - Manipulate window cursors (create, destroy, assign, change, etc.)
  10006.  
  10007.      - Draw text and obtain text metric information
  10008.  
  10009.  _E_v_e_n_t__H_a_n_d_l_i_n_g
  10010.  
  10011.  The basic window services support application requirements to respond to
  10012.  the human user's actions, rather than forcing the human user to respond
  10013.  to the application in a rigid, serialized manner.  This requirement
  10014.  necessitates that a program either (1) be capable of handling any one of
  10015.  a number of events at any single point in time, or (2) attach a routine
  10016.  to each event to be called automatically when that event occurs.  There
  10017.  is a separate set of events for each window used by the application.  An
  10018.  application selects the events for a particular window, maps the selected
  10019.  events to the window, and reads events from the event queue as they
  10020.  occur.  There are three major types of events:
  10021.  
  10022.  
  10023.                Copyright c 1991 IEEE.  All rights reserved.
  10024.       This is an unapproved IEEE Standards Draft, subject to change.
  10025.  
  10026.  
  10027.  
  10028.  
  10029.  
  10030.  132                              4 POSIX Open System Environment Services
  10031.  
  10032.  
  10033.  
  10034.  
  10035.  
  10036.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10037.  
  10038.      - Input device events (button press event, keypress event, etc.)
  10039.  
  10040.      - Window management events (window exposure event, colormap event,
  10041.        etc.)
  10042.  
  10043.      - Client message events (selection data transferred (by another
  10044.        application) event, private interclient communication event, etc.)
  10045.  
  10046.  Functions available for Event Handling are:
  10047.  
  10048.      - Select events
  10049.  
  10050.      - Map events to a window
  10051.  
  10052.      - Get information about events
  10053.  
  10054.      - Send events
  10055.  
  10056.  _E_r_r_o_r__H_a_n_d_l_i_n_g
  10057.  
  10058.  Functions available for Error Handling are:
  10059.  
  10060.      - Get error message
  10061.  
  10062.      - Get error description
  10063.  
  10064.      - Set error event handler routine
  10065.  
  10066.  _I_n_t_e_r_c_l_i_e_n_t__C_o_m_m_u_n_i_c_a_t_i_o_n
  10067.  
  10068.  The basic window services are required to be network transparent to an
  10069.  application or client.  This means that an application on one host may
  10070.  write to the display screen connected to another host without being aware
  10071.  that networking is involved.  The basic window services handle the
  10072.  network connections and follow the protocols necessary for the
  10073.  application to interact with the display.  This convention allows
  10074.  redistribution of applications in a networked system with no effect on
  10075.  the application software.  Therefore, an application client cannot assume
  10076.  that another client can open the same files or seize the same processing
  10077.  environment.  Interclient communication via the server has three forms:
  10078.  
  10079.      - Properties
  10080.  
  10081.        Clients may associate arbitrary information with a window;
  10082.        generally used for communication between a client and the window
  10083.        manager.
  10084.  
  10085.      - Selections
  10086.  
  10087.  
  10088.  
  10089.                Copyright c 1991 IEEE.  All rights reserved.
  10090.       This is an unapproved IEEE Standards Draft, subject to change.
  10091.  
  10092.  
  10093.  
  10094.  
  10095.  
  10096.  4.6 Windowing System Services                                         133
  10097.  
  10098.  
  10099.  
  10100.  
  10101.  
  10102.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10103.  
  10104.        Selections are selected by the user out of one client's window,
  10105.        then ``sent'' to another client and displayed in the second
  10106.        client's window.
  10107.  
  10108.      - Cut Buffers
  10109.  
  10110.        Cut Buffers are a specialized form of communication.  It is
  10111.        possible to receive notification when a cut buffer (property) is
  10112.        set.
  10113.  
  10114.  Functions available for Interclient Communication are:
  10115.  
  10116.      - Manipulate window properties (list, delete, change, get, etc.)
  10117.  
  10118.      - Set and get selections
  10119.  
  10120.      - Manipulate cut buffers
  10121.  
  10122.  _I_n_p_u_t__D_e_v_i_c_e__M_a_n_a_g_e_m_e_n_t
  10123.  
  10124.  Functions available for Input Device Management are:
  10125.  
  10126.      - Receive keyboard input and pointing device button events
  10127.  
  10128.      - Gain exclusive control of keyboard or pointing cursor
  10129.  
  10130.      - Track the pointing cursor
  10131.  
  10132.      - Change Server-wide keyboard mappings
  10133.  
  10134.      - Set and get keyboard and pointing device preferences
  10135.  
  10136.  _S_c_r_e_e_n__M_a_n_a_g_e_m_e_n_t
  10137.  
  10138.  Functions available for Screen Management are:
  10139.  
  10140.      - Manipulate color using colormaps (copy, change, install, deinstall,
  10141.        get default, etc.)
  10142.  
  10143.      - Get, display, and manipulate bitmapped screen images
  10144.  
  10145.      - Screen saver functions (blanking screen on idle)
  10146.  
  10147.      - Retrieve display information (default colormap, number of display
  10148.        planes, screen width and height, etc.)
  10149.  
  10150.  
  10151.  
  10152.  
  10153.  
  10154.  
  10155.                Copyright c 1991 IEEE.  All rights reserved.
  10156.       This is an unapproved IEEE Standards Draft, subject to change.
  10157.  
  10158.  
  10159.  
  10160.  
  10161.  
  10162.  134                              4 POSIX Open System Environment Services
  10163.  
  10164.  
  10165.  
  10166.  
  10167.  
  10168.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10169.  
  10170.  _U_s_e_r__P_r_e_f_e_r_e_n_c_e_s__M_a_n_a_g_e_m_e_n_t
  10171.  
  10172.  The services and data structures used for managing user preferences are
  10173.  provided and collectively referred to as User Resource Management.  There
  10174.  may be up to four sets of options that need to be read and merged:
  10175.  
  10176.      - The human user's defaults stored in the root window's user resource
  10177.        manager property
  10178.  
  10179.      - The human user's defaults stored in a user's defaults file
  10180.  
  10181.      - The application program's defaults
  10182.  
  10183.      - The command line arguments
  10184.  
  10185.  Functions available for User Preferences Management are:
  10186.  
  10187.      - Set and get preference data
  10188.  
  10189.  _S_e_r_v_e_r__C_o_n_n_e_c_t_i_o_n__M_a_n_a_g_e_m_e_n_t
  10190.  
  10191.  Functions available for Server Connection Management are:
  10192.  
  10193.      - Control access to the Server [add host to the access control list
  10194.        (ACL), list ACL, disable ACL, etc.]
  10195.  
  10196.      - Connect and disconnect a client from a Server (and the display
  10197.        controlled by the Server)
  10198.  
  10199.      - Obtain Server implementation information
  10200.  
  10201.      - Flush output buffer to Server and wait for Server to process all
  10202.        events in the output buffer
  10203.  
  10204.  4.6.4.1.2  Toolkit Window Services
  10205.  
  10206.  The Toolkit Window services provide a mechanism for runtime access to a
  10207.  library of visual objects.  A visual object is a graphical display object
  10208.  (i.e., interaction object) with associated software that receives input
  10209.  from human users (typically via a keyboard and a pointing device) and
  10210.  communicates with applications and other visual object software.  The
  10211.  graphical representation of a visual object can be modified to reflect
  10212.  the results of application processing.  Examples of visual objects are
  10213.  graphical push buttons, check boxes, and editing boxes.  (Note: The term
  10214.  used within the X Window System community to define visual objects is
  10215.  ``widgets.'')
  10216.  
  10217.  Toolkit Window services are provided for two reasons:
  10218.  
  10219.  
  10220.  
  10221.                Copyright c 1991 IEEE.  All rights reserved.
  10222.       This is an unapproved IEEE Standards Draft, subject to change.
  10223.  
  10224.  
  10225.  
  10226.  
  10227.  
  10228.  4.6 Windowing System Services                                         135
  10229.  
  10230.  
  10231.  
  10232.  
  10233.  
  10234.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10235.  
  10236.      - To allow application software to directly utilize a visual object
  10237.        library
  10238.  
  10239.      - To allow application-specific visual objects to be created and
  10240.        added to the widget library (Note:  creating a visual object
  10241.        includes writing software that uses the Toolkit services)
  10242.  
  10243.  Therefore, Toolkit services may be logically divided into two categories,
  10244.  with some overlap:  Visual Object Interface Services, which are called by
  10245.  an application or dialog service, and Visual Object Programming Services,
  10246.  which are called by the visual object software.
  10247.  
  10248.  An application may use Toolkit Window services to:
  10249.  
  10250.      - Perform toolkit initialization/exit
  10251.  
  10252.      - Set up visual object resources
  10253.  
  10254.      - Create/delete a visual object
  10255.  
  10256.      - Display a visual object
  10257.  
  10258.      - Add/remove application-specific routines to be called by a visual
  10259.        object (event callbacks)
  10260.  
  10261.      - Retrieve/modify the state of a visual object
  10262.  
  10263.      - Turn control over to the toolkit for user input processing
  10264.  
  10265.  A visual object software program may use Toolkit Window services to:
  10266.  
  10267.      - Manage child visual objects (a child visual object is a visual
  10268.        object that is displayed inside of another visual object)
  10269.  
  10270.      - Manage window events, timer events, and file input events
  10271.  
  10272.      - Handle visual object geometry (sizing, positioning, child visual
  10273.        object placement)
  10274.  
  10275.      - Handle user input
  10276.  
  10277.      - Manage visual object resources
  10278.  
  10279.      - Translate an event into an action
  10280.  
  10281.      - Manipulate graphics contexts
  10282.  
  10283.      - Manipulate pixmaps (pixel arrays--used to display a graphical
  10284.        object by turning pixels on and off)
  10285.  
  10286.  
  10287.                Copyright c 1991 IEEE.  All rights reserved.
  10288.       This is an unapproved IEEE Standards Draft, subject to change.
  10289.  
  10290.  
  10291.  
  10292.  
  10293.  
  10294.  136                              4 POSIX Open System Environment Services
  10295.  
  10296.  
  10297.  
  10298.  
  10299.  
  10300.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10301.  
  10302.      - Manage memory associated with HCI
  10303.  
  10304.      - Handle errors associated with HCI
  10305.  
  10306.      - Allow inter-visual object communication (via the selection
  10307.        mechanism)
  10308.  
  10309.      - Initiate other visual object routines (visual object event
  10310.        callbacks)
  10311.  
  10312.      - Initiate application-specific routines that have been associated
  10313.        with the visual object by the application (application event
  10314.        callbacks)
  10315.  
  10316.  4.6.4.1.3  Dialog Services
  10317.  
  10318.  Dialog services provide functions to support high-level HCI management
  10319.  for applications with the primary goal of delivering human user inputs to
  10320.  the application program and application-driven information to the human
  10321.  user.  The dialog services allow for a separation of the user interface
  10322.  specifications from the application program.  For example, there are many
  10323.  applications that are not concerned with whether a user entry object is a
  10324.  pull-down menu or a scrollable list.  These applications are only
  10325.  interested in what the user specified or selected from the user entry
  10326.  object (i.e., the parameter value), which will then trigger some action
  10327.  by the application.  To support this notion, a single dialogue function
  10328.  might be specified for displaying a window made up of a composite of
  10329.  visual display objects, such as radio buttons, text key-in objects, and
  10330.  scrollable text lists.  The application program does not need to manage
  10331.  or understand what the look, location, or visual feedback of any of these
  10332.  items will be.  The dialog function has access to the presentation
  10333.  information required to display the specified window and it handles the
  10334.  display of the application specified window.  Another dialog service
  10335.  would provide a high-level event loop that returns the user specified
  10336.  input as an application parameter value.
  10337.  
  10338.  The services provide simplicity over the degree of freedom available in
  10339.  Basic and Toolkit Window Services.  Most User Interface Management
  10340.  Systems (UIMSs) provide dialog services to fulfill their requirement of
  10341.  separation of user interface from application software.
  10342.  
  10343.  These services are subdivided into:
  10344.  
  10345.      - Window services: provide services used to initialize the window
  10346.        service, create and delete windows with predefined associated
  10347.        visual objects, and manipulation of the pointing cursor.  They
  10348.        include services that allow the application to communicate directly
  10349.        with the human user via modal or modeless windows.
  10350.  
  10351.  
  10352.  
  10353.                Copyright c 1991 IEEE.  All rights reserved.
  10354.       This is an unapproved IEEE Standards Draft, subject to change.
  10355.  
  10356.  
  10357.  
  10358.  
  10359.  
  10360.  4.6 Windowing System Services                                         137
  10361.  
  10362.  
  10363.  
  10364.  
  10365.  
  10366.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10367.  
  10368.      - Visual object manipulation services: provide services used to
  10369.        access the HCI designed by the application HCI designer, display
  10370.        the visual objects defined by the HCI, and associate them with
  10371.        application-tied inputs and outputs.
  10372.  
  10373.      - Event control services: provide services to allow the application
  10374.        to define a set of events and handle triggered events in one of two
  10375.        ways:
  10376.  
  10377.         (1)  Wait on the occurrence of any event, processing triggered
  10378.              events one at a time from an input queue (event-driven
  10379.              method)
  10380.  
  10381.         (2)  Attach to each event a function that is automatically
  10382.              executed when the event is triggered (callback method)
  10383.  
  10384.  
  10385.  4.6.4.2  External Environment Interface Services
  10386.  
  10387.  These services provide support for the actual elements with which the
  10388.  human user physically interacts.  These functions provide services in
  10389.  three areas:
  10390.  
  10391.      - HCI: provides definition of the presentation and behavior of the
  10392.        visual display objects, command language definition (syntax and
  10393.        semantics), specifications related to keyboards, selection devices,
  10394.        audio and video input/output devices.
  10395.  
  10396.      - Information Interfaces: provides specification of user resource
  10397.        data formats, containing presentation and action information
  10398.        pertaining to visual display objects.
  10399.  
  10400.      - Network Interfaces: provides protocol services for data transport,
  10401.        which is basically the bottom six layers of the OSI model
  10402.  
  10403.  4.6.4.3  Interapplication Entity Services
  10404.  
  10405.  These services provide support for general conventions and specifications
  10406.  for interaction between HCI components.  The services provide support for
  10407.  generalized network/multisession services, such as message handling
  10408.  between HCI components, intermediate language definition, and a standard
  10409.  definition of the format used for saving the presentation, behavior, and
  10410.  action information about HCI objects.
  10411.  
  10412.  
  10413.  
  10414.  
  10415.  
  10416.  
  10417.  
  10418.  
  10419.                Copyright c 1991 IEEE.  All rights reserved.
  10420.       This is an unapproved IEEE Standards Draft, subject to change.
  10421.  
  10422.  
  10423.  
  10424.  
  10425.  
  10426.  138                              4 POSIX Open System Environment Services
  10427.  
  10428.  
  10429.  
  10430.  
  10431.  
  10432.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10433.  
  10434.  4.6.4.4  Windowing Resource Management Services
  10435.  
  10436.  These services provide general management functions across the HCI
  10437.  components, which include system administration-oriented functions (i.e.,
  10438.  management of human/computer interfaces within the scope of the
  10439.  administrator, such as setting up defaults and human user customization
  10440.  functions.  For instance, it is important to allow reconfiguration and
  10441.  addition of terminals and displays without affecting the application
  10442.  interface.)  These resource management services are independent from the
  10443.  OLTP Resource Management Services defined in 4.10.4.4.
  10444.  
  10445.  
  10446.  4.6.5  Standards, Specifications, and Gaps
  10447.  
  10448.  Standards that relate to the user reference model presented earlier are
  10449.  considered here.  Related standards that might be relevant for one or
  10450.  more of the interface components will also be mentioned.
  10451.  
  10452.  
  10453.  4.6.5.1  Current Standards in the POSIX OSE
  10454.  
  10455.  No current international or national standards exist for the HCI
  10456.  Services, primarily due to the recent emergence of the windowing
  10457.  technology.  However, several standard activities are underway and
  10458.  referenced under 4.6.5.2.
  10459.  
  10460.  There is a de facto standard for the base window system.  The X Window
  10461.  System windowing protocol and the Xlib functional interface to the
  10462.  protocol were developed at Massachusetts Institute of Technology.
  10463.  Development is continuing under the aegis of the X Consortium, a group of
  10464.  interested parties in the computer industry and computer manufacturers.
  10465.  Relevant documents from the X Consortium are ``X Window System Protocol,
  10466.  X Version 11,'' ``Xlib - C language X Interface,'' ``X Toolkit Intrinsics
  10467.  - C Language Interface,'' and ``Bitmap Distribution Format 2.1.''
  10468.  
  10469.  The X Window System protocol and functional interface are considered to
  10470.  be de facto standards in the base window system area because of their
  10471.  widespread adoption by major computer vendors and industry groups.
  10472.  
  10473.  Within the government, the National Institute of Standards and Technology
  10474.  (NIST) issues Federal Information Processing Standards (FIPS) that
  10475.  require purchases made by the United States Government to adhere to
  10476.  certain standards.  NIST has adopted the X Window System Version 11
  10477.  Release 3's X Window System protocol, Xlib, Xt Intrinsics, and Bitmap
  10478.  Distribution Format as FIPS 158.  This is a noncompulsory (i.e.,
  10479.  voluntary) standard.
  10480.  
  10481.  
  10482.  
  10483.  
  10484.  
  10485.                Copyright c 1991 IEEE.  All rights reserved.
  10486.       This is an unapproved IEEE Standards Draft, subject to change.
  10487.  
  10488.  
  10489.  
  10490.  
  10491.  
  10492.  4.6 Windowing System Services                                         139
  10493.  
  10494.  
  10495.  
  10496.  
  10497.  
  10498.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10499.  
  10500.  
  10501.                      Table 4-9  -  Windowing Standards
  10502.  __________________________________________________________________________________________________________________________________________________
  10503.              Service                          Specification             Subclause
  10504.  ________________________________________________________________________________
  10505.  
  10506.  Basic Window Services              de facto: X Window System           4.6.5.?  d
  10507.                                     emerging: ANSI X3K13.6                       d
  10508.  
  10509.  Toolkit Window Services            de facto: X Window System           4.6.5.?  d
  10510.                                     emerging: ANSI X3K13.6                       d
  10511.                                     emerging: IEEE POSIX.2 {_r_e_f}                 d
  10512.                                     emerging: IEEE POSIX.1 {2}                   d
  10513.  
  10514.  Dialog Services                    Gap                                 4.6.5.?  d
  10515.  
  10516.  EEI Services                       emerging: ANSI X3V1.9               4.6.5.?  d
  10517.                                     emerging: ISO/IEC JTC 1/SC18/WG19            d
  10518.                                     emerging: ANSI HSF-HCI                       d
  10519.                                     emerging: ISO TC159/SC4/WG5                  d
  10520.                                     emerging: P1201.2                            d
  10521.  
  10522.  Interapplication Entity Services   Gap                                 4.6.5.?  d
  10523.  
  10524.  Window/Character Resource          Gap                                 4.6.5.?  d
  10525.  Management Services                                                             d
  10526.  __________________________________________________________________________________________________________________________________________________  d
  10527.  
  10528.  
  10529.  4.6.5.2  Emerging Standards in the POSIX OSE
  10530.  
  10531.  _M_R_S:  _T_h_i_s _s_u_b_c_l_a_u_s_e _s_t_i_l_l _n_e_e_d_s _w_o_r_k.
  10532.  
  10533.      - ANSI X3K13.6.  Currently developing an X Protocol standard.
  10534.  
  10535.      - ANSI X3V1.9.  User-System Interfaces and Symbols:  Working on a
  10536.        ISO/IEC Standard 9995, Keyboard Layouts for Text and Office
  10537.        Systems.  Also working on the Voice Messaging User Interface Forum
  10538.        (VMUIF).  This is a mirror standards effort with ISO/IEC
  10539.        JTC 1/SC18/WG19.
  10540.  
  10541.      - ISO/IEC JTC 1/SC18/WG19.  User-System Interfaces and Symbols.
  10542.        Working on developing standards for user interfaces and symbols
  10543.        associated with text and office systems.
  10544.  
  10545.      - ANSI HFS-HCI.  Working on drafts on the design process, information
  10546.        presentation, forms-based dialogs, and window-based interaction.
  10547.  
  10548.  
  10549.  
  10550.  
  10551.                Copyright c 1991 IEEE.  All rights reserved.
  10552.       This is an unapproved IEEE Standards Draft, subject to change.
  10553.  
  10554.  
  10555.  
  10556.  
  10557.  
  10558.  140                              4 POSIX Open System Environment Services
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10565.  
  10566.      - ISO TC159/SC4/WG5.  Software Ergonomics and Man-Machine Dialog:
  10567.        Working on developing parts of the ISO Standards 9241, Ergonomics
  10568.        of Visual Display Terminals.  Their areas of concentration are
  10569.        software ergonomics, dialogue principles, dialogue styles, methods
  10570.        for evaluating software usability, coding and formatting of
  10571.        information, and terminology
  10572.  
  10573.      - IEEE P1201.  Application and User Portability:  Chartered to
  10574.        develop standards that facilitate application and user portability
  10575.        in the X Windows environment.  P1201.1 is involved in defining a
  10576.        set of virtual toolkit services that would be independent of any
  10577.        windowing system.  P1201.2 is involved in defining drivability
  10578.        guidelines.
  10579.  
  10580.      - ANSI CODASYL.  Working draft available for Forms Interface
  10581.        Management Systems (FIMS), which covers the interface between a
  10582.        programming language and any form fill-in application on a computer
  10583.        or terminal screen.
  10584.  
  10585.  
  10586.  4.6.5.3  Gaps in Available Standards
  10587.  
  10588.      - Object Definition File Format:  There are no standards addressing
  10589.        the format used for describing the ``look and feel'' of HCI
  10590.        objects.
  10591.  
  10592.      - Toolkit Services
  10593.  
  10594.      - Dialog Services
  10595.  
  10596.      - Interapplication Entity Services
  10597.  
  10598.      - Window/Character Resource Management Services:  A standard
  10599.        definition of the format used for saving the presentation, behavior
  10600.        and action information about HCI objects would provide a vehicle
  10601.        for exchanging HCI information between software tools, such as User
  10602.        Interface Management Systems (UIMSs) and Interface Design Tool
  10603.        (ITDs).
  10604.  
  10605.  
  10606.  4.6.6  OSE Cross-Category Services
  10607.  
  10608.  4.6.6.1  Security
  10609.  
  10610.  This section should address the security aspects of HCI and would
  10611.  include:
  10612.  
  10613.      - Authentication of person at login
  10614.  
  10615.  
  10616.  
  10617.                Copyright c 1991 IEEE.  All rights reserved.
  10618.       This is an unapproved IEEE Standards Draft, subject to change.
  10619.  
  10620.  
  10621.  
  10622.  
  10623.  
  10624.  4.6 Windowing System Services                                         141
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10631.  
  10632.      - Authentication of person when a service request is made to a client
  10633.        application
  10634.  
  10635.      - Provisions for visual labeling of sensitive material
  10636.  
  10637.      - Option selections available in support of sensitive activities
  10638.  
  10639.      - Prevention of moving data (cut/past) from a more protected security
  10640.        environment to a less protected environment
  10641.  
  10642.  
  10643.  4.6.7  Related Standards                                                   d
  10644.  
  10645.  Currently, the basic windowing services provide a certain level of
  10646.  graphics functionality, but the existing and proposed graphics standards
  10647.  (e.g., PHIGS, GKS) provide a much more comprehensive solution to graphic
  10648.  support.  As the graphics and windowing technologies evolve, this
  10649.  distinction between the windowing and graphics services will continue to
  10650.  be blurred.  For instance, proposals are already being developed that
  10651.  provide extensions to the X Window System that support 3-D graphics
  10652.  (i.e., PEX, PHIGS EXtensions), and implementations of GKS are currently
  10653.  available that use the X Window System to create the graphics.
  10654.  
  10655.  
  10656.  4.6.8  Open Issues
  10657.  
  10658.      - Audio input/output
  10659.  
  10660.      - Video input/output
  10661.  
  10662.      - Security
  10663.  
  10664.      - Desktop
  10665.  
  10666.        The Desktop, or HCI graphical shell, is a specification for the HCI
  10667.        work surface (i.e., the whole display screen).
  10668.  
  10669.        The desktop provides the user with a visual interface to available
  10670.        computer resources.  A desktop may be characterized as a visual
  10671.        analog of the POSIX shell.  It provides access to system resources,
  10672.        such as devices and files, and provides methods to start
  10673.        applications.  Desktops typically also provide a set of often used
  10674.        utilities such as a calendar, a notepad, etc.  The desktop is an
  10675.        important component of the look and feel of a human user interface,
  10676.        but the current state of the industry is too immature for any
  10677.        standardization to materialize on a desktop specification in the
  10678.        immediate future.
  10679.  
  10680.        NOTE:  There are some valid arguments for defining some
  10681.        requirements for standards at this level.  The goal is to enable a
  10682.  
  10683.                Copyright c 1991 IEEE.  All rights reserved.
  10684.       This is an unapproved IEEE Standards Draft, subject to change.
  10685.  
  10686.  
  10687.  
  10688.  
  10689.  
  10690.  142                              4 POSIX Open System Environment Services
  10691.  
  10692.  
  10693.  
  10694.  
  10695.  
  10696.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10697.  
  10698.        user to easily go between application platforms and operate common
  10699.        functions in a similar manner.
  10700.  
  10701.  
  10702.  
  10703.  
  10704.  
  10705.  
  10706.  
  10707.  
  10708.  
  10709.  
  10710.  
  10711.  
  10712.  
  10713.  
  10714.  
  10715.  
  10716.  
  10717.  
  10718.  
  10719.  
  10720.  
  10721.  
  10722.  
  10723.  
  10724.  
  10725.  
  10726.  
  10727.  
  10728.  
  10729.  
  10730.  
  10731.  
  10732.  
  10733.  
  10734.  
  10735.  
  10736.  
  10737.  
  10738.  
  10739.  
  10740.  
  10741.  
  10742.  
  10743.  
  10744.  
  10745.  
  10746.  
  10747.  
  10748.  
  10749.                Copyright c 1991 IEEE.  All rights reserved.
  10750.       This is an unapproved IEEE Standards Draft, subject to change.
  10751.  
  10752.  
  10753.  
  10754.  
  10755.  
  10756.  4.6 Windowing System Services                                         143
  10757.  
  10758.  
  10759.  
  10760.  
  10761.  
  10762.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10763.  
  10764.  
  10765.  
  10766.  
  10767.  
  10768.  
  10769.  
  10770.  
  10771.  
  10772.  
  10773.  
  10774.  
  10775.  
  10776.  
  10777.  
  10778.  
  10779.  
  10780.  
  10781.  
  10782.  
  10783.  
  10784.  
  10785.  
  10786.  
  10787.  
  10788.  
  10789.  
  10790.  
  10791.  
  10792.  
  10793.  
  10794.  
  10795.  
  10796.  
  10797.  
  10798.  
  10799.  
  10800.  
  10801.  
  10802.  
  10803.  
  10804.  
  10805.  
  10806.  
  10807.  
  10808.  
  10809.  
  10810.  
  10811.  
  10812.  
  10813.  
  10814.  
  10815.                Copyright c 1991 IEEE.  All rights reserved.
  10816.       This is an unapproved IEEE Standards Draft, subject to change.
  10817.  
  10818.  
  10819.  
  10820.  
  10821.  
  10822.  144                              4 POSIX Open System Environment Services
  10823.  
  10824.  
  10825.  
  10826.  
  10827.  
  10828.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10829.  
  10830.  4.7  Graphics Services
  10831.  
  10832.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _J_o_h_n _W_i_l_l_i_a_m_s
  10833.  
  10834.  _H_L_J:  _T_h_i_s _i_s _a _f_u_l_l _c_l_a_u_s_e _r_e_p_l_a_c_e_m_e_n_t _f_o_r _D_r_a_f_t _1_3.  _I_t _i_s _n_o_t _f_u_r_t_h_e_r   _d
  10835.  _d_i_f_f _m_a_r_k_e_d.                                                               _d
  10836.  
  10837.  
  10838.  4.7.1  Overview and Rationale
  10839.  
  10840.  Graphics Services are key components and play an important role in the
  10841.  POSIX Open Systems Environment as it is used today in many different
  10842.  areas of industry, business, government, education, entertainment, and
  10843.  most recently, the home.  The number of applications is growing rapidly,
  10844.  with increasing graphics capabilities.  Some of these areas are user
  10845.  interfaces, computer-aided drafting and design, electronic publishing,
  10846.  plotting, simulation, animation, scientific visualization, art, and
  10847.  process control.  The use of pictorial graphics provides a more intuitive
  10848.  interface and thus facilitates man/machine interaction.
  10849.  
  10850.  Graphics has become a routine part of most organizations today, ranging
  10851.  from hardcopy graphs and charts to user interfaces and complex 3-D
  10852.  visualizations incorporating video and sound.  The graphics technology of
  10853.  rendering objects has become dramatically more realistic and hence is
  10854.  used by engineers, architects, artists etc., to enable them to see
  10855.  precisely what their final products, whether automobiles or buildings,
  10856.  will look and behave like under real-world conditions.
  10857.  
  10858.  Graphics has allowed dramatic improvements in the ``look and feel'' of
  10859.  user interfaces and the trend is towards increasing use of these
  10860.  interfaces to interact with computers graphically, via windows and icons
  10861.  and this reduces the time involved in learning to use a computer.
  10862.  
  10863.  Standardization of graphics services has many benefits for application
  10864.  developers, users, and systems integrators.  The underlying motivations
  10865.  for considering graphics standards and their relation to the POSIX Open
  10866.  Systems Environment include:
  10867.  
  10868.      (1)  Portability:  In order to protect investment and achieve
  10869.           independence from a particular technology and a particular
  10870.           supplier of technology, portability at both hardware and
  10871.           software levels is necessary.  There are many aspects of
  10872.           portability within graphics, all of which are potential money
  10873.           and time savers.
  10874.  
  10875.            - Applications portability
  10876.  
  10877.            - Graphics package portability
  10878.  
  10879.  
  10880.  
  10881.                Copyright c 1991 IEEE.  All rights reserved.
  10882.       This is an unapproved IEEE Standards Draft, subject to change.
  10883.  
  10884.  
  10885.  
  10886.  
  10887.  
  10888.  4.7 Graphics Services                                                 145
  10889.  
  10890.  
  10891.  
  10892.  
  10893.  
  10894.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  10895.  
  10896.            - Host machine independence
  10897.  
  10898.            - Device independence
  10899.  
  10900.               +o input devices:  dials, mouse, tablets etc.
  10901.  
  10902.               +o output devices:  plotters, raster, vector etc.
  10903.  
  10904.            - Window system independence
  10905.  
  10906.            - Programming language independence
  10907.  
  10908.            - Programmer portability
  10909.  
  10910.            - User portability
  10911.  
  10912.      (2)  Interoperability/Distributed Graphics:  In order to allow
  10913.           applications to execute on one machine and display graphics on
  10914.           remote display servers, standard graphics protocols are
  10915.           necessary.  This allows for display of graphics on machines that
  10916.           are incapable of executing particular types of applications and
  10917.           it also facilitates graphics conferencing.
  10918.  
  10919.      (3)  Graphics Data Exchange:  In order to share or exchange graphical
  10920.           information between diverse applications, standard graphics data
  10921.           exchange mechanisms are necessary.
  10922.  
  10923.  This clause presents a reference model for this component and describes
  10924.  the services provided to application programmers and users.  It also
  10925.  describes the current national/international standards, emerging
  10926.  standards, de facto standards, and any existing gaps that need new
  10927.  standardization efforts.
  10928.  
  10929.  
  10930.  4.7.2  Scope
  10931.  
  10932.  Included within this component are standards in the graphics area that
  10933.  address the following topics :
  10934.  
  10935.      - Application Program Interface (API) Standards
  10936.  
  10937.      - Language Bindings Standards
  10938.  
  10939.      - Metafile and Archive Standards
  10940.  
  10941.      - Device Independent Interface/Protocol Standards
  10942.  
  10943.      - Computer Graphics Reference Model
  10944.  
  10945.  
  10946.  
  10947.                Copyright c 1991 IEEE.  All rights reserved.
  10948.       This is an unapproved IEEE Standards Draft, subject to change.
  10949.  
  10950.  
  10951.  
  10952.  
  10953.  
  10954.  146                              4 POSIX Open System Environment Services
  10955.  
  10956.  
  10957.  
  10958.  
  10959.  
  10960.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  10961.  
  10962.      - Conformance Testing of Implementations of Graphics Standards
  10963.  
  10964.      - Distributed Graphics Standards
  10965.  
  10966.      - Imaging Standards
  10967.  
  10968.      - Performance Metrics Standards
  10969.  
  10970.  The standards not addressed here are:
  10971.  
  10972.      - Data Exchange Standards
  10973.  
  10974.      - Graphical User Interface Standards
  10975.  
  10976.      - Window Management System Standards
  10977.  
  10978.  
  10979.  4.7.3  Reference Model
  10980.  
  10981.  Over the past decade many computer graphics standards have been
  10982.  developed.  While they are similar in concepts, their underlying
  10983.  reference models are different.  This restricts the degree to which the
  10984.  standards are compatible.  By producing a reference model to which all
  10985.  future graphics standards are to adhere, compatibility of graphics
  10986.  standards is assured.
  10987.  
  10988.  Formal work on the Computer Graphics Reference Model (CGRM) standard is
  10989.  in progress within the ANSI X3H3.2 committee.  It is an international
  10990.  standard that explains the relationships between existing graphics
  10991.  standards and defines relationships between standards in computer
  10992.  graphics and those in other areas.  It will form the basis for the next
  10993.  generation of computer graphics standards.  Broadly speaking, CGRM
  10994.  provides a framework within which relationships between standards can be
  10995.  described.
  10996.  
  10997.  There are five types of standards in the current family:
  10998.  
  10999.      - _A_p_p_l_i_c_a_t_i_o_n _P_r_o_g_r_a_m _I_n_t_e_r_f_a_c_e (_A_P_I) _S_t_a_n_d_a_r_d_s:  These define a
  11000.        programming interface for application programmers.  GKS, GKS-3D,
  11001.        PHIGS, and Xlib are examples of standards in this area.
  11002.  
  11003.      - _M_e_t_a_f_i_l_e _a_n_d _A_r_c_h_i_v_e _S_t_a_n_d_a_r_d_s:  These standards define
  11004.        representations of graphics for storage and transfer between
  11005.        systems.  These are basically file format and file transfer
  11006.        encoding standards.  CGM (Computer Graphics Metafile) and PHIGS
  11007.        Archive files are of this type.
  11008.  
  11009.      - _D_e_v_i_c_e _I_n_d_e_p_e_n_d_e_n_t _I_n_t_e_r_f_a_c_e _S_t_a_n_d_a_r_d_s:  These standards define the
  11010.        interface between device-independent graphics systems software and
  11011.  
  11012.  
  11013.                Copyright c 1991 IEEE.  All rights reserved.
  11014.       This is an unapproved IEEE Standards Draft, subject to change.
  11015.  
  11016.  
  11017.  
  11018.  
  11019.  
  11020.  4.7 Graphics Services                                                 147
  11021.  
  11022.  
  11023.  
  11024.  
  11025.  
  11026.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11027.  
  11028.        one or more device-dependent graphics device drivers.  CGI
  11029.        (Computer Graphics Interface) is the standard in this area.
  11030.  
  11031.      - _L_a_n_g_u_a_g_e _B_i_n_d_i_n_g _S_t_a_n_d_a_r_d_s:  API and device interface standards are
  11032.        functional specifications defined independently from particular
  11033.        programming languages.  Each standard has attached language binding
  11034.        standards that state how the functionality should be accessed from
  11035.        a variety of programming languages.
  11036.  
  11037.      - _F_r_a_m_e_w_o_r_k _S_t_a_n_d_a_r_d_s:  These include the standardization of a
  11038.        reference model for computer graphics, conformance criteria, and
  11039.        the registration of graphical items.
  11040.  
  11041.  The CGRM describes the current family of graphics standards in terms of
  11042.  the following four levels of abstraction:
  11043.  
  11044.      - _A_p_p_l_i_c_a_t_i_o_n _L_e_v_e_l:  This is the level at which applications-related
  11045.        information is composed into abstract graphics related to the
  11046.        application.
  11047.  
  11048.      - _V_i_r_t_u_a_l _L_e_v_e_l:  At this level, the graphical output to be displayed
  11049.        is described in terms of output primitives
  11050.  
  11051.      - _L_o_g_i_c_a_l _L_e_v_e_l:  At this level, the information necessary to render
  11052.        a primitive on a particular device is assembled.
  11053.  
  11054.      - _P_h_y_s_i_c_a_l _L_e_v_e_l:  This level is associated with a particular output
  11055.        device and a collection of input devices.  The physical level need
  11056.        not correspond to real devices such as a pen plotter.  There could
  11057.        be further layers of the system between the physical level and the
  11058.        hardware, such as the window system.
  11059.  
  11060.  The Application Program Interface (API) is the interface between the
  11061.  application and the graphics system.  There are also interfaces to
  11062.  metafiles and archives and to the operator.  Here the operator need not
  11063.  mean human operator, but the user of the graphics system; for example,
  11064.  the window system.
  11065.  
  11066.  The Computer Graphics Reference Model can be incorporated into the POSIX
  11067.  OSE reference model as depicted in Figure 4-16.  It provides the context
  11068.  for the discussion of graphics services and shows that the graphics
  11069.  services is a component of the overall POSIX OSE and is available to the
  11070.  the application through the POSIX OSE API.
  11071.  
  11072.  The entities and interfaces specific to the graphics services are
  11073.  identified in this clause.
  11074.  
  11075.  
  11076.  
  11077.  
  11078.  
  11079.                Copyright c 1991 IEEE.  All rights reserved.
  11080.       This is an unapproved IEEE Standards Draft, subject to change.
  11081.  
  11082.  
  11083.  
  11084.  
  11085.  
  11086.  148                              4 POSIX Open System Environment Services
  11087.  
  11088.  
  11089.  
  11090.  
  11091.  
  11092.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11093.  
  11094.  _________________________________________________________________________
  11095.  
  11096.  
  11097.  
  11098.  
  11099.  
  11100.  
  11101.  
  11102.  
  11103.  
  11104.  
  11105.  
  11106.  
  11107.  
  11108.  
  11109.  
  11110.  
  11111.  
  11112.  
  11113.  
  11114.  
  11115.  
  11116.  
  11117.  
  11118.  
  11119.  
  11120.  _________________________________________________________________________
  11121.      Figure 4-15  -  Computer Graphics Reference Model Level Structure
  11122.  
  11123.  
  11124.  The entities are:
  11125.  
  11126.      (1)  Application Software, such as CAD/CAM/CAE applications, imaging
  11127.           applications, electronic publishing, etc.
  11128.  
  11129.      (2)  Application Platform, which consists of graphics libraries such
  11130.           as GKS, PHIGS and Xlib.
  11131.  
  11132.      (3)  External Environment, consisting of external entities with which
  11133.           the application platform exchanges information such as input
  11134.           devices, X/PEX servers, hardware buffers, etc.
  11135.  
  11136.  The interfaces are:
  11137.  
  11138.      (1)  Application Program Interface (API), which is the programming
  11139.           interface between the application and the application platform.
  11140.           It standardizes the conceptual model, calling sequence,
  11141.           functions, and syntax that a programmer uses to develop a
  11142.           graphics application.  Each API standard has an attached
  11143.  
  11144.  
  11145.                Copyright c 1991 IEEE.  All rights reserved.
  11146.       This is an unapproved IEEE Standards Draft, subject to change.
  11147.  
  11148.  
  11149.  
  11150.  
  11151.  
  11152.  4.7 Graphics Services                                                 149
  11153.  
  11154.  
  11155.  
  11156.  
  11157.  
  11158.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11159.  
  11160.  _________________________________________________________________________
  11161.  
  11162.  
  11163.  
  11164.  
  11165.  
  11166.  
  11167.  
  11168.  
  11169.  
  11170.  
  11171.  
  11172.  
  11173.  
  11174.  
  11175.  
  11176.  
  11177.  
  11178.  
  11179.  
  11180.  
  11181.  
  11182.  
  11183.  
  11184.  
  11185.  
  11186.  
  11187.  
  11188.  
  11189.  
  11190.  _________________________________________________________________________
  11191.         Figure 4-16  -  POSIX OSE Graphics Service Reference Model
  11192.  
  11193.  
  11194.           language-binding standard that allows the functionality to be
  11195.           accessed from a variety of programming languages.  A standard
  11196.           API in conjunction with a standard language binding promotes
  11197.           application portability, by isolating the programmer from most
  11198.           hardware peculiarities and providing language features readily
  11199.           implemented on a broad range of processors.  Examples of APIs in
  11200.           the graphics services area are GKS, PHIGS, PIK, PostScript, etc.
  11201.  
  11202.      (2)  External Environment Interface (EEI), which is the interface
  11203.           between the application platform and the External Environment
  11204.           described earlier.  In the graphics services area these can be
  11205.           device drivers that are used for communication between the
  11206.           device-independent and the device-dependent functions as well as
  11207.           protocols and file formats.
  11208.  
  11209.  
  11210.  
  11211.                Copyright c 1991 IEEE.  All rights reserved.
  11212.       This is an unapproved IEEE Standards Draft, subject to change.
  11213.  
  11214.  
  11215.  
  11216.  
  11217.  
  11218.  150                              4 POSIX Open System Environment Services
  11219.  
  11220.  
  11221.  
  11222.  
  11223.  
  11224.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11225.  
  11226.  The standardization efforts in the graphics area focus on these two
  11227.  interfaces.
  11228.  
  11229.  
  11230.  4.7.4  Service Requirements
  11231.  
  11232.  
  11233.  4.7.4.1  Graphics Concepts
  11234.  
  11235.  Computer Graphics Services can be discussed in terms of the following
  11236.  fundamental graphics concepts:
  11237.  
  11238.  _O_u_t_p_u_t__P_r_i_m_i_t_i_v_e_s
  11239.  
  11240.  The output primitives are the building blocks used to construct graphical
  11241.  objects for display or storage in an archive file.  Common output
  11242.  primitives are:
  11243.  
  11244.      - _L_i_n_e
  11245.  
  11246.      - _P_o_l_y_l_i_n_e used to represent a series of straight lines from a set of
  11247.        points.
  11248.  
  11249.      - _M_a_r_k_e_r is a special symbol used to represent semantics of graphical
  11250.        objects.
  11251.  
  11252.      - _F_i_l_l _a_r_e_a is an area with an edge and an interior which may be
  11253.        filled with a solid color or some form of pattern or hash.
  11254.  
  11255.      - _T_e_x_t is an output primitive used to represent strings in two or
  11256.        three dimensional space.
  11257.  
  11258.      - _A_n_n_o_t_a_t_i_o_n _t_e_x_t is text that is always displayed facing the viewer.
  11259.  
  11260.      - _C_e_l_l _a_r_r_a_y_s are areas with rectangular grids which can take on
  11261.        individual colors.
  11262.  
  11263.      - _T_r_i_a_n_g_l_e _s_t_r_i_p is a set of triangles defined by a particular
  11264.        ordering of vertices.
  11265.  
  11266.      - _Q_u_a_d_r_i_l_a_t_e_r_a_l _m_e_s_h is a set of quadrilaterals defined by a grid of
  11267.        vertices.
  11268.  
  11269.      - _S_u_r_f_a_c_e_s:  NURBS (Nonuniform Rational B-Spline)
  11270.  
  11271.      - _C_u_r_v_e_s:  NURBS (Nonuniform Rational B-Spline)
  11272.  
  11273.      - _C_o_n_i_c_s:  Circles, ellipses, parabolas, and hyperbolas
  11274.  
  11275.  
  11276.  
  11277.                Copyright c 1991 IEEE.  All rights reserved.
  11278.       This is an unapproved IEEE Standards Draft, subject to change.
  11279.  
  11280.  
  11281.  
  11282.  
  11283.  
  11284.  4.7 Graphics Services                                                 151
  11285.  
  11286.  
  11287.  
  11288.  
  11289.  
  11290.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11291.  
  11292.  _P_r_i_m_i_t_i_v_e__A_t_t_r_i_b_u_t_e_s
  11293.  
  11294.  Attributes of primitives determine the style of the display of the
  11295.  primitive.  For example, lines and edges may have different line styles
  11296.  such as dotted or dashed, text may have different fonts, orientation, and
  11297.  character spacing.  A polymarker may be an asterisk or a small triangle.
  11298.  They all may be red in color.  General type attributes that apply to
  11299.  almost any output primitive are color, visibility, pickability, and
  11300.  highlight method.
  11301.  
  11302.  _I_n_p_u_t__P_r_i_m_i_t_i_v_e_s
  11303.  
  11304.  Input primitives or logical devices are virtual devices designed to
  11305.  insulate the application from the real input devices.  Logical devices
  11306.  include picking devices, locator devices, choice devices, valuator
  11307.  devices, etc.  In terms, of actual devices, a locator device might be
  11308.  associated with the first mouse button.
  11309.  
  11310.  _I_n_p_u_t__M_o_d_e_l
  11311.  
  11312.  The input model describes how input primitives and logical devices are
  11313.  related to physical input devices and the degree of control provided to
  11314.  the application over the devices.  For example, one control choice might
  11315.  be how feedback is echoed to the operator when a logical locator device
  11316.  is attached to a depressed mouse button.  The feedback might be a
  11317.  rectangular cursor or the highlighting of geometry as a cross-hair cursor
  11318.  moves over it.  When the button is released the device coordinates are
  11319.  placed in the locator data record and an event is placed in an event
  11320.  queue for which the application can check asynchronously.  The method the
  11321.  application uses to determine if a device has data for it is usually
  11322.  described in terms of modes.  A common mode is event mode.  The
  11323.  application waits a finite time for some event to appear in a queue.  If
  11324.  no event comes in the finite time, the application does other processing
  11325.  and eventually comes back to check the queue with the wait for some
  11326.  event.  If an event appears, the application determines what type it is
  11327.  and gets the data for that type of event.  For a pick device, the data
  11328.  might be all possible graphical primitives that could intersect some
  11329.  aperture, possibly specified in the device coordinate system.
  11330.  
  11331.  _C_o_o_r_d_i_n_a_t_e__S_y_s_t_e_m_s__a_n_d__C_l_i_p_p_i_n_g
  11332.  
  11333.  Part of the graphics services is a means to utilize various coordinate
  11334.  systems.  Graphical output has to be described to the graphics system in
  11335.  terms of some coordinate system, relevant to the application and
  11336.  presented to the display device in terms of its own coordinate system,
  11337.  the device coordinate system.  It is unlikely that these two coordinate
  11338.  systems will be the same.  A graphics system may therefore involve a
  11339.  number of coordinate systems and hence the need to define transformations
  11340.  between them.  Some standard types of transformations are scaling,
  11341.  
  11342.  
  11343.                Copyright c 1991 IEEE.  All rights reserved.
  11344.       This is an unapproved IEEE Standards Draft, subject to change.
  11345.  
  11346.  
  11347.  
  11348.  
  11349.  
  11350.  152                              4 POSIX Open System Environment Services
  11351.  
  11352.  
  11353.  
  11354.  
  11355.  
  11356.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11357.  
  11358.  rotating, translating, reflecting, and projection, such as parallel and
  11359.  perspective.  They are used to manipulate objects in a coordinate system
  11360.  and to map from one coordinate system to another.  The coordinate systems
  11361.  commonly used are modeling coordinates, world coordinates, view-reference
  11362.  coordinates, normalized projection coordinates, and device coordinates.
  11363.  
  11364.  Clipping is the process of specifying a region in space and restricting
  11365.  graphical output to that region.  Only those primitives that define
  11366.  objects in that region will have their output displayed.
  11367.  
  11368.  _O_u_t_p_u_t__M_o_d_e_l
  11369.  
  11370.  The output model is the concept of how graphics objects are created,
  11371.  displayed, and controlled on output devices.  The output model defines
  11372.  how to position and organize objects on the screen, and the visual state
  11373.  of these objects such as visible or invisible, hidden lines removed or
  11374.  not removed, picture matches retained structure, picture not consistent
  11375.  with retained structure, etc.
  11376.  
  11377.  More specifically, the output model concept is made up of the:
  11378.  
  11379.      - Transformation pipeline
  11380.  
  11381.      - Rendering pipeline
  11382.  
  11383.      - Retained structures
  11384.  
  11385.      - Nonretained structures
  11386.  
  11387.      - Graphics state
  11388.  
  11389.      - Window systems
  11390.  
  11391.  _E_r_r_o_r__H_a_n_d_l_i_n_g
  11392.  
  11393.  _T_B_D
  11394.  
  11395.  _S_t_o_r_a_g_e_/_A_r_c_h_i_v_i_n_g
  11396.  
  11397.  _T_B_D
  11398.  
  11399.  
  11400.  4.7.4.2  Graphics Requirements
  11401.  
  11402.  The graphics service requirements of all users of this system can be
  11403.  generalized as:
  11404.  
  11405.      - The ability to create, delete, and modify output primitives.
  11406.  
  11407.  
  11408.  
  11409.                Copyright c 1991 IEEE.  All rights reserved.
  11410.       This is an unapproved IEEE Standards Draft, subject to change.
  11411.  
  11412.  
  11413.  
  11414.  
  11415.  
  11416.  4.7 Graphics Services                                                 153
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11423.  
  11424.      - The ability to specify and edit the primitive attributes globally
  11425.        and individually.
  11426.  
  11427.      - The ability to transform (i.e., scale, translate, rotate, reflect,
  11428.        project, etc.) primitives for construction of more complex objects
  11429.        and for arrangement in the viewing space.
  11430.  
  11431.      - The ability to create and manipulate a database of primitives, to
  11432.        define and edit attributes, to create and combine transformations,
  11433.        and to selectively control the display of graphics primitives.
  11434.  
  11435.      - The ability to display graphical objects constructed in a retained
  11436.        database, or the ability to display primitives immediately, or to
  11437.        display from both a retained database and immediately.
  11438.  
  11439.      - The ability to apply lighting and shading algorithms to collections
  11440.        of graphical objects with multiple light types and sources.
  11441.  
  11442.      - The ability to prepare display data and control the timing of the
  11443.        actual display of the display data.  On some systems this is
  11444.        referred to as frame buffer control.
  11445.  
  11446.      - The ability to store and retrieve graphical objects from files.
  11447.  
  11448.      - The ability to control input devices and retrieve data from input
  11449.        devices.
  11450.  
  11451.      - The ability to direct output to a meta-file and retrieve graphics
  11452.        data from a meta-file.
  11453.  
  11454.      - The ability to inquire about all aspects of the graphics
  11455.        environment; e.g., the state of the system at any given time, the
  11456.        actual capabilities of a given hardware platform, the attributes
  11457.        and primitives supported by a given implementation, etc.
  11458.  
  11459.      - The ability to distribute graphics.
  11460.  
  11461.      - The ability to control errors.
  11462.  
  11463.  
  11464.  4.7.4.3  Application Program Interface Services
  11465.  
  11466.  The major categories of graphics services available in the POSIX OSE API
  11467.  area include:
  11468.  
  11469.      - 2-D graphics API services
  11470.  
  11471.      - 3-D graphics API services
  11472.  
  11473.  
  11474.  
  11475.                Copyright c 1991 IEEE.  All rights reserved.
  11476.       This is an unapproved IEEE Standards Draft, subject to change.
  11477.  
  11478.  
  11479.  
  11480.  
  11481.  
  11482.  154                              4 POSIX Open System Environment Services
  11483.  
  11484.  
  11485.  
  11486.  
  11487.  
  11488.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11489.  
  11490.      - Device interface API services
  11491.  
  11492.      - Image processing API services
  11493.  
  11494.  For most of these API standards there exist standard language bindings so
  11495.  that applications using different programming languages can access the
  11496.  same functionality.
  11497.  
  11498.  The choice of which graphics standard API to use will depend on a number
  11499.  of factors:  application profile, overall system architecture, equipment
  11500.  available, existing application database interaction, system performance
  11501.  considerations, user interface requirements, management policy, and other
  11502.  external factors.  The aim of producing a compatible set of graphics
  11503.  standards in GKS, GKS-3D, PHIGS, PHIGS PLUS, etc.  (described in the
  11504.  Standards subclause) is to allow that choice to be made in the most
  11505.  flexible way.
  11506.  
  11507.  
  11508.  4.7.4.4  External Environment Interface Services
  11509.  
  11510.  The major categories of graphics services in the POSIX OSE EEI area
  11511.  include:
  11512.  
  11513.      - Protocols
  11514.  
  11515.      - File Formats
  11516.  
  11517.      - Device Drivers
  11518.  
  11519.  The choice of which standard to use depends on a number of factors:
  11520.  application profile, system architecture, equipment available, system
  11521.  performance considerations, and other factors
  11522.  
  11523.  4.7.4.5  Interapplication Software Entity Services
  11524.  
  11525.  _T_B_D
  11526.  
  11527.  
  11528.  4.7.4.6  Graphics Resource Management Services
  11529.  
  11530.  _T_B_D
  11531.  
  11532.  
  11533.  4.7.5  Standards, Specifications, and Gaps
  11534.  
  11535.  There are several major standards existing in the computer graphics
  11536.  industry today, that have been approved by National/International
  11537.  organizations such as ANSI, ISO, and IEEE.  There are also standards
  11538.  efforts going on in related areas such as application data exchange.
  11539.  These official graphics standards are complemented by de facto standards
  11540.  
  11541.                Copyright c 1991 IEEE.  All rights reserved.
  11542.       This is an unapproved IEEE Standards Draft, subject to change.
  11543.  
  11544.  
  11545.  
  11546.  
  11547.  
  11548.  4.7 Graphics Services                                                 155
  11549.  
  11550.  
  11551.  
  11552.  
  11553.  
  11554.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11555.  
  11556.  that have been accepted by the graphics industry at large.  This document
  11557.  provides a general explanation of these standards, their specifications,
  11558.  and interrelationships.
  11559.  
  11560.  _________________________________________________________________________
  11561.  
  11562.  
  11563.  
  11564.  
  11565.  
  11566.  
  11567.  
  11568.  
  11569.  
  11570.  
  11571.  
  11572.  
  11573.  
  11574.  
  11575.  
  11576.  
  11577.  
  11578.  
  11579.  
  11580.  
  11581.  
  11582.  
  11583.  
  11584.  
  11585.  
  11586.  
  11587.  
  11588.  
  11589.  
  11590.  _________________________________________________________________________
  11591.    Figure 4-17  -  POSIX OSE Graphics Service Reference Model Standards
  11592.  
  11593.  
  11594.  
  11595.  4.7.5.1  Current Standards in the POSIX OSE
  11596.  
  11597.  _N_a_t_i_o_n_a_l_/_I_n_t_e_r_n_a_t_i_o_n_a_l
  11598.  
  11599.     PHIGS -- ISO 9592 Parts 1-3
  11600.     Fortran Language Binding -- ISO 9593-1
  11601.     Ada Language Binding -- ISO 9593-3
  11602.     C Language Binding -- DIS 9593-4
  11603.  
  11604.  
  11605.  
  11606.  
  11607.                Copyright c 1991 IEEE.  All rights reserved.
  11608.       This is an unapproved IEEE Standards Draft, subject to change.
  11609.  
  11610.  
  11611.  
  11612.  
  11613.  
  11614.  156                              4 POSIX Open System Environment Services
  11615.  
  11616.  
  11617.  
  11618.  
  11619.  
  11620.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11621.  
  11622.           The Programmer's Hierarchical Interactive Graphics Standard
  11623.           (PHIGS) is a functional specification of the interface between
  11624.           an application program and its graphics support system.  It is
  11625.           an ANSI/ISO standard and provides the following graphics
  11626.           functionality:
  11627.  
  11628.            - A high degree of interactivity
  11629.  
  11630.            - Multilevel, hierarchical structuring of graphics data
  11631.  
  11632.            - Easy modification of graphics data and the relationships
  11633.              among the data
  11634.  
  11635.            - 3-D, as well as 2-D, graphical input and output
  11636.  
  11637.            - Offline storage (and retrieval) of graphics data
  11638.  
  11639.           PHIGS controls the definition, modification, and display of
  11640.           hierarchical graphics data and specifies functional descriptions
  11641.           of systems capabilities, including the definition of internal
  11642.           data structures, editing capabilities, display operations, and
  11643.           device control functions.  PHIGS manages the organization and
  11644.           display of data in a centralized database, allowing programmers
  11645.           to define and organize graphical data in a manner most
  11646.           convenient to the application.  Such a hierarchical approach is
  11647.           a big benefit and is not available in GKS, another international
  11648.           standard.
  11649.  
  11650.           Objects are defined in the PHIGS graphical database by a
  11651.           sequence of elements, including output primitives, attributes,
  11652.           transformations, and invocations of other object and object part
  11653.           definitions.  These elements are grouped into entities called
  11654.           structures.  Structures may be related in a number of ways,
  11655.           including geometrically, hierarchically, or according to
  11656.           inherent properties or characteristics, as defined by an
  11657.           application.
  11658.  
  11659.           PHIGS provides tools to use hierarchical data structures with
  11660.           minimal effort by the application programmer.  Pictures
  11661.           constructed from geometric models often have a clearly evident
  11662.           structure.  This structure can sometimes be easily seen in the
  11663.           repeated use of symbols, in the connections and geometric
  11664.           relationships between objects, or in the overall organization of
  11665.           a complex image.  Even if the object's structure is not evident,
  11666.           its underlying data organization may be quite rigorous, well
  11667.           defined, and well understood by the application.  PHIGS supports
  11668.           both these cases by separating the definition of graphics data
  11669.           from the actions required to display them.
  11670.  
  11671.  
  11672.  
  11673.                Copyright c 1991 IEEE.  All rights reserved.
  11674.       This is an unapproved IEEE Standards Draft, subject to change.
  11675.  
  11676.  
  11677.  
  11678.  
  11679.  
  11680.  4.7 Graphics Services                                                 157
  11681.  
  11682.  
  11683.  
  11684.  
  11685.  
  11686.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11687.  
  11688.           The structured definition of graphics data inherently reduces
  11689.           repetition and connectivity problems.  The repeated use of
  11690.           component objects and the relationships between them can
  11691.           automatically be made a part of an object's definition.
  11692.  
  11693.           The structured definition of data allows images to share
  11694.           component objects, making it faster and easier for application
  11695.           programs to define and modify picture descriptions.  Sharing
  11696.           component objects will also reduce storage requirements for
  11697.           graphics data.
  11698.  
  11699.           PHIGS permits rapid dynamic access to a centralized graphics
  11700.           database.  This allows PHIGS to support interactive end user
  11701.           application programs and, depending on the capability of the
  11702.           hardware, realtime definition, and modification of graphics
  11703.           data.  PHIGS is capable of performing three-dimensional modeling
  11704.           transformations, workstation transformations, and viewing.  It
  11705.           also handles two dimensions through a shorthand functionality of
  11706.           three dimensions.  In workstation transformations, PHIGS
  11707.           provides another level of display control after the viewing
  11708.           operation that can isolate a section of an image for pan and
  11709.           zoom operations.
  11710.  
  11711.           The National Institute of Standards and Technology (NIST) has
  11712.           developed a test system to help determine whether
  11713.           implementations of PHIGS conform to the specifications of the
  11714.           ANSI standard X3.144.  The PHIGS Validation Test (PVT) suite
  11715.           consists of highly portable Fortran programs which examine test
  11716.           conditions and report the results.
  11717.  
  11718.     PHIGS PLUS -- DIS 9592-4
  11719.  
  11720.           PHIGS Plus Lumiere Und Surfaces (PLUS) specifies a set of
  11721.           extensions to PHIGS that addresses some of the deficiencies in
  11722.           the graphics functionality provided by PHIGS.  PHIGS does not
  11723.           include ``higher level'' primitives such as curves and surfaces,
  11724.           and techniques for lighting and shading.  Recognizing this, an
  11725.           ad hoc working group was formed to propose a set of extensions
  11726.           to PHIGS to enable these capabilities to be addressed in a
  11727.           standard manner, compatible with the overall philosophy of
  11728.           PHIGS.  This set of proposed extensions was submitted to ISO and
  11729.           has since been developed into PHIGS PLUS.  PHIGS PLUS enhances
  11730.           PHIGS by providing:
  11731.  
  11732.            - Primitives for defining curves and surfaces
  11733.  
  11734.            - Lighting models
  11735.  
  11736.  
  11737.  
  11738.  
  11739.                Copyright c 1991 IEEE.  All rights reserved.
  11740.       This is an unapproved IEEE Standards Draft, subject to change.
  11741.  
  11742.  
  11743.  
  11744.  
  11745.  
  11746.  158                              4 POSIX Open System Environment Services
  11747.  
  11748.  
  11749.  
  11750.  
  11751.  
  11752.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11753.  
  11754.            - Shading of surfaces
  11755.  
  11756.            - Depth cueing
  11757.  
  11758.            - Color mapping and direct color specification
  11759.  
  11760.           PHIGS PLUS is not an international standard yet and is currently
  11761.           at the stage of committee draft.
  11762.  
  11763.     GKS -- ISO 7942; FIPS 120
  11764.     Fortran Language Bindings -- ISO 8651-1
  11765.     Pascal Language Bindings -- ISO 8651-2
  11766.     Ada Language Bindings -- DIS 8651-3
  11767.     C Language Bindings -- DIS 8651-4
  11768.  
  11769.           GKS Information Bulletin
  11770.  
  11771.           The Graphical Kernel System (GKS) is a 2-D graphics system and
  11772.           provides no support for 3-D.  It is a 2-D graphics API that
  11773.           shields the programmer from differences among various computers
  11774.           and graphic devices.  It allows for portability of graphics
  11775.           applications by standardizing the basic graphic functions and
  11776.           the method and syntax for accessing these functions.
  11777.  
  11778.           GKS is an ANSI, ISO standard and is widely used today.  It has
  11779.           standard language bindings for Fortran and Pascal.  Language
  11780.           bindings for C, Ada, and LISP are currently being worked on.
  11781.  
  11782.           GKS supports the grouping of logically related primitives such
  11783.           as lines, polygons, strings, and their attributes into
  11784.           collections called segments, which cannot be nested.
  11785.  
  11786.           GKS supports many graphical input and output devices such as
  11787.           black/white and color displays, printers, plotters, mice, data
  11788.           tablets, joysticks, and digitizers.
  11789.  
  11790.     GKS-3D -- ISO 8805
  11791.     Fortran Language Bindings -- DIS 8806-1
  11792.     Pascal Language Bindings -- CD 8806-2
  11793.     Ada Language Bindings -- DIS 8806-3
  11794.     C Language Bindings -- DIS 8806-4
  11795.  
  11796.           Graphical Kernel System for Three Dimensions (GKS-3D) is an ISO
  11797.           standard and specifies extensions to GKS for defining and
  11798.           viewing three-dimensional wire-frame objects.  In addition, the
  11799.           GKS input model has been extended to provide three-dimensional
  11800.           locator and stroke input.  GKS-3D allows the operator to obtain
  11801.           information from three-dimensional input devices and to perform
  11802.           hidden line/hidden surface removal (HLHSR) at the workstation.
  11803.  
  11804.  
  11805.                Copyright c 1991 IEEE.  All rights reserved.
  11806.       This is an unapproved IEEE Standards Draft, subject to change.
  11807.  
  11808.  
  11809.  
  11810.  
  11811.  
  11812.  4.7 Graphics Services                                                 159
  11813.  
  11814.  
  11815.  
  11816.  
  11817.  
  11818.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11819.  
  11820.           It does not, however, provide specific functions for controlling
  11821.           rendering techniques such as light source, shading, texturing,
  11822.           and shadow computations that must be done locally at the
  11823.           workstation.  Conceptually, all workstations are three-
  11824.           dimensional in GKS-3D, which is made possible by shielding the
  11825.           hardware peculiarities as in GKS.
  11826.  
  11827.     CGI -- DIS 9636 Parts 1-6
  11828.     Fortran Language Bindings -- DIS 9638-1
  11829.     C Language Bindings -- CD 9638-4
  11830.  
  11831.           The Computer Graphics Interface (CGI) specifies a standard
  11832.           functional and syntactical specification of the control and data
  11833.           exchange between device-independent graphics software and one or
  11834.           more device-dependent graphics device drivers.  Unlike the
  11835.           graphics standards discussed earlier, CGI specifies an interface
  11836.           at the device-driver level, rather than at the application
  11837.           level.
  11838.  
  11839.           Unlike CGM, which only handles graphical output, CGI handles
  11840.           both input and output, which makes all devices appear as
  11841.           identical, virtual graphics devices.  Therefore, this protocol
  11842.           is also known as the Virtual Device Interface (VDI).  It
  11843.           provides a standard graphics escape mechanism to access
  11844.           nonstandard graphics device capabilities.  CGI allows
  11845.           programmers to write portable device-driver software that is
  11846.           independent of the physical graphics device characteristics.
  11847.           This makes the software portable and compatible with a wide
  11848.           variety of devices.
  11849.  
  11850.     CGM -- ISO 8632 Parts 1-4
  11851.  
  11852.           The Computer Graphics Metafile for storage and transfer of
  11853.           picture description information (CGM) is a mechanism for
  11854.           retaining and/or transporting graphics data and control
  11855.           information.  This information contains a device-independent
  11856.           description of a picture at the level of the Computer Graphics
  11857.           Virtual Device Interface described above.  It provides a
  11858.           standard graphics escape mechanism to access nonstandard
  11859.           graphics device capabilities via the metafile.
  11860.  
  11861.           Pictures are described in CGM as a collection of elements of
  11862.           different kinds, representing, for example, primitives,
  11863.           attributes, and control information.  It is multipart ANSI, ISO
  11864.           standard.  Part 1 contains the semantics of all the elements.
  11865.           Parts 2, 3, and 4 contain the syntax of three different bindings
  11866.           of the standard, namely:  character-coded, binary, and clear-
  11867.           text encodings.
  11868.  
  11869.  
  11870.  
  11871.                Copyright c 1991 IEEE.  All rights reserved.
  11872.       This is an unapproved IEEE Standards Draft, subject to change.
  11873.  
  11874.  
  11875.  
  11876.  
  11877.  
  11878.  160                              4 POSIX Open System Environment Services
  11879.  
  11880.  
  11881.  
  11882.  
  11883.  
  11884.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  11885.  
  11886.     PHIGS Archive files -- ISO 9592 Parts 2-3
  11887.  
  11888.           Parts 2 and 3 of the PHIGS standard define an archive file
  11889.           format for storage and transfer of PHIGS structures and
  11890.           structure network definitions from the CSS (Central Structure
  11891.           Store).  Part 2 describes the file format and Part 3 a clear
  11892.           text encoding.  This encoding is constructed using the same
  11893.           techniques as used by CGM.
  11894.  
  11895.  
  11896.  4.7.5.2  Emerging Standards in the POSIX OSE
  11897.  
  11898.     IPI -- JTC1# 1002
  11899.  
  11900.           Image Processing and Interchange is a functional specification
  11901.           and several language bindings for an Application Programmer
  11902.           Interface to Imaging.  The standard defines the data objects,
  11903.           primitive operations, and a reference model.  The API supplies
  11904.           the basic building blocks upon which applications requiring
  11905.           imaging functionality can be built within conventional,
  11906.           distributed, and image oriented computing environments.
  11907.  
  11908.           The International Standard for Image Processing and Interchange
  11909.           includes three parts:
  11910.  
  11911.              Part 1   Common Imaging Architecture
  11912.  
  11913.              Part 2   Programmer's Imaging Kernel (PIK)
  11914.  
  11915.              Part 3   Image Interchange Format
  11916.  
  11917.     PEX -- PHIGS Extensions to X
  11918.  
  11919.           PEX is a network protocol extension to the X Window System.  As
  11920.           many applications require 3-D graphics and other forms of input
  11921.           devices such as dials and button boxes, all of which are not
  11922.           supported by X, it became necessary to extend the X Protocol to
  11923.           include 3-D graphics.  PHIGS was selected as the application
  11924.           program interface because of its acceptance as a 3-D standard,
  11925.           its high degree of input ability, and its powerful database
  11926.           editing capabilities.  In 1988, the MIT X Consortium contracted
  11927.           to add 3-D and extended input extensions to the X protocol and
  11928.           the first release of PEX as a sample implementation (PEX-SI) was
  11929.           made in January 1991 but is not yet available commercially.
  11930.           Using PEX, PHIGS workstations would be defined as X Windows.
  11931.           For the programmer, X, PHIGS, and PEX standards provide
  11932.           portability.
  11933.  
  11934.  
  11935.  
  11936.  
  11937.                Copyright c 1991 IEEE.  All rights reserved.
  11938.       This is an unapproved IEEE Standards Draft, subject to change.
  11939.  
  11940.  
  11941.  
  11942.  
  11943.  
  11944.  4.7 Graphics Services                                                 161
  11945.  
  11946.  
  11947.  
  11948.  
  11949.  
  11950.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  11951.  
  11952.     Conformance Testing of Implementations of Graphics Standards -- DIS
  11953.           10641
  11954.  
  11955.           The existence of any standard brings up the question of how one
  11956.           can be sure whether a product claiming to conform to the
  11957.           standard does in fact conform.  If this question is not
  11958.           addressed then the process of standardization becomes pointless.
  11959.  
  11960.           The general approach to software validation is through testing.
  11961.           The method is to subject the software to a collection of test
  11962.           cases and observe the results.  If the results are different
  11963.           from what is expected, the software does not conform to the
  11964.           specification.  The ANSI X3H3.7 committee is working on a
  11965.           standard that specifies the characteristics of standardized test
  11966.           sets for use in determining the conformance of implementations
  11967.           of graphics standards.  It will also provide guidance to
  11968.           functional standards developers concerning the content of their
  11969.           standards and the conformance rules within standards.
  11970.  
  11971.  
  11972.  4.7.5.3  Gaps in Available Standards
  11973.  
  11974.      (1)  Applications have different behaviors for similar functions
  11975.           which hinders user portability.  By adopting a uniform approach
  11976.           (Graphics_Style_Guide) users can switch between applications
  11977.           without a lot of training.
  11978.  
  11979.      (2)  Current existing standards allow a wide interpretation for
  11980.           implementors of the standards thus denying the applications
  11981.           useful controls.  In order to achieve true portability in a
  11982.           distributed environment, applications will need control and
  11983.           deterministic functionality.
  11984.  
  11985.      (3)  How window standard fits into CGRM
  11986.  
  11987.      (4)  Current existing standards do not address solids.
  11988.  
  11989.      (5)  The ability in a standard defined way to perform cut and paste
  11990.           between applications.
  11991.  
  11992.      (6)  Current standards do not allow nonretained graphic methods to do
  11993.           lighting and shading.
  11994.  
  11995.  
  11996.  
  11997.  
  11998.  
  11999.  
  12000.  
  12001.  
  12002.  
  12003.                Copyright c 1991 IEEE.  All rights reserved.
  12004.       This is an unapproved IEEE Standards Draft, subject to change.
  12005.  
  12006.  
  12007.  
  12008.  
  12009.  
  12010.  162                              4 POSIX Open System Environment Services
  12011.  
  12012.  
  12013.  
  12014.  
  12015.  
  12016.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12017.  
  12018.  4.7.6  OSE Cross-Category Services
  12019.  
  12020.  Not applicable.
  12021.  
  12022.  
  12023.  4.7.7  Related Standards
  12024.  
  12025.     IGES, NBSIR 86-3359
  12026.  
  12027.           See 4.5.
  12028.  
  12029.     X Window System Data Stream Definition Parts 1-4
  12030.  
  12031.           (Being worked on in ANSI X3H3.6)
  12032.  
  12033.     Part 1: Functional specification
  12034.     Part 2: Data Stream Encoding
  12035.     Part 3: KEYSYM Encoding
  12036.     Part 4: Mapping onto Open Systems Interconnection (OSI) Services
  12037.  
  12038.           The X Window System is a network based windowing and 2-D
  12039.           graphics system.  It uses the client-server model.  The client
  12040.           and server can reside on the same or different platforms.  The
  12041.           client is an application program executing anywhere on the
  12042.           network and displaying on the screen.  It does this by making
  12043.           calls to a library called Xlib to generate protocols.  The X
  12044.           server is the software that accepts protocols sent by the client
  12045.           and processes them for display.  It also accepts input from a
  12046.           mouse or keyboard for return to the application program.  The X
  12047.           protocol specifies the data stream encoding between the server
  12048.           and the clients.  The X Protocol originally developed by the X
  12049.           Consortium at MIT, is being standardized by the ANSI X3H3.6
  12050.           committee.  The encoding will provide a standard interface for
  12051.           applications running on both distributed and nondistributed
  12052.           environments having high-speed, reliable, network based
  12053.           communications.
  12054.  
  12055.           X Protocol is designed to work in a heterogeneous network
  12056.           environment.  Below the X Protocol, any lower layer of network
  12057.           can be used, as long as it is bidirectional.  Currently TCP/IP
  12058.           and DECnet are the two network protocols commonly supported in X
  12059.           servers.  Part 4 of this standard specifies the mapping of X
  12060.           Windows onto the OSI Services.
  12061.  
  12062.     XLIB
  12063.  
  12064.           Xlib--C Language X Interface is the common component of X
  12065.           Windows and resides on all X-based systems.  Although X is
  12066.           fundamentally defined by a network protocol, application
  12067.  
  12068.  
  12069.                Copyright c 1991 IEEE.  All rights reserved.
  12070.       This is an unapproved IEEE Standards Draft, subject to change.
  12071.  
  12072.  
  12073.  
  12074.  
  12075.  
  12076.  4.7 Graphics Services                                                 163
  12077.  
  12078.  
  12079.  
  12080.  
  12081.  
  12082.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12083.  
  12084.           programmers do not interface directly with the X Protocol.
  12085.           Instead, they interface to the X Protocol through Xlib.
  12086.  
  12087.           The X Window System uses the client-server model.  The client is
  12088.           an application program executing anywhere on the network and
  12089.           displaying on the screen.  It does this by making calls to Xlib
  12090.           to generate protocols.  The X server is the software that
  12091.           accepts protocols sent by the client and processes them for
  12092.           display.
  12093.  
  12094.           From a graphics perspective, Xlib is a 2-D graphics library and
  12095.           provides graphics primitives like points, lines, and arcs.  It
  12096.           has a Graphics Context (GC) to allow modification of graphics
  12097.           attributes such as line type, line width, color, and font type.
  12098.           The Xlib developed initially at MIT is in the Public Domain and
  12099.           is a de facto standard for windowing and 2-D graphics.  It has
  12100.           been adopted by major computer vendors and industry groups.  It
  12101.           is currently being considered for standardization by the IEEE
  12102.           P1201 committee.
  12103.  
  12104.     PostScript
  12105.  
  12106.           The PostScript language from Adobe Systems Incorporated is a
  12107.           simple interpretative programming language with powerful
  12108.           graphics capabilities that has become a de facto industry
  12109.           standard.  It is a high-level, device independent language that
  12110.           is primarily used to describe the appearance of text, graphical
  12111.           shapes, and images on printed pages or screens.  Programs
  12112.           written in this language may be used to communicate information
  12113.           from a composition system to a printing system.  PostScript
  12114.           programs are created, transmitted, and interpreted in the form
  12115.           of source text and there is no compiled or encoded form of this
  12116.           language.
  12117.  
  12118.     SGML, ISO 8879: 1986
  12119.  
  12120.           See 4.5.
  12121.  
  12122.     IGES/PDES Organization (IPO)
  12123.  
  12124.           See 4.5.
  12125.  
  12126.     ISO/IEC TC184/SC4 (STEP)
  12127.  
  12128.           See 4.5.
  12129.  
  12130.     ISO/IEC TC130 (Color Prepress)
  12131.  
  12132.  
  12133.  
  12134.  
  12135.                Copyright c 1991 IEEE.  All rights reserved.
  12136.       This is an unapproved IEEE Standards Draft, subject to change.
  12137.  
  12138.  
  12139.  
  12140.  
  12141.  
  12142.  164                              4 POSIX Open System Environment Services
  12143.  
  12144.  
  12145.  
  12146.  
  12147.  
  12148.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12149.  
  12150.     ISO/IEC JTC1/SC18 (Text and Office Systems
  12151.  
  12152.     ISO/IEC JTC1/SC29 (Multimedia Coding)
  12153.  
  12154.  
  12155.  4.7.8  Open Issues
  12156.  
  12157.  None.
  12158.  
  12159.  
  12160.  4.7.9  Performance and Capacity Specification Metrics
  12161.  
  12162.     Picture-Level Benchmark -- (Developed by the GPC Committee)
  12163.  
  12164.           The Picture-Level Benchmark (PLB), developed by the GPC
  12165.           (Graphics Performance Characterization) Committee, is a software
  12166.           package that provides a standard method of measuring graphics
  12167.           display performance for different hardware platforms.  The GPC
  12168.           Committee consists of the following member companies:  DEC,
  12169.           DuPont Pixel Systems, Evans & Sutherland, HP/Apollo, IBM, Intel,
  12170.           Integraph, Megatek, Prime Computer, Silicon Graphics, Sun, and
  12171.           Tektronix.  NCGA (National Computer Graphics Association) is the
  12172.           administrator for the GPC work.  The PLB is a part of ongoing
  12173.           work by the GPC Committee to develop standardized methods of
  12174.           measuring graphics performance.
  12175.  
  12176.           The PLB was developed to clear the confusion regarding graphics
  12177.           performance measurement.  Vectors or polygons per second can
  12178.           vary greatly according to size, orientation and other
  12179.           parameters.  With the PLB, graphics display performance for the
  12180.           user's specific application can be evaluated using the same
  12181.           methodology and measurement criteria for different hardware
  12182.           systems.  This allows ``apple-to-apple'' comparisons of graphics
  12183.           display performance.
  12184.  
  12185.  
  12186.  
  12187.  
  12188.  
  12189.  
  12190.  
  12191.  
  12192.  
  12193.  
  12194.  
  12195.  
  12196.  
  12197.  
  12198.  
  12199.  
  12200.  
  12201.                Copyright c 1991 IEEE.  All rights reserved.
  12202.       This is an unapproved IEEE Standards Draft, subject to change.
  12203.  
  12204.  
  12205.  
  12206.  
  12207.  
  12208.  4.7 Graphics Services                                                 165
  12209.  
  12210.  
  12211.  
  12212.  
  12213.  
  12214.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12215.  
  12216.  
  12217.  
  12218.  
  12219.  
  12220.  
  12221.  
  12222.  
  12223.  
  12224.  
  12225.  
  12226.  
  12227.  
  12228.  
  12229.  
  12230.  
  12231.  
  12232.  
  12233.  
  12234.  
  12235.  
  12236.  
  12237.  
  12238.  
  12239.  
  12240.  
  12241.  
  12242.  
  12243.  
  12244.  
  12245.  
  12246.  
  12247.  
  12248.  
  12249.  
  12250.  
  12251.  
  12252.  
  12253.  
  12254.  
  12255.  
  12256.  
  12257.  
  12258.  
  12259.  
  12260.  
  12261.  
  12262.  
  12263.  
  12264.  
  12265.  
  12266.  
  12267.                Copyright c 1991 IEEE.  All rights reserved.
  12268.       This is an unapproved IEEE Standards Draft, subject to change.
  12269.  
  12270.  
  12271.  
  12272.  
  12273.  
  12274.  166                              4 POSIX Open System Environment Services
  12275.  
  12276.  
  12277.  
  12278.  
  12279.  
  12280.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12281.  
  12282.  4.8  Character-Based User Interface Services
  12283.  
  12284.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _C_h_a_r_l_e_s _S_e_v_e_r_a_n_c_e
  12285.  
  12286.  
  12287.  4.8.1  Overview and Rationale
  12288.  
  12289.  This clause describes the system services that are related to character-
  12290.  based terminals.  It describes both the application program interfaces to
  12291.  character-based terminals and also the look and feel of the interaction
  12292.  between the user and the user interface equipment.
  12293.  
  12294.  This clause is one portion of the User Interface API and EEI as described
  12295.  in Section 3.
  12296.  
  12297.  
  12298.  4.8.2  Scope
  12299.  
  12300.  The scope of this clause is limited to the services and standards
  12301.  required to support character (non-bitmapped) terminals.
  12302.  
  12303.  
  12304.  4.8.3  Reference Model
  12305.  
  12306.  This subclause identifies the entities and interfaces specific to the
  12307.  character-based terminal services of an OSE.
  12308.  
  12309.  As illustrated in Figure 4-18, the components of character-based
  12310.  interfaces are broken into two groups:  those specifications that impact
  12311.  the application programming interface and those that impact the external
  12312.  user interface.
  12313.  
  12314.  This reference model is consistent with and expands on the reference
  12315.  model in Section 3.
  12316.  
  12317.  
  12318.  4.8.4  Service Requirements
  12319.  
  12320.  The fundamental service requirements for character-based terminals are to
  12321.  allow applications to be written that make use of the features of a wide
  12322.  variety of terminals using a single terminal-independent interface.  The
  12323.  look and feel of user interactions should be similar between applications
  12324.  to make moving between applications as simple as possible.
  12325.  
  12326.  
  12327.  
  12328.  
  12329.  
  12330.  
  12331.  
  12332.  
  12333.                Copyright c 1991 IEEE.  All rights reserved.
  12334.       This is an unapproved IEEE Standards Draft, subject to change.
  12335.  
  12336.  
  12337.  
  12338.  
  12339.  
  12340.  4.8 Character-Based User Interface Services                           167
  12341.  
  12342.  
  12343.  
  12344.  
  12345.  
  12346.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12347.  
  12348.  _________________________________________________________________________
  12349.  
  12350.  
  12351.  
  12352.  
  12353.  
  12354.  
  12355.  
  12356.  
  12357.  
  12358.  
  12359.  
  12360.  
  12361.  
  12362.  
  12363.  
  12364.  
  12365.  
  12366.  
  12367.  
  12368.  
  12369.  
  12370.  
  12371.  
  12372.  
  12373.  
  12374.  _________________________________________________________________________
  12375.          Figure 4-18  -  Character-based Terminal Reference Model
  12376.  
  12377.  
  12378.  4.8.4.1  Application Program Interface Services
  12379.  
  12380.  The service requirements at the Application Program interface are as
  12381.  follows:
  12382.  
  12383.      - Ability to support a wide variety of character-based terminals
  12384.        using a single terminal-independent API.
  12385.  
  12386.      - Ability to support a wide variety of block mode terminals using a
  12387.        single terminal-independent API.
  12388.  
  12389.      - Ability to support all types of terminals using a forms-based API.
  12390.  
  12391.  These interfaces should be complete enough to allow a wide range of
  12392.  applications to be implemented using the interfaces.
  12393.  
  12394.  
  12395.  
  12396.  
  12397.  
  12398.  
  12399.                Copyright c 1991 IEEE.  All rights reserved.
  12400.       This is an unapproved IEEE Standards Draft, subject to change.
  12401.  
  12402.  
  12403.  
  12404.  
  12405.  
  12406.  168                              4 POSIX Open System Environment Services
  12407.  
  12408.  
  12409.  
  12410.  
  12411.  
  12412.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12413.  
  12414.  4.8.4.2  External Environment Interface Services
  12415.  
  12416.  The look and feel of user interactions with applications should be
  12417.  standardized to make moving between applications as simple as possible.
  12418.  The areas that require standardization are:
  12419.  
  12420.      - Placement of text on the screen
  12421.  
  12422.      - Style of selecting commands
  12423.  
  12424.      - Ways of using online help
  12425.  
  12426.      - Ways to do common functions such as page forward and page
  12427.        backwards.
  12428.  
  12429.  These interactions will differ slightly between different types of
  12430.  terminals because of limitations of the terminals.
  12431.  
  12432.  
  12433.  4.8.4.3  Related Service Requirements
  12434.  
  12435.  To be provided.
  12436.  
  12437.  
  12438.  4.8.5  Standards, Specifications, and Gaps
  12439.  
  12440.  4.8.5.1  Current Standards in the POSIX OSE
  12441.  
  12442.  None.
  12443.  
  12444.  
  12445.  4.8.5.2  Emerging Standards in the POSIX OSE
  12446.  
  12447.  _F_I_M_S
  12448.  
  12449.  ANSI CODASYL.  Working draft available for Forms Interface Management
  12450.  System (FIMS), which covers the interface between a programming language
  12451.  and any form-filling application on a computer or terminal screen.
  12452.  
  12453.  This specification addresses some of the services requirements for a
  12454.  forms-based user interface.
  12455.  
  12456.  _C_R_S:  _P_a_r_t_s _o_f _P_O_S_I_X._2 _m_i_g_h_t _b_e_l_o_n_g _h_e_r_e.
  12457.  
  12458.  
  12459.  
  12460.  
  12461.  
  12462.  
  12463.  
  12464.  
  12465.                Copyright c 1991 IEEE.  All rights reserved.
  12466.       This is an unapproved IEEE Standards Draft, subject to change.
  12467.  
  12468.  
  12469.  
  12470.  
  12471.  
  12472.  4.8 Character-Based User Interface Services                           169
  12473.  
  12474.  
  12475.  
  12476.  
  12477.  
  12478.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12479.  
  12480.  4.8.5.3  Gaps in Available Standards
  12481.  
  12482.  4.8.5.3.1  Standards/Specifications Outside the POSIX OSE
  12483.  
  12484.  4.8.5.3.1.1  _G_o_v_e_r_n_m_e_n_t_/_L_e_g_a_l__S_t_a_n_d_a_r_d_s
  12485.  
  12486.  None.
  12487.  
  12488.  4.8.5.3.1.2  _D_e__F_a_c_t_o__S_t_a_n_d_a_r_d_s
  12489.  
  12490.  _C_u_r_s_e_s
  12491.  
  12492.  Curses is a set of subroutines that provide a terminal-independent
  12493.  interface to applications.  Many different types of character-based
  12494.  terminals are supported.  Curses lacks complete support for flexible user
  12495.  input.
  12496.  
  12497.  This standard satisfies some of the service requirements for character
  12498.  mode terminals.
  12499.  
  12500.  _S_A_A
  12501.  
  12502.  SAA is an interface specification to a large class of block mode
  12503.  terminals.  This standard satisfies some of the service requirements for
  12504.  controlling block mode terminals.
  12505.  
  12506.  
  12507.  4.8.6  OSE Cross-Category Services
  12508.  
  12509.                                                                             d
  12510.  
  12511.  
  12512.  4.8.6.1  Security
  12513.  
  12514.  4.8.6.2  Administration
  12515.  
  12516.  It is important to allow the system management personnel to configure the
  12517.  system to designate where each terminal is connected.  Also needed is the
  12518.  ability to add support for new terminals without affecting the
  12519.  application interface.
  12520.  
  12521.  
  12522.  4.8.6.3  Configuration Management
  12523.  
  12524.  
  12525.  
  12526.  
  12527.  
  12528.  
  12529.  
  12530.  
  12531.                Copyright c 1991 IEEE.  All rights reserved.
  12532.       This is an unapproved IEEE Standards Draft, subject to change.
  12533.  
  12534.  
  12535.  
  12536.  
  12537.  
  12538.  170                              4 POSIX Open System Environment Services
  12539.  
  12540.  
  12541.  
  12542.  
  12543.  
  12544.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12545.  
  12546.  4.8.6.4  Fault Management
  12547.  
  12548.  
  12549.  4.8.6.5  Performance
  12550.  
  12551.  4.8.6.6  Accounting
  12552.  
  12553.  
  12554.  4.8.6.7  Training
  12555.  
  12556.  4.8.6.8  Systems Integration Interface Requirements
  12557.  
  12558.  None.
  12559.  
  12560.  
  12561.  4.8.7  Related Standards
  12562.  
  12563.  None.
  12564.  
  12565.  
  12566.  4.8.8  Open Issues
  12567.  
  12568.  None.
  12569.  
  12570.  
  12571.  
  12572.  
  12573.  
  12574.  
  12575.  
  12576.  
  12577.  
  12578.  
  12579.  
  12580.  
  12581.  
  12582.  
  12583.  
  12584.  
  12585.  
  12586.  
  12587.  
  12588.  
  12589.  
  12590.  
  12591.  
  12592.  
  12593.  
  12594.  
  12595.  
  12596.  
  12597.                Copyright c 1991 IEEE.  All rights reserved.
  12598.       This is an unapproved IEEE Standards Draft, subject to change.
  12599.  
  12600.  
  12601.  
  12602.  
  12603.  
  12604.  4.8 Character-Based User Interface Services                           171
  12605.  
  12606.  
  12607.  
  12608.  
  12609.  
  12610.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12611.  
  12612.  
  12613.  
  12614.  
  12615.  
  12616.  
  12617.  
  12618.  
  12619.  
  12620.  
  12621.  
  12622.  
  12623.  
  12624.  
  12625.  
  12626.  
  12627.  
  12628.  
  12629.  
  12630.  
  12631.  
  12632.  
  12633.  
  12634.  
  12635.  
  12636.  
  12637.  
  12638.  
  12639.  
  12640.  
  12641.  
  12642.  
  12643.  
  12644.  
  12645.  
  12646.  
  12647.  
  12648.  
  12649.  
  12650.  
  12651.  
  12652.  
  12653.  
  12654.  
  12655.  
  12656.  
  12657.  
  12658.  
  12659.  
  12660.  
  12661.  
  12662.  
  12663.                Copyright c 1991 IEEE.  All rights reserved.
  12664.       This is an unapproved IEEE Standards Draft, subject to change.
  12665.  
  12666.  
  12667.  
  12668.  
  12669.  
  12670.  172                              4 POSIX Open System Environment Services
  12671.  
  12672.  
  12673.  
  12674.  
  12675.  
  12676.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12677.  
  12678.  4.9  User Command Interface Services
  12679.  
  12680.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _W_e_n_d_y _R_a_u_c_h
  12681.  
  12682.  _H_L_J:  _W_e_n_d_y _h_a_s _p_r_o_v_i_d_e_d _a _f_u_l_l _c_l_a_u_s_e _r_e_p_l_a_c_e_m_e_n_t _f_o_r _D_r_a_f_t _1_3; _i_t _i_s     _d
  12683.  _n_o_t _f_u_r_t_h_e_r _d_i_f_f _m_a_r_k_e_d.                                                   _d
  12684.  
  12685.  
  12686.  4.9.1  Rationale and Overview
  12687.  
  12688.  Although system-level services are necessary for application portability
  12689.  and interoperability, they are insufficient for many users' system needs.
  12690.  To maximize portability, users also require the commands, command
  12691.  interpreter (shell), compilers, editors, and other utilities that have
  12692.  been traditionally associated with many operating systems.  These command
  12693.  interface services facilitate a successful port and help users to manage
  12694.  and maintain applications and to solve problems on an ad hoc basis.  The
  12695.  standardization of these utilities allows users and programmers to move
  12696.  from platform to platform without having to relearn the command interface
  12697.  for each application platform.
  12698.  
  12699.  
  12700.  4.9.2  Scope
  12701.  
  12702.  This clause describes how a user interacts with an application platform
  12703.  by executing general purpose commands.  This command interface is also
  12704.  available to applications so that applications also can execute commands.
  12705.  A standardized command interface provides a consistent, interactive
  12706.  environment across platforms for users and programmers.
  12707.  
  12708.  Commands that are outside the scope of this clause are:
  12709.  
  12710.      - System administration and installation commands
  12711.  
  12712.      - Text formatting programs
  12713.  
  12714.      - Database commands
  12715.  
  12716.      - Networking and communications commands
  12717.  
  12718.      - Graphical user interfaces
  12719.  
  12720.  Networking commands and graphical user interfaces are described in other
  12721.  clauses of the POSIX Open Systems Environment Guide.
  12722.  
  12723.  
  12724.  
  12725.  
  12726.  
  12727.  
  12728.  
  12729.                Copyright c 1991 IEEE.  All rights reserved.
  12730.       This is an unapproved IEEE Standards Draft, subject to change.
  12731.  
  12732.  
  12733.  
  12734.  
  12735.  
  12736.  4.9 User Command Interface Services                                   173
  12737.  
  12738.  
  12739.  
  12740.  
  12741.  
  12742.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12743.  
  12744.  4.9.3  Reference Model
  12745.  
  12746.  The use of the command interface services presented in this clause is
  12747.  consistent with the reference model in Section 3.  The POSIX OSE
  12748.  reference model for the command interface also is consistent with typical
  12749.  implementations for user command languages in traditional UNIX-based
  12750.  systems.
  12751.  
  12752.  _________________________________________________________________________
  12753.  
  12754.  
  12755.  
  12756.  
  12757.  
  12758.  
  12759.  
  12760.  
  12761.  
  12762.  
  12763.  
  12764.  
  12765.  
  12766.  
  12767.  
  12768.  
  12769.  
  12770.  
  12771.  _________________________________________________________________________
  12772.      Figure 4-19  -  POSIX OSE Reference Model for Command Interfaces
  12773.  
  12774.  
  12775.  As Figure 4-19 shows, the command interface is available both to users
  12776.  (through the External Environment Interface) and to applications (through
  12777.  the Application Programming Interface).  Any operating system
  12778.  implementation can reside underneath the APIs and EEIs.
  12779.  
  12780.  The API and EEI command interfaces provide access to a software component
  12781.  (known as a command interpreter or shell) that interprets the commands
  12782.  issued by either the user or the application.  The command interpreter
  12783.  acts as an intermediary between the command API and EEI and the base
  12784.  application platform's system-level services.  The command interpreter
  12785.  reads the commands entered and parses them.  Depending on the type of
  12786.  command (e.g., utility or built-in shell command), the command
  12787.  interpreter either executes the command for the user or application,
  12788.  using the base application platform's system-level services, or it calls
  12789.  on the system-level services to create a new process which executes the
  12790.  command.
  12791.  
  12792.  
  12793.  
  12794.  
  12795.                Copyright c 1991 IEEE.  All rights reserved.
  12796.       This is an unapproved IEEE Standards Draft, subject to change.
  12797.  
  12798.  
  12799.  
  12800.  
  12801.  
  12802.  174                              4 POSIX Open System Environment Services
  12803.  
  12804.  
  12805.  
  12806.  
  12807.  
  12808.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12809.  
  12810.  None of the methods of executing commands have an impact on the API or
  12811.  EEI specifications.
  12812.  
  12813.  The commands interfaces may be available to users and applications either
  12814.  locally or remotely.  Remote invocation of a system's command interfaces
  12815.  is provided through networking and data interchange capabilities.  These
  12816.  are described in 4.3 and 4.5.  Alternatively, remote access to a system's
  12817.  command interfaces may be available through certain interapplication
  12818.  services.
  12819.  
  12820.  
  12821.  4.9.4  Service Requirements
  12822.  
  12823.  There are three major aspects of command interface services that must be
  12824.  addressed for practical support of multivendor application portability
  12825.  and system interoperability.  The first aspect consists of the basic
  12826.  functionality and interfaces provided for generally usefulness.  The
  12827.  second aspect of command interface services concerns the ability to move
  12828.  applications, such as script files, between platforms.  The third aspect
  12829.  concerns user portability so that the same user interface is available on
  12830.  different platforms.
  12831.  
  12832.  Since most command interfaces are available at the API and EEI, the
  12833.  service requirements for the API and the EEI are very similar.  This
  12834.  clause, therefore, discusses primarily the EEI command interface
  12835.  requirements.  The API service subclause discusses only the additional
  12836.  service requirements for applications.
  12837.  
  12838.  
  12839.  4.9.4.1  External Environment Interface Services
  12840.  
  12841.  Users need a number of capabilities in order to work on a system.  On a
  12842.  traditional system, these are implemented by providing interactive
  12843.  commands entered via a keyboard.  However, as graphical user interfaces
  12844.  evolve, these commands may also be implemented by clicking on a mouse in
  12845.  a particular area of the screen, by a ``touchie-feelie'' screen, a
  12846.  tablet, or other input device.
  12847.  
  12848.  The major services at the EEI provide the following abilities:
  12849.  
  12850.      - Capture the output of a command or application into a file
  12851.  
  12852.      - Redirect the input for a command from a file
  12853.  
  12854.      - Direct the output of a command to be used as the input to another
  12855.        command
  12856.  
  12857.      - Execute applications
  12858.  
  12859.  
  12860.  
  12861.                Copyright c 1991 IEEE.  All rights reserved.
  12862.       This is an unapproved IEEE Standards Draft, subject to change.
  12863.  
  12864.  
  12865.  
  12866.  
  12867.  
  12868.  4.9 User Command Interface Services                                   175
  12869.  
  12870.  
  12871.  
  12872.  
  12873.  
  12874.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  12875.  
  12876.      - Get online help for commands or applications
  12877.  
  12878.      - Manipulate file contents:
  12879.  
  12880.         +o Cutting
  12881.  
  12882.         +o Pasting
  12883.  
  12884.         +o Concatenating
  12885.  
  12886.         +o Converting
  12887.  
  12888.         +o Sorting
  12889.  
  12890.         +o Reformatting
  12891.  
  12892.         +o Comparing
  12893.  
  12894.         +o Searching for regular expression
  12895.  
  12896.      - Edit files
  12897.  
  12898.         +o Interactive editors
  12899.  
  12900.         +o Batch or ``stream'' editors
  12901.  
  12902.      - Display files
  12903.  
  12904.         +o Pausing when necessary
  12905.  
  12906.         +o Display only selected ranges of files
  12907.  
  12908.      - Manipulate files
  12909.  
  12910.         +o Create
  12911.  
  12912.         +o Delete
  12913.  
  12914.         +o Rename
  12915.  
  12916.         +o Move
  12917.  
  12918.         +o Copy
  12919.  
  12920.      - Print files
  12921.  
  12922.      - Perform network functions
  12923.  
  12924.  
  12925.  
  12926.  
  12927.                Copyright c 1991 IEEE.  All rights reserved.
  12928.       This is an unapproved IEEE Standards Draft, subject to change.
  12929.  
  12930.  
  12931.  
  12932.  
  12933.  
  12934.  176                              4 POSIX Open System Environment Services
  12935.  
  12936.  
  12937.  
  12938.  
  12939.  
  12940.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  12941.  
  12942.         +o File transfer
  12943.  
  12944.         +o Remote execution of commands
  12945.  
  12946.         +o Remote file printing
  12947.  
  12948.      - Manipulate and display directories
  12949.  
  12950.         +o Create
  12951.  
  12952.         +o Delete
  12953.  
  12954.         +o Display
  12955.  
  12956.         +o Destroy (Delete a directory and all its subdirectories and
  12957.           files)
  12958.  
  12959.      - Control file and directory permissions
  12960.  
  12961.      - Communicate with other users
  12962.  
  12963.         +o Electronic mail
  12964.  
  12965.         +o Online interaction where two or more users communicate with each
  12966.           other simultaneously
  12967.  
  12968.      - Control the application execution environment
  12969.  
  12970.         +o Execute applications in the background
  12971.  
  12972.         +o Abort applications running in the foreground or background
  12973.  
  12974.         +o Suspend an application
  12975.  
  12976.         +o Move an application running in foreground mode to the background
  12977.  
  12978.      - Schedule commands for periodic execution
  12979.  
  12980.      - Control the users' input equipment, such as a terminal or graphical
  12981.        user interface
  12982.  
  12983.      - Manage local environment and configuration information
  12984.  
  12985.      - Query local environment and configuration data
  12986.  
  12987.      - Configure an environment for an international locale.
  12988.  
  12989.  
  12990.  
  12991.  
  12992.  
  12993.                Copyright c 1991 IEEE.  All rights reserved.
  12994.       This is an unapproved IEEE Standards Draft, subject to change.
  12995.  
  12996.  
  12997.  
  12998.  
  12999.  
  13000.  4.9 User Command Interface Services                                   177
  13001.  
  13002.  
  13003.  
  13004.  
  13005.  
  13006.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13007.  
  13008.  4.9.4.2  Application Program Interface Services
  13009.  
  13010.  In a command API, the output syntax of the commands and command responses
  13011.  (such as error messages) need to be standardized, in addition to the
  13012.  calling sequence and allowable inputs.  Such standardization is necessary
  13013.  to allow applications executing a command to reliably parse the output of
  13014.  that command.
  13015.  
  13016.  The API should be able to access all of the services available to the
  13017.  user at the EEI.  The additional service requirements for the API are as
  13018.  follows;
  13019.  
  13020.      - Ability to provide the input to the command and access the output
  13021.        of the command when necessary
  13022.  
  13023.      - Ability for the application to detect and correct errors as the
  13024.        command is executed
  13025.  
  13026.      - Ability to abort or suspend the command as it is executing.
  13027.  
  13028.  It is also important to have the ability to create script files which are
  13029.  combinations of commands.  The scripting language developed for this
  13030.  purpose is an application development language.  The scripting language
  13031.  has the following requirements:
  13032.  
  13033.      - Conditional execution primitives
  13034.  
  13035.      - Repeated execution primitives
  13036.  
  13037.      - Ability to display output
  13038.  
  13039.      - Ability to prompt the user for input
  13040.  
  13041.      - Ability to execute commands and obtain error information.
  13042.  
  13043.  The services and standards for the scripting language are described in
  13044.  this clause, rather than in the Languages clause 4.1, because it is so
  13045.  closely related to the command interface.
  13046.  
  13047.  
  13048.  4.9.4.3  Interapplication Entity Services
  13049.  
  13050.  These services enable remote users and applications to access and execute
  13051.  a system's command interfaces as if they were directly connected to that
  13052.  system.  The major categories of interapplication entity services include
  13053.  the following:
  13054.  
  13055.      - Login and use hosts on a network as if the users logging-in were
  13056.        directly connected to the local terminal
  13057.  
  13058.  
  13059.                Copyright c 1991 IEEE.  All rights reserved.
  13060.       This is an unapproved IEEE Standards Draft, subject to change.
  13061.  
  13062.  
  13063.  
  13064.  
  13065.  
  13066.  178                              4 POSIX Open System Environment Services
  13067.  
  13068.  
  13069.  
  13070.  
  13071.  
  13072.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13073.  
  13074.      - Remotely execute a system's shell commands as if the user were
  13075.        directly connected to a local terminal
  13076.  
  13077.      - Copy files between hosts without going through a network file
  13078.        transfer program
  13079.  
  13080.      - Find out who else is logged into the machines on a local-area
  13081.        network
  13082.  
  13083.      - Query the status and uptime of all machines on a local-area
  13084.        network.
  13085.  
  13086.  
  13087.  4.9.5  Standards, Specifications, and Gaps
  13088.  
  13089.  There are currently no formal standards for command interfaces.  There
  13090.  are, however, several command-interface standards-development activities
  13091.  underway.  In addition, there are several consortia-defined
  13092.  specifications and de facto specification standards for commands, shell,
  13093.  and utilities services and interfaces.
  13094.  
  13095.  Table 4-10 summarizes the shell and utilities standards and
  13096.  specifications and work in progress.
  13097.  
  13098.  
  13099.           Table 4-10  -  Shell and Utilities Standards Activities
  13100.  __________________________________________________________________________________________________________________________________________________
  13101.                Service                    Specification       Subclause
  13102.    ____________________________________________________________________
  13103.  
  13104.    Shell and Utilities                IEEE POSIX.2 {_r_e_f}      4.9.5.?
  13105.  
  13106.    User Portability Extension (UPE)   IEEE POSIX.2a {_r_e_f}     4.9.5.?
  13107.  
  13108.    Shell, Utilities, and UPE          X/Open XPG 4.9.5.?
  13109.                                       OSF OSF/1
  13110.                                       System V: 1989 SVID
  13111.                                       Berkeley BSD 4.x UNIX
  13112.  __________________________________________________________________________________________________________________________________________________
  13113.  
  13114.  
  13115.  4.9.5.1  Current Standards
  13116.  
  13117.  4.9.5.1.1  International and National Standards
  13118.  
  13119.  There are no currently completed or approved international or national
  13120.  standards for commands and utilities.
  13121.  
  13122.  
  13123.  
  13124.  
  13125.                Copyright c 1991 IEEE.  All rights reserved.
  13126.       This is an unapproved IEEE Standards Draft, subject to change.
  13127.  
  13128.  
  13129.  
  13130.  
  13131.  
  13132.  4.9 User Command Interface Services                                   179
  13133.  
  13134.  
  13135.  
  13136.  
  13137.  
  13138.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13139.  
  13140.  4.9.5.2  Emerging Standards
  13141.  
  13142.  4.9.5.2.1  International and Other Formal Standards
  13143.  
  13144.  When completed, the IEEE POSIX.2 {_r_e_f} standard will define a source code
  13145.  interface to command interpretation or shell services and common utility
  13146.  programs for application programs.  These services and programs are
  13147.  complementary to those specified by POSIX.1 {2}.
  13148.  
  13149.  The IEEE POSIX.2a {_r_e_f} User Portability Extension will supplement
  13150.  POSIX.2 {_r_e_f} by extending the specifications to promote the portability
  13151.  of users and programmers, in addition to applications, across conforming
  13152.  systems.  Toward this end, the POSIX.2a {_r_e_f} specifications expand the
  13153.  number and type of utilities specified, and enhance the features of a
  13154.  number of POSIX.2-specified utilities, to provide a consistent
  13155.  interactive environment.  The consistent interactive environment does not
  13156.  include emerging technologies such as graphical user interfaces, which
  13157.  are under development by different standards groups.
  13158.  
  13159.  Parts of POSIX.2 {_r_e_f} go beyond the current service requirements and
  13160.  include a number of software development and debugging commands and
  13161.  utilities services.  These are included in the POSIX.2 specification
  13162.  because of the traditional development orientation of UNIX systems.
  13163.  These software development and debugging services are not included in
  13164.  this clause because this clause includes more general and universal
  13165.  services, such as copying a file and reading a directory.
  13166.  
  13167.  Although the POSIX.2 {_r_e_f} and POSIX.2a {_r_e_f} specifications are still in
  13168.  draft stages, they are relatively complete, and portions of the emerging
  13169.  standard are believed to be mature and stable.
  13170.  
  13171.  When the commands, shell, and utilities specifications are completed and
  13172.  approved, the resulting IEEE POSIX.2 {_r_e_f} and POSIX.2a {_r_e_f} standards
  13173.  will be submitted to ISO/IEC JTC1 for adoption as international
  13174.  standards.  At that time, POSIX.2 and POSIX.2a will be combined into a
  13175.  single integrated international standard (ISO/IEC 9945-2).
  13176.  
  13177.  
  13178.  4.9.5.3  Gaps in Available Standards
  13179.  
  13180.  There are no formal interapplication standards that address the remote
  13181.  access and execution of a system's command interfaces.  The Berkeley BSD
  13182.  UNIX de facto standard addresses all these service requirements, however.
  13183.  
  13184.  
  13185.  
  13186.  
  13187.  
  13188.  
  13189.  
  13190.  
  13191.                Copyright c 1991 IEEE.  All rights reserved.
  13192.       This is an unapproved IEEE Standards Draft, subject to change.
  13193.  
  13194.  
  13195.  
  13196.  
  13197.  
  13198.  180                              4 POSIX Open System Environment Services
  13199.  
  13200.  
  13201.  
  13202.  
  13203.  
  13204.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13205.  
  13206.  4.9.5.3.1  Public Specifications
  13207.  
  13208.  Public specifications that include the POSIX.2 {_r_e_f} and POSIX.2a {_r_e_f},
  13209.  and go beyond these standards to also include the traditional UNIX-based
  13210.  command interfaces for software development, system administration, the
  13211.  UUCP (UNIX-to-UNIX Communications Protocol) utilities, and parts of the
  13212.  POSIX.4 realtime extensions are available from a number of organizations.
  13213.  These include:
  13214.  
  13215.      - X/Open's XPG3 specifications, Volume 1 and part of Volume 3
  13216.  
  13217.      - OSF's OSF/1 Application Environment Specifications (AES), software
  13218.        documentation, and software
  13219.  
  13220.      - University of California at Berkeley BSD UNIX
  13221.  
  13222.      - AT&T System V Interface Definition (SVID) and System V UNIX.
  13223.  
  13224.  
  13225.  4.9.6  POSIX OSE Cross-Category Services
  13226.  
  13227.  
  13228.  4.9.6.1  Internationalization
  13229.  
  13230.  The ANSI C, IEEE POSIX.1, and IEEE POSIX.2 specifications contain limited
  13231.  capabilities for obtaining and defining locale-specific information.  In
  13232.  addition, some of the utilities described in the POSIX.2 specifications
  13233.  contain requirements for standardized multilingual and multicultural
  13234.  support (e.g., localization requirements such as date formats and
  13235.  collation sequences, and support for international character sets).
  13236.  
  13237.  
  13238.  4.9.7  Related Standards
  13239.  
  13240.  Several standards activities are in progress to address additional
  13241.  commands interfaces that are traditionally included in UNIX and UNIX-like
  13242.  systems.  The following standards are examples:
  13243.  
  13244.      - IEEE 1003.4 Realtime Extensions for POSIX
  13245.  
  13246.      - IEEE 1003.7 POSIX System Administration Extensions
  13247.  
  13248.      - IEEE 1003.18 Platform Environment Profile (PEP) standard, which
  13249.        identifies and combines the standards dealing with POSIX.1,
  13250.        POSIX.2, POSIX.2a, and the related standards
  13251.  
  13252.  
  13253.  
  13254.  
  13255.  
  13256.  
  13257.                Copyright c 1991 IEEE.  All rights reserved.
  13258.       This is an unapproved IEEE Standards Draft, subject to change.
  13259.  
  13260.  
  13261.  
  13262.  
  13263.  
  13264.  4.9 User Command Interface Services                                   181
  13265.  
  13266.  
  13267.  
  13268.  
  13269.  
  13270.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13271.  
  13272.  4.9.8  Open Issues
  13273.  
  13274.  _C_o_n_f_o_r_m_a_n_c_e__T_e_s_t_i_n_g
  13275.  
  13276.  Command interface standards must address conformance testing.  Although
  13277.  the POSIX.2 standard is still in a draft stage, work has already begun in
  13278.  the IEEE 1003.3.2 Conformance Test Methods Group to define test
  13279.  assertions for the POSIX.2 standard.
  13280.  
  13281.  _U_U_C_P
  13282.  
  13283.  The UUCP (UNIX-to-UNIX Copy Protocol) services and commands, for
  13284.  electronic mail and file copying, which are traditionally included in
  13285.  UNIX and UNIX-like systems are not addressed by any standards effort.
  13286.  Among other reasons, UUCP is not currently being addressed because of the
  13287.  inability of the POSIX groups to decide whether the UUCP services and
  13288.  commands should be standardized in the POSIX.2 Group (since UUCP is a
  13289.  traditional UNIX service with traditional command interfaces) or in the
  13290.  networking groups (since UUCP is an electronic mail and file copying
  13291.  facility that works on networks).
  13292.  
  13293.  
  13294.  
  13295.  
  13296.  
  13297.  
  13298.  
  13299.  
  13300.  
  13301.  
  13302.  
  13303.  
  13304.  
  13305.  
  13306.  
  13307.  
  13308.  
  13309.  
  13310.  
  13311.  
  13312.  
  13313.  
  13314.  
  13315.  
  13316.  
  13317.  
  13318.  
  13319.  
  13320.  
  13321.  
  13322.  
  13323.                Copyright c 1991 IEEE.  All rights reserved.
  13324.       This is an unapproved IEEE Standards Draft, subject to change.
  13325.  
  13326.  
  13327.  
  13328.  
  13329.  
  13330.  182                              4 POSIX Open System Environment Services
  13331.  
  13332.  
  13333.  
  13334.  
  13335.  
  13336.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13337.  
  13338.  4.10  Transaction Processing Services                                      d
  13339.  
  13340.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  13341.  
  13342.  _B_a_s_e_d _o_n _i_n_p_u_t _c_r_e_a_t_e_d _b_y _C_a_r_l _H_a_l_l _o_f _P_1_0_0_3._1_1, _w_i_t_h _c_o_n_t_r_i_b_u_t_i_o_n_s _f_r_o_m
  13343.  _J_e_r_e_m_y _D_e_n_n_y, _J_o_h_n _P_e_n_n_y, _P_a_t_r_i_c_k _P_r_a_n_g_e, _a_n_d _J_e_f_f _D_e_M_e_n_t _R_e_v_i_s_e_d _i_n       _d
  13344.  _D_r_a_f_t _1_3 _w_i_t_h _i_n_p_u_t _f_r_o_m _D_o_r_m _F_u_l_t_o_n _o_f _P_1_0_0_3._1_1.                          _d
  13345.  
  13346.  
  13347.  4.10.1  Overview and Rationale
  13348.  
  13349.  The database management clause (see 4.4) described some transaction
  13350.  processing service requirements (specific to databases).  This clause      d
  13351.  describes the complete set of transaction processing services from the     d
  13352.  application software point of view.  Note that transaction processing      d
  13353.  services have long been been regarded, variously, to be within the domain  d
  13354.  of databases or within the domain of operating systems, and more recently  d
  13355.  within the domain of interconnect.  These services are more broadly        d
  13356.  applicable and so are treated here as a separate clause.                   d
  13357.  
  13358.  Transactions (``units of work'') have boundaries (start points and end     d
  13359.  points) that are determined by the action of the transaction application   d
  13360.  program.  The transaction application program can request to either        d
  13361.  commit or rollback the work done in the transaction when it identifies     d
  13362.  the end point.  The system will complete a commit operation only if all
  13363.  operations performed during the transaction can complete successfully.
  13364.  Otherwise the system will abort the transaction (rollback the work done    d
  13365.  by it) and notify the transaction application program of this action.      d
  13366.  
  13367.                                                                             d
  13368.  
  13369.  The following is quoted with a few editorial changes from ISO/IEC DP
  13370.  10026-1 {_r_e_f}, the ISO Distributed Transaction Processing standard draft:
  13371.  
  13372.        A transaction is characterized by four properties:
  13373.        atomicity, consistency, isolation, and durability.  These are
  13374.        the _A_C_I_D properties.
  13375.  
  13376.        Atomicity implies that the operations of a unit of work are
  13377.        either all performed, or none of them are performed.
  13378.  
  13379.        Consistency implies that the operations of a unit of work, if
  13380.        performed at all, are performed accurately, correctly, and
  13381.        with validity, with respect to application semantics.
  13382.  
  13383.        Isolation implies that the partial results of a unit of work
  13384.        are not accessible, except by operations which are part of
  13385.        the unit of work.  Isolation also implies that units of work
  13386.        which share bound data are serializable.
  13387.  
  13388.  
  13389.                Copyright c 1991 IEEE.  All rights reserved.
  13390.       This is an unapproved IEEE Standards Draft, subject to change.
  13391.  
  13392.  
  13393.  
  13394.  
  13395.  
  13396.  4.10 Transaction Processing Services                                  183
  13397.  
  13398.  
  13399.  
  13400.  
  13401.  
  13402.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13403.  
  13404.        Durability implies that all the effects of a completed unit
  13405.        of work are not altered by any sort of failure.
  13406.  
  13407.                                                                             d
  13408.  
  13409.  
  13410.  4.10.2  Scope
  13411.  
  13412.  This clause deals with the transaction processing services needed for a    d
  13413.  large number of styles of transaction processing including the following:  d
  13414.  
  13415.      - Transactional access to a single database manager on a single        d
  13416.        machine                                                              d
  13417.  
  13418.      - Transaction access to nondatabase ``resource managers'' (such as     d
  13419.        the software managing the cash in an automatic teller machine        d
  13420.  
  13421.      - Distributed Databases--databases spanning multiple machines, but     d
  13422.        accessed by application programs as if just a single database        d
  13423.  
  13424.      - Online Transaction Processing (OLTP)--the scheduling of              d
  13425.        ``transaction programs'' based on terminal input with consolidated   d
  13426.        recovery of the database updates and the terminal messages           d
  13427.  
  13428.      - Distributed Transaction Processing (DTP)--different machines         d
  13429.        running multiple application programs with multiple databases,       d
  13430.        using a client/server or conversational application-to-application   d
  13431.        communications paradigm                                              d
  13432.  
  13433.  Note that Transaction Processing Services are used in all of the above     d
  13434.  situations, and others too.                                                d
  13435.  
  13436.  Finally, it should be noted that ``transactions'' are not really           d
  13437.  ``messages,'' but rather ``units of work'' that may encompass multiple     d
  13438.  messages.  Furthermore, while traditionally, ``transaction processing''    d
  13439.  has usually been synonymous with ``OLTP'' where so-called ``immediate      d
  13440.  transactions'' are the norm, other types of transactions are also          d
  13441.  covered:  ``batch transactions'' (where the work is done in the            d
  13442.  ``background'') and ``deferred transactions'' where there may be a time    d
  13443.  dependence on the transaction, such as a fixed start time.                 d
  13444.  
  13445.  This clause addresses the current work in progress in groups such as ISO
  13446.  and others.
  13447.  
  13448.  
  13449.  
  13450.  
  13451.  
  13452.  
  13453.  
  13454.  
  13455.                Copyright c 1991 IEEE.  All rights reserved.
  13456.       This is an unapproved IEEE Standards Draft, subject to change.
  13457.  
  13458.  
  13459.  
  13460.  
  13461.  
  13462.  184                              4 POSIX Open System Environment Services
  13463.  
  13464.  
  13465.  
  13466.  
  13467.  
  13468.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13469.  
  13470.  4.10.3  Reference Model
  13471.  
  13472.  This subclause addresses the conventional Transaction Processing
  13473.  Reference Model, the POSIX OSE Reference Model (incorporating transaction  d
  13474.  processing considerations), and other important real world considerations  d
  13475.  introduced by Transaction Processing.                                      d
  13476.  
  13477.  
  13478.  4.10.3.1  Conventional Transaction Processing Reference Model              d
  13479.  
  13480.  A model for transaction processing is developed here to complement the
  13481.  POSIX system model.  Current work in progress by the POSIX.11 Transaction
  13482.  Processing Working Group and other groups such as ISO/IEC JTC 1/SC21 Open
  13483.  Systems Interconnection--Distributed Transaction Processing may result in
  13484.  a Transaction Processing Reference Model more suitable than the one
  13485.  developed here.  At that time, such a model will be referenced and
  13486.  incorporated into the POSIX OSE reference model.  Until that time, the
  13487.  current model will be used as a convenient means for describing the
  13488.  services needed in this domain.
  13489.  
  13490.  While transaction processing services have usually been thought of as      d
  13491.  applying to databases, the applicability goes further.  Nonetheless, the   d
  13492.  description given here of the transaction processing model shows how the   d
  13493.  transaction processing program can view the transaction services as an     d
  13494.  extension of the the Database view of the POSIX OSE reference model as     d
  13495.  shown in Figure 4-11.  From the transaction application program point of
  13496.  view, a transaction processing system has additional capabilities that go
  13497.  beyond those provided by database systems.  These services to the
  13498.  transaction application program are provided at an API that is called the  d
  13499.  _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r _A_P_I.  (See Figure 4-20.)  For convenience in           d
  13500.  discussing the model, the provider of those services is called the
  13501.  _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r (TM).
  13502.  
  13503.  The transaction application program requests services provided by the _T_P   d
  13504.  _r_e_s_o_u_r_c_e _m_a_n_a_g_e_r (e.g., a database manager) via the _T_P _r_e_s_o_u_r_c_e _m_a_n_a_g_e_r    d
  13505.  _A_P_I.  The transaction manager API and the TP resource manager API are      d
  13506.  called the _t_r_a_n_s_a_c_t_i_o_n _s_e_r_v_i_c_e_s _A_P_I and provide all the services needed    d
  13507.  by transaction application programs.                                       d
  13508.  
  13509.  The ACID properties are maintained for each managed resource by a _T_P
  13510.  _R_e_s_o_u_r_c_e _M_a_n_a_g_e_r (_T_P_R_M), coordinated by a _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r.  The
  13511.  interface between the TP Resource Manager and the Transaction Manager
  13512.  will be called the _T_r_a_n_s_a_c_t_i_o_n _M_a_n_a_g_e_r/_T_P _R_e_s_o_u_r_c_e _M_a_n_a_g_e_r _S_I_I (_T_M/_T_P_R_M
  13513.  _S_I_I).
  13514.  
  13515.  The ACID properties can be applied not only to resources such as
  13516.  databases, but also to other resources that might not be obvious.  For
  13517.  instance, a transaction that dispenses cash may wait until the cash
  13518.  dispensing machine has signaled completion before considering the
  13519.  transaction complete and updating involved accounts.  This illustration
  13520.  
  13521.                Copyright c 1991 IEEE.  All rights reserved.
  13522.       This is an unapproved IEEE Standards Draft, subject to change.
  13523.  
  13524.  
  13525.  
  13526.  
  13527.  
  13528.  4.10 Transaction Processing Services                                  185
  13529.  
  13530.  
  13531.  
  13532.  
  13533.  
  13534.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13535.  
  13536.  _________________________________________________________________________
  13537.  
  13538.  
  13539.  
  13540.  
  13541.  
  13542.  
  13543.  
  13544.  
  13545.  
  13546.  
  13547.  
  13548.  
  13549.  
  13550.  
  13551.  
  13552.  
  13553.  _________________________________________________________________________
  13554.        Figure 4-20  -  The Conventional Transaction Processing Model        d
  13555.  
  13556.  
  13557.  also shows the limits of transaction processing resource management.  The  d
  13558.  machine could signal completion, but a mechanical problem could prevent
  13559.  the cash from being dispensed correctly, undetected by the system.
  13560.  
  13561.  Besides database TPRMs and miscellaneous nondatabase TPRMs, a third class  d
  13562.  of of TPRMs exist:  Communications TPRMs (cTPRM).  Services provided by    d
  13563.  cTPRMs are used when two cooperating transaction application programs      d
  13564.  need to communicate with each other in the context of the same             d
  13565.  transaction.  At least two communications paradigms have been identified   d
  13566.  as beneficial to cooperating transaction applications programs:            d
  13567.  client/server (RPC, single request/response) and conversational (peer-     d
  13568.  to-peer, dialog).                                                          d
  13569.  
  13570.  
  13571.  4.10.3.2  POSIX OSE Reference Model (with Transaction Processing)
  13572.  
  13573.  The conventional transaction processing model is shown integrated into     d
  13574.  the POSIX OSE Reference Model in Figure 4-21.  Because the POSIX OSE
  13575.  Reference Model does not address System Integration Interfaces (SIIs) per
  13576.  se, they are not shown in the integrated model.  What is shown are the     d
  13577.  transaction processing services APIs and EEIs.                             d
  13578.  
  13579.                                                                             d
  13580.  
  13581.  
  13582.  
  13583.  
  13584.  
  13585.  
  13586.  
  13587.                Copyright c 1991 IEEE.  All rights reserved.
  13588.       This is an unapproved IEEE Standards Draft, subject to change.
  13589.  
  13590.  
  13591.  
  13592.  
  13593.  
  13594.  186                              4 POSIX Open System Environment Services
  13595.  
  13596.  
  13597.  
  13598.  
  13599.  
  13600.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13601.  
  13602.  _________________________________________________________________________
  13603.  
  13604.  
  13605.  
  13606.  
  13607.  
  13608.  
  13609.  
  13610.  
  13611.  
  13612.  
  13613.  
  13614.  
  13615.  
  13616.  
  13617.  
  13618.  
  13619.  
  13620.  
  13621.  
  13622.  
  13623.  
  13624.  
  13625.  
  13626.  
  13627.  
  13628.  
  13629.  
  13630.  
  13631.  
  13632.  
  13633.  _________________________________________________________________________
  13634.    Figure 4-21  -  The POSIX OSE Transaction Processing Reference Model     d
  13635.  
  13636.  
  13637.  4.10.3.3  Real World Considerations
  13638.  
  13639.  The POSIX OSE Reference Model does not provide for a way to expose the
  13640.  details of the Application Platform.  In the Transaction Processing
  13641.  world, as shown in the conventional Transaction Processing Reference
  13642.  Model (see 4.10.3.1), the existence of Transaction Managers and multiple
  13643.  TP Resource Managers connected by the TM/TPRM SII is important.  One way   d
  13644.  to think about the real world implications of this is that TP Resource     d
  13645.  Managers and the Transaction Managers could both be implemented in the     d
  13646.  Application Platform as separate entities, connected to each other by the  d
  13647.  TM/TPRM SII.  This does not, however, imply that the two must be           d
  13648.  implemented as separate entities, though there are advantages to the user  d
  13649.  if they are separate.                                                      d
  13650.  
  13651.  
  13652.  
  13653.                Copyright c 1991 IEEE.  All rights reserved.
  13654.       This is an unapproved IEEE Standards Draft, subject to change.
  13655.  
  13656.  
  13657.  
  13658.  
  13659.  
  13660.  4.10 Transaction Processing Services                                  187
  13661.  
  13662.  
  13663.  
  13664.  
  13665.  
  13666.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13667.  
  13668.  4.10.4  Service Requirements
  13669.  
  13670.  Services provided via the Transaction Processing Services API are          d
  13671.  described in 4.10.4.1.  Services to enable the distribution of             d
  13672.  transaction processing are described in 4.10.4.2.  General services,
  13673.  mostly performing administrative functions, are described in 4.10.4.4.     d
  13674.  Services provided across the TM/TPRM SII are briefly described in          d
  13675.  4.10.4.5.                                                                  d
  13676.  
  13677.  
  13678.  4.10.4.1  Application Program Interface Services
  13679.  
  13680.  This subclause describes the major categories of services available at     d
  13681.  the POSIX API.                                                             d
  13682.  
  13683.  The Transaction Services API provides various services to the application  d
  13684.  programmer:                                                                d
  13685.  
  13686.     Transaction Demarcation                                                 d
  13687.        Ability to indicate the start of a transaction.                      d
  13688.  
  13689.        Ability to indicate a transaction has ended successfully (commit)    d
  13690.        or unsuccessfully (rollback).                                        d
  13691.  
  13692.        Ability to indicate the beginning and ending of nested               d
  13693.        ``subtransactions'' whose commitment is independent of the ``parent  d
  13694.        transaction''.  (Nested within a parent transaction can be multiple  d
  13695.        subtransactions.  Subtransactions are independent of each other,     d
  13696.        and whether subtransactions commit or not does not affect the        d
  13697.        commitment of the parent.)                                           d
  13698.  
  13699.        The ability to suspend and resume transaction mode (to do work       d
  13700.        which is not be committed or rolled back when the transaction is     d
  13701.        completed).  This can be thought of as nesting nontransaction work   d
  13702.        within a transaction.                                                d
  13703.  
  13704.        Ability to explicitly include or exclude items from a transaction.   d
  13705.        _R_J_G:  _P_O--_t_h_i_s _w_a_s _y_o_u_r_s.  _I_s_n'_t _t_h_i_s _r_e_a_l_l_y _t_h_e _a_b_o_v_e _n_e_s_t_i_n_g       d
  13706.        _i_t_e_m?                                                                d
  13707.  
  13708.     Communications Between Transaction Application Programs                 d
  13709.        Ability to call another transaction application program (possibly    d
  13710.        remote) within the context of a transaction.                         d
  13711.  
  13712.        Ability to open a dialog and send and receive ``messages'' to and    d
  13713.        from another transaction application program (possibly remote)       d
  13714.        within the context of a transaction.                                 d
  13715.  
  13716.  
  13717.  
  13718.  
  13719.                Copyright c 1991 IEEE.  All rights reserved.
  13720.       This is an unapproved IEEE Standards Draft, subject to change.
  13721.  
  13722.  
  13723.  
  13724.  
  13725.  
  13726.  188                              4 POSIX Open System Environment Services
  13727.  
  13728.  
  13729.  
  13730.  
  13731.  
  13732.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13733.  
  13734.        NOTE:  The above services provide ``Distributed Transaction          d
  13735.        Processing.''  The above services often go by shorthand names such   d
  13736.        as ``Remote Procedure Call (RPC),'' ``Single Request/Response,'' or  d
  13737.        ``Client/Server,'' in the first case, and ``Dialogs,''               d
  13738.        ``Conversations,'' or ``Peer-to-Peer'' in the second case.           d
  13739.  
  13740.  
  13741.     Terminal Communications                                                 d
  13742.        Ability to send and receive messages to and from terminals within    d
  13743.        the context of a transaction (i.e., messages sent to terminals are   d
  13744.        not to be actually delivered unless the transaction commits.         d
  13745.  
  13746.     Transaction Program Scheduling                                          d
  13747.        Ability to cause to be started another transaction application       d
  13748.        program outside of the context of this transaction.  Involved here   d
  13749.        are two transactions:  one starts the other.  The actual scheduling  d
  13750.        of the second transaction can be dependent on the completion or not  d
  13751.        of the original transaction.                                         d
  13752.  
  13753.     Transaction Message Queuing                                             d
  13754.        Ability to define a ``message'' (based, possibly, on screen input    d
  13755.        from the end user) that, from the application point of view,         d
  13756.        precisely defines a unit of work to be done by this transaction or   d
  13757.        another transaction.                                                 d
  13758.  
  13759.        Ability to ``send'' a message to another transaction application     d
  13760.        program.                                                             d
  13761.  
  13762.        Ability to retrieve the next message (and then act upon it)          d
  13763.  
  13764.        Ability to prioritize and associate start times with messages        d
  13765.  
  13766.        NOTE:  The actual handling of messages can be dependent on the       d
  13767.        completion or not of the original transaction.                       d
  13768.  
  13769.  
  13770.  NOTE:  Several of the above services are similar to but semantically       d
  13771.  different from similar sounding services in other clauses of this          d
  13772.  section.  They are listed here because they are ``transactional''; i.e.,   d
  13773.  the concept of a transaction and the ACID properties are provided by       d
  13774.  these services.                                                            d
  13775.  
  13776.  
  13777.  TP Resource Managers provide services usable by the transaction
  13778.  application program and are made visible by the TP Resource Manager API.
  13779.  An example of this is the Database API covered earlier in this document.
  13780.  NOTE:  TP Resource Managers, in general, ``protect'' a critical resource.
  13781.  Databases are good examples of TP resource managers where the resource
  13782.  actually being protected is the data, for example, of an enterprise.
  13783.  
  13784.  
  13785.                Copyright c 1991 IEEE.  All rights reserved.
  13786.       This is an unapproved IEEE Standards Draft, subject to change.
  13787.  
  13788.  
  13789.  
  13790.  
  13791.  
  13792.  4.10 Transaction Processing Services                                  189
  13793.  
  13794.  
  13795.  
  13796.  
  13797.  
  13798.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13799.  
  13800.  Often the data of an enterprise reflects the amount of a real resource
  13801.  such as cash holdings.  In this case a tangible resource is indirectly
  13802.  protected by a TP resource manager.  The importance to the enterprise in
  13803.  insuring that the data (quantifying money) is accurate, should be
  13804.  obvious.  Other TP resource managers, on the other hand, could protect an
  13805.  actual, tangible resource.  An example of such a TP resource manager is
  13806.  the program that controls the cash drawer of an automated teller machine.
  13807.  The resource protected is the cash in the drawer.  The actual application
  13808.  program interface of the TP resource manager protecting that resource
  13809.  could include the ability to reduce the amount of money in the drawer (by
  13810.  pushing it out of the machine).  A transaction application program using
  13811.  two TP resource managers (a conventional database manager that keeps
  13812.  track of the balance in accounts, and the teller machine's cash drawer TP
  13813.  resource manager) would want to insure that the two TP resource managers
  13814.  decrement both the cash and the balance of the correct account in the
  13815.  context of a single transaction (i.e., with the ACID properties.)
  13816.  
  13817.  The TP Resource Manager API, then, generally provides the following
  13818.  services:
  13819.  
  13820.      (1)  Ability to increment or decrement a valuable resource by a
  13821.           certain amount.
  13822.  
  13823.      (2)  Ability to determine the amount of a valuable resource that
  13824.           remains.
  13825.  
  13826.  Specific capabilities for the very wide variety of specific TP resource
  13827.  managers, cannot, of course, be documented here.
  13828.  
  13829.                                                                             d
  13830.  
  13831.  4.10.4.2  External Environment Interface Services
  13832.  
  13833.  When two or more machines are involved in the same transaction, the        d
  13834.  following service is required:                                             d
  13835.  
  13836.      - The ability for two application platforms to interoperate with each  d
  13837.        other (pass along global transaction identifiers, participate with
  13838.        each other in commitment process, participate with each other in
  13839.        recovery).
  13840.  
  13841.  
  13842.  4.10.4.3  Interapplication Software Entity Services
  13843.  
  13844.  
  13845.  
  13846.  
  13847.  
  13848.  
  13849.  
  13850.  
  13851.                Copyright c 1991 IEEE.  All rights reserved.
  13852.       This is an unapproved IEEE Standards Draft, subject to change.
  13853.  
  13854.  
  13855.  
  13856.  
  13857.  
  13858.  190                              4 POSIX Open System Environment Services
  13859.  
  13860.  
  13861.  
  13862.  
  13863.  
  13864.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13865.  
  13866.  4.10.4.4  OLTP Resource Management Services
  13867.  
  13868.  The services listed in this subclause are not provided by application
  13869.  program interfaces or external environment interfaces.                     d
  13870.  
  13871.      - Management Services -- Ability to control the operation of the       d
  13872.        transaction processing services, including the ability to assign     d
  13873.        dispatching priorities to individual transaction application         d
  13874.        programs.                                                            d
  13875.  
  13876.      - Monitoring Services -- Ability to collect data on resource
  13877.        utilization for purposes such as performance analysis and
  13878.        accounting (data on utilization of the transaction processing        d
  13879.        services resources:  processes, connection pools, ...).              d
  13880.  
  13881.      - Modeling Services -- Ability to predict the system resources needed  d
  13882.        to process a given transaction processing workload.                  d
  13883.  
  13884.      - Directory/Namespace Services -- Ability to map names to addresses.
  13885.  
  13886.      - Recovery/Restart Services -- Ability to recover and restart          d
  13887.        transactions involving one or more transaction application programs  d
  13888.        using one or more TP Resource Managers.                              d
  13889.  
  13890.      - Test Services -- Ability to automatically generate tests for         d
  13891.        workload simulation, etc.                                            d
  13892.  
  13893.      - System Configuration Services -- Ability to replace or add           d
  13894.        transaction application programs without the need to shut down the   d
  13895.        execution environment.                                               d
  13896.  
  13897.  
  13898.  4.10.4.5  Services Provided at the TM/TPRM SII
  13899.  
  13900.  _H_L_J:  _R_J_G _a_s_k_e_d _f_o_r _t_h_i_s _t_o _b_e _a_n ``_i_n_f_o_r_m_a_t_i_v_e _s_u_b_c_l_a_u_s_e.''  _T_h_e _o_n_l_y     d
  13901.  _w_a_y _t_o _d_o _t_h_a_t _i_s _t_o _m_a_k_e _i_t _a _N_O_T_E:                                       d
  13902.  
  13903.  NOTE:  For application portability it is not required that the             d
  13904.  application platform actually consist of Transaction Managers and TP       d
  13905.  Resource Managers, but in the new age of Open Systems, there are clear     d
  13906.  advantages in doing so.  Two advantages seem obvious:  the ability to      d
  13907.  ``mix and match'' Transaction Managers and TP Resource Managers from       d
  13908.  different vendors; and the ability of a user to construct his/her own TP   d
  13909.  Resource Manager to manage particular critical resources.  A market has    d
  13910.  already developed for ``plug compatible'' TMs and TPRMs.  All TPRMs at     d
  13911.  this printing are Database type TPRMs.  It is expected that a market will  d
  13912.  also develop for Communications type TPRMs.  It is not at all clear that   d
  13913.  the industry will develop other types of widely applicable TPRMs, thus     d
  13914.  forcing users to develop their own.  Users could use the interface         d
  13915.  
  13916.  
  13917.                Copyright c 1991 IEEE.  All rights reserved.
  13918.       This is an unapproved IEEE Standards Draft, subject to change.
  13919.  
  13920.  
  13921.  
  13922.  
  13923.  
  13924.  4.10 Transaction Processing Services                                  191
  13925.  
  13926.  
  13927.  
  13928.  
  13929.  
  13930.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  13931.  
  13932.  described here to do such development work.                                d
  13933.  
  13934.  This NOTE very briefly describes the services that should be provided at   d
  13935.  such an interface.                                                         d
  13936.  
  13937.  The TM/TPRM interface must provide the ability of TMs and TPRMs to:        d
  13938.  register with each other; obtain recovery status information; pass along   d
  13939.  transaction identifier information; rollback, prepare to commit, and       d
  13940.  commit the transaction.  The interface must provide for the needs of the   d
  13941.  full range of transaction processing including distributed transaction     d
  13942.  processing with multiple TPRMs.                                            d
  13943.  
  13944.  Finally it should be noted that the industry recognizes the need for       d
  13945.  standardization of components as well as the standardization of            d
  13946.  portability and interoperability.  At least one industry group is          d
  13947.  standardizing and several vendors are implementing products utilizing an   d
  13948.  interface as described here.                                               d
  13949.  
  13950.  
  13951.  
  13952.  4.10.5  Standards, Specifications, and Gaps
  13953.  
  13954.  There are currently three transaction processing standards development
  13955.  activities, either completed or in the draft stage.  Table 4-11
  13956.  summarizes the service requirements provided by the various standards.
  13957.  
  13958.  
  13959.         Table 4-11  -  Transaction Processing Standards Activities
  13960.  __________________________________________________________________________________________________________________________________________________
  13961.  ________S_e_r_v_i_c_e_______________________S_p_e_c_i_f_i_c_a_t_i_o_n_______________S_u_b_c_l_a_u_s_e_
  13962.  
  13963.  Transaction Demarcation        Emerging (P1003.11 {_r_e_f})        4.10.5.?   dd
  13964.  Communications                 Gap                              4.10.5.?   d
  13965.  Terminal Communications        Gap                              4.10.5.?   d
  13966.  Program Scheduling             Gap                              4.10.5.?   d
  13967.  Message Queuing                Gap                              4.10.5.?   d
  13968.  EEI Services                   Emerging (ISO/IEC DIS            4.10.5.?
  13969.                                 10026-1,2,3 {_r_e_f})
  13970.  Management                     Gap                              4.10.5.?   d
  13971.  Monitoring                     Gap                              4.10.5.?   d
  13972.  Modeling                       Gap                              4.10.5.?   d
  13973.  Directory/Namespace            Gap                              4.10.5.?   d
  13974.  Recovery/Restart               Gap                              4.10.5.?   d
  13975.  Test                           Gap                              4.10.5.?   d
  13976.  System Configuration           Gap                              4.10.5.?   d
  13977.  TM/TPRM SI                     Emerging (P1003.11 {_r_e_f})        4.10.5.?   dd
  13978.  __________________________________________________________________________________________________________________________________________________  d
  13979.  
  13980.  
  13981.  
  13982.  
  13983.                Copyright c 1991 IEEE.  All rights reserved.
  13984.       This is an unapproved IEEE Standards Draft, subject to change.
  13985.  
  13986.  
  13987.  
  13988.  
  13989.  
  13990.  192                              4 POSIX Open System Environment Services
  13991.  
  13992.  
  13993.  
  13994.  
  13995.  
  13996.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  13997.  
  13998.  Table 4-12 summarizes the applicability of the various standards to the
  13999.  various programming languages supported by the POSIX Open System
  14000.  Environment.
  14001.  
  14002.  
  14003.      Table 4-12  -  Transaction Processing Standards Language Bindings      d
  14004.  __________________________________________________________________________________________________________________________________________________
  14005.          Standard             N/A   LIS    Ada    APL    BASIC   C    C++
  14006.  ________________________________________________________________________
  14007.  ISO/IEC DIS 10026-1 {_r_e_f}     +o
  14008.  ISO/IEC DIS 10026-2 {_r_e_f}     +o
  14009.  ISO/IEC DIS 10026-3 {_r_e_f}     +o
  14010.  POSIX.11 {_r_e_f}                      +o                           +o
  14011.  
  14012.  ________S_t_a_n_d_a_r_d____________C_O_B_O_L___C_-_L_I_S_P____F_o_r_t_r_a_n___P_a_s_c_a_l___P_L_/_1___P_r_o_l_o_g_   dd
  14013.  ISO/IEC DIS 10026-1 {_r_e_f}                                                  d
  14014.  ISO/IEC DIS 10026-2 {_r_e_f}                                                  d
  14015.  ISO/IEC DIS 10026-3 {_r_e_f}                                                  d
  14016.  POSIX.11 {_r_e_f}                                                             d
  14017.  __________________________________________________________________________________________________________________________________________________  d
  14018.  
  14019.  NOTE:  N/A -- Language bindings are not appropriate for this standard.
  14020.  
  14021.  LIS -- Language-independent specification is available.
  14022.  
  14023.  Ada, APL, BASIC, -- Language-dependent specifications exist.
  14024.  
  14025.  
  14026.  
  14027.  4.10.5.1  Current Standards in the POSIX OSE
  14028.  
  14029.  4.10.5.1.1  International Standards
  14030.  
  14031.  None.                                                                      d
  14032.  
  14033.  4.10.5.1.2  Regional Standards
  14034.  
  14035.  None.                                                                      d
  14036.  
  14037.  4.10.5.1.3  National Standards
  14038.  
  14039.  None.                                                                      d
  14040.  
  14041.  4.10.5.2  Emerging Standards in the POSIX OSE
  14042.  
  14043.  _O_S_I__D_i_s_t_r_i_b_u_t_e_d__T_r_a_n_s_a_c_t_i_o_n__P_r_o_c_e_s_s_i_n_g__(_D_T_P_)
  14044.  
  14045.  
  14046.  
  14047.  
  14048.  
  14049.                Copyright c 1991 IEEE.  All rights reserved.
  14050.       This is an unapproved IEEE Standards Draft, subject to change.
  14051.  
  14052.  
  14053.  
  14054.  
  14055.  
  14056.  4.10 Transaction Processing Services                                  193
  14057.  
  14058.  
  14059.  
  14060.  
  14061.  
  14062.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14063.  
  14064.        ISO/IEC DIS 10026-1 {_r_e_f}
  14065.        ISO/IEC DIS 10026-2 {_r_e_f}
  14066.        ISO/IEC DIS 10026-3 {_r_e_f}
  14067.  
  14068.  These standards, developed by ISO/IEC JTC 1/SC21/WG5, deal expressly with
  14069.  the OSI services and protocols for transaction mode communications in an
  14070.  OSI environment.
  14071.  
  14072.  These standards provide for some of the communications services described  d
  14073.  in 4.10.4.1.                                                               d
  14074.  
  14075.  _P_O_S_I_X_._1_1__P_O_S_I_X__T_r_a_n_s_a_c_t_i_o_n__P_r_o_c_e_s_s_i_n_g
  14076.  
  14077.        POSIX.11 {_r_e_f}
  14078.  
  14079.  The POSIX.11 working group, formed in 1989, is chartered to work on a
  14080.  profile for Transaction Processing within the POSIX OSE.  In the process
  14081.  of developing that profile, it has identified a number of gaps in the
  14082.  standards coverage and is in the process of proposing base
  14083.  standardization activities to address those gaps.  Specifically, P1003.11
  14084.  is currently working on the following services identified earlier:
  14085.  
  14086.      - Transaction Manager (TM) Services provided at the Transaction API.
  14087.  
  14088.      - Services provided at the Transaction Manager/TP Resource Manager
  14089.        (TM/TPRM) SII.  A typical TPRM is a database manager (e.g., SQL).
  14090.  
  14091.  _R_J_G:  _T_h_e _a_b_o_v_e _l_i_s_t _s_h_o_u_l_d _b_e _a_d_j_u_s_t_e_d _l_a_t_e_r _t_o _r_e_f_l_e_c_t _t_h_e _t_h_e_n _c_u_r_r_e_n_t
  14092.  _s_t_a_t_e _o_f ._1_1'_s _a_c_t_i_v_i_t_i_e_s (_i_n _t_e_r_m_s _o_f _a_p_p_r_o_v_e_d _P_A_R_s.)  _I_f _n_o _P_A_R _i_s       _d
  14093.  _a_p_p_r_o_v_e_d _b_y _t_h_e _b_e_g_i_n_n_i_n_g _o_f _f_o_r_m_a_l _b_a_l_l_o_t, _I'_l_l _f_i_x _t_h_i_s _p_r_o_s_e _a_n_d _m_o_v_e   _d
  14094.  _i_t _t_o _t_h_e _G_a_p _s_e_c_t_i_o_n.                                                     _d
  14095.  
  14096.  POSIX.11 is working to assure that POSIX Transaction Processing work is
  14097.  consistent with the emerging work of OSI DTP (cited above), certain
  14098.  ongoing work of X/Open TP, several related POSIX activities (POSIX.1 {2},
  14099.  POSIX.4 {_r_e_f}, POSIX.8 {_r_e_f}) and the work of ANSI X3T5.5 (RPC).
  14100.  
  14101.  
  14102.  4.10.5.3  Gaps in Available Standards
  14103.  
  14104.  4.10.5.3.1  Standards/Specifications Outside the POSIX OSE
  14105.  
  14106.  Existing standards and emerging standards do not adequately address all
  14107.  the requirements identified earlier.  While POSIX.11 is addressing some
  14108.  of the gaps, there are many other gaps still not being addressed by
  14109.  formal standards committees.  Most notable is the work of X/Open TP.
  14110.  While not formally a standards making body, it is addressing most of the
  14111.  gaps, and its output will be potentially useful as the basis of a formal
  14112.  standard.
  14113.  
  14114.  
  14115.                Copyright c 1991 IEEE.  All rights reserved.
  14116.       This is an unapproved IEEE Standards Draft, subject to change.
  14117.  
  14118.  
  14119.  
  14120.  
  14121.  
  14122.  194                              4 POSIX Open System Environment Services
  14123.  
  14124.  
  14125.  
  14126.  
  14127.  
  14128.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14129.  
  14130.  _X_/_O_p_e_n__T_P
  14131.  
  14132.  This group published an ``Online Transaction Processing Reference Model''
  14133.  in 1987 and in 1990 published ``Preliminary Specification--Distributed
  14134.  Transaction Processing: The XA Specification.''  The group is studying
  14135.  the use of OSI DTP, two-phase commit, and global transaction identifiers.
  14136.  The group is also actively exploring APIs in support of peer-to-peer
  14137.  distributed transactions.
  14138.  
  14139.  The work of this group addresses several of the services addressed in
  14140.  this clause, including transaction demarcation and conversation services.
  14141.  
  14142.  Consideration is also being given to allowing alternative
  14143.  interoperability standards including proprietary mechanisms.  Additional
  14144.  APIs are being defined by X/Open TP to facilitate this.
  14145.  
  14146.  4.10.5.3.2  Unsatisfied Service Requirements
  14147.  
  14148.  Other than the work of X/Open TP, the following areas are not currently    d
  14149.  being addressed by standardization activities:  communications, terminal   d
  14150.  communications, program scheduling, message queueing, management,          d
  14151.  monitoring, modeling, directory/namespace, recovery/restart, test, and     d
  14152.  system configuration.                                                      d
  14153.  
  14154.  
  14155.  4.10.6  OSE Cross-Category Services
  14156.  
  14157.  Not applicable.                                                            d
  14158.  
  14159.  
  14160.  4.10.7  Related Standards
  14161.  
  14162.  _C_C_R
  14163.  
  14164.  The following standards relating to commitment are related to the ISO/IEC
  14165.  DIS 10026 series and are referenced in DIS 10026:
  14166.  
  14167.        ISO/IEC DIS 9804-3 {_r_e_f}
  14168.        ISO/IEC DIS 9805-3 {_r_e_f}
  14169.  
  14170.  See 4.3 for more information.
  14171.  
  14172.  _R_e_m_o_t_e__P_r_o_c_e_d_u_r_e__C_a_l_l
  14173.  
  14174.        ECMA-127 {_r_e_f}
  14175.  
  14176.  See 4.3 for more information.
  14177.  
  14178.  
  14179.  
  14180.  
  14181.                Copyright c 1991 IEEE.  All rights reserved.
  14182.       This is an unapproved IEEE Standards Draft, subject to change.
  14183.  
  14184.  
  14185.  
  14186.  
  14187.  
  14188.  4.10 Transaction Processing Services                                  195
  14189.  
  14190.  
  14191.  
  14192.  
  14193.  
  14194.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14195.  
  14196.  _S_Q_L__S_t_a_n_d_a_r_d__D_a_t_a_b_a_s_e__L_a_n_g_u_a_g_e                                             d
  14197.  
  14198.  The following standards for SQL also provide transaction demarcation       d
  14199.  services for relational database access:                                   d
  14200.  
  14201.        ANSI X3.135.1 (ISO 9075, FIPS 127)                                   d
  14202.        ANSI X3.168                                                          d
  14203.  
  14204.  See 4.4                                                                    d
  14205.  
  14206.  
  14207.  4.10.8  Open Issues
  14208.  
  14209.  None.
  14210.  
  14211.  
  14212.  
  14213.  
  14214.  
  14215.  
  14216.  
  14217.  
  14218.  
  14219.  
  14220.  
  14221.  
  14222.  
  14223.  
  14224.  
  14225.  
  14226.  
  14227.  
  14228.  
  14229.  
  14230.  
  14231.  
  14232.  
  14233.  
  14234.  
  14235.  
  14236.  
  14237.  
  14238.  
  14239.  
  14240.  
  14241.  
  14242.  
  14243.  
  14244.  
  14245.  
  14246.  
  14247.                Copyright c 1991 IEEE.  All rights reserved.
  14248.       This is an unapproved IEEE Standards Draft, subject to change.
  14249.  
  14250.  
  14251.  
  14252.  
  14253.  
  14254.  196                              4 POSIX Open System Environment Services
  14255.  
  14256.  
  14257.  
  14258.  
  14259.  
  14260.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14261.  
  14262.  4.11  Software Development Environments
  14263.  
  14264.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d
  14265.  
  14266.  
  14267.  4.11.1  Overview and Rationale
  14268.  
  14269.  Software Development Environments are dealt with as a particular
  14270.  application area needing special attention for the following reasons:
  14271.  
  14272.      - The domain of Software Development Environments is one of prime
  14273.        importance.  Software development is a major area of expenditure
  14274.        for government and large commercial organizations.
  14275.  
  14276.      - The need for standardization is being driven not only by the SDE
  14277.        vendors and users, but also by the Independent tool developers who
  14278.        want to get their tool products on as many vendor platforms as
  14279.        possible.
  14280.  
  14281.      - The SDE domain calls not only for portability, but also for
  14282.        particular integration and interoperability requirements.
  14283.  
  14284.      - The domain is primarily of interest to that user community that has
  14285.        large complex software development requirements, but it is also of
  14286.        interest to all application areas as software development is an
  14287.        enabling technology for all applications.
  14288.  
  14289.  Software engineers seek more powerful assistance to improve productivity
  14290.  and quality in the software development process.  Considered opinion
  14291.  currently favors Project Support Environments (PSE) underpinned in such a
  14292.  way that the facilities are capable of being implemented on different
  14293.  machines.  A PSE needs a base holding information such as specifications,
  14294.  designs, code, schedules, configuration plans, tests, etc., to support
  14295.  the developers.  The interface between the base and the tools must ensure
  14296.  portability of the tools.  Again, these tools will be supported by
  14297.  relevant language standards.
  14298.  
  14299.  Certain design methodologies themselves have been modeled formally to
  14300.  establish their degree of rigor and self-consistency.  Function Point
  14301.  Analysis is one method of measuring software systems and computing
  14302.  productivity that is increasing in use.  It measures inputs, outputs, and
  14303.  entities accessed to determine transaction size; it gauges technical
  14304.  complexity by reference to 19 characteristics.  These are combined to
  14305.  give a measure of systems size.  Productivity is the ratio of system size
  14306.  in function points to the effort required to produce or maintain the
  14307.  system.
  14308.  
  14309.  Generally, software support for the development process is in its infancy
  14310.  and effective metrics have not yet been developed.
  14311.  
  14312.  
  14313.                Copyright c 1991 IEEE.  All rights reserved.
  14314.       This is an unapproved IEEE Standards Draft, subject to change.
  14315.  
  14316.  
  14317.  
  14318.  
  14319.  
  14320.  4.11 Software Development Environments                                197
  14321.  
  14322.  
  14323.  
  14324.  
  14325.  
  14326.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14327.  
  14328.  4.11.2  Scope
  14329.  
  14330.  The problem domain is complex software development, from the generation
  14331.  of an idea to the delivery and ongoing support of a solution product set.
  14332.  
  14333.  Thus, an SDE may include some or all of the following:
  14334.  
  14335.      (1)  Software Development Life Cycle
  14336.  
  14337.            (a)  Requirements analysis
  14338.  
  14339.            (b)  Logical design
  14340.  
  14341.            (c)  Physical design
  14342.  
  14343.            (d)  Functional and interface specification
  14344.  
  14345.      (2)  Activity support
  14346.  
  14347.            (a)  Prototyping
  14348.  
  14349.            (b)  Program development and testing
  14350.  
  14351.            (c)  Quality assurance and regression testing
  14352.  
  14353.            (d)  Generation of user documentation
  14354.  
  14355.            (e)  User training
  14356.  
  14357.            (f)  Problem report tracking and maintenance
  14358.  
  14359.            (g)  Maintenance and tracking of schedules
  14360.  
  14361.      (3)  Configuration Management
  14362.  
  14363.            (a)  Automatic version management
  14364.  
  14365.            (b)  Integrity management
  14366.  
  14367.            (c)  Traceability
  14368.  
  14369.      (4)  Project Management
  14370.  
  14371.      (5)  Data Administration
  14372.  
  14373.            (a)  Access control
  14374.  
  14375.  In the context of developing software for a POSIX Open System
  14376.  Environment, design will take account of portability and interoperability
  14377.  
  14378.  
  14379.                Copyright c 1991 IEEE.  All rights reserved.
  14380.       This is an unapproved IEEE Standards Draft, subject to change.
  14381.  
  14382.  
  14383.  
  14384.  
  14385.  
  14386.  198                              4 POSIX Open System Environment Services
  14387.  
  14388.  
  14389.  
  14390.  
  14391.  
  14392.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14393.  
  14394.  requirements.  The SDE tools themselves should be portable.  The software
  14395.  development activities may be provided with a large set of tools and
  14396.  applications.  The SDE must provide the necessary support for the
  14397.  integration of all of these tools.
  14398.  
  14399.  
  14400.  4.11.3  Reference Model
  14401.  
  14402.  _________________________________________________________________________
  14403.  
  14404.  
  14405.  
  14406.  
  14407.  
  14408.  
  14409.  
  14410.  
  14411.  
  14412.  
  14413.  
  14414.  
  14415.  
  14416.  
  14417.  
  14418.  
  14419.  
  14420.  
  14421.  
  14422.  _________________________________________________________________________
  14423.                 Figure 4-22  -  Software Development Model
  14424.  
  14425.  
  14426.  In this clause the conceptual view of software development is related to
  14427.  the POSIX Reference Model (Figure 3-1).  The software developer's view is
  14428.  shown in Figure 4-22.  The tools used to develop software can be viewed
  14429.  as applications in their own right in the context of the POSIX Reference
  14430.  Model, requiring the same services from the platform as for Database
  14431.  Management.
  14432.  
  14433.  In the Software Development Model, the Environment Adaptation and Project
  14434.  Support Tools ``layer'' provides the essential link between the
  14435.  programmer, designer or analyst, the design method, and the development
  14436.  infrastructure.  At this level are provided the tools and applications
  14437.  that are unique to the project or methodology; e.g., project management
  14438.  workbench.  It requires support from a consistent human-computer
  14439.  interface to the Functional Tools.
  14440.  
  14441.  The Functional Tools and Integration Mechanisms embrace the essential
  14442.  tool set to enable software developers to build software.  It includes
  14443.  
  14444.  
  14445.                Copyright c 1991 IEEE.  All rights reserved.
  14446.       This is an unapproved IEEE Standards Draft, subject to change.
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  
  14452.  4.11 Software Development Environments                                199
  14453.  
  14454.  
  14455.  
  14456.  
  14457.  
  14458.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14459.  
  14460.  _________________________________________________________________________
  14461.  
  14462.  
  14463.  
  14464.  
  14465.  
  14466.  
  14467.  
  14468.  
  14469.  
  14470.  
  14471.  
  14472.  
  14473.  
  14474.  
  14475.  
  14476.  
  14477.  _________________________________________________________________________
  14478.            Figure 4-23  -  Software Development Reference Model
  14479.  
  14480.  
  14481.  simple tools such as editors, tools for tool-building, and integration
  14482.  mechanisms.  There will be tools for Configuration Management, Version
  14483.  Management, and System Administration.  It is not within the scope of
  14484.  this guide to discuss these in detail.
  14485.  
  14486.  The whole software development environment is underpinned by essential
  14487.  management systems, such as object management system, a data dictionary,
  14488.  a user interface management system, and environment management.  A
  14489.  database will frequently be established to hold specifications, designs,
  14490.  configuration plans, etc.
  14491.  
  14492.  In the POSIX Open System Environment, the software development model can
  14493.  be incorporated into the POSIX Reference Model as in Figure 4-23.  The
  14494.  model shows that the tools and services required by the software
  14495.  developer are part of the POSIX Open System Environment and are available
  14496.  through the POSIX OSE API.
  14497.  
  14498.  
  14499.  4.11.4  Services Requirements
  14500.  
  14501.  Software developers, i.e., designers, analysts, and programmers, use
  14502.  software applications to facilitate the complex task of software
  14503.  development.  A tool will require services from the application platform
  14504.  and will frequently require support from another application in the
  14505.  application set.  There are many possible implementations of tool sets.
  14506.  Descriptions of these are beyond the scope of this guide.
  14507.  
  14508.  
  14509.  
  14510.  
  14511.                Copyright c 1991 IEEE.  All rights reserved.
  14512.       This is an unapproved IEEE Standards Draft, subject to change.
  14513.  
  14514.  
  14515.  
  14516.  
  14517.  
  14518.  200                              4 POSIX Open System Environment Services
  14519.  
  14520.  
  14521.  
  14522.  
  14523.  
  14524.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14525.  
  14526.  4.11.4.1  Application Program Interface Services
  14527.  
  14528.  The services required at the API are essentially similar to those
  14529.  described for Database Management in 4.4.4.1; i.e., Data Definition and
  14530.  Manipulation, Data Access, Data Integrity, and such Miscellaneous
  14531.  Services as Data Dictionary.
  14532.  
  14533.  
  14534.  4.11.4.2  External Environment Interface Services
  14535.  
  14536.  A consistent human-computer interface to the tool set is required.  Some
  14537.  of the programmer's tool set will be explicitly focused on windowing       4
  14538.  services (such as 4.6 and 4.7) and provide assistance to develop software  4
  14539.  with improved usability.
  14540.  
  14541.  Resource data formats must be specified in order to ensure effective
  14542.  information interchange [for example, CASE Data Interchange Format
  14543.  (CDIF)], for which standards are currently under development under the
  14544.  aegis of the CDIF Technical Committee (see also 4.11.5.2 and 4.5).
  14545.  
  14546.  Protocol services are required for the transport of data (see 4.3).
  14547.  
  14548.  4.11.4.3  Interapplication Software Entity Services
  14549.  
  14550.  Many of the tools depend for interface between one another upon the data
  14551.  dictionary/repository, which is a key software component and which may
  14552.  conceptually be regarded as part of the Applications Platform.  Included
  14553.  in this category will be utilities for servicing the DBMS, such as
  14554.  recovery, reorganization, and restructure:
  14555.  
  14556.      - Object management system
  14557.  
  14558.      - User interface management system
  14559.  
  14560.      - Database management system
  14561.  
  14562.      - Transaction processing management system
  14563.  
  14564.  Details of these management systems may be recorded in the data
  14565.  dictionary/repository.
  14566.  
  14567.  
  14568.  4.11.4.4  Software Development Resource Management Services
  14569.  
  14570.  These services are generally not visible to the programmer or software
  14571.  developer at the Tools API, usually being provided by the tool building
  14572.  and other software development utilities.
  14573.  
  14574.  
  14575.  
  14576.  
  14577.                Copyright c 1991 IEEE.  All rights reserved.
  14578.       This is an unapproved IEEE Standards Draft, subject to change.
  14579.  
  14580.  
  14581.  
  14582.  
  14583.  
  14584.  4.11 Software Development Environments                                201
  14585.  
  14586.  
  14587.  
  14588.  
  14589.  
  14590.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14591.  
  14592.  4.11.5  Standards, Specifications, and Gaps
  14593.  
  14594.  This subclause describes current accepted standards that are relevant to
  14595.  this area in addition to the language standards in 4.1.5 and the database
  14596.  standards in 4.4.5.
  14597.  
  14598.  
  14599.          Table 4-13  -  Software Development Standards Activities
  14600.  __________________________________________________________________________________________________________________________________________________
  14601.                         Service                       Specification Subclause
  14602.  ____________________________________________________________________________
  14603.  
  14604.  Miscellaneous Services:
  14605.  
  14606.      Labeling of magnetic tape                        ISO 1001 {_r_e_f}4.11.5.? d
  14607.      Labeling of cassette and cartridge               ISO 4341 {_r_e_f}4.11.5.? d
  14608.      Labeling of flexible disks                       ISO 7665 {_r_e_f}4.11.5.? d
  14609.      Volume and file structure for flexible disks     ISO 9293 {_r_e_f}4.11.5.? d
  14610.      Volume and file structure for CD-ROM             ISO 9660 {_r_e_f}4.11.5.? d
  14611.      Documentation symbols and flowchart conventions  ISO 5807 {_r_e_f}4.11.5.? d
  14612.      Documentation of applications                    ISO 6592 {_r_e_f}4.11.5.? d
  14613.      Program flow for sequential files                ISO 6593 {_r_e_f}4.11.5.? d
  14614.      Data descriptive file for information interchangeISO 8211 {_r_e_f}4.11.5.? d
  14615.      Program constructs and conventions               ISO 8631 {_r_e_f}4.11.5.? d
  14616.      User documentation                               ISO 9127 {_r_e_f}4.11.5.? d
  14617.  __________________________________________________________________________________________________________________________________________________
  14618.  
  14619.  
  14620.  4.11.5.1  Current Standards in the POSIX OSE
  14621.  
  14622.  This subclause briefly identifies the current standards in this area.
  14623.  
  14624.  _D_E_F:  _T_h_e _f_o_l_l_o_w_i_n_g _p_r_o_v_i_d_e_s _p_l_a_c_e _h_o_l_d_e_r_s _f_o_r _f_u_r_t_h_e_r _t_e_x_t _t_o _b_e
  14625.  _i_n_s_e_r_t_e_d - _a_s_s_i_s_t_a_n_c_e _r_e_q_u_i_r_e_d _p_l_e_a_s_e.
  14626.  
  14627.  4.11.5.1.1  International Standards
  14628.  
  14629.  _L_a_b_e_l_i_n_g__a_n_d__F_i_l_e__S_t_r_u_c_t_u_r_e__o_f__M_a_g_n_e_t_i_c__M_e_d_i_a
  14630.  
  14631.  The following standards refer to the labeling of magnetic media and for
  14632.  the file structure on such media to facilitate information interchange:
  14633.  
  14634.     Labeling of magnetic tape                           ISO 1001 {_r_e_f}
  14635.     Labeling of cassette and cartridge                  ISO 4341 {_r_e_f}
  14636.     Labeling of flexible disks                          ISO 7665 {_r_e_f}
  14637.     Volume and file structure for flexible disks        ISO 9293 {_r_e_f}
  14638.     Volume and file structure for CD-ROM                ISO 9660 {_r_e_f}
  14639.  
  14640.  
  14641.  
  14642.  
  14643.                Copyright c 1991 IEEE.  All rights reserved.
  14644.       This is an unapproved IEEE Standards Draft, subject to change.
  14645.  
  14646.  
  14647.  
  14648.  
  14649.  
  14650.  202                              4 POSIX Open System Environment Services
  14651.  
  14652.  
  14653.  
  14654.  
  14655.  
  14656.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14657.  
  14658.     Data descriptive file for information interchange   ISO 8211 {_r_e_f}
  14659.  
  14660.  _D_E_F:  _T_h_e _a_b_o_v_e-_m_e_n_t_i_o_n_e_d _s_t_a_n_d_a_r_d_s _m_i_g_h_t _b_e _m_o_r_e _s_u_i_t_a_b_l_y _c_a_l_l_e_d _o_u_t _i_n
  14661.  _R_i_c_h_a_r_d _S_c_o_t_t'_s _s_e_c_t_i_o_n _4._5.
  14662.  
  14663.  _S_o_f_t_w_a_r_e__D_o_c_u_m_e_n_t_a_t_i_o_n
  14664.  
  14665.  There are several standards dealing with documentation to assist with the
  14666.  task of software development, and therefore potentially facilitating
  14667.  programmer and designer portability, as well as user documentation.
  14668.  
  14669.          Documentation symbols and conventions      ISO 5807 {_r_e_f}
  14670.          for data, program and system flowcharts,
  14671.          program network charts, and system
  14672.          resources charts
  14673.          Guidelines for the documentation of        ISO 6592 {_r_e_f}
  14674.          computer-based application systems
  14675.          Program flow for processing sequential     ISO 6593 {_r_e_f}
  14676.          files in terms of record groups
  14677.          Program constructs and conventions for     ISO 8631 {_r_e_f}
  14678.          their representation
  14679.          User documentation and cover information   ISO 9127 {_r_e_f}
  14680.          for consumer software packages
  14681.  
  14682.  4.11.5.1.2  Regional Standards
  14683.  
  14684.  ECMA has approved ECMA-149 as the standard for the Portable Common Tool
  14685.  Environment (PCTE).
  14686.  
  14687.  4.11.5.1.3  National Standards
  14688.  
  14689.  _T_o _B_e _P_r_o_v_i_d_e_d
  14690.  
  14691.  
  14692.  4.11.5.2  Emerging Standards in the POSIX OSE
  14693.  
  14694.  This subclause describes the activities currently in progress to further
  14695.  standardize this area.
  14696.  
  14697.  4.11.5.2.1  International Standards
  14698.  
  14699.  _T_o _B_e _P_r_o_v_i_d_e_d
  14700.  
  14701.  4.11.5.2.2  Regional Standards
  14702.  
  14703.  _T_o _B_e _P_r_o_v_i_d_e_d
  14704.  
  14705.  
  14706.  
  14707.  
  14708.  
  14709.                Copyright c 1991 IEEE.  All rights reserved.
  14710.       This is an unapproved IEEE Standards Draft, subject to change.
  14711.  
  14712.  
  14713.  
  14714.  
  14715.  
  14716.  4.11 Software Development Environments                                203
  14717.  
  14718.  
  14719.  
  14720.  
  14721.  
  14722.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14723.  
  14724.  _C_A_S_E__D_a_t_a__I_n_t_e_r_c_h_a_n_g_e__F_o_r_m_a_t__(_C_D_I_F_)
  14725.  
  14726.  The CDIF Technical Committee is developing a data interchange format to
  14727.  serve as an industry standard for exchanging information between
  14728.  Computer-Aided Software Engineering (CASE) tools.  CDIF is an EIA-
  14729.  endorsed initiative.  It assumes that two or more tools may interface
  14730.  asynchronously with each other and will transfer information from one to
  14731.  another via ``CDIF files.''  The types of information that may be
  14732.  contained in these files is defined by the CDIF Conceptual Models.
  14733.  
  14734.  _P_o_r_t_a_b_l_e__C_o_m_m_o_n__T_o_o_l__E_n_v_i_r_o_n_m_e_n_t__(_P_C_T_E_)
  14735.  
  14736.  ECMA TC33 has responsibility for the development and maintenance of PCTE.
  14737.  The committee formed a Task Group in 1988 to develop a Reference Model
  14738.  which would assist the standardization process.  Such a model has been
  14739.  developed totally independent of PCTE, and is described in ECMA Technical
  14740.  Report 55.  The model provides a way to describe, compare, and contrast
  14741.  CASE environment frameworks.
  14742.  
  14743.  4.11.5.2.3  National Standards
  14744.  
  14745.  _T_o _B_e _P_r_o_v_i_d_e_d
  14746.  
  14747.  4.11.5.2.4  National Standards
  14748.  
  14749.  _T_o _B_e _P_r_o_v_i_d_e_d
  14750.  
  14751.  
  14752.  4.11.5.3  Gaps in Available Standards
  14753.  
  14754.  4.11.5.3.1  Standards and Specifications Outside the POSIX OSE
  14755.  
  14756.  _T_o _B_e _P_r_o_v_i_d_e_d
  14757.  
  14758.  4.11.5.3.2  Unsatisfied Service Requirements
  14759.  
  14760.  _T_o _B_e _P_r_o_v_i_d_e_d
  14761.  
  14762.  
  14763.  4.11.6  OSE Cross-Category Services
  14764.  
  14765.  Not applicable.                                                            d
  14766.  
  14767.  
  14768.  
  14769.  
  14770.  
  14771.  
  14772.  
  14773.  
  14774.  
  14775.                Copyright c 1991 IEEE.  All rights reserved.
  14776.       This is an unapproved IEEE Standards Draft, subject to change.
  14777.  
  14778.  
  14779.  
  14780.  
  14781.  
  14782.  204                              4 POSIX Open System Environment Services
  14783.  
  14784.  
  14785.  
  14786.  
  14787.  
  14788.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  14789.  
  14790.  4.11.7  Related Standards
  14791.  
  14792.  _T_o _B_e _P_r_o_v_i_d_e_d
  14793.  
  14794.  
  14795.  4.11.8  Open Issues
  14796.  
  14797.      - Relationship between methodology and formats
  14798.  
  14799.  
  14800.  
  14801.  
  14802.  
  14803.  
  14804.  
  14805.  
  14806.  
  14807.  
  14808.  
  14809.  
  14810.  
  14811.  
  14812.  
  14813.  
  14814.  
  14815.  
  14816.  
  14817.  
  14818.  
  14819.  
  14820.  
  14821.  
  14822.  
  14823.  
  14824.  
  14825.  
  14826.  
  14827.  
  14828.  
  14829.  
  14830.  
  14831.  
  14832.  
  14833.  
  14834.  
  14835.  
  14836.  
  14837.  
  14838.  
  14839.  
  14840.  
  14841.                Copyright c 1991 IEEE.  All rights reserved.
  14842.       This is an unapproved IEEE Standards Draft, subject to change.
  14843.  
  14844.  
  14845.  
  14846.  
  14847.  
  14848.  4.11 Software Development Environments                                205
  14849.  
  14850.  
  14851.  
  14852.  
  14853.  
  14854.  
  14855.  
  14856.  
  14857.  
  14858.  
  14859.  
  14860.  
  14861.  
  14862.  
  14863.  
  14864.  
  14865.  
  14866.  
  14867.  
  14868.  
  14869.  
  14870.  
  14871.  
  14872.  
  14873.  
  14874.  
  14875.  
  14876.  
  14877.  
  14878.  
  14879.  
  14880.  
  14881.  
  14882.  
  14883.  
  14884.  
  14885.  
  14886.  
  14887.  
  14888.  
  14889.  
  14890.  
  14891.  
  14892.  
  14893.  
  14894.  
  14895.  
  14896.  
  14897.  
  14898.  
  14899.  
  14900.  
  14901.  
  14902.  
  14903.  
  14904.  
  14905.  
  14906.  
  14907.  
  14908.  
  14909.  
  14910.  
  14911.  
  14912.  
  14913.  
  14914.  
  14915.  
  14916.  
  14917.  
  14918.  
  14919.  
  14920.                                                                P1003.0/D13
  14921.  
  14922.  
  14923.  
  14924.  
  14925.  
  14926.  
  14927.  
  14928.  
  14929.                Section 5: POSIX OSE Cross-Category Services
  14930.  
  14931.  
  14932.  
  14933.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  14934.  
  14935.  The POSIX reference model defines a set of conceptual system building
  14936.  blocks that collectively describes the Open System Environment.  Each
  14937.  building block provides a specific set of interfaces for access to their
  14938.  associated facilities and services.  There is another class of services
  14939.  and requirements, however, that may influence and/or impact the basic
  14940.  architectural building blocks; these are referred to as OSE Cross-
  14941.  Category Services.
  14942.  
  14943.  An OSE Cross-Category Service is a set of tools and/or features that,
  14944.  when applied, may have a direct affect on the operation of one or more of
  14945.  the Open System Components, but it is not in and of itself a standalone
  14946.  OSE component.  Examples of OSE Cross-Category Services include
  14947.  internationalization, security and privacy, administration, etc.
  14948.  Internationalization has a number of attributes that influence multiple
  14949.  OSE components; supporting multiple coded character sets, for example,
  14950.  will affect end-user interfaces, operational message input and output,
  14951.  screen display, data collating sequences in programming languages and
  14952.  database systems, etc.
  14953.  
  14954.  This section will deal with the general characteristics of OSE Cross-
  14955.  Category Services as applied to the OSE architectural components and to
  14956.  the profiles and domains that characterize application environments.  The
  14957.  specific impact/influence of an OSE Cross-Category Service will be
  14958.  described in the appropriate subclause of Section 4 that deals with
  14959.  individual OSE Components.
  14960.  
  14961.  Initially, this section will address Internationalization, Security and
  14962.  Privacy, and System Administration; however, it is anticipated that other
  14963.  OSE Cross-Category Services will be identified as the concept is applied
  14964.  to the model.
  14965.  
  14966.  This section describes issues that should be considered in writing
  14967.  profiles, and is organized so that subclauses for each OSE Cross-Category
  14968.  Service points to, and addresses issues adjacent to each of the service
  14969.  categories identified in Section 4.
  14970.  
  14971.  
  14972.  
  14973.                Copyright c 1991 IEEE.  All rights reserved.
  14974.       This is an unapproved IEEE Standards Draft, subject to change.
  14975.  
  14976.  
  14977.  
  14978.  
  14979.  
  14980.  5 POSIX OSE Cross-Category Services                                   207
  14981.  
  14982.  
  14983.  
  14984.  
  14985.  
  14986.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  14987.  
  14988.  These issues defined areas that need to be traded off to arrive at
  14989.  balanced solutions for a specific profile.  It is expected that the
  14990.  specific trades would be made by the profiler, but that this clause could
  14991.  give guidance for trading and could also be used to accumulate lessons
  14992.  learned.
  14993.  
  14994.  
  14995.  
  14996.  
  14997.  
  14998.  
  14999.  
  15000.  
  15001.  
  15002.  
  15003.  
  15004.  
  15005.  
  15006.  
  15007.  
  15008.  
  15009.  
  15010.  
  15011.  
  15012.  
  15013.  
  15014.  
  15015.  
  15016.  
  15017.  
  15018.  
  15019.  
  15020.  
  15021.  
  15022.  
  15023.  
  15024.  
  15025.  
  15026.  
  15027.  
  15028.  
  15029.  
  15030.  
  15031.  
  15032.  
  15033.  
  15034.  
  15035.  
  15036.  
  15037.  
  15038.  
  15039.                Copyright c 1991 IEEE.  All rights reserved.
  15040.       This is an unapproved IEEE Standards Draft, subject to change.
  15041.  
  15042.  
  15043.  
  15044.  
  15045.  
  15046.  208                                   5 POSIX OSE Cross-Category Services
  15047.  
  15048.  
  15049.  
  15050.  
  15051.  
  15052.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15053.  
  15054.  5.1  Internationalization
  15055.  
  15056.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _R_a_l_p_h _B_a_r_k_e_r                                              d
  15057.  
  15058.  
  15059.  5.1.1  Overview and Rationale
  15060.  
  15061.  Historically, information systems intended for use within a particular
  15062.  national or cultural market have been designed specifically for the
  15063.  requirements of that market.  If the vendor or developer was based in a
  15064.  country other than that of the target market, this was typically
  15065.  accomplished through substantial re-engineering the features of an
  15066.  existing system designed for some other country, and doing so at
  15067.  considerable cost.  As the developer desired to market the system in
  15068.  additional countries, the process of re-engineering was repeated for each
  15069.  new national or cultural market.  Application software developers were
  15070.  faced with the same problem.  The very nature of this style of
  15071.  development produced little concern for portability across national or
  15072.  cultural boundaries, or interoperability between them.  Users or
  15073.  organizations that needed to operate in multiple national or cultural
  15074.  markets typically did so with multiple, generally incompatible,
  15075.  information processing systems.
  15076.  
  15077.  The interfaces provided by the POSIX Open Systems Environment (POSIX OSE)
  15078.  can be generalized, however, through the use of internationalization, to
  15079.  extend across national and cultural boundaries.  Such a model provides
  15080.  the foundation for international portability of application software,
  15081.  increased user portability, and enhanced interoperability and data
  15082.  exchange capabilities.  The task of internationalization is to ensure
  15083.  that the services provided by the POSIX OSE, and the interfaces between
  15084.  such services, are specified in such a way that they can be easily used
  15085.  all over the world.  Additionally, as the user is likely to require
  15086.  services from any or all of the service categories of the POSIX OSE,
  15087.  internationalization impacts all areas of the POSIX OSE, and should be
  15088.  viewed as an OSE Cross-Category Service.  Since the internationalization
  15089.  aspects of general OSE services and application program interface (API)
  15090.  services are similar for all of the POSIX OSE service categories, they
  15091.  are discussed here rather than repeating them in each of the services
  15092.  sections within this guide.
  15093.  
  15094.  The ability of the service categories of the POSIX OSE to support
  15095.  multiple natural languages, and the underlying cultural conventions, is a
  15096.  two step process.  These two steps are generally referred to as
  15097.  ``internationalization'' and ``localization.''  First, the interfaces
  15098.  between the service categories are generalized, so that they are not
  15099.  oriented to the requirements of any particular natural language or set of
  15100.  cultural conventions (internationalization).  Then, facilities are
  15101.  provided by the POSIX OSE that allow the user to select the desired
  15102.  natural language and cultural conventions (localization).  Tools are
  15103.  
  15104.  
  15105.                Copyright c 1991 IEEE.  All rights reserved.
  15106.       This is an unapproved IEEE Standards Draft, subject to change.
  15107.  
  15108.  
  15109.  
  15110.  
  15111.  
  15112.  5.1 Internationalization                                              209
  15113.  
  15114.  
  15115.  
  15116.  
  15117.  
  15118.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15119.  
  15120.  provided to facilitate this process.
  15121.  
  15122.  Within this context, cultural conventions, while discussed more fully
  15123.  later in this clause, may be viewed as various aspects of how information
  15124.  is presented to the user.  Different cultures, for example, use different
  15125.  formats for dates and numeric values and use different currency symbols.
  15126.  The interfaces provided by the POSIX OSE should allow the information to
  15127.  be presented to the user in the appropriate format as well as the
  15128.  appropriate natural language.
  15129.  
  15130.  
  15131.  5.1.2  Scope
  15132.  
  15133.  The POSIX OSE provides services that are necessary to support users,
  15134.  irrespective of their particular natural language or cultural
  15135.  conventions.  While it is not expected that every implementation of the
  15136.  POSIX OSE would provide support for all possible natural languages and
  15137.  cultural conventions, the specification of the services and the
  15138.  interfaces within the POSIX OSE should not preclude such support.  In
  15139.  addition to the service and interface requirements described here, it
  15140.  should be noted that internationalization is affected by a number of
  15141.  elements that are beyond the scope of this guide.  Actual implementations
  15142.  of the internationalized POSIX OSE, for example, may need to consider the
  15143.  impact of multiple sets of governmental and regulatory agencies,
  15144.  international data communication standards and other elements which are
  15145.  presently not specified within the POSIX OSE, such as data portability
  15146.  between localized information processing systems.
  15147.  
  15148.  Service requirements differ from country to country and even between
  15149.  users within one country.  Many users, for example, may require the
  15150.  simultaneous support of multiple natural languages and cultural
  15151.  convention sets.  Therefore, the basic internationalization requirement
  15152.  within the POSIX OSE is to provide a set of services and interfaces that
  15153.  allow the user to define, select, and change between different culturally
  15154.  related application operating environments supported by the particular
  15155.  implementation.  Specifically:
  15156.  
  15157.      - The POSIX OSE must provide the means of adjusting the output of
  15158.        specific functions and utilities to support different natural
  15159.        languages, cultural conventions and character sets as may be
  15160.        required by the supported natural languages.
  15161.  
  15162.      - A user should have the capability to select an internationalized
  15163.        user environment that specifies a particular set of data
  15164.        presentation characteristics, including cultural conventions,
  15165.        character sets and native language.
  15166.  
  15167.      - An implementation of the POSIX OSE should be able to concurrently
  15168.        support different applications functioning in different
  15169.  
  15170.  
  15171.                Copyright c 1991 IEEE.  All rights reserved.
  15172.       This is an unapproved IEEE Standards Draft, subject to change.
  15173.  
  15174.  
  15175.  
  15176.  
  15177.  
  15178.  210                                   5 POSIX OSE Cross-Category Services
  15179.  
  15180.  
  15181.  
  15182.  
  15183.  
  15184.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15185.  
  15186.        internationalized user environments, supplying different sets of
  15187.        natural languages, cultural conventions and character sets for
  15188.        different users.
  15189.  
  15190.      - The capability of supporting different internationalized user
  15191.        environments, and the associated natural languages, cultural
  15192.        conventions and character sets, should not require any changes to
  15193.        the logic of existing application programs.
  15194.  
  15195.      - The effect of the user selecting a new internationalized user
  15196.        environment, and its associated natural language, cultural
  15197.        conventions and character set, should be transparent to application
  15198.        programs.
  15199.  
  15200.      - The model should be flexible, to support future extensions and
  15201.        requirements.
  15202.  
  15203.  
  15204.  5.1.3  Reference Model
  15205.  
  15206.  Internationalization is an OSE Cross-Category Service, spanning all OSE
  15207.  service categories.  While various reference models have been used in
  15208.  published technical papers to depict internationalization issues, the
  15209.  internationalization services described in this clause conform to the
  15210.  POSIX OSE Reference Model.
  15211.  
  15212.  
  15213.  5.1.4  Service Requirements
  15214.  
  15215.  The POSIX OSE must provide services on different levels:  general service
  15216.  requirements to be satisfied for any requesting program; API service
  15217.  requirements to be satisfied at the application program interface for a
  15218.  specific program; and a set of tools to support the localization of
  15219.  systems and applications.  This subclause (5.1.4) will discuss these
  15220.  different service requirements in detail.  In examining these service
  15221.  requirements, it is helpful to draw a distinction between those services
  15222.  which are required to support the portability of an application platform
  15223.  across cultural boundaries, and those services which are required to
  15224.  support the portability of an application across one or more sets of
  15225.  cultural conventions which may be supported on a single application
  15226.  platform.
  15227.  
  15228.  
  15229.  5.1.4.1  General Service Requirements, Application Platform
  15230.  
  15231.  Internationalization requirements are focused on support and handling of:
  15232.  
  15233.      - Character sets and data representation
  15234.  
  15235.  
  15236.  
  15237.                Copyright c 1991 IEEE.  All rights reserved.
  15238.       This is an unapproved IEEE Standards Draft, subject to change.
  15239.  
  15240.  
  15241.  
  15242.  
  15243.  
  15244.  5.1 Internationalization                                              211
  15245.  
  15246.  
  15247.  
  15248.  
  15249.  
  15250.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15251.  
  15252.      - Cultural conventions
  15253.  
  15254.      - Natural language support
  15255.  
  15256.  5.1.4.1.1  Character Sets and Data Representation
  15257.  
  15258.  The character set for the English language can easily be satisfied by the
  15259.  standard ASCII character set (American Standard Code for Information
  15260.  Interchange).  The ASCII code uses 7 bits to uniquely identify each of
  15261.  the 95 available characters.  For European and American languages beside
  15262.  English, the number of local characters is much larger.  The far-east
  15263.  requirements for thousands of pictograms add yet another dimension to the
  15264.  coding rules and techniques.
  15265.  
  15266.  Different standards address the methods by which the local character
  15267.  repertoires can be coded for unique identification.  While replacement of
  15268.  seldom-used characters in the 7-bit codings can support a single
  15269.  additional language besides English, 8-bit coding schemes are used to
  15270.  satisfy multiple languages concurrently by assigning an additional 96
  15271.  graphic characters to the available repertoire.  An example is ISO 8859-1
  15272.  (the extended ASCII code), which can support all of western Europe,
  15273.  America, Australia, and other English speaking countries all over the
  15274.  world.  For Eastern Europe, Greece, Russia, Arabia, and many other
  15275.  countries, other 8-bit codes are defined.  Japan, China, Korea, and
  15276.  Taiwan have so many characters in their repertoire that 16 bits are
  15277.  needed to identify them clearly.  Work is under way to develop a multi-
  15278.  octet character set with up to 32 bits per coded character; this method
  15279.  will allow concurrent use of all possible languages in the same
  15280.  application.
  15281.  
  15282.  Because different coding schemes are used, it is important that the
  15283.  application platform have the potential capability of supporting all of
  15284.  them.  It is also important that the application platform has the          d
  15285.  capability to represent (display, print) the data correctly. It is also    d
  15286.  important that an application be able to determine in which coded          d
  15287.  character set data items are stored on disk or tape.  Otherwise, it is     d
  15288.  impossible for the application to interpret the data correctly.            d
  15289.  Currently the user must control the consistent use of the same coded       d
  15290.  character set within an application, but in the future the application     d
  15291.  platform should be able to provide identification methods for the coded    d
  15292.  character sets used for data storage, processing, communication, and       d
  15293.  presentation.  It might also be advantageous for the application to be     d
  15294.  able to prohibit users from updating data stored in one coded character    d
  15295.  set with data in another coded character set since this would immediately  d
  15296.  corrupt data bases or flat files.  Therefore it may be necessary in the    d
  15297.  future to provide a method of announcing the coded character set in which  d
  15298.  data are stored, processed, communicated, and presented.                   d
  15299.  
  15300.  
  15301.  
  15302.  
  15303.                Copyright c 1991 IEEE.  All rights reserved.
  15304.       This is an unapproved IEEE Standards Draft, subject to change.
  15305.  
  15306.  
  15307.  
  15308.  
  15309.  
  15310.  212                                   5 POSIX OSE Cross-Category Services
  15311.  
  15312.  
  15313.  
  15314.  
  15315.  
  15316.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15317.  
  15318.  The general service for support of character sets and data representation
  15319.  in an international environment are:
  15320.  
  15321.      (1)  Coded character set independence:  the ability of the
  15322.           application platform to input, store, manipulate, retrieve,
  15323.           communicate, and present data independent from the coding scheme
  15324.           used.  This includes 7-bit, 8-bit, 16-bit, and multi-octet coded
  15325.           character sets.                                                   d
  15326.  
  15327.      (2)  Character set repository:  the ability of the application
  15328.           platform to maintain and access a central character set
  15329.           repository.  This repository contains all coded character sets
  15330.           used throughout the platform and specifies relevant information
  15331.           about them:
  15332.  
  15333.            - Code format:  the repository contains information, if
  15334.              characters are coded in 7 bits, 8 bits, 16 bits, or any other
  15335.              format.
  15336.  
  15337.            - Data class definition:  the definition that a character is
  15338.              considered numeric, alpha, etc., by the programming
  15339.              languages.  This classification can vary for the same
  15340.              character from country to country.
  15341.  
  15342.            - Collating rules:  different character sets have different
  15343.              coding for characters.  Thus, comparison of strings of such
  15344.              coded characters must follow rules defined for the specific
  15345.              character set.  Culturally dependent additional collating
  15346.              rules are discussed in 5.1.4.1.2.
  15347.  
  15348.            - Lower- to uppercase mapping:  this defines the rules of
  15349.              mapping, if for a specific character no upper- or lowercase
  15350.              is available.  Examples are the lower case umlauts which do
  15351.              not have uppercase representations in Switzerland; the
  15352.              uppercase forms are A, O, or U, respectively, followed by a
  15353.              lowercase ``e''.
  15354.  
  15355.            - Escapement rules:  some languages like Hebrew and Arabic are
  15356.              written from right to left; numbers within text in these
  15357.              languages are written from left to right.  It is necessary to
  15358.              store these escapement rules with the character set.
  15359.  
  15360.            - Presentation rules:  the application platform should have the
  15361.              ability of providing fallback presentation rules for the
  15362.              presentation of coded characters that have no associated
  15363.              graphic shape.
  15364.  
  15365.      (3)  Character set identifier:  the application platform should
  15366.           provide the ability to uniquely identify each coded character
  15367.  
  15368.  
  15369.                Copyright c 1991 IEEE.  All rights reserved.
  15370.       This is an unapproved IEEE Standards Draft, subject to change.
  15371.  
  15372.  
  15373.  
  15374.  
  15375.  
  15376.  5.1 Internationalization                                              213
  15377.  
  15378.  
  15379.  
  15380.  
  15381.  
  15382.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15383.  
  15384.           set to allow compatibility checks and translation or
  15385.           transliteration to and from other registered character sets.
  15386.           This ensures data integrity in the communication of data across
  15387.           computers and networks.
  15388.  
  15389.      (4)  Character set selection:  the application platform should allow
  15390.           the end-user or the application to select the coded character
  15391.           set to be used; otherwise, the application must automatically
  15392.           select a default coded character set according to preset
  15393.           parameters.  It must be possible to switch to other coded
  15394.           character sets and to invoke translation routines where
  15395.           required.
  15396.  
  15397.           _E_d_i_t_o_r'_s _N_o_t_e:  _F_r_o_m _h_e_r_e _t_o _t_h_e _e_n_d _o_f _5._1, _t_h_e _t_e_r_m             _d
  15398.           ``[_o_p_e_r_a_t_i_n_g] _s_y_s_t_e_m'' _h_a_s _b_e_e_n _r_e_p_l_a_c_e_d _n_u_m_e_r_o_u_s _t_i_m_e_s _w_i_t_h      _d
  15399.           ``_a_p_p_l_i_c_a_t_i_o_n _p_l_a_t_f_o_r_m'', _w_i_t_h_o_u_t _f_u_r_t_h_e_r _d_i_f_f _m_a_r_k_s.             _d
  15400.  
  15401.      (5)  Data announcement:  the application platform could benefit from   _d
  15402.           having the ability to recognize the coded character set of data   _d
  15403.           entities (files, messages, etc.).  One way of doing this is to
  15404.           store the character set identifier together with the data;
  15405.           standardization efforts are under way to formalize this process,
  15406.           with consideration being given to the level of granularity of
  15407.           such identification (e.g. file, word, character).  The
  15408.           announcement enables the application to prohibit updates with
  15409.           data coded in other character sets, thus ensuring data integrity
  15410.           even in distributed systems.
  15411.  
  15412.      (6)  Data presentation:  the application platform should be able to    d
  15413.           present data on different display or output devices, potentially  d
  15414.           according to rules in a repository, including escapement of       d
  15415.           characters and selection of different shapes.  Preparing data
  15416.           for presentation may involve extensive translation and
  15417.           transliteration due to potential hardware limitations of the
  15418.           printers and displays used in a particular installation.
  15419.  
  15420.      (7)  Data communication:  the application platform should be able to   d
  15421.           transmit and receive data from communication systems and to
  15422.           maintain the integrity of the information.  In an                 d
  15423.           internationalized environment, this capability might include      d
  15424.           data translation due to different coded character sets being
  15425.           used by different service categories of the application
  15426.           platform.
  15427.  
  15428.      (8)  Data input:  the ability to enter data is not necessarily
  15429.           controlled by the application platform.  The complexity of the
  15430.           input of Asian languages though might strongly support the idea
  15431.           of a standardized input mechanism interface.  Depending on how    d
  15432.           other internationalization service requirements are met, it       d
  15433.  
  15434.  
  15435.                Copyright c 1991 IEEE.  All rights reserved.
  15436.       This is an unapproved IEEE Standards Draft, subject to change.
  15437.  
  15438.  
  15439.  
  15440.  
  15441.  
  15442.  214                                   5 POSIX OSE Cross-Category Services
  15443.  
  15444.  
  15445.  
  15446.  
  15447.  
  15448.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15449.  
  15450.           might also be beneficial for input data to carry some form of     d
  15451.           character set identification.                                     d
  15452.  
  15453.  5.1.4.1.2  Cultural Conventions
  15454.  
  15455.  Besides using different characters and different languages, countries
  15456.  throughout the world have also developed quite different cultural
  15457.  conventions.  Even within one country we can find significantly different
  15458.  cultural environments.  The prime example is Switzerland, where French,
  15459.  German, Italian, and Rhaeto Romanic are officially accepted languages.
  15460.  Combined with the language preferences are conventions about the formats
  15461.  of time, date, numeric values, and measuring systems.  Currency symbols,
  15462.  paper formats, hyphenation, and collating are dependent on cultural
  15463.  conventions.  End-user-oriented applications have to address these issues
  15464.  to provide a familiar local view, which helps to prevent operating
  15465.  errors.
  15466.  
  15467.  The general service requirements for cultural conventions are:
  15468.  
  15469.      (1)  Cultural convention repository:  The application platform must
  15470.           have the ability to store and access rules and conventions for
  15471.           cultural entities.  These might be areas with a common language,
  15472.           geographic areas, or areas with common cultural or historic
  15473.           background.  The repository should contain specifications and
  15474.           presentation rules for:
  15475.  
  15476.            - Date and time formats:  indicating the formats associated
  15477.              with the particular cultural entity.  For example, while in
  15478.              the US the date is expressed in the format month/day/year,
  15479.              the European preferred format is year-month-day for data
  15480.              processing purposes and day-month-year in personal use.
  15481.              Japan counts the years according to the reign of the current
  15482.              emperor.  Additionally, twenty-four-hour clocks, which are
  15483.              prevalent in Europe, are commonly used only in military
  15484.              circles in the US, while the terms ``am'' and ``pm'',
  15485.              denoting morning and afternoon, are used by the general
  15486.              public. These are only a few examples for the cultural
  15487.              differences in this area.  The application platform must be
  15488.              able to store the preferred forms for date and time for a
  15489.              specific cultural entity and make it available upon request
  15490.              in this format.
  15491.  
  15492.            - Week and day numbering:  in Europe, the week starts on
  15493.              Monday, in the US on Sunday.  The application platform should  d
  15494.              be able to supply the requesting program with the needed       d
  15495.              information, potentially from a repository according to        d
  15496.              specified rules.
  15497.  
  15498.  
  15499.  
  15500.  
  15501.                Copyright c 1991 IEEE.  All rights reserved.
  15502.       This is an unapproved IEEE Standards Draft, subject to change.
  15503.  
  15504.  
  15505.  
  15506.  
  15507.  
  15508.  5.1 Internationalization                                              215
  15509.  
  15510.  
  15511.  
  15512.  
  15513.  
  15514.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15515.  
  15516.            - Formats of numeric fields:  handling of numeric fields in
  15517.              unfamiliar formats is one of the major reasons for human
  15518.              errors.  The application platform must provide the service to
  15519.              format the values according to specifications in the
  15520.              repository.  The characters that signify the decimal point
  15521.              (comma, period, etc.) must be defined, as well as the number
  15522.              of decimals, the grouping of digits before the decimal point
  15523.              and the presentation of negative values.
  15524.  
  15525.            - Currency symbols and field length:  the handling of currency
  15526.              symbols in the different cultural areas must be provided by
  15527.              the general internationalization services.  The currency
  15528.              symbols might be more than one digit long and can appear
  15529.              before or after the currency field.  The format of currency
  15530.              fields might differ from that of numeric fields; for example,
  15531.              in Portugal the $-sign is used as the decimal point.
  15532.              Information about these conventions must be stored in the
  15533.              repository and be used by the application platform for local
  15534.              formatting of currency fields.  Not necessarily a service,
  15535.              but similarly important, is the understanding, that due to
  15536.              the value of different currencies, the field lengths must be
  15537.              considered carefully.  Also some currencies do not have
  15538.              decimals (e.g., Italian Lira).
  15539.  
  15540.                                                                             d
  15541.  
  15542.            - Paper formats:  internationally usable and portable
  15543.              applications must be able to print on different paper
  15544.              formats.  While quart format is predominant in the US and the
  15545.              far east, the DIN standardized A-formats are used in Europe.
  15546.              Printer drivers must be able to adjust their output to local
  15547.              formats, defined in the cultural convention repository.
  15548.  
  15549.      (2)  Cultural repository selection:  these repositories must be
  15550.           available to all applications.  Users and applications must be
  15551.           able to select a repository from the application platform; a
  15552.           default value must be provided if no selection is made.  An
  15553.           additional service allows dynamic switching to other
  15554.           repositories upon user or program requests.
  15555.  
  15556.      (3)  Collating rules:  besides the generic binary and character-set-
  15557.           dependent sorting rules, the application platform must have the
  15558.           ability to sort data according to local rules, defined in the
  15559.           repository.  An example for culture-dependent collating rules is
  15560.           the handling of umlauts; while they are sorted with the base
  15561.           characters in Austria, they are sorted at the end of the
  15562.           alphabet in Sweden.  Adding complexity, they can be sorted
  15563.           differently within one country between normal business use, such
  15564.           as dictionaries, and in telephone books.  Other idiosyncrasies
  15565.  
  15566.  
  15567.                Copyright c 1991 IEEE.  All rights reserved.
  15568.       This is an unapproved IEEE Standards Draft, subject to change.
  15569.  
  15570.  
  15571.  
  15572.  
  15573.  
  15574.  216                                   5 POSIX OSE Cross-Category Services
  15575.  
  15576.  
  15577.  
  15578.  
  15579.  
  15580.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15581.  
  15582.           are the sorting of one character as two (the German ``sharp-s''
  15583.           sorts as ``sz'' in Austria and ``ss'' in Germany), or two
  15584.           characters as one (the Spanish ``ch'' sorts as one character),
  15585.           or the position of accented characters in a string, and more.
  15586.           User-defined collating tables in the cultural convention
  15587.           repository allow culture or application-dependent sorting
  15588.           services.
  15589.  
  15590.  5.1.4.1.3  Natural Language Support
  15591.  
  15592.  The POSIX OSE must give users the ability to select a natural language
  15593.  for their dialogue with the system and applications.  While it is
  15594.  unrealistic to expect all application platforms to support all possible
  15595.  natural languages, error messages, online documentation and help
  15596.  facilities, selection menus, and the relevant user interaction with these
  15597.  services must be prepared for translation into the supported user-
  15598.  selectable natural language.  Additionally, the POSIX OSE must support
  15599.  differences between the natural language selected by the user for
  15600.  interaction with the application platform and that selected for use
  15601.  within a particular application. For word- and text-processing, the
  15602.  service includes hyphenation and spell checking with possible thesaurus
  15603.  support in different languages.  The problem is complicated by the fact
  15604.  that data can contain text in different languages in the same document.
  15605.  
  15606.  The service requirements for natural language support are:
  15607.  
  15608.      (1)  Multilingual capability:  the application platform should be      d
  15609.           able to support more than one language simultaneously.  For       d
  15610.           example, one process might be providing French language           d
  15611.           capabilities while another process operated in Japanese. The      d
  15612.           application platform must be able to let users select their       d
  15613.           preferred languages for communication with the application and
  15614.           allow them to switch dynamically to another language.  The
  15615.           application platform must also have the capability to assign a
  15616.           default language, based on parameters for the application
  15617.           platform, the specific workstation, the user identification, or
  15618.           the application.
  15619.  
  15620.      (2)  Natural language message system:  the application platform must
  15621.           have the capability to present (display, print, ...) messages,
  15622.           menus, forms, and online documentation in the language, selected
  15623.           by the user.  The application platform must be able to support
  15624.           multiple languages simultaneously for different users and it
  15625.           must allow the user to switch from one language to another.  The
  15626.           following problems must also be handled correctly:
  15627.  
  15628.            - The program code of the application should be able to be       d
  15629.              independent from any particular natural language, presenting   d
  15630.              messages in the natural language used within the               d
  15631.  
  15632.  
  15633.                Copyright c 1991 IEEE.  All rights reserved.
  15634.       This is an unapproved IEEE Standards Draft, subject to change.
  15635.  
  15636.  
  15637.  
  15638.  
  15639.  
  15640.  5.1 Internationalization                                              217
  15641.  
  15642.  
  15643.  
  15644.  
  15645.  
  15646.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15647.  
  15648.              internationalized user environment selected by the user.
  15649.  
  15650.            - Variable message length:  the application platform should
  15651.              support the presentation of messages of variable length, as
  15652.              translation into other languages changes the length of the
  15653.              message; English text is usually quite short compared to the
  15654.              same text in, e.g., German or Finnish.  Ample room must be
  15655.              available in the display field to accommodate this variation.
  15656.  
  15657.            - Inserted parameters and word order:  the application platform
  15658.              should have the capability of inserting variable parameters
  15659.              into messages at the location appropriate for the user
  15660.              selected natural language.
  15661.  
  15662.                                                                             d
  15663.  
  15664.      (3)  Support of local keyboards:  the application platform must be
  15665.           able to correctly interpret the input from keyboards that have
  15666.           been modified locally to support the local character sets.
  15667.  
  15668.      (4)  Local language user interaction:  the application must be able
  15669.           to accept solicited input from the user in the language selected
  15670.           by the user, without dependence within the application logic on
  15671.           a particular natural language or set of cultural conventions.
  15672.           For example, many applications use the first characters of
  15673.           prompts to make selections; this method is not acceptable in an
  15674.           internationalized system.  The translation process changes the
  15675.           prompts and with them their first character; more than one
  15676.           prompt could have the same start-character and the program logic
  15677.           would not work.  Multiple languages must be supported
  15678.           simultaneously.
  15679.  
  15680.                                                                             d
  15681.  
  15682.  
  15683.  5.1.4.2  API Service Requirements                                          d
  15684.  
  15685.  All the general services defined in 5.1.4.1 must be accessible from the    d
  15686.  applications through requests to the application program interface.  The   d
  15687.  API service requirements can be structured in the same way as the general  d
  15688.  requirements, which they call for.                                         d
  15689.  
  15690.                                                                             d
  15691.  
  15692.  
  15693.  
  15694.  
  15695.  
  15696.  
  15697.  
  15698.  
  15699.                Copyright c 1991 IEEE.  All rights reserved.
  15700.       This is an unapproved IEEE Standards Draft, subject to change.
  15701.  
  15702.  
  15703.  
  15704.  
  15705.  
  15706.  218                                   5 POSIX OSE Cross-Category Services
  15707.  
  15708.  
  15709.  
  15710.  
  15711.  
  15712.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15713.  
  15714.  5.1.4.2.1  Cultural Conventions
  15715.  
  15716.      - Cultural convention invocation:  the application platform must
  15717.        allow the application to invoke a specific cultural convention from
  15718.        the repository.  It must automatically invoke the default
  15719.        convention set, if no selection is made by the application.
  15720.  
  15721.      - Cultural convention change:  when requested by the application or
  15722.        the user, the application platform must change the used cultural
  15723.        convention dynamically.
  15724.  
  15725.      - Provide local values:  upon request from the application, the
  15726.        application platform must return local formats for time, date,
  15727.        calendar, numeric fields, currency fields and symbols.               d
  15728.  
  15729.      - Local sort and comparison:  when requested by the application, the
  15730.        application platform must compare and sort data according to the
  15731.        local collating rules defined in the cultural convention
  15732.        repository.
  15733.  
  15734.  5.1.4.2.2  Natural Language Support
  15735.  
  15736.      - Language selection:  the application platform must present
  15737.        messages, menus, forms, online documentation, and user interaction
  15738.        in the natural language selected by the user or automatically by
  15739.        the system based on preset parameters for the application, the
  15740.        session, the user, or the system.
  15741.  
  15742.      - Change of language:  upon request from the user, the application     d
  15743.        platform should be able to dynamically change, prior to the          d
  15744.        invocation of a particular user application, the language used for   d
  15745.        messages, menus, forms, online documentation, and user               d
  15746.        interactions.
  15747.  
  15748.  
  15749.  5.1.4.3  Localization Tools Requirements
  15750.  
  15751.  Internationalization of application platforms and applications is the
  15752.  basis for their localization in the different countries.  It is important
  15753.  for the user that this localization can be performed in a well prepared,
  15754.  organized way without the need to know the internal structure of the
  15755.  application platform or the application.  The following requirements for
  15756.  localization tools are key to successful localization of application
  15757.  platforms and applications:
  15758.  
  15759.      - Character set repository tools:  tools should be provided to set up  d
  15760.        and maintain character set repositories.  They must also allow the
  15761.        addition of new character sets to the repository.
  15762.  
  15763.  
  15764.  
  15765.                Copyright c 1991 IEEE.  All rights reserved.
  15766.       This is an unapproved IEEE Standards Draft, subject to change.
  15767.  
  15768.  
  15769.  
  15770.  
  15771.  
  15772.  5.1 Internationalization                                              219
  15773.  
  15774.  
  15775.  
  15776.  
  15777.  
  15778.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15779.  
  15780.      - Cultural convention repository tools:  tools should be provided to   d
  15781.        set up and maintain the cultural convention repositories.  Addition  d
  15782.        of new cultural environments must be possible.  User-definable
  15783.        collation tables are essential parts of these repositories; tools
  15784.        to define and maintain them must be offered.
  15785.  
  15786.      - Translation support tools:  facilities for the set-up and
  15787.        maintenance of local language message files, menus, forms, online
  15788.        documentation, and user interaction tables should be provided.  The  d
  15789.        addition of new supported languages should be allowed by such        d
  15790.        tools.  Additionally, any such translation tools should allow        d
  15791.        revision control, so that only new or changed text would require     d
  15792.        translation for new software releases.                               d
  15793.  
  15794.  
  15795.  5.1.5  Performance and Capacity Values
  15796.  
  15797.  The POSIX OSE provides a foundation for implementations of application
  15798.  platforms to support multiple cultural conventions.  It is expected that
  15799.  the specific sets of supported cultural conventions will be
  15800.  implementation defined. While ideally localization should not impact the
  15801.  performance of applications or application platforms, extensive character
  15802.  set translation and complex sorting operations might impact the
  15803.  performance of localized systems.
  15804.  
  15805.  The application platform must allow the implementation of as many
  15806.  cultural conventions and character sets as are necessary to accommodate
  15807.  the different market environments in which it will be used.
  15808.  
  15809.  
  15810.  5.1.6  Standards, Specifications, and Gaps
  15811.  
  15812.  There are not many standards available that deal with
  15813.  internationalization.  The majority of current standards describe
  15814.  character sets, both for control characters and for graphic characters in
  15815.  different coding schemes (7-bit, 8-bit, etc.).  A few standards address
  15816.  the formats of time and date, and some standards touch peripherally on
  15817.  the subject of data announcement.
  15818.  
  15819.  An example of how cultural conventions and languages are currently
  15820.  supported is the _l_o_c_a_l_e() function.  It allows the application developer
  15821.  to select portions or all of predefined support features for national
  15822.  languages and local cultural conventions.  The portions, called
  15823.  categories, correspond to the areas of functionality; presently supported
  15824.  are LC_CTYPE, LC_COLLATE, LC_TIME, LC_MONETARY, and LC_NUMERIC.  Other
  15825.  categories, like message handling, are likely to be implemented, too.
  15826.  Other systems have started to implement similar philosophies of general
  15827.  services to support local cultural conventions.
  15828.  
  15829.  
  15830.  
  15831.                Copyright c 1991 IEEE.  All rights reserved.
  15832.       This is an unapproved IEEE Standards Draft, subject to change.
  15833.  
  15834.  
  15835.  
  15836.  
  15837.  
  15838.  220                                   5 POSIX OSE Cross-Category Services
  15839.  
  15840.  
  15841.  
  15842.  
  15843.  
  15844.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15845.  
  15846.  5.1.6.1  Current Standards in the POSIX OSE
  15847.  
  15848.  5.1.6.1.1  International Standards
  15849.  
  15850.      - ISO 646: 1983, _I_S_O _7-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t _f_o_r _I_n_f_o_r_m_a_t_i_o_n
  15851.        _I_n_t_e_r_c_h_a_n_g_e
  15852.  
  15853.        Defines the binary representation of 128 control, (Latin) alphabet,
  15854.        digit, and symbol characters.  Describes in general the use of the
  15855.        control characters.  Describes option of national replacement
  15856.        characters.
  15857.  
  15858.      - ISO 2014: 1976, _W_r_i_t_i_n_g _o_f _C_a_l_e_n_d_a_r _D_a_t_e_s _i_n _A_l_l-_n_u_m_e_r_i_c _F_o_r_m
  15859.  
  15860.        This international standard specifies the writing of dates of the
  15861.        Gregorian calendar in all-numeric form, signified by the elements
  15862.        year, month, and day.
  15863.  
  15864.      - ISO 2022: 1986, _I_S_O _7-_B_i_t _a_n_d _8-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s--_C_o_d_e
  15865.        _E_x_t_e_n_s_i_o_n _T_e_c_h_n_i_q_u_e_s
  15866.  
  15867.        Defines techniques for expanding the number of characters
  15868.        represented by the base character set.
  15869.  
  15870.      - ISO 3307: 1975, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _T_i_m_e _o_f _t_h_e _D_a_y
  15871.  
  15872.        This international standard is designed to establish uniform time
  15873.        representation based upon the 24-hour timekeeping system.  It
  15874.        provides a means for representing local time of the day and
  15875.        Universal Time in digital form for the purpose of interchanging
  15876.        information among data systems.
  15877.  
  15878.      - ISO 4031: 1987, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _L_o_c_a_l _T_i_m_e _D_i_f_f_e_r_e_n_t_i_a_l_s
  15879.  
  15880.        This international standard specifies a standard means for
  15881.        representing local time differentials to facilitate interchange of
  15882.        data among data systems.
  15883.  
  15884.      - ISO 4217: 1987, _C_o_d_e_s _f_o_r _t_h_e _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _C_u_r_r_e_n_c_i_e_s _a_n_d
  15885.        _F_u_n_d_s
  15886.  
  15887.        Specifies the representation of currencies and currency symbols
  15888.  
  15889.      - ISO 4873: 1986, _I_S_O _8-_B_i_t _C_o_d_e _f_o_r _I_n_f_o_r_m_a_t_i_o_n _I_n_t_e_r_c_h_a_n_g_e--
  15890.        _S_t_r_u_c_t_u_r_e _a_n_d _R_u_l_e_s _f_o_r _I_m_p_l_e_m_e_n_t_a_t_i_o_n
  15891.  
  15892.        Outlines the structure of the ISO 8-bit code and rules for
  15893.        implementation.
  15894.  
  15895.  
  15896.  
  15897.                Copyright c 1991 IEEE.  All rights reserved.
  15898.       This is an unapproved IEEE Standards Draft, subject to change.
  15899.  
  15900.  
  15901.  
  15902.  
  15903.  
  15904.  5.1 Internationalization                                              221
  15905.  
  15906.  
  15907.  
  15908.  
  15909.  
  15910.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  15911.  
  15912.      - ISO 6093: 1985, _P_r_e_s_e_n_t_a_t_i_o_n _o_f _N_u_m_e_r_i_c_a_l _V_a_l_u_e_s _i_n _C_h_a_r_a_c_t_e_r
  15913.        _S_t_r_i_n_g_s _f_o_r _I_n_f_o_r_m_a_t_i_o_n _I_n_t_e_r_c_h_a_n_g_e
  15914.  
  15915.        Specifies three presentations of numerical values, which are
  15916.        represented in character strings in a form readable by machine, for
  15917.        use in interchange between data processing systems.  Also provides
  15918.        guidance for developers of programming languages standards and
  15919.        Implementor's of programming products.  These representations are
  15920.        recognizable by humans, and thus may be useful in communication
  15921.        between humans.
  15922.  
  15923.      - ISO 6429: 1988, _I_S_O _7-_B_i_t _a_n_d _8-_B_i_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s--_C_o_n_t_r_o_l
  15924.        _F_u_n_c_t_i_o_n_s _f_o_r _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s
  15925.  
  15926.        Defines control functions and their coded representations for use
  15927.        in a 7-bit code, an extended 7-bit code, an 8-bit code, or an
  15928.        extended 8-bit code.  Specifies a C0 set, a C1 set, control
  15929.        functions derived there from, and a number of independent control
  15930.        functions.
  15931.  
  15932.      - ISO 6936: 1988, _C_o_n_v_e_r_s_i_o_n _b_e_t_w_e_e_n _t_h_e _T_w_o _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _o_f
  15933.        _I_S_O _6_4_6 _a_n_d _I_S_O _6_9_3_7-_2 _a_n_d _t_h_e _C_C_I_T_T _I_n_t_e_r_n_a_t_i_o_n_a_l _T_e_l_e_g_r_a_p_h
  15934.        _A_l_p_h_a_b_e_t _N_o.  (_I_T_A) _2
  15935.  
  15936.        Specifies the rules for conversion between ITA 2 representation of
  15937.        58 characters and the ISO 646 representation of 128 characters.
  15938.  
  15939.      - ISO 6937-1: 1983, _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _T_e_x_t _C_o_m_m_u_n_i_c_a_t_i_o_n--_P_a_r_t
  15940.        _1:  _G_e_n_e_r_a_l _I_n_t_r_o_d_u_c_t_i_o_n
  15941.  
  15942.        Defines terms and concepts used in describing and using code
  15943.        representations of character sets.
  15944.  
  15945.      - ISO 6937-2: 1983, _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _T_e_x_t _C_o_m_m_u_n_i_c_a_t_i_o_n--_P_a_r_t
  15946.        _2:  _L_a_t_i_n _A_l_p_h_a_b_e_t_i_c _a_n_d _N_o_n-_a_l_p_h_a_b_e_t_i_c _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r_s
  15947.  
  15948.        Defines a repertoire of Latin alphabetic and non-alphabetic
  15949.        characters.  Specifies binary representation of the characters.
  15950.        Specifies rules for the definition and use of character sets that
  15951.        are subsets of the repertoire.
  15952.  
  15953.      - ISO 7350: 1984, _R_e_g_i_s_t_r_a_t_i_o_n _o_f _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r _S_u_b_r_e_p_e_r_t_o_i_r_e_s
  15954.  
  15955.        Specifies the procedures for preparing, registering, publishing,
  15956.        and maintaining the register of graphic character sets that are
  15957.        composed from the character repertoire of ISO 6937 and the
  15958.        procedures for assigning identifiers to the sets.
  15959.  
  15960.  
  15961.  
  15962.  
  15963.                Copyright c 1991 IEEE.  All rights reserved.
  15964.       This is an unapproved IEEE Standards Draft, subject to change.
  15965.  
  15966.  
  15967.  
  15968.  
  15969.  
  15970.  222                                   5 POSIX OSE Cross-Category Services
  15971.  
  15972.  
  15973.  
  15974.  
  15975.  
  15976.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  15977.  
  15978.      - ISO 8601: 1988, _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_f _D_a_t_e_s _a_n_d _T_i_m_e_s
  15979.  
  15980.        Specifies the representation of dates A.D.  in the Gregorian
  15981.        calendar and times and representation of periods of times.
  15982.        Applicable whenever dates and times are included in information
  15983.        interchange.
  15984.  
  15985.      - ISO 8859-x: 1987, _8-_B_i_t _S_i_n_g_l_e-_B_y_t_e _C_o_d_e_d _G_r_a_p_h_i_c _C_h_a_r_a_c_t_e_r _S_e_t_s
  15986.  
  15987.        Specifies a set of up to 191 graphic characters by means of a
  15988.        single 8- bit byte.  The versions (``-x'') indicate different coded
  15989.        character sets:
  15990.  
  15991.           -1 Latin Alphabet No.  1
  15992.  
  15993.           -2 Latin Alphabet No.  2
  15994.  
  15995.           -3 Latin Alphabet No.  3
  15996.  
  15997.           -4 Latin Alphabet No.  4
  15998.  
  15999.           -5 Latin/Cyrillic Alphabet
  16000.  
  16001.           -6 Latin/Arabic Alphabet
  16002.  
  16003.           -7 Latin Greek Alphabet
  16004.  
  16005.           -8 Latin/Hebrew Alphabet
  16006.  
  16007.      - CCITT T.61, 1985:  _C_h_a_r_a_c_t_e_r _R_e_p_e_r_t_o_i_r_e _a_n_d _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t_s
  16008.        _f_o_r _t_h_e _I_n_t_e_r_n_a_t_i_o_n_a_l _T_e_l_e_t_e_x _S_e_r_v_i_c_e
  16009.  
  16010.        Describes detailed definitions of the repertoires of graphic
  16011.        characters and control functions to be used in the international
  16012.        Teletex service.  The means by which supplementary character
  16013.        repertoires are defined are also described.
  16014.  
  16015.  5.1.6.1.2  Regional Standards
  16016.  
  16017.  Presently, no regional internationalization standards which relate to the
  16018.  scope of this guide have been adopted.
  16019.  
  16020.  5.1.6.1.3  National Standards
  16021.  
  16022.  Many of the international ISO standards have ``twins'' in the national
  16023.  standards bodies; i.e., the same text is given a local standard
  16024.  identification.  Also, national standards bodies have often developed
  16025.  standards for local representation of time, date, and currency.  The
  16026.  implementation of these standards into an internationalized system is a
  16027.  
  16028.  
  16029.                Copyright c 1991 IEEE.  All rights reserved.
  16030.       This is an unapproved IEEE Standards Draft, subject to change.
  16031.  
  16032.  
  16033.  
  16034.  
  16035.  
  16036.  5.1 Internationalization                                              223
  16037.  
  16038.  
  16039.  
  16040.  
  16041.  
  16042.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16043.  
  16044.  prime example of localization.
  16045.  
  16046.  Here are some standards that have no international equivalent:
  16047.  
  16048.      - GB 2312: 1980, Chinese national character set standard
  16049.  
  16050.      - JIS X 0208: 1983, Japanese national character set standard
  16051.  
  16052.      - KS C 5601: 1987, Korean national character set standard
  16053.  
  16054.  
  16055.  5.1.6.2  Emerging Standards in the POSIX OSE
  16056.  
  16057.  5.1.6.2.1  International Standards
  16058.  
  16059.  The rapid development of business opportunities in the Pan-European and
  16060.  the Asian market has spawned a wealth of activities to develop standards
  16061.  for the support of internationalization in the field of information
  16062.  technology.  These emerging standards deal with character sets, language
  16063.  neutral user interfaces, and communication.
  16064.  
  16065.      - ISO DIS 10646:  _M_u_l_t_i_p_l_e _O_c_t_e_t _C_o_d_e_d _C_h_a_r_a_c_t_e_r _S_e_t
  16066.  
  16067.        This standard will permit the presentation of all of the world's
  16068.        scripts in computer based systems, and their unambiguous
  16069.        interchange between one system or person and another.  It is
  16070.        applicable to the representation, processing, storage and
  16071.        presentation of the written form of the languages of the world.
  16072.  
  16073.      - ISO/IEC DIS 10367:  _R_e_p_e_r_t_o_i_r_e _o_f _S_t_a_n_d_a_r_d_i_z_e_d _C_o_d_e_d _G_r_a_p_h_i_c
  16074.        _C_h_a_r_a_c_t_e_r _S_e_t_s _f_o_r _U_s_e _i_n _8-_B_i_t _C_o_d_e_s
  16075.  
  16076.        This standard specifies a unique graphic character set for use as
  16077.        G0 set and a series of coded graphic character sets of up to 96
  16078.        characters for use as the G1, G2, and G3 sets in versions of ISO
  16079.        4873.  All sets specified in this standard are shown as elements of
  16080.        an 8-bit code.
  16081.  
  16082.      - ISO/IEC CD 9995-x:  _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y--_K_e_y_b_o_a_r_d _L_a_y_o_u_t_s _f_o_r
  16083.        _T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s
  16084.  
  16085.        This family of standards defines the layout of keyboards so that
  16086.        they can be used for input of multilingual information.
  16087.  
  16088.  
  16089.  
  16090.  
  16091.  
  16092.  
  16093.  
  16094.  
  16095.                Copyright c 1991 IEEE.  All rights reserved.
  16096.       This is an unapproved IEEE Standards Draft, subject to change.
  16097.  
  16098.  
  16099.  
  16100.  
  16101.  
  16102.  224                                   5 POSIX OSE Cross-Category Services
  16103.  
  16104.  
  16105.  
  16106.  
  16107.  
  16108.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16109.  
  16110.  5.1.6.2.2  Regional Standards
  16111.  
  16112.  The European Community is in the process to define European standards,
  16113.  called EN (Europaeische Norm).  No internationalization standards have
  16114.  yet been adopted.  To be supplied
  16115.  
  16116.  5.1.6.2.3  National Standards
  16117.  
  16118.  National standards under development which relate to internationalization
  16119.  include:
  16120.  
  16121.      - CSA-Z243.200-88:  _C_a_n_a_d_i_a_n _N_a_t_i_o_n_a_l _K_e_y_b_o_a_r_d _S_t_a_n_d_a_r_d _f_o_r _t_h_e
  16122.        _E_n_g_l_i_s_h _a_n_d _F_r_e_n_c_h _L_a_n_g_u_a_g_e_s _i_n _T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s
  16123.  
  16124.  
  16125.  5.1.6.3  Gaps in Available Standards
  16126.  
  16127.  5.1.6.3.1  Standards and Specifications Outside the POSIX OSE
  16128.  
  16129.  The PC character set was defined at a time, when the international
  16130.  standards for single-byte, 8-bit character sets were not available yet.
  16131.  Therefore, the PC character set was accepted and still is a de facto
  16132.  standard in the PC world.  The concept of different code pages has been
  16133.  implemented in MS-DOS and WINDOWS-3 is using ISO 8859-1 internally for
  16134.  compatibility reasons with other systems.  Some companies have gone
  16135.  similar routes and developed their own, multilingual character sets for
  16136.  specific applications, the general trend is clearly towards ISO standards
  16137.  wherever they exist.
  16138.  
  16139.  A consortium of software and hardware companies is developing
  16140.  ``Unicode,'' a 16-bit character set standard for worldwide use.
  16141.  
  16142.  5.1.6.3.2  Unsatisfied
  16143.  
  16144.  While the character set arena is heavily populated, very little work is
  16145.  done in other areas of internationalization of products.  Standards
  16146.  should be developed for:
  16147.  
  16148.      - Cultural conventions repository
  16149.  
  16150.      - Application program interface services for cultural conventions
  16151.  
  16152.      - Application program interface services for character set handling
  16153.  
  16154.      - Multilingual collating rules
  16155.  
  16156.      - Input methods interface for Asian languages
  16157.  
  16158.  
  16159.  
  16160.  
  16161.                Copyright c 1991 IEEE.  All rights reserved.
  16162.       This is an unapproved IEEE Standards Draft, subject to change.
  16163.  
  16164.  
  16165.  
  16166.  
  16167.  
  16168.  5.1 Internationalization                                              225
  16169.  
  16170.  
  16171.  
  16172.  
  16173.  
  16174.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16175.  
  16176.      - Standards for message delivery systems
  16177.  
  16178.      - Data announcement standards
  16179.  
  16180.  Additionally, no standards currently exist that support the following      d
  16181.  character set and data representation functionality:                       d
  16182.  
  16183.      (1)  Character set invocation:  the application platform must allow    d
  16184.           the application to invoke a specific character set from the       d
  16185.           character set repository.  It must automatically invoke the       d
  16186.           default character set, if no selection is made by the             d
  16187.           application.                                                      d
  16188.  
  16189.      (2)  Character set changes:  When requested by the application, the    d
  16190.           character set must be changed dynamically.                        d
  16191.  
  16192.      (3)  Character set identifier:  the application program must be able   d
  16193.           to write the character set identifier to data and must be able    d
  16194.           to retrieve the identifier for requested data.                    d
  16195.  
  16196.      (4)  Character set identifier comparison:  the application platform    d
  16197.           must, upon request from the application or automatically,         d
  16198.           compare the character set identifiers of interacting data in the  d
  16199.           application (input, processing, data storage, communication, and  d
  16200.           output).                                                          d
  16201.  
  16202.      (5)  Character set translation:  the application platform must         d
  16203.           provide translation of character sets, when requested by the      d
  16204.           application or automatically, when detecting a mismatch in the    d
  16205.           comparison process.                                               d
  16206.  
  16207.  
  16208.  5.1.7  OSE Cross-Category Services
  16209.  
  16210.  Not applicable.
  16211.  
  16212.  
  16213.  5.1.8  Related Standards
  16214.  
  16215.  The nature of internationalization as being a cross-component facility is
  16216.  that it affects just about every element in the information processing
  16217.  world.  Thus, almost all standards in this environment are related to the
  16218.  subject.  Here we will point out a few major families of standards,
  16219.  strongly related to internationalization.
  16220.  
  16221.      - ISO DIS 8613:  Office Document Architecture and Interchange Format
  16222.        (ODA)
  16223.  
  16224.  
  16225.  
  16226.  
  16227.                Copyright c 1991 IEEE.  All rights reserved.
  16228.       This is an unapproved IEEE Standards Draft, subject to change.
  16229.  
  16230.  
  16231.  
  16232.  
  16233.  
  16234.  226                                   5 POSIX OSE Cross-Category Services
  16235.  
  16236.  
  16237.  
  16238.  
  16239.  
  16240.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16241.  
  16242.        This family of standards, ODA/ODIF, consist of:
  16243.  
  16244.           1.2   Introduction and General Principles
  16245.  
  16246.           2.2   Document Structures
  16247.  
  16248.           3     Document Processing Reference Model
  16249.  
  16250.           4.2   Document Profile
  16251.  
  16252.           5.2   Office Document Interchange Format
  16253.  
  16254.           6.2   Character Content Architectures
  16255.  
  16256.           7     Raster Graphics Content Architectures
  16257.  
  16258.           8     Geometric Graphics Content Architectures
  16259.  
  16260.      - ISO 8824: 1987, _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _A_b_s_t_r_a_c_t _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e _A_S_N._1
  16261.  
  16262.        Specifies a notation for the definition of abstract syntaxes,
  16263.        enabling Application Layer standards to define the types of
  16264.        information they need to transfer using the Presentation service.
  16265.        It also specifies a notation for the specification of values of a
  16266.        defined type.
  16267.  
  16268.      - ISO 8825: 1987, _S_p_e_c_i_f_i_c_a_t_i_o_n _o_f _B_a_s_i_c _E_n_c_o_d_i_n_g _R_u_l_e_s _f_o_r _A_b_s_t_r_a_c_t
  16269.        _S_y_n_t_a_x _N_o_t_a_t_i_o_n _O_n_e (_A_S_N._1)
  16270.  
  16271.        Defines a set of encoding rules that can be applied to values of
  16272.        types defined using the notation specified in ASN.1.  Application
  16273.        of these encoding rules produce a transfer syntax for such values.
  16274.        It is implicit in the specification of these encoding rules that
  16275.        they are also be used for decoding.
  16276.  
  16277.      - All programming language standards, since programming languages
  16278.        have to support internationalization, and have to work correctly in
  16279.        localized environments.  Their generated code itself has to work
  16280.        ``localized.''
  16281.  
  16282.  
  16283.  5.1.9  Open Issues
  16284.  
  16285.  See 5.1.6.3.
  16286.  
  16287.  
  16288.  
  16289.  
  16290.  
  16291.  
  16292.  
  16293.                Copyright c 1991 IEEE.  All rights reserved.
  16294.       This is an unapproved IEEE Standards Draft, subject to change.
  16295.  
  16296.  
  16297.  
  16298.  
  16299.  
  16300.  5.1 Internationalization                                              227
  16301.  
  16302.  
  16303.  
  16304.  
  16305.  
  16306.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16307.  
  16308.  
  16309.  
  16310.  
  16311.  
  16312.  
  16313.  
  16314.  
  16315.  
  16316.  
  16317.  
  16318.  
  16319.  
  16320.  
  16321.  
  16322.  
  16323.  
  16324.  
  16325.  
  16326.  
  16327.  
  16328.  
  16329.  
  16330.  
  16331.  
  16332.  
  16333.  
  16334.  
  16335.  
  16336.  
  16337.  
  16338.  
  16339.  
  16340.  
  16341.  
  16342.  
  16343.  
  16344.  
  16345.  
  16346.  
  16347.  
  16348.  
  16349.  
  16350.  
  16351.  
  16352.  
  16353.  
  16354.  
  16355.  
  16356.  
  16357.  
  16358.  
  16359.                Copyright c 1991 IEEE.  All rights reserved.
  16360.       This is an unapproved IEEE Standards Draft, subject to change.
  16361.  
  16362.  
  16363.  
  16364.  
  16365.  
  16366.  228                                   5 POSIX OSE Cross-Category Services
  16367.  
  16368.  
  16369.  
  16370.  
  16371.  
  16372.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16373.  
  16374.  5.2  System Security Services                                              d
  16375.  
  16376.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _M_i_c_h_e_l_l_e _A_d_e_n                                             d
  16377.  
  16378.  _H_L_J:  _T_h_i_s _i_s _a _c_o_m_p_l_e_t_e _c_l_a_u_s_e _r_e_p_l_a_c_e_m_e_n_t _f_o_r _D_r_a_f_t _1_3.  _I_t _i_s _n_o_t       d
  16379.  _f_u_r_t_h_e_r _d_i_f_f-_m_a_r_k_e_d _t_o _a_v_o_i_d _c_l_u_t_t_e_r.                                      d
  16380.  
  16381.  
  16382.  5.2.1  Overview and Rationale
  16383.  
  16384.  Information is the key to successful use of a system.  For example, if
  16385.  used effectively and efficiently, information may be used to underpin
  16386.  enhanced service and to aid the derivation of strategic plans.  Much of
  16387.  this information, for example, personal customer details and business
  16388.  financial plans, will be of a sensitive nature.
  16389.  
  16390.  Although authorized users may be able to take advantage of the POSIX Open
  16391.  System Environment (OSE) to increase productivity and efficiency,
  16392.  unauthorized individuals may also be able to take advantage of the OSE to
  16393.  steal, manipulate or to deny others access to information held within the
  16394.  system, or to deny involvement in some transaction performed via the
  16395.  system.
  16396.  
  16397.  Security services must therefore be provided within the system if it is
  16398.  to prevent these unauthorized activities.  To achieve an optimum degree
  16399.  of confidence in the correctness and effectiveness of a system's security
  16400.  services, a system specific security policy must be derived and
  16401.  appropriate security functionality designed into the system at the
  16402.  beginning of its life cycle.
  16403.  
  16404.  A relatively high degree of protection for ordinary computer systems can
  16405.  be achieved if system administrators correctly configure and maintain the
  16406.  system according to recommended security guidelines and practice, such as
  16407.  those described within the _X/_O_p_e_n _S_e_c_u_r_i_t_y _G_u_i_d_e {_r_e_f}.  However,
  16408.  additional security facilities must be supported within the system to
  16409.  achieve protection against the small percentage of attackers who are
  16410.  noncasual, and who are determined to breach the security of the system.
  16411.  It is the intent of the security extensions to the base POSIX interface
  16412.  standard to support these additional security facilities.
  16413.  
  16414.  The four basic security objectives of a system are to maintain:
  16415.  
  16416.      - Confidentiality.  The system must prevent unauthorized viewing of
  16417.        data.
  16418.  
  16419.      - Integrity.  The system must prevent unauthorized alteration or
  16420.        deletion of data.
  16421.  
  16422.  
  16423.  
  16424.  
  16425.                Copyright c 1991 IEEE.  All rights reserved.
  16426.       This is an unapproved IEEE Standards Draft, subject to change.
  16427.  
  16428.  
  16429.  
  16430.  
  16431.  
  16432.  5.2 System Security Services                                          229
  16433.  
  16434.  
  16435.  
  16436.  
  16437.  
  16438.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16439.  
  16440.      - Availability.  The system must ensure that authorized users are not
  16441.        prevented from accessing and processing data.
  16442.  
  16443.      - Accountability.  The system must ensure that users are made
  16444.        accountable for their actions, for example to ensure that users are
  16445.        correctly billed for system usage.
  16446.  
  16447.  Different user groups may place different emphases upon these four basic
  16448.  security objectives.  For example, the military security sector may place
  16449.  more importance upon confidentiality than accountability while,
  16450.  correspondingly, the commercial sector may place more importance upon
  16451.  accountability than confidentiality.
  16452.  
  16453.  
  16454.  5.2.2  Scope
  16455.  
  16456.  One of the goals of system security is to provide defense in depth, such
  16457.  that if one layer of security is breached then further layers of security
  16458.  will limit and/or prevent unauthorized activities within the system.
  16459.  
  16460.  To achieve a high degree of confidence in the correctness and
  16461.  effectiveness of the security of a system that will be processing
  16462.  sensitive information, security must be designed into the system at the
  16463.  beginning of its life cycle.
  16464.  
  16465.  A System Security Policy (SSP) defines what it means for a specific
  16466.  system to be ``secure'' and, as such, forms the basic security input into
  16467.  the system lifecycle.  Specification of an SSP is therefore axiomatic to
  16468.  the design of a secure system.
  16469.  
  16470.  Although the SSP defines what security measures will be provided within
  16471.  the system, it is the system design documentation that defines how these
  16472.  security measures will actually be implemented.
  16473.  
  16474.  One aspect of an SSP may be that it mandates conformance with the POSIX
  16475.  security extensions.
  16476.  
  16477.  The IEEE POSIX security group (P1003.6) has responsibility for defining
  16478.  the security extensions to the base POSIX interface standard.  The POSIX
  16479.  security interface specifications are intended to assist in the
  16480.  construction of a secure system.  They do not, in isolation, provide any
  16481.  protection against threats to a system.
  16482.  
  16483.  
  16484.  
  16485.  
  16486.  
  16487.  
  16488.  
  16489.  
  16490.  
  16491.                Copyright c 1991 IEEE.  All rights reserved.
  16492.       This is an unapproved IEEE Standards Draft, subject to change.
  16493.  
  16494.  
  16495.  
  16496.  
  16497.  
  16498.  230                                   5 POSIX OSE Cross-Category Services
  16499.  
  16500.  
  16501.  
  16502.  
  16503.  
  16504.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16505.  
  16506.  5.2.3  Reference Model
  16507.  
  16508.  The POSIX Reference Model partitions the Application Program Interface
  16509.  and the External Environment Interface into a collection of services,
  16510.  each one of which may have a security component.  These individual
  16511.  components may operate independently or cooperatively with other security
  16512.  components.  For example, a user identification and authentication
  16513.  operation may include elements of the User Interface Services,
  16514.  Communication Services, and Database Services.
  16515.  
  16516.  
  16517.  5.2.4  Service Requirements
  16518.  
  16519.  Through an analysis of the potential threats and requirements of the
  16520.  system, the system security objectives and hence the necessary System
  16521.  Security Policy (SSP) rules may be derived.  This analysis must also take
  16522.  into account appropriate corporate, legal, and standardization
  16523.  requirements.
  16524.  
  16525.  System confidentiality, integrity, availability, and accountability may
  16526.  be supported by the following security objectives:
  16527.  
  16528.  _T_e_c_h_n_i_c_a_l__S_e_c_u_r_i_t_y__O_b_j_e_c_t_i_v_e_s
  16529.  
  16530.      - Identification And Authentication.  A system entity, such as a user
  16531.        or system element, must prove that its claimed identity is
  16532.        legitimate, such that another system entity may place confidence in
  16533.        that claimed identity.
  16534.  
  16535.      - Access Control.  Access to system resources will be restricted to
  16536.        authorized entities only.  Residual data contained within an object
  16537.        will be securely erased before it may be reused by a system entity.
  16538.  
  16539.      - Accountability And Audit.  System users must be made accountable
  16540.        for their actions.  Audit trails of these actions will then be
  16541.        maintained and utilized such that unauthorized system activity will
  16542.        be detected.
  16543.  
  16544.      - Accuracy.  The system must ensure that the correctness and
  16545.        consistency of security-relevant information is maintained.
  16546.  
  16547.      - Availability.  System resources will be provided to users in a
  16548.        consistent and reliable manner.
  16549.  
  16550.      - Data Exchange.  Data transmitted between system users and/or
  16551.        elements will be protected from unauthorized interference or
  16552.        viewing.  Originators and recipients of data will be authenticated
  16553.        and will be able to mutually prove their respective participation
  16554.        in the transaction.
  16555.  
  16556.  
  16557.                Copyright c 1991 IEEE.  All rights reserved.
  16558.       This is an unapproved IEEE Standards Draft, subject to change.
  16559.  
  16560.  
  16561.  
  16562.  
  16563.  
  16564.  5.2 System Security Services                                          231
  16565.  
  16566.  
  16567.  
  16568.  
  16569.  
  16570.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16571.  
  16572.  _N_o_n_t_e_c_h_n_i_c_a_l__S_e_c_u_r_i_t_y__O_b_j_e_c_t_i_v_e_s
  16573.  
  16574.      - Assurance.  The security of the system must be specified, designed,
  16575.        implemented, tested, and maintained in such a way that confidence
  16576.        can be placed in the correct and effective operation of the system.
  16577.        Also, procedures must be specified to ensure continued confidence
  16578.        in the security of the system in the event that the system is
  16579.        modified in some manner.
  16580.  
  16581.      - Security Roles And Responsibilities.  Security activities must be
  16582.        partitioned and allocated to identifiable security administrators
  16583.        who will then be responsible for ensuring that their allocated task
  16584.        is satisfactorily performed.
  16585.  
  16586.      - Secure Operating Procedures.  Procedures must be written that will
  16587.        guide system administrators and users as to the correct procedure
  16588.        to follow in the event of some security-relevant occurrence.
  16589.  
  16590.  
  16591.  5.2.4.1  Application Programming Interface Services
  16592.  
  16593.  _P_O_S_I_X__S_e_c_u_r_i_t_y__I_n_t_e_r_f_a_c_e_s
  16594.  
  16595.  The P1003.6 scope is limited to security extensions for those interfaces
  16596.  defined within the base POSIX interface specification (POSIX.1 {2}).
  16597.  Issues not addressed within the P1003.6 scope include noninterface-
  16598.  specific architectural assurance issues and communications security.
  16599.  
  16600.  _P_O_S_I_X__S_e_c_u_r_i_t_y__I_n_t_e_r_f_a_c_e_s
  16601.  
  16602.  The POSIX security interfaces will support Audit, Privilege,
  16603.  Discretionary Access Control (DAC), Mandatory Access Control (MAC), and
  16604.  Information Labels (ILs).  Implementation support for these POSIX
  16605.  security interfaces is optional.
  16606.  
  16607.  The audit interfaces support the concept of accountability wherein all
  16608.  system users are made accountable for their actions through the recording
  16609.  of user identities and associated actions within an audit trail.  The
  16610.  audit interfaces support both portable audit generating and processing
  16611.  applications.
  16612.  
  16613.  The privilege interfaces support the enforcement of a least privilege
  16614.  security policy wherein system administration responsibilities and
  16615.  associated privileges are allocated to a number of discrete roles, in
  16616.  order to compartmentalize the security impact of a subverted security
  16617.  administrator or of unauthorized usage of a security administrator role.
  16618.  
  16619.  The DAC interfaces support the imposition of a fine granularity of user
  16620.  specified access control to objects.  The DAC interfaces supplement the
  16621.  user-group-other permission bits that currently exist within the UNIX
  16622.  
  16623.                Copyright c 1991 IEEE.  All rights reserved.
  16624.       This is an unapproved IEEE Standards Draft, subject to change.
  16625.  
  16626.  
  16627.  
  16628.  
  16629.  
  16630.  232                                   5 POSIX OSE Cross-Category Services
  16631.  
  16632.  
  16633.  
  16634.  
  16635.  
  16636.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16637.  
  16638.  system through the use of Access Control Lists (ACLs).
  16639.  
  16640.  The MAC and IL interfaces support the imposition of system specified
  16641.  policies for labeling.  A MAC label is associated with an object (e.g., a
  16642.  file) and is typically used for access control purposes.  An information
  16643.  label is associated with the data contained within the actual object
  16644.  itself and may therefore be used as a more accurate label for the
  16645.  purposes of hard copy printing.  Further, an IL may contain information
  16646.  that is not related to logical access control and that is therefore not
  16647.  suitable for inclusion within a MAC label; e.g., physical document
  16648.  handling restrictions.
  16649.  
  16650.  
  16651.  5.2.4.2  External Environment Interface Services
  16652.  
  16653.  _F_G_P:  _T_h_i_s _s_u_b_c_l_a_u_s_e _w_i_l_l _c_o_n_t_a_i_n _t_h_e _s_e_r_v_i_c_e_s _f_r_o_m _s_u_b_c_l_a_u_s_e _4._5._3
  16654.  (_s_u_p_p_l_i_e_d _b_y _P_O_S_I_X._6) _t_h_a_t _a_p_p_l_y _s_p_e_c_i_f_i_c_a_l_l_y _t_o _t_h_e _A_P_I.  _F_o_r _e_x_a_m_p_l_e,
  16655.  _A_c_c_e_s_s _C_o_n_t_r_o_l _s_e_r_v_i_c_e_s _w_i_l_l _b_e _i_n _t_h_i_s _c_o_l_l_e_c_t_i_o_n.
  16656.  
  16657.  5.2.4.3  Interapplication Software Entity Services
  16658.  
  16659.  _F_G_P:  _T_h_i_s _s_u_b_c_l_a_u_s_e _w_i_l_l _c_o_n_t_a_i_n _t_h_e _s_e_r_v_i_c_e_s _f_r_o_m _s_u_b_c_l_a_u_s_e _4._5._3
  16660.  (_s_u_p_p_l_i_e_d _b_y _P_O_S_I_X._6) _t_h_a_t _a_p_p_l_y _s_p_e_c_i_f_i_c_a_l_l_y _t_o _t_h_e _A_P_I.  _F_o_r _e_x_a_m_p_l_e,
  16661.  _A_c_c_e_s_s _C_o_n_t_r_o_l _s_e_r_v_i_c_e_s _w_i_l_l _b_e _i_n _t_h_i_s _c_o_l_l_e_c_t_i_o_n.
  16662.  
  16663.  
  16664.  5.2.4.4  Component Management Services
  16665.  
  16666.  _F_G_P:  _T_h_i_s _s_u_b_c_l_a_u_s_e _w_i_l_l _c_o_n_t_a_i_n _t_h_e _s_e_r_v_i_c_e_s _f_r_o_m _s_u_b_c_l_a_u_s_e _4._5._3
  16667.  (_s_u_p_p_l_i_e_d _b_y _P_O_S_I_X._6) _t_h_a_t _a_p_p_l_y _s_p_e_c_i_f_i_c_a_l_l_y _t_o _t_h_e _A_P_I.  _F_o_r _e_x_a_m_p_l_e,
  16668.  _A_c_c_e_s_s _C_o_n_t_r_o_l _s_e_r_v_i_c_e_s _w_i_l_l _b_e _i_n _t_h_i_s _c_o_l_l_e_c_t_i_o_n.
  16669.  
  16670.  
  16671.  5.2.5  Standards, Specifications, and Gaps
  16672.  
  16673.  5.2.5.1  Related Standards in the POSIX OSE
  16674.  
  16675.  ISO 7498-2, _I_n_f_o_r_m_a_t_i_o_n _P_r_o_c_e_s_s_i_n_g _S_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n
  16676.  _R_e_f_e_r_e_n_c_e _M_o_d_e_l, _S_e_c_u_r_i_t_y _A_r_c_h_i_t_e_c_t_u_r_e.
  16677.  
  16678.  _I_n_f_o_r_m_a_t_i_o_n _R_e_t_r_i_e_v_a_l, _T_r_a_n_s_f_e_r _A_n_d _M_a_n_a_g_e_m_e_n_t _F_o_r _O_S_I--_D_r_a_f_t _A_c_c_e_s_s
  16679.  _C_o_n_t_r_o_l _F_r_a_m_e_w_o_r_k, _I_S_O/_I_E_C _S_C_2_1/_W_G_1.
  16680.  
  16681.  _I_S_O/_I_E_C _8_6_1_3, _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y--_T_e_x_t _a_n_d _O_f_f_i_c_e _S_y_s_t_e_m_s--_O_f_f_i_c_e
  16682.  _D_o_c_u_m_e_n_t _A_r_c_h_i_t_e_c_t_u_r_e (_O_D_A) _A_n_d _I_n_t_e_r_c_h_a_n_g_e _F_o_r_m_a_t.
  16683.  
  16684.  Draft Addendum to ISO 8613 On Security
  16685.  
  16686.  
  16687.  
  16688.  
  16689.                Copyright c 1991 IEEE.  All rights reserved.
  16690.       This is an unapproved IEEE Standards Draft, subject to change.
  16691.  
  16692.  
  16693.  
  16694.  
  16695.  
  16696.  5.2 System Security Services                                          233
  16697.  
  16698.  
  16699.  
  16700.  
  16701.  
  16702.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16703.  
  16704.  CCITT X.509, _M_e_s_s_a_g_e _H_a_n_d_l_i_n_g _S_y_s_t_e_m, _I_S_O/_C_C_I_T_T _X._4_0_0 _D_i_r_e_c_t_o_r_y
  16705.  _A_u_t_h_e_n_t_i_c_a_t_i_o_n _F_r_a_m_e_w_o_r_k.
  16706.  
  16707.  ECMA CMA 138, _S_e_c_u_r_i_t_y _I_n _O_p_e_n _S_y_s_t_e_m_s--_D_a_t_a _E_l_e_m_e_n_t_s _A_n_d _S_e_r_v_i_c_e
  16708.  _D_e_f_i_n_i_t_i_o_n_s.
  16709.  
  16710.  _C_a_r_d _A_n_d _C_a_r_d _T_e_r_m_i_n_a_l_s, _E_u_r_o_p_e_a_n _T_e_l_e_c_o_m_m_u_n_i_c_a_t_i_o_n_s _S_t_a_n_d_a_r_d_s _I_n_s_t_i_t_u_t_e,
  16711.  _T_e_r_m_i_n_a_l _E_q_u_i_p_m_e_n_t _T_E_9
  16712.  
  16713.  
  16714.  5.2.5.2  Related Documents in the POSIX OSE
  16715.  
  16716.  _T_h_e _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y _S_e_c_u_r_i_t_y _E_v_a_l_u_a_t_i_o_n _C_r_i_t_e_r_i_a, Version 1.2, 28
  16717.  June 1991.
  16718.  
  16719.  US DoD, DOD 5200.28-STD, _T_r_u_s_t_e_d _C_o_m_p_u_t_e_r _S_y_s_t_e_m _E_v_a_l_u_a_t_i_o_n _C_r_i_t_e_r_i_a.
  16720.  
  16721.  Trusted Network Interpretation
  16722.  
  16723.  Trusted Database Interpretation
  16724.  
  16725.  Computer Security Subsystem Interpretation
  16726.  
  16727.  5.2.5.3  Emerging Standards in the POSIX OSE
  16728.  
  16729.  To be provided.
  16730.  
  16731.  
  16732.  5.2.5.4  Related Standards
  16733.  
  16734.  To be provided.
  16735.  
  16736.  5.2.5.5  Gaps in Available Standards
  16737.  
  16738.  To be provided.
  16739.  
  16740.  
  16741.  5.2.6  OSE Cross-Category Services
  16742.  
  16743.                                                                             d
  16744.  
  16745.  
  16746.  
  16747.  
  16748.  
  16749.  
  16750.  
  16751.  
  16752.  
  16753.  
  16754.  
  16755.                Copyright c 1991 IEEE.  All rights reserved.
  16756.       This is an unapproved IEEE Standards Draft, subject to change.
  16757.  
  16758.  
  16759.  
  16760.  
  16761.  
  16762.  234                                   5 POSIX OSE Cross-Category Services
  16763.  
  16764.  
  16765.  
  16766.  
  16767.  
  16768.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16769.  
  16770.  5.3  Information System Management
  16771.  
  16772.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _D_o_n _F_o_l_l_a_n_d, _N_e_i_l _C_r_o_f_t                                   _d
  16773.  
  16774.  _D_E_F:  _T_h_e _f_o_l_l_o_w_i_n_g _i_s _o_u_t_l_i_n_e _m_a_t_e_r_i_a_l _a_s _p_l_a_c_e-_h_o_l_d_e_r _f_o_r _m_o_r_e
  16775.  _s_u_b_s_t_a_n_t_i_v_e _t_e_x_t.
  16776.  
  16777.  
  16778.  5.3.1  Overview and Rationale
  16779.  
  16780.  The following issues should be addressed in subclauses 5.3.1 and/or
  16781.  5.3.2:
  16782.  
  16783.      - should support a variety of system management support scenarios
  16784.        (central management, dispersed management, or hybrid)
  16785.  
  16786.      - this section should address both distributed systems and standalone
  16787.        systems.
  16788.  
  16789.      - could be applied to Application Software or software components of
  16790.        the application platform.
  16791.  
  16792.      - support automated management and operation of the IT infrastructure
  16793.  
  16794.      - should address a wide variety of licensing scenarios
  16795.  
  16796.  
  16797.  5.3.2  Scope
  16798.  
  16799.  This category includes services and policies that address the
  16800.  administration of the overall information system required by any
  16801.  organization, including:
  16802.  
  16803.      - Information Management
  16804.  
  16805.      - Processor Management (e.g., Add new user)
  16806.  
  16807.      - Network Management
  16808.  
  16809.      - Configuration Management
  16810.  
  16811.      - Security Management (e.g., Authentication, Key Management)
  16812.  
  16813.      - Accounting Management
  16814.  
  16815.      - Performance Management
  16816.  
  16817.  Administration services accessible from the API may have Programming
  16818.  Language or Language Binding service specifications associated with them.
  16819.  
  16820.  
  16821.                Copyright c 1991 IEEE.  All rights reserved.
  16822.       This is an unapproved IEEE Standards Draft, subject to change.
  16823.  
  16824.  
  16825.  
  16826.  
  16827.  
  16828.  5.3 Information System Management                                     235
  16829.  
  16830.  
  16831.  
  16832.  
  16833.  
  16834.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16835.  
  16836.  These services are defined to provide system and network administrator
  16837.  portability.
  16838.  
  16839.  
  16840.  5.3.3  Reference Model
  16841.  
  16842.  < Consistent with Draft 11 Section 3.0 >
  16843.  
  16844.  
  16845.  5.3.4  Service Requirements
  16846.  
  16847.  The following services are required:
  16848.  
  16849.  
  16850.  5.3.4.1  Software Installation and Distribution                            d
  16851.  
  16852.  The main types of software to be installed and distributed are             d
  16853.  application programs developed in-house, bought-in applications, and       d
  16854.  utility software and personal computer software packages.  All software    d
  16855.  needs to be managed effectively from development or purchase through to    d
  16856.  the live environment.  Unless the distribution and implementation process  d
  16857.  can be controlled automatically, or from the center using software tools,  d
  16858.  procedures must be in place to ensure that distributed software arrives    d
  16859.  when expected and is checked for authenticity in whatever way is           d
  16860.  practical, and that the software is brought into use when required.  The   d
  16861.  main procedures involved in software distribution and installation are:    d
  16862.  
  16863.      - Central Software Control and Distribution (SC&D) staff to inform     d
  16864.        remote staff when to expect distribution software to arrive.         d
  16865.  
  16866.      - Recipients to report to central SC&D staff when the distributed      d
  16867.        software has arrived successfully.                                   d
  16868.  
  16869.      - Central SC&D staff to check that all software is received as         d
  16870.        expected at locations.                                               d
  16871.  
  16872.      - Central SC&D staff to issue clear instructions about when the        d
  16873.        software is to be implemented.                                       d
  16874.  
  16875.      - Location staff to report to SC&D when the software has been          d
  16876.        implemented.  The release record on the Configuration Management     d
  16877.        Database will state which installations are to receive the release.  d
  16878.        This database must be updated to reflect the receipt and             d
  16879.        implementation of the release at each site.                          d
  16880.  
  16881.  
  16882.  
  16883.  
  16884.  
  16885.  
  16886.  
  16887.                Copyright c 1991 IEEE.  All rights reserved.
  16888.       This is an unapproved IEEE Standards Draft, subject to change.
  16889.  
  16890.  
  16891.  
  16892.  
  16893.  
  16894.  236                                   5 POSIX OSE Cross-Category Services
  16895.  
  16896.  
  16897.  
  16898.  
  16899.  
  16900.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  16901.  
  16902.  5.3.4.2  License Services                                                  d
  16903.  
  16904.  The terms and conditions relating to the supply of software may place      d
  16905.  legal restrictions on the organization (e.g., no unauthorized copies to    d
  16906.  be made).  It is particularly important therefore that the Configuration   d
  16907.  Management Database is updated with details of who holds copies of         d
  16908.  software items.  This assists the organization in discharging its legal    d
  16909.  obligations and assists auditors in checking for the existence of          d
  16910.  unauthorized copies.                                                       d
  16911.  
  16912.  All authorized copies of licensed or purchased software that are made by   d
  16913.  SC&D staff must be allocated a unique copy number and recorded in the      d
  16914.  Configuration Management Database together with where they are located     d
  16915.  and who is responsible for them.  Procedural restrictions should be        d
  16916.  introduced to prohibit the unauthorized copying of software, and regular   d
  16917.  software audits should include a check for any unauthorized copies.        d
  16918.  
  16919.  
  16920.  5.3.4.3  Print Output and Distribution Services                            d
  16921.  
  16922.  Output and distribution packages control output production and             d
  16923.  distribution from the moment the output is planned to the time the user    d
  16924.  receives the print.  The working criteria need to be set up first; e.g.,   d
  16925.  define who receives the report and how much of the report the user gets.   d
  16926.  
  16927.  The main functions are                                                     d
  16928.  
  16929.      - The report can be limited to parts wanted by the user.               d
  16930.  
  16931.      - Multiple copies of the entire report, or of selected sections can    d
  16932.        be produced.                                                         d
  16933.  
  16934.      - Reports are grouped by recipient within delivery location.           d
  16935.  
  16936.      - Reports for each job are spooled as a group when the job is          d
  16937.        complete.                                                            d
  16938.  
  16939.      - The number of whole reports and individual pages received by each    d
  16940.        user are recorded.                                                   d
  16941.  
  16942.      - Report production can be monitored and managed efficiently.          d
  16943.  
  16944.  Output and Distribution packages should contain the following minimum      d
  16945.  characteristics:                                                           d
  16946.  
  16947.      - Printing and distribution of whole and part reports                  d
  16948.  
  16949.      - Status (queued, printing etc) of the report tracked                  d
  16950.  
  16951.  
  16952.  
  16953.                Copyright c 1991 IEEE.  All rights reserved.
  16954.       This is an unapproved IEEE Standards Draft, subject to change.
  16955.  
  16956.  
  16957.  
  16958.  
  16959.  
  16960.  5.3 Information System Management                                     237
  16961.  
  16962.  
  16963.  
  16964.  
  16965.  
  16966.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  16967.  
  16968.      - Online viewing of reports                                            d
  16969.  
  16970.      - Ability to archive report files                                      d
  16971.  
  16972.      - Ability to support a wide range of printers                          d
  16973.  
  16974.      - Costing and charging functionality                                   d
  16975.  
  16976.      - Security facilities                                                  d
  16977.  
  16978.  By using an output distribution package, the delivery of reports to the    d
  16979.  correct person at the correct location can be ensured.  Paper, time, and   d
  16980.  IT resource are saved as the users receive only the parts of reports that  d
  16981.  they need, and can also view the reports online.  The number of pages      d
  16982.  printed can be controlled.  Reports can be tracked from the time they are  d
  16983.  created to the time they are delivered to the user, allowing good          d
  16984.  security monitoring.                                                       d
  16985.  
  16986.  
  16987.  5.3.4.4  Office Media Management and Backup/Restore                        d
  16988.  
  16989.  The main functions of magnetic tape and data cartridge management systems  d
  16990.  are:                                                                       d
  16991.  
  16992.      - To provide automated support for tape housekeeping and maintenance   d
  16993.        including:                                                           d
  16994.  
  16995.         +o Allocating tapes and releasing them for reuse helping             d
  16996.  
  16997.         +o To ensure even patterns of use where appropriate                  d
  16998.  
  16999.         +o Constructing and triggering cleaning schedules                    d
  17000.  
  17001.         +o Maintaining the security of data                                  d
  17002.  
  17003.      - To help automate archiving (vault management) for offsite storage    d
  17004.  
  17005.      - To help identify growth requirements                                 d
  17006.  
  17007.  Vault management is concerned with controlling the movement of tape        d
  17008.  cycles from one storage location to another.  As a tape cycle is used,     d
  17009.  the tape management system automatically logs a different vault            d
  17010.  identifier against each tape.                                              d
  17011.  
  17012.  A backup strategy is required to control the frequency of backups and the  d
  17013.  way in which they are created; e.g., whole volumes to cartridge or         d
  17014.  individual files to tape.                                                  d
  17015.  
  17016.  
  17017.  
  17018.  
  17019.                Copyright c 1991 IEEE.  All rights reserved.
  17020.       This is an unapproved IEEE Standards Draft, subject to change.
  17021.  
  17022.  
  17023.  
  17024.  
  17025.  
  17026.  238                                   5 POSIX OSE Cross-Category Services
  17027.  
  17028.  
  17029.  
  17030.  
  17031.  
  17032.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17033.  
  17034.  The backups and restores of system and application software should be      d
  17035.  separate from the backups and restores of data.  Software and library      d
  17036.  backups should be explicitly scheduled and the complete software item or   d
  17037.  library backed up.  The schedule for backing up files must be fully        d
  17038.  documented, properly maintained and adequately safeguarded as the          d
  17039.  contents of the schedule are required for disaster recovery purposes.      d
  17040.  
  17041.  
  17042.  5.3.4.5  Online Disk Management                                            d
  17043.  
  17044.  The operation of disk management systems requires that they take account   d
  17045.  of a range of factors such as retention period, recovery, space            d
  17046.  fragmentation, disk overflow, file and record activity levels, and         d
  17047.  channel use.  Some systems merely report against values or thresholds      d
  17048.  set, but increasingly they invoke corrective action.  Typically, the       d
  17049.  corrective action is file and disk reorganization or file and data         d
  17050.  archiving.                                                                 d
  17051.  
  17052.  If a disk management system is used, the constant monitoring and           d
  17053.  actioning of requests for disk space can be minimized.  Disk space may be  d
  17054.  collectively pooled and unused space constantly reclaimed.                 d
  17055.  
  17056.  5.3.4.6  Job Scheduling                                                    d
  17057.  
  17058.  Scheduling involves the continuous organization of jobs and processes      d
  17059.  into the most efficient sequence, maximizing throughput and utilization    d
  17060.  to meet the targets set in service level agreements (SLA).  Jobs are       d
  17061.  scheduled to ensure:                                                       d
  17062.  
  17063.      - SLAs and user requirements are met; e.g., certain jobs need to be    d
  17064.        run by a certain time                                                d
  17065.  
  17066.      - Available capacity is used effectively; e.g., the workload run at    d
  17067.        any given time does not exceed the practical capacity.               d
  17068.  
  17069.  The minimum functionality of a scheduler should include:                   d
  17070.  
  17071.      - A high upper limit for the number of relationships allowed between   d
  17072.        jobs                                                                 d
  17073.  
  17074.      - The ability to schedule by calendar and criteria                     d
  17075.  
  17076.      - Workload balancing support                                           d
  17077.  
  17078.      - Levels of security                                                   d
  17079.  
  17080.      - Ability to restart jobs                                              d
  17081.  
  17082.  
  17083.  
  17084.  
  17085.                Copyright c 1991 IEEE.  All rights reserved.
  17086.       This is an unapproved IEEE Standards Draft, subject to change.
  17087.  
  17088.  
  17089.  
  17090.  
  17091.  
  17092.  5.3 Information System Management                                     239
  17093.  
  17094.  
  17095.  
  17096.  
  17097.  
  17098.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17099.  
  17100.      - Operator override capability                                         d
  17101.  
  17102.      - Capability to model future workloads.                                d
  17103.  
  17104.  
  17105.  5.3.4.7  Processor Configuration Management                                d
  17106.  
  17107.  Configuration management consists of four basic functions:                 d
  17108.  identification, control, status accounting, and verification.              d
  17109.  
  17110.  Identification involves specifying and identifying all components of an    d
  17111.  IT infrastructure.                                                         d
  17112.  
  17113.  Control implies the ability to agree and ``freeze'' configuration items    d
  17114.  (CIs) and then to make changes only with agreement of the appropriate      d
  17115.  named authorities.  Control is concerned with ensuring that none of the    d
  17116.  CIs shown is altered or replaced, and that no CIs are added without        d
  17117.  appropriate authorization.                                                 d
  17118.  
  17119.  Status accounting involves the recording and reporting of all current and  d
  17120.  historical data concerned with each CI.  Status accounting maintains       d
  17121.  records of the current, previous and planned states and attributes of the  d
  17122.  CIs and tracks these states and attributes:  for example, as the status    d
  17123.  of a CI changes from ``development'' through to ``test,'' ``scheduled to   d
  17124.  go live,'' ``live,'' and through to ``archived.''                          d
  17125.  
  17126.  Verification consists of a series of reviews and audits to ensure that     d
  17127.  there is conformity between all CIs and the authorized state of CIs as     d
  17128.  recorded in the configuration management database (CMDB).  It is           d
  17129.  concerned with checking that the physical CIs actually match the           d
  17130.  authorized system as described in the CMDB.                                d
  17131.  
  17132.  5.3.4.8  Network Configuration Management                                  d
  17133.  
  17134.  To ensure the viability of network services the configuration of systems   d
  17135.  and services must be controlled and managed.  Effective configuration      d
  17136.  management will produce a minimum risk environment.                        d
  17137.  
  17138.  Configuration management procedures must ensure that details are provided  d
  17139.  for network equipment and systems covering:                                d
  17140.  
  17141.      - Configuration activities--how to configure the network equipment     d
  17142.  
  17143.      - Security controls                                                    d
  17144.  
  17145.      - Access controls                                                      d
  17146.  
  17147.      - Configuration history log                                            d
  17148.  
  17149.  
  17150.  
  17151.                Copyright c 1991 IEEE.  All rights reserved.
  17152.       This is an unapproved IEEE Standards Draft, subject to change.
  17153.  
  17154.  
  17155.  
  17156.  
  17157.  
  17158.  240                                   5 POSIX OSE Cross-Category Services
  17159.  
  17160.  
  17161.  
  17162.  
  17163.  
  17164.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17165.  
  17166.      - Configuration authority                                              d
  17167.  
  17168.      - Build details                                                        d
  17169.  
  17170.      - Fall-back and test records                                           d
  17171.  
  17172.      - Management reporting requirements.                                   d
  17173.  
  17174.  
  17175.  5.3.4.9  Distributed System Configuration Management
  17176.  
  17177.      - authentication services for a distributed system environment
  17178.  
  17179.      - distributed Naming Service Configuration
  17180.  
  17181.      - distributed Time Service Configuration
  17182.  
  17183.      - X Window system configuration
  17184.  
  17185.      - Window/Session Manager configuration
  17186.  
  17187.  5.3.4.10  Accounting                                                       d
  17188.  
  17189.  An effective cost management system should:                                d
  17190.  
  17191.      - Provide assistance in developing a sound investment strategy which   d
  17192.        recognizes and evaluates the options and flexibility available from  d
  17193.        modern technology.                                                   d
  17194.  
  17195.      - Provide targets for performance and measure that performance         d
  17196.        against targets.  It should also enable management to monitor        d
  17197.        actual costs against budget.                                         d
  17198.  
  17199.      - Facilitate prioritization of resource usage.                         d
  17200.  
  17201.      - Ensure the sound stewardship of all the assets employed in the       d
  17202.        organization, including the maintenance of appropriate records for   d
  17203.        control purposes.                                                    d
  17204.  
  17205.      - Assist management in their day to day decision making and enable     d
  17206.        them to make considered decisions as regards forward plans with the  d
  17207.        minimum of risk.                                                     d
  17208.  
  17209.      - Be flexible and capable of providing a fast response to changing     d
  17210.        business circumstances.                                              d
  17211.  
  17212.  The essential objectives of apportioning costs are to:                     d
  17213.  
  17214.  
  17215.  
  17216.  
  17217.                Copyright c 1991 IEEE.  All rights reserved.
  17218.       This is an unapproved IEEE Standards Draft, subject to change.
  17219.  
  17220.  
  17221.  
  17222.  
  17223.  
  17224.  5.3 Information System Management                                     241
  17225.  
  17226.  
  17227.  
  17228.  
  17229.  
  17230.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17231.  
  17232.      - Recover from users the full cost of (IT) services, including the     d
  17233.        cost of capital.                                                     d
  17234.  
  17235.      - Ensure that IT users are aware of the costs which they impose on     d
  17236.        the IT systems.                                                      d
  17237.  
  17238.      - Ensure that IT providers have an incentive to deliver an agreed      d
  17239.        quality and quantity of economic and effective service.              d
  17240.  
  17241.  
  17242.  5.3.4.11  Performance Management
  17243.  
  17244.      - ensure that users have satisfactory performance, workload
  17245.        throughput, and terminal response times in accordance with their
  17246.        service level agreements
  17247.  
  17248.  5.3.4.12  Capacity Management                                              d
  17249.  
  17250.  An effective and efficient capacity management function contains at least  d
  17251.  the following elements:                                                    d
  17252.  
  17253.      - Performance management to monitor and optimize the use of current    d
  17254.        systems.                                                             d
  17255.  
  17256.      - A capacity management database that contains current and historic    d
  17257.        data of technical and business related interest.  This database      d
  17258.        forms the basis for the provision of both tactical and strategic     d
  17259.        reports on performance and capacity.                                 d
  17260.  
  17261.      - Workload management to identify and understand the applications      d
  17262.        that make use of the system.  The understanding of workloads has     d
  17263.        both a technical and business related nature.  This involves         d
  17264.        application sizing to accurately predict the performance and         d
  17265.        required capacity of new applications.                               d
  17266.  
  17267.      - Capacity planning to accurately plan the required hardware resource  d
  17268.        and associated cost for the future and to predict the effect on      d
  17269.        performance and capacity of both tactical and strategic plans.       d
  17270.  
  17271.  
  17272.  5.3.4.13  Availability Management
  17273.  
  17274.      - measures taken to ensure availability and reliability
  17275.  
  17276.      - automated or manual measures taken to recover a failed system
  17277.  
  17278.  
  17279.  
  17280.  
  17281.  
  17282.  
  17283.                Copyright c 1991 IEEE.  All rights reserved.
  17284.       This is an unapproved IEEE Standards Draft, subject to change.
  17285.  
  17286.  
  17287.  
  17288.  
  17289.  
  17290.  242                                   5 POSIX OSE Cross-Category Services
  17291.  
  17292.  
  17293.  
  17294.  
  17295.  
  17296.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17297.  
  17298.  5.3.4.14  Security Management
  17299.  
  17300.      - configuration of appropriate ACLs for System, User Interface,
  17301.        Storage, Network, and application software services.
  17302.  
  17303.  
  17304.  5.3.5  Standards, Specifications, and Gaps
  17305.  
  17306.  To be provided.
  17307.  
  17308.  
  17309.  5.3.6  OSE Cross-Category Services
  17310.  
  17311.      - Security for remote print jobs
  17312.  
  17313.  
  17314.  5.3.7  Related Standards
  17315.  
  17316.  To be provided.
  17317.  
  17318.  
  17319.  5.3.8  Open Issues
  17320.  
  17321.  
  17322.  
  17323.  
  17324.  
  17325.  
  17326.  
  17327.  
  17328.  
  17329.  
  17330.  
  17331.  
  17332.  
  17333.  
  17334.  
  17335.  
  17336.  
  17337.  
  17338.  
  17339.  
  17340.  
  17341.  
  17342.  
  17343.  
  17344.  
  17345.  
  17346.  
  17347.  
  17348.  
  17349.                Copyright c 1991 IEEE.  All rights reserved.
  17350.       This is an unapproved IEEE Standards Draft, subject to change.
  17351.  
  17352.  
  17353.  
  17354.  
  17355.  
  17356.  5.3 Information System Management                                     243
  17357.  
  17358.  
  17359.  
  17360.  
  17361.  
  17362.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17363.  
  17364.  
  17365.  
  17366.  
  17367.  
  17368.  
  17369.  
  17370.  
  17371.  
  17372.  
  17373.  
  17374.  
  17375.  
  17376.  
  17377.  
  17378.  
  17379.  
  17380.  
  17381.  
  17382.  
  17383.  
  17384.  
  17385.  
  17386.  
  17387.  
  17388.  
  17389.  
  17390.  
  17391.  
  17392.  
  17393.  
  17394.  
  17395.  
  17396.  
  17397.  
  17398.  
  17399.  
  17400.  
  17401.  
  17402.  
  17403.  
  17404.  
  17405.  
  17406.  
  17407.  
  17408.  
  17409.  
  17410.  
  17411.  
  17412.  
  17413.  
  17414.  
  17415.                Copyright c 1991 IEEE.  All rights reserved.
  17416.       This is an unapproved IEEE Standards Draft, subject to change.
  17417.  
  17418.  
  17419.  
  17420.  
  17421.  
  17422.  244                                   5 POSIX OSE Cross-Category Services
  17423.  
  17424.  
  17425.  
  17426.  
  17427.  
  17428.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17429.  
  17430.  5.4  Fault Management
  17431.  
  17432.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _R_i_c_h _B_e_r_g_m_a_n
  17433.  
  17434.  The trade-offs in this subclause involve:
  17435.  
  17436.      - Testability and Verifiability vs. simplicity and time
  17437.  
  17438.      - Confidence and reliability vs. cost vs. risk
  17439.  
  17440.      - Downtime vs. availability
  17441.  
  17442.      - Maintainability vs. higher system cost
  17443.  
  17444.  These services allow the system to react to the loss or incorrect
  17445.  operation of system components at various levels (hardware, logical,
  17446.  services, etc.).  The classical model of fault tolerance has a three-step
  17447.  approach.  The three steps are fault detection, fault isolation, and
  17448.  fault recovery.  Typically implementations divide these steps into
  17449.  multiple steps or integrate them into one or two steps.  Additionally,
  17450.  fault diagnosis services support the other steps in the treatment of a
  17451.  fault.
  17452.  
  17453.  Various fault tolerance strategies, such as checkpointing and voting, are
  17454.  implemented as a collection of services comprising one or more of the
  17455.  steps in the fault tolerance classical model.  For example, services
  17456.  involved in implementing a three-node voting scheme will include a vote
  17457.  comparator service (fault detection), vote analyzer service (fault
  17458.  isolation/fault diagnosis), a service to pass the majority ``answer''
  17459.  through (fault recovery) as well as a service to disable the faulty
  17460.  resource and reconfigure the voters (fault recovery/reconfiguration).
  17461.  
  17462.  _F_a_u_l_t__D_e_t_e_c_t_i_o_n
  17463.  
  17464.  Fault detection services are concerned with determining when a fault has
  17465.  occurred in the system.  Fault detection services are both passive and
  17466.  active.  Active services are those that attempt to determine the status
  17467.  of various system components by testing those components.  Passive
  17468.  services, on the other hand, try to ascertain system components by
  17469.  passively gathering information and watching the behavior of the system.
  17470.  
  17471.  _F_a_u_l_t__I_s_o_l_a_t_i_o_n_;
  17472.  
  17473.  Fault isolation services attempt to determine the component at fault and
  17474.  segregate the faulty component from the rest of the system.  Services may
  17475.  be shared between the fault detection and isolation service library in
  17476.  that they perform both functions.
  17477.  
  17478.  
  17479.  
  17480.  
  17481.                Copyright c 1991 IEEE.  All rights reserved.
  17482.       This is an unapproved IEEE Standards Draft, subject to change.
  17483.  
  17484.  
  17485.  
  17486.  
  17487.  
  17488.  5.4 Fault Management                                                  245
  17489.  
  17490.  
  17491.  
  17492.  
  17493.  
  17494.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17495.  
  17496.  _F_a_u_l_t__R_e_c_o_v_e_r_y
  17497.  
  17498.  Fault recovery services attempt to bring the system into a consistent
  17499.  state.  These services may be very interrelated to the scheduling
  17500.  services, network services, and data base services, depending on the
  17501.  recovery scheme used.
  17502.  
  17503.  Redundancy of resources is many times needed to support fault recovery.
  17504.  Resources may include data, process, processor, disk drive, etc.
  17505.  
  17506.  As parts of the system fail, it may no longer be possible to satisfy all
  17507.  the requirements of the application.  Services to support graceful
  17508.  degradation may be used to ensure that critical activities do not fail.
  17509.  
  17510.  _F_a_u_l_t__D_i_a_g_n_o_s_i_s
  17511.  
  17512.  These services deal with the system's ability to analyze the attributes
  17513.  of a system fault and determine its cause.  These services tend to be
  17514.  very interrelated with fault detection and fault isolation services.
  17515.  
  17516.  _F_a_u_l_t__A_v_o_i_d_a_n_c_e
  17517.  
  17518.  These services involve the avoidance of faults before a failure in the
  17519.  system component occurs.  If a system can detect that the operation of a
  17520.  component is approaching the edge of its operational range, a standby or
  17521.  backup component could be phased in to replace it.  Another form of fault
  17522.  avoidance is logging of shocks, temperature extremes, etc., so that it
  17523.  can be predicted that a component will not meet its original expected
  17524.  service life.
  17525.  
  17526.  _S_o_f_t_w_a_r_e__S_a_f_e_t_y
  17527.  
  17528.  These services involve the system's ability to keep application software
  17529.  from causing harm to the system's software, hardware, or user.  For
  17530.  instance, a process may attempt to write into another process's memory
  17531.  space without permission.
  17532.  
  17533.  A good example of a reliability method that may provide software safety
  17534.  is a bounds checker.  The checker compares an answer supplied against the
  17535.  bounds.  If it is not within the bounds, the bounds checker will not
  17536.  allow the answer to propagate, possibly causing damage to the system's
  17537.  integrity.  Additionally, it may send a fault message (or security
  17538.  violation information, depending on the type of answers expected) to the
  17539.  proper service.
  17540.  
  17541.  To enhance software safety, other services and processes should be only
  17542.  given the resources necessary to complete their job.
  17543.  
  17544.  
  17545.  
  17546.  
  17547.                Copyright c 1991 IEEE.  All rights reserved.
  17548.       This is an unapproved IEEE Standards Draft, subject to change.
  17549.  
  17550.  
  17551.  
  17552.  
  17553.  
  17554.  246                                   5 POSIX OSE Cross-Category Services
  17555.  
  17556.  
  17557.  
  17558.  
  17559.  
  17560.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17561.  
  17562.  _S_t_a_t_u_s__o_f__S_y_s_t_e_m__C_o_m_p_o_n_e_n_t_s
  17563.  
  17564.  These services involve the obtrusive and nonobtrusive diagnosis of the
  17565.  state of system components.  For further explanation of these services,
  17566.  see Fault Detection and Fault Diagnosis services.  These services may
  17567.  additionally need to record and/or display information concerning
  17568.  performance, configuration, and general system information.
  17569.  
  17570.  _R_e_c_o_n_f_i_g_u_r_a_t_i_o_n
  17571.  
  17572.  These services allow the system to reconfigure its view of the world.
  17573.  This services allow the system to substitute different resources to
  17574.  perform system functions such as substituting a new physical I/O channel
  17575.  to support a logical channel.  These services are part of the API but
  17576.  their use may be restricted to specially authorized programs such as
  17577.  those used by the target system operator.
  17578.  
  17579.  _M_a_i_n_t_a_i_n_a_b_i_l_i_t_y
  17580.  
  17581.  Maintainability services provide support for the maintenance of a system.
  17582.  A major component of that support is the collection and logging of
  17583.  information about the operation of the system.  Typical information to be
  17584.  logged is:
  17585.  
  17586.      - Software and hardware errors during operation
  17587.  
  17588.      - Processes that failed or almost failed to meet scheduled deadlines
  17589.  
  17590.      - Performance metrics for system tuning
  17591.  
  17592.      - Times when the system operated in extreme environmental conditions
  17593.  
  17594.      - Errors reported during startup self-testing
  17595.  
  17596.      - Attempts to violate rules of the system's security policy.
  17597.  
  17598.  
  17599.  
  17600.  
  17601.  
  17602.  
  17603.  
  17604.  
  17605.  
  17606.  
  17607.  
  17608.  
  17609.  
  17610.  
  17611.  
  17612.  
  17613.                Copyright c 1991 IEEE.  All rights reserved.
  17614.       This is an unapproved IEEE Standards Draft, subject to change.
  17615.  
  17616.  
  17617.  
  17618.  
  17619.  
  17620.  5.4 Fault Management                                                  247
  17621.  
  17622.  
  17623.  
  17624.  
  17625.  
  17626.  
  17627.  
  17628.  
  17629.  
  17630.  
  17631.  
  17632.  
  17633.  
  17634.  
  17635.  
  17636.  
  17637.  
  17638.  
  17639.  
  17640.  
  17641.  
  17642.  
  17643.  
  17644.  
  17645.  
  17646.  
  17647.  
  17648.  
  17649.  
  17650.  
  17651.  
  17652.  
  17653.  
  17654.  
  17655.  
  17656.  
  17657.  
  17658.  
  17659.  
  17660.  
  17661.  
  17662.  
  17663.  
  17664.  
  17665.  
  17666.  
  17667.  
  17668.  
  17669.  
  17670.  
  17671.  
  17672.  
  17673.  
  17674.  
  17675.  
  17676.  
  17677.  
  17678.  
  17679.  
  17680.  
  17681.  
  17682.  
  17683.  
  17684.  
  17685.  
  17686.  
  17687.  
  17688.  
  17689.  
  17690.  
  17691.  
  17692.                                                                P1003.0/D13
  17693.  
  17694.  
  17695.  
  17696.  
  17697.  
  17698.  
  17699.  
  17700.  
  17701.                             Section 6: Profiles
  17702.  
  17703.  
  17704.  
  17705.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _F_r_i_t_z _S_c_h_u_l_z
  17706.  
  17707.  This section targets those who want to know more about what profiles are
  17708.  and those who are in the process of developing their own profiles.  The
  17709.  latter group consists of those developing formal ``Standardized
  17710.  Profiles'' and those developing less formal profiles for their industry
  17711.  group (e.g., a banking trade association) or their own company or
  17712.  enterprise for procurement or strategic planning purposes.
  17713.  
  17714.  Those not involved in the development of profiles should read 6.2.  Parts
  17715.  of 6.3 also may be useful, especially the earlier subclauses that give
  17716.  definitions of terms and explain concepts more precisely.
  17717.  
  17718.  Developers of profiles that are not formal POSIX Standardized Profiles
  17719.  (POSIX SPs) should read all of Section 6.
  17720.  
  17721.  Developers of profiles that are formal POSIX SPs should read all of
  17722.  Section 6 and Annex A.
  17723.  
  17724.  
  17725.  
  17726.  6.1  Scope
  17727.  
  17728.  The information presented here about profiles is limited in scope to
  17729.  assist those needing to understand profile concepts as they apply to the
  17730.  POSIX Open System Environment.  Covered are profiles constructed from
  17731.  standards (and profiles) listed within this guide (that, by design, are
  17732.  consistent with POSIX.1).
  17733.  
  17734.  The goal is to create a common approach and documentation scope and style
  17735.  for POSIX-oriented profiles.  Annex A goes further by giving specific
  17736.  guidance to developers of formal POSIX SPs.
  17737.  
  17738.  
  17739.  
  17740.  
  17741.  
  17742.  
  17743.  
  17744.  
  17745.                Copyright c 1991 IEEE.  All rights reserved.
  17746.       This is an unapproved IEEE Standards Draft, subject to change.
  17747.  
  17748.  
  17749.  
  17750.  
  17751.  
  17752.  6.1 Scope                                                             249
  17753.  
  17754.  
  17755.  
  17756.  
  17757.  
  17758.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17759.  
  17760.  6.2  Profile Concepts
  17761.  
  17762.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  17763.  
  17764.  _I_n_t_r_o_d_u_c_t_i_o_n
  17765.  
  17766.  This guide is designed to assist in the selection of standards in the
  17767.  procurement process or as a target application environment.  Profiles
  17768.  also assist in the selection of standards.  A profile is a suite of base
  17769.  standards with specified options.  Profiles can be created by software
  17770.  developers to describe the environment they target or by buyers to
  17771.  identify their purchasing objectives.
  17772.  
  17773.  _B_a_s_i_c__T_e_r_m_i_n_o_l_o_g_y
  17774.  
  17775.  See 2.2.2 for relevant terms that will be used in this section:  base
  17776.  standard, application environment profile, profile, standardized profile,
  17777.  and POSIX standardized profile.
  17778.  
  17779.  There are two general classes of standards documents:
  17780.  
  17781.      - Base standards
  17782.  
  17783.      - Profiles (including AEPs, standardized profiles, and POSIX SPs)
  17784.  
  17785.  As used in this guide, base standards specify functionality, syntax,
  17786.  protocols, data formats, etc., in detail, while profiles do not.
  17787.  Instead, profiles identify which base standards are applicable.  Since
  17788.  base standards often consist of a base or mandatory part and a number of
  17789.  selectable optional parts and values, profiles may also (or may not)
  17790.  choose, for each base standard, specific options or values.  A profile
  17791.  may also identify other profiles, allowing the construction of ``larger''
  17792.  profiles based on both base standards and other ``smaller'' profiles.
  17793.  
  17794.  
  17795.  NOTE:  Profiles go by many names throughout the world including
  17796.  ``functional standards,'' ``implementation agreements,'' and
  17797.  ``specifications.''  In the context of internationalization, the term      d
  17798.  ``national profile'' is frequently used and will be found, for example,    d
  17799.  in POSIX.1 {2} and POSIX.2 {_r_e_f}.  Its meaning is consistent with the      d
  17800.  definitions in 2.2.2, but in many cases such profiles reflect national     d
  17801.  cultural conventions.  For example, Denmark and Japan both have specified  d
  17802.  a national character profile.                                              d
  17803.  
  17804.  
  17805.  
  17806.  
  17807.  
  17808.  
  17809.  
  17810.  
  17811.                Copyright c 1991 IEEE.  All rights reserved.
  17812.       This is an unapproved IEEE Standards Draft, subject to change.
  17813.  
  17814.  
  17815.  
  17816.  
  17817.  
  17818.  250                                                            6 Profiles
  17819.  
  17820.  
  17821.  
  17822.  
  17823.  
  17824.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17825.  
  17826.  6.2.1  Relationships Between This Guide and Profiles
  17827.  
  17828.  Key to the understanding of profiles is a discussion of the relationships
  17829.  that exist among profiles, this guide, and the base standards.
  17830.  
  17831.  There exist many thousands of base standards, each addressing a
  17832.  particular, usually narrowly scoped, area of application portability or
  17833.  interoperability.  Many of the base standards, developed over the years,
  17834.  are simultaneously narrow in scope (for example, a C binding of SQL), but
  17835.  broadly applicable (for example, applicable to Operating Systems that
  17836.  have ``POSIX'' interfaces and those that do not.)
  17837.  
  17838.  The base standards listed in 1.2 form the basis of the POSIX Open System   d
  17839.  Environment.  The list is comprehensive, in that its coverage is broad
  17840.  enough to cover most modern day application development, and the base
  17841.  standards selected have been determined to be consistent with
  17842.  POSIX.1 {2}.
  17843.  
  17844.  While this guide does not list all base standards, it is still a large
  17845.  list, and in fact the list contains base standards that might not be
  17846.  consistent with each other (choose any two standards from the POSIX OSE
  17847.  and they might not be consistent with each other.)  The process of
  17848.  profile writing addresses this.
  17849.  
  17850.  The profile writer reduces even further the list of base standards to
  17851.  just the (relatively) few that are needed to provide portability and
  17852.  interoperability in a given functional area.  In the process, the profile
  17853.  writer grapples with the coherence of the selected base standards by
  17854.  choosing only those that will work together to get the particular job
  17855.  done.  Profile writers should also deal with _h_a_r_m_o_n_i_z_a_t_i_o_n, which means
  17856.  making the profiles consistent with each other where they overlap.  This
  17857.  can often be done among profiles even where the functional areas served
  17858.  differ greatly.  Procurements specifying two profiles that have been
  17859.  harmonized by their authors have the benefit of knowing that the two will
  17860.  not conflict with each other.
  17861.  
  17862.  By specifying compliance to a particular profile in a procurement, a
  17863.  consumer easily references a set of multiple base standards that have
  17864.  been determined to:  serve a particular purpose; work together; and be
  17865.  consistent with POSIX.1 {2}.
  17866.  
  17867.  The benefits and relationships do not end here, however.  Since profiles
  17868.  can be constructed to reference profiles as well as base standards,
  17869.  future profile writing will be even easier.
  17870.  
  17871.  NOTE:  An analogy is in the construction of electronic equipment such as
  17872.  computers.  The basic building blocks are ``components,'' such as memory
  17873.  chips and capacitors, which can be fabricated into larger building blocks
  17874.  such as printed circuit boards, which can be fabricated (with other
  17875.  components or printed circuit boards) into larger building blocks, such
  17876.  
  17877.                Copyright c 1991 IEEE.  All rights reserved.
  17878.       This is an unapproved IEEE Standards Draft, subject to change.
  17879.  
  17880.  
  17881.  
  17882.  
  17883.  
  17884.  6.2 Profile Concepts                                                  251
  17885.  
  17886.  
  17887.  
  17888.  
  17889.  
  17890.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  17891.  
  17892.  as standalone computers, which can be fabricated into larger building
  17893.  blocks such as department wide networks of computers, etc.  Likewise, a
  17894.  few base standards (the basic building blocks), can be gathered together
  17895.  into ``component'' profiles, which can then be gathered together (with
  17896.  other base standards or component profiles) into larger ``platform''
  17897.  profiles, which can be gathered together into larger ``application area''
  17898.  profiles.  (See 6.3.3.5.)
  17899.  
  17900.  
  17901.  The development of profiles from the primary building blocks (base
  17902.  standards) results in larger building blocks (profiles) that can then be
  17903.  incorporated into future profiles and also into future versions of this
  17904.  guide.
  17905.  
  17906.  _T_h_e__I_m_p_o_r_t_a_n_c_e__O_f__P_r_o_f_i_l_e_s
  17907.  
  17908.  Profiles are important for a number of reasons:
  17909.  
  17910.      - Profiles select one or more base standards or profiles and specify
  17911.        options and parameters within these.  This provides a clear
  17912.        statement of specifications that describe the standards for the
  17913.        target functional objective(s).
  17914.  
  17915.      - Profiles include information about the relationship between the
  17916.        standards included (i.e., coherency is an objective).
  17917.  
  17918.      - Profiles are a clear method of communication about the specific
  17919.        standards needed for an application domain and can be used in
  17920.        procurement, in conformance testing, and as a target for
  17921.        applications development.
  17922.  
  17923.  
  17924.  6.3  Guidance to Profile Writers
  17925.  
  17926.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  17927.  
  17928.  This clause expands the concept of profiling in the manner needed by
  17929.  profile writers and provides detailed guidance to those writers.  It
  17930.  includes a description of the basis for this guidance, expands on the
  17931.  purposes served by profiles, and finishes with more detailed guidance
  17932.  specifically aimed at those writing profiles.
  17933.  
  17934.  Using this guide as a basis, profile writers can develop their own
  17935.  informal profiles, suited to their own needs, or formal standards bodies
  17936.  can develop formal, balloted profiles.  This clause details the
  17937.  requirements that should be met by developers of profiles whether they
  17938.  are POSIX SPs, standardized profiles, or less formal profiles.
  17939.  Standardized profiles are formal profiles that meet the requirements of a
  17940.  sponsoring standards body.  Standardized profiles that also meet the
  17941.  
  17942.  
  17943.                Copyright c 1991 IEEE.  All rights reserved.
  17944.       This is an unapproved IEEE Standards Draft, subject to change.
  17945.  
  17946.  
  17947.  
  17948.  
  17949.  
  17950.  252                                                            6 Profiles
  17951.  
  17952.  
  17953.  
  17954.  
  17955.  
  17956.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  17957.  
  17958.  requirements for POSIX-based profiles (rules established by IEEE) are
  17959.  called POSIX standardized profiles (POSIX SPs.)  For more information
  17960.  about writing POSIX SPs, see Annex A.
  17961.  
  17962.  
  17963.  6.3.1  Basis for This Guidance
  17964.  
  17965.  Many of the ideas and concepts for profiling described in this section
  17966.  derive from the work of ISO/IEC JTC 1 SGFS as documented in ISO/IEC TR
  17967.  10000-1 {_r_e_f}.  Some items specified in that document that are not
  17968.  covered here include:
  17969.  
  17970.      - International standardization considerations
  17971.  
  17972.      - Conformance issues
  17973.  
  17974.      - Processes and procedures
  17975.  
  17976.      - Maintenance
  17977.  
  17978.      - Taxonomy
  17979.  
  17980.  Additionally, some consideration was given in this guidance above and
  17981.  beyond that given in ISO/IEC TR 10000 {_r_e_f}:
  17982.  
  17983.      - Standardized profiles and POSIX standardized profiles as a
  17984.        conceptual extension to International Standardized Profiles (ISP).
  17985.  
  17986.      - IEEE basis, not ISO basis, for formatting rules; see Annex A
  17987.  
  17988.  Writers of profiles following the guidance of this clause should refer to
  17989.  Annex A if they intend to propose IEEE acceptance as a POSIX SP and to
  17990.  ISO/IEC TR 10000 {_r_e_f} if they intend to propose acceptance as an ISP.
  17991.  
  17992.  
  17993.  6.3.2  Purpose of Profiles
  17994.  
  17995.  Profiles define combinations of base standards and profiles for the
  17996.  purpose of:
  17997.  
  17998.      - Identifying the base standards, together with appropriate classes,
  17999.        subsets, options, and parameters, that are necessary to accomplish
  18000.        identified functions for purposes such as interoperability and
  18001.        portability.
  18002.  
  18003.      - Providing a system of referencing the various uses of base
  18004.        standards that is meaningful to both users and suppliers
  18005.  
  18006.  
  18007.  
  18008.  
  18009.                Copyright c 1991 IEEE.  All rights reserved.
  18010.       This is an unapproved IEEE Standards Draft, subject to change.
  18011.  
  18012.  
  18013.  
  18014.  
  18015.  
  18016.  6.3 Guidance to Profile Writers                                       253
  18017.  
  18018.  
  18019.  
  18020.  
  18021.  
  18022.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18023.  
  18024.      - Enhancing the availability for procurement of consistent
  18025.        implementations of functionally defined groups of base standards
  18026.        that are expected to be the major components of real application
  18027.        systems
  18028.  
  18029.      - Promoting uniformity in the development of conformance tests for
  18030.        systems that implement the functions associated with the profiles
  18031.  
  18032.  
  18033.  6.3.3  Detailed Guidance to Profile Writers
  18034.  
  18035.  
  18036.  6.3.3.1  The Relationship to Base Standards
  18037.  
  18038.  Base standards specify procedures and formats that facilitate application
  18039.  portability and interoperability.  They provide options, anticipating the
  18040.  needs of a variety of applications and taking into account different
  18041.  capabilities of real systems and networks.
  18042.  
  18043.  Profiles further promote portability and interoperability by defining how
  18044.  to use a combination of base standards for a given function or
  18045.  application area.  Profiles, by definition, do not define new application
  18046.  interfaces.
  18047.  
  18048.  In addition to the selection of base standards, a choice may be made of
  18049.  permitted options for each base standard and of suitable values for
  18050.  parameters left unspecified in the base standard.
  18051.  
  18052.  Profiles should not contradict base standards, but should make specific
  18053.  choices where options and ranges of values are available.  Profiles must
  18054.  include all of the items made ``mandatory'' by the standard.  The choice
  18055.  of the base standard options should be restricted so as to maximize the
  18056.  probability of interworking between systems implementing different
  18057.  selections of such profile options, consistent with achieving the
  18058.  objectives of the profile.
  18059.  
  18060.  A profile makes explicit the relationships between a set of base
  18061.  standards used together (relationships that are implicit in the
  18062.  definitions of the Base Documents themselves) and may also specify
  18063.  particular details of each base standard being used.
  18064.  
  18065.  A profile may contain conformance requirements that are more specific and
  18066.  limited in scope than those of the base standards to which it refers.
  18067.  While the capabilities and behavior specified in a profile will always be
  18068.  valid in terms of the Base Documents, a profile may exclude some valid
  18069.  optional capabilities and optional behavior permitted in those base
  18070.  standards.
  18071.  
  18072.  
  18073.  
  18074.  
  18075.                Copyright c 1991 IEEE.  All rights reserved.
  18076.       This is an unapproved IEEE Standards Draft, subject to change.
  18077.  
  18078.  
  18079.  
  18080.  
  18081.  
  18082.  254                                                            6 Profiles
  18083.  
  18084.  
  18085.  
  18086.  
  18087.  
  18088.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18089.  
  18090.  Thus, conformance to a profile implies, by definition, conformance to the
  18091.  set of base standards that it references.  However, conformance to that
  18092.  set of Base Documents does not necessarily imply conformance to the
  18093.  profile.
  18094.  
  18095.  
  18096.  6.3.3.2  Main Elements of a Profile Definition Document
  18097.  
  18098.  The definition of a profile should comprise the following elements:
  18099.  
  18100.      - A concise definition of the scope of the function for which the
  18101.        profile is created and of its purpose
  18102.  
  18103.      - Reference to a set of base standards and other profiles, including
  18104.        precise identification of the actual texts of the base standards
  18105.        and profiles being used and of any approved amendments and
  18106.        technical errata, conformance to which is identified as potentially
  18107.        having an impact on achieving portability and interoperation using
  18108.        the profile
  18109.  
  18110.      - Specifications of the application of each referenced base standard
  18111.        and profile, covering recommendations on the choice of classes or
  18112.        subsets and on the selection of options, ranges of parameter
  18113.        values, etc.
  18114.  
  18115.      - A statement defining the requirements to be observed by systems
  18116.        claiming conformance to this profile, including any remaining
  18117.        permitted options of the referenced base standards and profiles,
  18118.        which thus become options of this profile
  18119.  
  18120.  Systems that interoperate can perform different but complementary roles
  18121.  (e.g., an initiator-responder or a master-slave relationship).  In such a
  18122.  situation the profile should identify the separate roles that may be
  18123.  adopted by a system, and these should be stated as either mandatory
  18124.  requirements or options of the profile, as appropriate.
  18125.  
  18126.  6.3.3.3  Profile Objectives
  18127.  
  18128.  _C_o_m_p_l_e_t_e_n_e_s_s
  18129.  
  18130.  A profile should be complete with respect to its functionality
  18131.  objectives.  This may well be an iterative process, since the
  18132.  understanding of the requirements and standards will evolve.
  18133.  Completeness means that all areas where standards should be applied have
  18134.  been identified and the requirements defined.  Where standards exist,
  18135.  they have been included, and the options within those standards have been
  18136.  addressed.  Where standards do not exist, but are needed, this has been
  18137.  documented in the profile.
  18138.  
  18139.  
  18140.  
  18141.                Copyright c 1991 IEEE.  All rights reserved.
  18142.       This is an unapproved IEEE Standards Draft, subject to change.
  18143.  
  18144.  
  18145.  
  18146.  
  18147.  
  18148.  6.3 Guidance to Profile Writers                                       255
  18149.  
  18150.  
  18151.  
  18152.  
  18153.  
  18154.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18155.  
  18156.  It may be appropriate to document (probably in a nonnormative appendix)
  18157.  specifications and alternatives available in areas where standards have
  18158.  not been defined.  The meaning of this concept will be relative to the
  18159.  forum for acceptance of the profile.  If the profile is targeted at ISO
  18160.  acceptance, then ISO DIS and IS standards should be the reference point,
  18161.  where as a US Government profile might be focused on FIPS and ANSI
  18162.  standards.  Within private industry, consortium and even vendor specific
  18163.  specifications could be incorporated, keeping these as examples and not
  18164.  explicit requirements, which will simplify harmonization with formal
  18165.  standards as they emerge.  Where standardized profiles are being
  18166.  developed and gaps are identified, the profile writer should identify the
  18167.  requirements that are not satisfied by a standard.  If there is a
  18168.  preliminary specification available that addresses many of the
  18169.  requirements, that specification should be referred to informatively.
  18170.  
  18171.  _C_l_e_a_r__C_o_m_m_u_n_i_c_a_t_i_o_n_s
  18172.  
  18173.  A key objective for the profile is clear communications between the
  18174.  affected parties.  Users, software developers, and platform suppliers all
  18175.  need to have the same terms and specifications.  The application software
  18176.  developers and system vendors need a common set of specifications to
  18177.  target for their development efforts.
  18178.  
  18179.  _H_a_r_m_o_n_i_z_a_t_i_o_n
  18180.  
  18181.  Harmonization means making the profiles consistent with each other where
  18182.  they overlap.  This can often be done among profiles even where the
  18183.  functional areas served differ greatly.  This assures that the maximum
  18184.  practical agreement exists between different profiles, maximizing the
  18185.  implementations of that common ground.
  18186.  
  18187.  _V_a_l_i_d_a_t_i_o_n
  18188.  
  18189.  A profile addresses validation in two different ways.
  18190.  
  18191.  Firstly, by selecting options and parameters within the profile,
  18192.  validation is potentially made simpler.
  18193.  
  18194.  Secondly, by including more than one base standard, validation
  18195.  potentially becomes more difficult.  Now validation extends beyond just
  18196.  insuring a single standard is being complied with into the area of
  18197.  insuring that the interactions between and among multiple base standards
  18198.  is also being complied with.
  18199.  
  18200.  _C_o_h_e_r_e_n_c_e
  18201.  
  18202.  The simple selection of a group of standards does not assure that they
  18203.  will work together on a platform in a predictable way.  A profile should
  18204.  contain a matrix of all standard components compared to each other and
  18205.  
  18206.  
  18207.                Copyright c 1991 IEEE.  All rights reserved.
  18208.       This is an unapproved IEEE Standards Draft, subject to change.
  18209.  
  18210.  
  18211.  
  18212.  
  18213.  
  18214.  256                                                            6 Profiles
  18215.  
  18216.  
  18217.  
  18218.  
  18219.  
  18220.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18221.  
  18222.  state what relationship exists between them.  A profile may be coherent
  18223.  if it states that between two standards no relationship needs to exist,
  18224.  that none shall exist, or that a specified relation shall exist.  Not to
  18225.  speak to an intersection in the matrix would indicate that the issue of
  18226.  coherence has not been addressed.
  18227.  
  18228.  _G_a_p__I_d_e_n_t_i_f_i_c_a_t_i_o_n
  18229.  
  18230.  In the process of developing profiles, there may be gaps in coverage by
  18231.  standards that become apparent.  These may exist in terms of the
  18232.  characteristics available with one standard that need to be made
  18233.  available from another, or missing standards, or additional functionality
  18234.  that is needed for a specific applications activity.  So, an additional
  18235.  objective for a profile effort is to document the requirements for such
  18236.  additional work and forward it to the appropriate standards effort.
  18237.  Profile groups in industry should consider providing expertise to the
  18238.  associated standards groups to assure that the resulting standards meet
  18239.  the needs of that applications area.
  18240.  
  18241.  
  18242.  6.3.3.4  Defining a Profile
  18243.  
  18244.  The process of creating a specific profile is broken down into three
  18245.  stages.  These are the creation of a generic information system model,
  18246.  creation of an open system environment that supports application
  18247.  portability and interoperability, and the creation of a application-
  18248.  area-specific profile (see Figure 6-1).
  18249.  
  18250.  In the first stage, a generic model for an information system is
  18251.  constructed by abstracting the properties and functionality common to all
  18252.  possible information systems and choosing specific system features based
  18253.  on the application requirements of an enterprise, department, or
  18254.  application.  Such a model is neither new nor earthshaking; it has been
  18255.  used for more than twenty years to understand, design, and specify a
  18256.  system, as well as to test, redesign, and refine that system.  What is
  18257.  new is the refinement of generic models to design open systems for
  18258.  specific application areas.
  18259.  
  18260.  The second stage of the profile creation process requires the profile
  18261.  developer to identify and choose the functionality, standards or
  18262.  specifications, and interfaces required for application portability and
  18263.  interoperability.  The profile developer should probably choose at most
  18264.  one base standard for each service identified.  The criteria used for
  18265.  selecting base standards should take into account openness, completeness
  18266.  (maturity), stability, geographic coverage and publicness of the
  18267.  standard.  The profile writer should also have in mind a precedence
  18268.  (e.g., international standards take precedence over national standards).
  18269.  There may also be other considerations, of course, such as performance,
  18270.  cost, design, etc.  Examples of such considerations, that were used in
  18271.  selecting standards for this guide, can be found in 3.4.2.
  18272.  
  18273.                Copyright c 1991 IEEE.  All rights reserved.
  18274.       This is an unapproved IEEE Standards Draft, subject to change.
  18275.  
  18276.  
  18277.  
  18278.  
  18279.  
  18280.  6.3 Guidance to Profile Writers                                       257
  18281.  
  18282.  
  18283.  
  18284.  
  18285.  
  18286.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18287.  
  18288.  _________________________________________________________________________
  18289.  
  18290.  
  18291.  
  18292.  
  18293.  
  18294.  
  18295.  
  18296.  
  18297.  
  18298.  
  18299.  
  18300.  
  18301.  
  18302.  
  18303.  
  18304.  
  18305.  
  18306.  
  18307.  
  18308.  
  18309.  
  18310.  
  18311.  
  18312.  
  18313.  
  18314.  
  18315.  
  18316.  
  18317.  
  18318.  
  18319.  
  18320.  
  18321.  
  18322.  
  18323.  
  18324.  
  18325.  
  18326.  _________________________________________________________________________
  18327.                   Figure 6-1  -  Development of a Profile
  18328.  
  18329.  
  18330.  To ensure that the open system environment produced is not just a paper
  18331.  standard, it is necessary to check that the component standards and
  18332.  specifications chosen are practical for users, marketable for vendors,
  18333.  integratable with each other, achievable in a short time, and have a good
  18334.  likelihood of widespread acceptance.  The X/Open Common Application
  18335.  Environment and the IEEE POSIX.0 POSIX Open System Environment have been
  18336.  (or are being) produced in this way.
  18337.  
  18338.  
  18339.                Copyright c 1991 IEEE.  All rights reserved.
  18340.       This is an unapproved IEEE Standards Draft, subject to change.
  18341.  
  18342.  
  18343.  
  18344.  
  18345.  
  18346.  258                                                            6 Profiles
  18347.  
  18348.  
  18349.  
  18350.  
  18351.  
  18352.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18353.  
  18354.  The third stage of the profile-creation process requires making further
  18355.  choices of functionality, standards, mandatory options within standards,
  18356.  subsets of standards, and interfaces to meet the open-systems
  18357.  requirements of a specific application area.  As with open system
  18358.  environments, standards for a profile should be chosen based on
  18359.  international standards, national standards, formal professional group
  18360.  standards, consensus-defined consortia specifications, and de facto
  18361.  specifications.  Also, where no standards exist for a particular
  18362.  functionality necessary to the application area in question, the profile
  18363.  developer should come up with a plan to produce the missing standard.  In
  18364.  addition, the profile's component standards should be selected bearing in
  18365.  mind practicality, marketability, integration of component standards with
  18366.  each other, and user and vendor acceptance.
  18367.  
  18368.  The choice of functions and standards applicable to an application area
  18369.  results in a standardized application-area-specific profile.  The MAP,
  18370.  TOP, and GOSIP profiles of OSI, as well as the POSIX.10 (supercomputing),
  18371.  POSIX.11 (transaction processing), and POSIX.13 (embedded realtime)
  18372.  profiles have been (or are being) defined in this way.
  18373.  
  18374.  
  18375.  6.3.3.5  Types of Profiles
  18376.  
  18377.  Three different types of profiles have been, or are being, defined by the
  18378.  procedures described above:
  18379.  
  18380.      - Component Profiles
  18381.  
  18382.      - Application Area Profiles
  18383.  
  18384.      - Platform Profiles
  18385.  
  18386.  A Component profile is mostly a subset of a single standard.  The profile  d
  18387.  developers specify mandatory options for a specific domain, options that
  18388.  are not desirable for that domain, gaps in that parent standard, and, if
  18389.  necessary, specifications to fill that gap.  Examples of such profiles
  18390.  are MAP, TOP, and GOSIP profiles and possibly the POSIX.13 embedded
  18391.  realtime POSIX profile if it continues to be based exclusively on
  18392.  functions chosen from the POSIX.4 realtime standard.
  18393.  
  18394.  An Application Area Profile is created from multiple standards that
  18395.  specify multiple, diverse types of functionality needed for a particular
  18396.  application area (e.g., database, networking, graphics, operating
  18397.  system).  The application area profile developers specify all the diverse
  18398.  standards necessary for the application area in question.  Within each
  18399.  standard, they identify mandatory options, functions and options that are
  18400.  not needed, gaps in the standards, and, if necessary, specifications to
  18401.  fill the gaps.  Examples of application area profiles are the POSIX.10
  18402.  supercomputing and POSIX.11 transaction processing profiles.
  18403.  
  18404.  
  18405.                Copyright c 1991 IEEE.  All rights reserved.
  18406.       This is an unapproved IEEE Standards Draft, subject to change.
  18407.  
  18408.  
  18409.  
  18410.  
  18411.  
  18412.  6.3 Guidance to Profile Writers                                       259
  18413.  
  18414.  
  18415.  
  18416.  
  18417.  
  18418.  P1003.0/D13
  18419.  
  18420.  A Platform Profile focuses on the functionality and interfaces needed for
  18421.  a particular type of platform.  The platforms could be traditional
  18422.  platforms (such as time sharing systems) or relatively new or emerging
  18423.  platforms (e.g., workstations, personal computers, or symmetric
  18424.  multiprocessing systems).  A platform profile could be created from one
  18425.  or multiple diverse standards.  As with other types of profiles, the
  18426.  profile developers have to specify the standards, options, standards
  18427.  gaps, and if necessary, specifications to fill the gaps.  Examples of
  18428.  platform profiles are the POSIX.18 Platform Profile for Traditional
  18429.  Multiuser UNIX systems and the POSIX.14 Multiprocessing profile.
  18430.  
  18431.  All three types of profiles can be seen in the next section.
  18432.  
  18433.  
  18434.  
  18435.  
  18436.  
  18437.  
  18438.  
  18439.  
  18440.  
  18441.  
  18442.  
  18443.  
  18444.  
  18445.  
  18446.  
  18447.  
  18448.  
  18449.  
  18450.  
  18451.  
  18452.  
  18453.  
  18454.  
  18455.  
  18456.  
  18457.  
  18458.  
  18459.  
  18460.  
  18461.  
  18462.  
  18463.  
  18464.  
  18465.  
  18466.  
  18467.  
  18468.  
  18469.  
  18470.  
  18471.                Copyright c 1991 IEEE.  All rights reserved.
  18472.       This is an unapproved IEEE Standards Draft, subject to change.
  18473.  
  18474.  
  18475.  
  18476.  
  18477.  
  18478.  260                                                            6 Profiles
  18479.  
  18480.  
  18481.  
  18482.  
  18483.  
  18484.                                                                P1003.0/D13
  18485.  
  18486.  
  18487.  
  18488.  
  18489.  
  18490.  
  18491.  
  18492.  
  18493.                    Section 7: POSIX SP Profiling Efforts
  18494.  
  18495.  
  18496.  
  18497.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _W_e_n_d_y _R_a_u_c_h
  18498.  
  18499.  
  18500.  
  18501.  7.1  Introduction
  18502.  
  18503.  This section maintains the list of currently known POSIX Standardized
  18504.  Profiles (POSIX SPs).  This list is a factual record of which POSIX SPs
  18505.  exist, or are in preparation, together with a summary description of the
  18506.  scope, scenario, and model for each profile.  These POSIX SPs might be
  18507.  useful as building blocks for other profiles.
  18508.  
  18509.  
  18510.  7.1.1  Approved POSIX Standardized Profiles
  18511.  
  18512.  There are currently no approved POSIX SPs.
  18513.  
  18514.  
  18515.  7.1.2  POSIX Standardized Profiles In-Progress
  18516.  
  18517.  The current efforts to develop POSIX SPs are summarized in Table 7-1.
  18518.  They are all being done by IEEE 1003 POSIX working groups.  A brief
  18519.  summary of each effort is given in clauses 6.4 and 6.5.
  18520.  
  18521.  
  18522.  7.2  General Purpose POSIX SPs
  18523.  
  18524.  
  18525.  7.2.1  POSIX Platform Environment Profile (PEP)
  18526.  
  18527.  
  18528.  7.2.1.1  Rationale and Overview
  18529.  
  18530.  The POSIX Platform Environment Profile (PEP), IEEE POSIX.18, is a
  18531.  platform profile based on POSIX.1 {2} and related standards.  It defines
  18532.  the functionality and standards needed for a system that is as similar as
  18533.  possible to the traditional UNIX operating system's interactive,
  18534.  multiuser development and run-time environment.
  18535.  
  18536.  
  18537.                Copyright c 1991 IEEE.  All rights reserved.
  18538.       This is an unapproved IEEE Standards Draft, subject to change.
  18539.  
  18540.  
  18541.  
  18542.  
  18543.  
  18544.  7.2 General Purpose POSIX SPs                                         261
  18545.  
  18546.  
  18547.  
  18548.  
  18549.  
  18550.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18551.  
  18552.  
  18553.                     Table 7-1  -  POSIX SPs In Progress
  18554.  __________________________________________________________________________________________________________________________________________________
  18555.     Project                               Profile                           Profile
  18556.      Name        Taxonomy                  Name                               Type
  18557.  _____________________________________________________________________________________________
  18558.  IEEE P1003.10              Supercomputing                        Application profile
  18559.  IEEE P1003.11              Transaction Processing                Application profile
  18560.  IEEE P1003.13              Realtime Full Function                Application-oriented profile
  18561.  IEEE P1003.13              Realtime Embedded Control System      Application-oriented profile
  18562.  IEEE P1003.13              Realtime Intermediate                 Application-oriented profile
  18563.  IEEE P1003.14              Multiprocessing Application Support   Platform profile
  18564.  IEEE P1003.18   USI-P001   POSIX Platform Environment Profile    Platform profile
  18565.  NOTES:
  18566.  
  18567.      (1)  At this time it is not known whether the three realtime profiles
  18568.           will be contained within a single multipart POSIX SP, or
  18569.           separate single-part POSIX SPs.
  18570.  
  18571.      (2)  While the issue of a taxonomy for POSIX SPs has not been
  18572.           decided, a placeholder has been provided and a proposed
  18573.           taxonomical name for one profile has been listed.
  18574.  
  18575.  
  18576.  __________________________________________________________________________________________________________________________________________________
  18577.  
  18578.  
  18579.  The PEP is valuable for many users, vendors, programmers, and procurement
  18580.  officers who do not have the time or desire to analyze and specify all
  18581.  the individual interfaces for a system they need.  The PEP obviates this
  18582.  analysis by enabling the users to point to a single document that
  18583.  specifies exactly what they should order to obtain a system that looks
  18584.  like traditional UNIX systems, except that the PEP will be totally based
  18585.  on formal standards.
  18586.  
  18587.  7.2.1.2  Content of the Platform Environment Profile
  18588.  
  18589.  The POSIX Platform Environment Profile consists of:
  18590.  
  18591.      - All of POSIX.1 {2} along with options that correspond to the US
  18592.        Government's Application Portability Profile (APP) (FIPS 151-1);
  18593.  
  18594.      - All of the POSIX.2 {_r_e_f} (Shell and Utilities) and POSIX.2a (User
  18595.        Portability Extension); and
  18596.  
  18597.      - All of ANSI X3.159 C.
  18598.  
  18599.  To reflect the goals and intent of the POSIX.18 working group, the PEP
  18600.  document also commits to specifying additional specifications in the
  18601.  
  18602.  
  18603.                Copyright c 1991 IEEE.  All rights reserved.
  18604.       This is an unapproved IEEE Standards Draft, subject to change.
  18605.  
  18606.  
  18607.  
  18608.  
  18609.  
  18610.  262                                          7 POSIX SP Profiling Efforts
  18611.  
  18612.  
  18613.  
  18614.  
  18615.  
  18616.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18617.  
  18618.  future, when those specifications are completed and approved as
  18619.  standards.  These specifications include system administration,
  18620.  secure/trusted systems extensions, realtime facilities, verification
  18621.  testing facilities, Ada and FORTRAN language bindings, graphical user
  18622.  interfaces, and network interface facilities.
  18623.  
  18624.  The PEP is expected to be the pioneer Application Environment Profile
  18625.  submitted to ISO for international approval.  The concept of Application
  18626.  Environment Profiles and Platform Profiles is new.  How ISO handles the
  18627.  international standardization of the PEP, and the profile issues
  18628.  resolved, will likely set a precedent followed in the development of
  18629.  other profile standards.
  18630.  
  18631.  
  18632.  7.2.2  Multiprocessing Systems Platform Profiles
  18633.  
  18634.  
  18635.  7.2.2.1  Rationale and Overview
  18636.  
  18637.  The POSIX Multiprocessing Systems Profile (IEEE POSIX.14) is a platform
  18638.  profile.  Like the POSIX PEP (POSIX.18), the Multiprocessing Systems
  18639.  profile defines the functionality, standards, and options within
  18640.  standards that are needed for development and execution on a
  18641.  multiprocessing platform.
  18642.  
  18643.  The Multiprocessing Systems profile is intended for use by multiprocessor
  18644.  vendors, application developers, users, and system administrators.  It is
  18645.  important because it is designed to support portability of
  18646.  multiprocessing applications, as well as users and system administrators
  18647.  in multiprocessing environments.
  18648.  
  18649.  The Multiprocessing Systems Profile has two major goals.  The first one
  18650.  is to make POSIX safe for multiprocessing.  This goal requires the
  18651.  POSIX.14 working group to identify and address the caveats, problems, and
  18652.  failings of POSIX base standards for multiprocessing platforms.  Examples
  18653.  of these failings range from reentrant-function problems to potential
  18654.  problems with threads.
  18655.  
  18656.  The second goal is to make POSIX useful for multiprocessing.  This goal
  18657.  requires the POSIX.14 working group to ensure that POSIX supports the
  18658.  functionality needed by multiprocessing platforms.  An example of this is
  18659.  ensuring that POSIX has capabilities to allow vendors to parallelize
  18660.  software functions.  In the absence of parallelizing standards, the
  18661.  details of what happens when the same software functions are used on
  18662.  different multiprocessor system vary.
  18663.  
  18664.  
  18665.  
  18666.  
  18667.  
  18668.  
  18669.                Copyright c 1991 IEEE.  All rights reserved.
  18670.       This is an unapproved IEEE Standards Draft, subject to change.
  18671.  
  18672.  
  18673.  
  18674.  
  18675.  
  18676.  7.2 General Purpose POSIX SPs                                         263
  18677.  
  18678.  
  18679.  
  18680.  
  18681.  
  18682.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18683.  
  18684.  7.2.2.2  Content of the Multiprocessing Systems Profile
  18685.  
  18686.  The Multiprocessing Systems platform profile identifies standards,
  18687.  options, and gaps in the standards relevant to multiprocessing.  It also
  18688.  identifies additional requirements not satisfied by existing standards
  18689.  and, in an informative annex, suggests interfaces to extended services
  18690.  that can satisfy some of these requirements.  In addition, the POSIX.14
  18691.  Multiprocessing Systems Group will propose changes and amendments to a
  18692.  variety of relevant standards in order to encourage the specifiers of
  18693.  these standards to add functions and options that accommodate
  18694.  multiprocessing requirements.
  18695.  
  18696.  Standards particularly relevant to the Multiprocessing System Profile
  18697.  include the POSIX Pthreads extension (IEEE POSIX.4a), the supercomputing
  18698.  batch scheduling standard (IEEE POSIX.15), and the supercomputing
  18699.  proposed checkpoint and restart facilities (IEEE POSIX.10).  Since
  18700.  checkpoint and restart facilities will be added to the POSIX.1 {2}
  18701.  standard, POSIX.1 {2} is also of concern to the Multiprocessing Profile.
  18702.  
  18703.  The Multiprocessing Systems profile will specify both general-purpose-
  18704.  computing and multiprocessor-specific standards.  General-purpose
  18705.  standards planned or under consideration for the Multiprocessing Systems
  18706.  profile include:
  18707.  
  18708.      - The IEEE POSIX.1 core POSIX system, POSIX.2 POSIX Shell and
  18709.        Utilities, and POSIX.2a User Portability Extension;
  18710.  
  18711.      - The IEEE POSIX.4 realtime extension;
  18712.  
  18713.      - The IEEE POSIX.4a:  POSIX Pthreads extension;
  18714.  
  18715.      - The IEEE POSIX.6 POSIX security standard and POSIX.7 system
  18716.        administration standard;
  18717.  
  18718.      - The Ada language bindings (IEEE POSIX.5) and FORTRAN language
  18719.        bindings (IEEE POSIX.9) to POSIX;
  18720.  
  18721.      - The IEEE POSIX.10 Supercomputing Profile, POSIX.11 Transaction
  18722.        Processing Profile, and POSIX.13 Realtime Applications Profiles.
  18723.  
  18724.  As other standards emerge, they too will be incorporated in the
  18725.  Multiprocessing Systems profile.  An annex of this document will deal
  18726.  with, and list, relevant emerging standards to provide an idea of the
  18727.  Multiprocessing Systems profile's direction.
  18728.  
  18729.  Multiprocessing-specific requirements identified by the POSIX.14
  18730.  Multiprocessing working group include:
  18731.  
  18732.  
  18733.  
  18734.  
  18735.                Copyright c 1991 IEEE.  All rights reserved.
  18736.       This is an unapproved IEEE Standards Draft, subject to change.
  18737.  
  18738.  
  18739.  
  18740.  
  18741.  
  18742.  264                                          7 POSIX SP Profiling Efforts
  18743.  
  18744.  
  18745.  
  18746.  
  18747.  
  18748.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18749.  
  18750.      - System administration tools for multiprocessors;
  18751.  
  18752.      - Parallelizing compilers;
  18753.  
  18754.      - Explicit parallelism;
  18755.  
  18756.      - Threads;
  18757.  
  18758.      - Thread-safe libraries;
  18759.  
  18760.      - Message-passing IPC;
  18761.  
  18762.      - Parallel utilities (e.g., find, grep, make, etc.);
  18763.  
  18764.      - Scheduler controls;
  18765.  
  18766.      - Processor allocation:  mandatory/advisory;
  18767.  
  18768.      - Processor binding;
  18769.  
  18770.      - Degree of symmetry:  I/O, computation, memory.
  18771.  
  18772.  Standards will be needed for many of these requirements.  Many of these
  18773.  requirements will, therefore, become the subject of a POSIX.14 working
  18774.  group proposal for a new standardized function or an option in other
  18775.  standards.
  18776.  
  18777.  
  18778.  7.2.3  Supercomputing
  18779.  
  18780.  
  18781.  7.2.3.1  Rationale and Overview
  18782.  
  18783.  The Supercomputing Applications Environment Profile (IEEE POSIX.10) is a
  18784.  profile designed to support application and programmer portability in
  18785.  POSIX-based supercomputer environments.  The profile's goal is to allow
  18786.  supercomputer application code to be ported to other sites, reduce the
  18787.  learning curve of users, and encourage production of timely third-party
  18788.  applications.
  18789.  
  18790.  The need exists for such a profile because of the differences between
  18791.  supercomputing environments and traditional application environments.
  18792.  One difference is that supercomputing jobs are computationally intensive,
  18793.  very long running, and very demanding of resources.  Another is that the
  18794.  cost of the supercomputer CPU and many of its peripheral resources is
  18795.  extremely high.
  18796.  
  18797.  Ordinary POSIX standards are not applicable in their entirety to
  18798.  supercomputer environments because the traditional UNIX-based POSIX
  18799.  functions are not adequate to meaningfully manage the use of, and
  18800.  
  18801.                Copyright c 1991 IEEE.  All rights reserved.
  18802.       This is an unapproved IEEE Standards Draft, subject to change.
  18803.  
  18804.  
  18805.  
  18806.  
  18807.  
  18808.  7.2 General Purpose POSIX SPs                                         265
  18809.  
  18810.  
  18811.  
  18812.  
  18813.  
  18814.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18815.  
  18816.  accounting for, a supercomputer or its resources.  Furthermore,
  18817.  supercomputers need much better tape handling, multiprocessing, and other
  18818.  capabilities than POSIX or UNIX specifications presently support.
  18819.  
  18820.  
  18821.  7.2.3.2  Content of the Supercomputing Profile
  18822.  
  18823.  The Supercomputing Application Environment Profile identifies POSIX base
  18824.  standards and other relevant standards that support supercomputing
  18825.  requirements.  Where none exist, the POSIX.10 working group will define
  18826.  the functionality itself, or instigate the formation of a new group to
  18827.  define it.  In addition, the POSIX.10 working group is taking some of the
  18828.  traditional modifications built to allow UNIX systems to run on
  18829.  supercomputers, and making those modifications both consistent across
  18830.  supercomputers and portable to users, system administrators, and
  18831.  applications.
  18832.  
  18833.  Base computing standards specified by the supercomputing profile (or
  18834.  planned for specification when the standards are completed) include:
  18835.  
  18836.      - The IEEE POSIX.1 {2} core POSIX system, POSIX.2 POSIX Shell and
  18837.        Tools, and POSIX.2a User Portability Extensions (and the
  18838.        corresponding FIPS standards);
  18839.  
  18840.      - The IEEE POSIX.4 realtime work (particularly the use of its
  18841.        asynchronous I/O facility);
  18842.  
  18843.      - The IEEE POSIX.6 POSIX security standard and POSIX.7 system
  18844.        administration standard;
  18845.  
  18846.      - Several graphics standards, including ISO GKS, PHIGS, and CGM, ANSI
  18847.        IGES, and the X Consortium's PEX.
  18848.  
  18849.      - X3H2.6 (also called X11) for windowing;
  18850.  
  18851.      - Several programming languages, including ISO, ANSI, and the NIST's
  18852.        FIPS for C, FORTRAN-77, Pascal, Ada, Common LISP, and COBOL.
  18853.  
  18854.      - TCP/IP protocol stacks and network applications (e.g., file
  18855.        transfer and messaging) now and OSI in the long-term;
  18856.  
  18857.      - The IEEE POSIX.8 Transparent File Access standard for distributed
  18858.        file management;
  18859.  
  18860.      +o The X3T5.5 Remote Procedure Call (RPC).
  18861.  
  18862.  The nonstandardized and nonavailable supercomputing functions identified
  18863.  in the POSIX.10 profile include:
  18864.  
  18865.  
  18866.  
  18867.                Copyright c 1991 IEEE.  All rights reserved.
  18868.       This is an unapproved IEEE Standards Draft, subject to change.
  18869.  
  18870.  
  18871.  
  18872.  
  18873.  
  18874.  266                                          7 POSIX SP Profiling Efforts
  18875.  
  18876.  
  18877.  
  18878.  
  18879.  
  18880.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  18881.  
  18882.      - Batch system scheduling, administration, and network definition;
  18883.  
  18884.      - Checkpoint recovery;
  18885.  
  18886.      - A resource manager;
  18887.  
  18888.      - A better tape management facility;
  18889.  
  18890.      - Better mass storage/archiving facilities.
  18891.  
  18892.  There are no existing standards for batch scheduling and administration
  18893.  facilities.  Batch scheduling and administration extensions to POSIX base
  18894.  standards are currently being defined by the IEEE POSIX.15 working group-
  18895.  --a group spawned by the Supercomputing profile working group.
  18896.  
  18897.  To meet recovery and archiving requirements, the POSIX.10 working group
  18898.  defined system interfaces for functions that perform ``checkpoint,''
  18899.  ``restart,'' and better magnetic tape handling (e.g., to rewind a tape
  18900.  under program control).  These interfaces have been submitted to the
  18901.  POSIX.1 working group for inclusion in the next POSIX.1 {2} revision.
  18902.  
  18903.  
  18904.  7.2.4  Transaction Processing
  18905.  
  18906.  
  18907.  7.2.4.1  Rationale and Overview
  18908.  
  18909.  The Transaction Processing Applications Environment Profile (IEEE
  18910.  1003.11) is intended to support the development of portable online
  18911.  transaction processing (OLTP) applications in POSIX environments.  This
  18912.  profile is targeted at application developers and open system services
  18913.  suppliers.  It is important because transaction processing is a major
  18914.  area of business for most large computer vendors and it plays a major
  18915.  role in the daily operations of most users.  There are currently no
  18916.  existing POSIX functions that specifically address OLTP needs.
  18917.  
  18918.  7.2.4.2  Content of the Transaction Processing Profile
  18919.  
  18920.  The Transaction Processing profile's goal is to identify the interfaces
  18921.  and standards relevant to OLTP, and optional functions in existing
  18922.  standards that must be made mandatory for OLTP applications.  The profile
  18923.  will specify general-purpose standards, as well as standards unique to
  18924.  OLTP.
  18925.  
  18926.  The Transaction Processing Profile's specifications include or plan the
  18927.  following generic and transaction processing-specific standards:
  18928.  
  18929.      - The ISO/IEC 9945-1: 1990 (POSIX 1003.1) core POSIX system
  18930.        interfaces (including required options, minimum values for certain
  18931.  
  18932.  
  18933.                Copyright c 1991 IEEE.  All rights reserved.
  18934.       This is an unapproved IEEE Standards Draft, subject to change.
  18935.  
  18936.  
  18937.  
  18938.  
  18939.  
  18940.  7.2 General Purpose POSIX SPs                                         267
  18941.  
  18942.  
  18943.  
  18944.  
  18945.  
  18946.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  18947.  
  18948.        variables, and particular environment variables needed for OLTP
  18949.        applications);
  18950.  
  18951.      - The IEEE 1003.2 Shell and Utilities' software development utilities
  18952.        option, C language development utilities option, and C language
  18953.        bindings option;
  18954.  
  18955.      - The IEEE 1003.2 getconf utility;
  18956.  
  18957.      - The realtime files and asynchronous input and output features from
  18958.        the IEEE 1003.4 Realtime POSIX Extensions;
  18959.  
  18960.      - The IEEE 1003.6 POSIX security standard;
  18961.  
  18962.      - The ISO/IEC, ANSI, and FIPS C and COBOL programming languages;
  18963.  
  18964.      - TCP/IP networking in the short term and OSI in the long-term;
  18965.  
  18966.      - The X3T5.5 Remote Procedure Call (RPC)
  18967.  
  18968.      - The ISO SQL database language;
  18969.  
  18970.      - The ISO Distributed Transaction Processing 10026.1, .2, and .3 for
  18971.        communication of transaction information.
  18972.  
  18973.  The Transaction Processing profile also identifies extensions needed to
  18974.  existing standards to support distributed transaction processing.
  18975.  Important extensions that need to be defined include those related to the
  18976.  two-phase commit, as well as others related to making RPCs robust.
  18977.  
  18978.  The P1003.11 working group is working with the ISO RPC Group to add
  18979.  transaction semantics to the Networking working group's RPC
  18980.  specifications.  These extensions will be incorporated in the Transaction
  18981.  Processing profile.  Plans are also for the 1003.11 profile to draw on
  18982.  the transaction processing work being produced by the X/Open consortium,
  18983.  particularly on the XA interfaces (the interface between a Transaction
  18984.  Manager and a Resource Manager).
  18985.  
  18986.  
  18987.  7.2.5  Realtime Application Profiles
  18988.  
  18989.  
  18990.  7.2.5.1  Rationale and Overview
  18991.  
  18992.  Different types of realtime applications have different characteristics
  18993.  and diverse requirements.  For example, embedded systems generally do not
  18994.  need the full functionality of an operating system, nor do they require
  18995.  all the IEEE POSIX.4 realtime extensions.  Compliance with the entire
  18996.  realtime standard and/or POSIX operating system interfaces could reduce
  18997.  the embedded system's responsiveness and increase the amount of memory
  18998.  
  18999.                Copyright c 1991 IEEE.  All rights reserved.
  19000.       This is an unapproved IEEE Standards Draft, subject to change.
  19001.  
  19002.  
  19003.  
  19004.  
  19005.  
  19006.  268                                          7 POSIX SP Profiling Efforts
  19007.  
  19008.  
  19009.  
  19010.  
  19011.  
  19012.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19013.  
  19014.  needed for systems that need to be embedded in limited space.  High-end
  19015.  realtime systems, on the other hand, have softer realtime requirements.
  19016.  However, they need the full operating system and realtime functionality.
  19017.  
  19018.  Therefore, the POSIX.13 working group was formed to define profiles for
  19019.  various types of realtime applications.  The realtime profiles defined
  19020.  will determine which interfaces must be implemented for a given type of
  19021.  realtime system to claim conformance to the realtime standard.
  19022.  
  19023.  
  19024.  7.2.5.2  Content of the Realtime Application Profiles
  19025.  
  19026.  The POSIX.13 working group is defining three different realtime
  19027.  application profiles:
  19028.  
  19029.      - Low-end, embedded systems (often known as ``hard'' realtime
  19030.        systems);
  19031.  
  19032.      - Mid-range realtime systems with medium-level critical realtime
  19033.        constraints;
  19034.  
  19035.      - High-end realtime systems.
  19036.  
  19037.  7.2.5.2.1  Minimal Embedded Realtime Profiles
  19038.  
  19039.  Embedded realtime systems are typically standalone systems used for robot
  19040.  controllers, automated systems controllers, instrumentation, high-speed
  19041.  data acquisition, satellite subsystem control, some process control, and
  19042.  some testing.  Time-critical responsiveness is a key requirement of
  19043.  embedded systems.  In the absence of a standard, the realtime
  19044.  functionality required for embedded systems is generally provided by a
  19045.  proprietary realtime kernel or a simple home-grown monitor using memory
  19046.  mapped I/O.
  19047.  
  19048.  Since low-end embedded systems need only minimal functionality, the
  19049.  POSIX.13 working group will select a relatively small number of POSIX.4
  19050.  and POSIX.1 {2} functions that will be required for portable realtime
  19051.  embedded systems.  These functions will be selected for three types of
  19052.  embedded applications, each of which comprise a sort of embedded system
  19053.  ``subprofile.''  One type of embedded application has no requirements for
  19054.  a file system or multiple processes.  The second type of embedded
  19055.  application requires a file system, but not multiple processes.  The
  19056.  third type of application requires multiple processes, but no file
  19057.  system.
  19058.  
  19059.  
  19060.  
  19061.  
  19062.  
  19063.  
  19064.  
  19065.                Copyright c 1991 IEEE.  All rights reserved.
  19066.       This is an unapproved IEEE Standards Draft, subject to change.
  19067.  
  19068.  
  19069.  
  19070.  
  19071.  
  19072.  7.2 General Purpose POSIX SPs                                         269
  19073.  
  19074.  
  19075.  
  19076.  
  19077.  
  19078.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19079.  
  19080.  7.2.5.2.2  Mid-Range Realtime Profiles
  19081.  
  19082.  The mid-range, or intermediate-level realtime systems profile is designed
  19083.  to support distributed realtime applications.  These applications are
  19084.  distributed across multiple processors sharing a high-speed communication
  19085.  channel (e.g., a backplane) or across a local network.  Mid-range
  19086.  realtime applications typically are used in a controller for a group of
  19087.  robots, to control a subsystem on the factory floor, or in a relatively
  19088.  small simulation system.
  19089.  
  19090.  Distributed realtime control systems have many of the same needs as
  19091.  embedded systems.  However, mid-range realtime systems require more
  19092.  functionality than do systems used for embedded realtime control.  At a
  19093.  minimum, distributed realtime systems require support for transparent,
  19094.  external processor-to-processor communications to support connectivity
  19095.  between the realtime system and other types of applications, as well as
  19096.  support for multiple flows of control (via multiprocessing or
  19097.  multithreading).
  19098.  
  19099.  To satisfy the requirements of distributed realtime systems, the mid-
  19100.  range application environment profile is specifying most of the POSIX.4
  19101.  functionality, along with the relevant options from the POSIX.4 and
  19102.  POSIX.1 {2} standards.  This profile is applicable to either a process or
  19103.  a thread model.
  19104.  
  19105.  7.2.5.2.3  High-End Realtime Profiles
  19106.  
  19107.  The high-end realtime application profile is applicable to complex
  19108.  realtime systems.  Such high-end realtime systems are typically used in
  19109.  military command and control, in space station control systems, in
  19110.  systems that control robot or factory subsystems, and as the operating
  19111.  system for a high-end simulation system.
  19112.  
  19113.  Because of the great complexity of high-end realtime applications and the
  19114.  large number of users typically involved, high-end realtime applications
  19115.  require a number of realtime and nonrealtime capabilities.  For example,
  19116.  besides realtime responsiveness and reliability, high-end realtime
  19117.  systems must support many languages, distributed processing, distributed
  19118.  file systems, and system security.  Also, realtime support is often
  19119.  required for fault tolerance, distributed database management,
  19120.  networking, graphics facilities, and possibly parallel processing or
  19121.  multiprocessing.  The level of realtime response that must be supported
  19122.  varies with the application.
  19123.  
  19124.  Since high-end realtime systems have a greater design complexity than
  19125.  embedded or mid-range systems, and need much greater functionality, they
  19126.  will most likely require all or most of the POSIX.4 and POSIX.1 {2}
  19127.  specifications.  The POSIX.4a Threads extension is optionally required,
  19128.  particularly to support Ada programs which are multithreaded.
  19129.  
  19130.  
  19131.                Copyright c 1991 IEEE.  All rights reserved.
  19132.       This is an unapproved IEEE Standards Draft, subject to change.
  19133.  
  19134.  
  19135.  
  19136.  
  19137.  
  19138.  270                                          7 POSIX SP Profiling Efforts
  19139.  
  19140.  
  19141.  
  19142.  
  19143.  
  19144.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19145.  
  19146.  
  19147.  
  19148.  
  19149.  
  19150.  
  19151.  
  19152.  
  19153.  
  19154.  
  19155.  
  19156.  
  19157.  
  19158.  
  19159.  
  19160.  
  19161.  
  19162.  
  19163.  
  19164.  
  19165.  
  19166.  
  19167.  
  19168.  
  19169.  
  19170.  
  19171.  
  19172.  
  19173.  
  19174.  
  19175.  
  19176.  
  19177.  
  19178.  
  19179.  
  19180.  
  19181.  
  19182.  
  19183.  
  19184.  
  19185.  
  19186.  
  19187.  
  19188.  
  19189.  
  19190.  
  19191.  
  19192.  
  19193.  
  19194.  
  19195.  
  19196.  
  19197.  
  19198.  
  19199.  
  19200.  
  19201.  
  19202.  
  19203.  
  19204.  
  19205.  
  19206.  
  19207.  
  19208.  
  19209.  
  19210.                                                                P1003.0/D13
  19211.  
  19212.  
  19213.  
  19214.  
  19215.  
  19216.  
  19217.                                   Annex A
  19218.                                (informative)
  19219.  
  19220.                 Considerations for Developers of POSIX SPs
  19221.  
  19222.  
  19223.  
  19224.  
  19225.  A.1  Introduction
  19226.  
  19227.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _B_o_b _G_a_m_b_r_e_l
  19228.  
  19229.  The contents of this Annex are illustrative of rules that might be
  19230.  developed for the submitters of POSIX Standardized Profiles (SPs).
  19231.  
  19232.  This Annex contains modifications and comments relating to the use of the
  19233.  _T_C_O_S-_S_S_C _P_O_S_I_X _S_t_a_n_d_a_r_d_s _S_t_y_l_e _G_u_i_d_e {B6} in POSIX SPs.
  19234.  
  19235.  
  19236.  A.2  Scope
  19237.  
  19238.  While Section 6 addressed profiles generally, this Annex addresses
  19239.  considerations for developers of formal POSIX Standardized Profiles.  It
  19240.  builds directly upon the concepts, principles, and guidance of Section 6.
  19241.  
  19242.  _R_J_G:  _T_h_i_s _A_n_n_e_x _i_s _n_o_t _c_o_m_p_l_e_t_e, _i_n _t_h_a_t _m_o_r_e _w_o_r_k _i_s _r_e_q_u_i_r_e_d _i_n _t_h_e
  19243.  _d_o_m_a_i_n _o_f _P_O_S_I_X _p_r_o_f_i_l_e_s.
  19244.  
  19245.  _F_u_t_u_r_e _w_o_r_k _i_n _t_h_e _a_r_e_a _o_f _p_r_o_f_i_l_i_n_g _w_i_l_l _b_e _d_o_n_e _b_y _I_E_E_E _a_n_d _t_h_e
  19246.  _s_t_a_n_d_a_r_d_s _c_o_m_m_u_n_i_t_y.  _T_h_i_s _d_o_c_u_m_e_n_t, _a_n_d _t_h_e _g_u_i_d_a_n_c_e _i_t _p_r_o_v_i_d_e_s, _w_i_l_l
  19247.  _b_e _u_p_d_a_t_e_d _a_s _a_p_p_r_o_p_r_i_a_t_e.  _T_h_e _m_a_j_o_r _a_r_e_a_s _e_x_p_e_c_t_e_d _t_o _b_e _a_d_d_r_e_s_s_e_d _a_r_e:
  19248.  
  19249.      - _I_n_t_e_r_n_a_t_i_o_n_a_l _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n _c_o_n_s_i_d_e_r_a_t_i_o_n_s
  19250.  
  19251.      - _C_o_n_f_o_r_m_a_n_c_e _i_s_s_u_e_s
  19252.  
  19253.      - _T_a_x_o_n_o_m_y _o_f _P_O_S_I_X _S_P_s
  19254.  
  19255.      - _R_e_g_i_s_t_r_a_t_i_o_n _o_f _P_O_S_I_X _S_P_s
  19256.  
  19257.      - _D_e_l_e_g_a_t_i_o_n _o_f _a_u_t_h_o_r_i_t_y _t_o _c_a_l_l _s_o_m_e_t_h_i_n_g _a _P_O_S_I_X _S_P (_N_o_t_e:
  19258.        _C_u_r_r_e_n_t_l_y, _t_h_i_s _d_o_c_u_m_e_n_t _d_o_e_s _n_o_t _p_r_o_h_i_b_i_t _a_n_o_t_h_e_r _g_r_o_u_p _b_e_s_i_d_e
  19259.        _I_E_E_E _f_r_o_m _c_a_l_l_i_n_g _t_h_e_i_r _d_o_c_u_m_e_n_t _a _P_O_S_I_X _S_P.)
  19260.  
  19261.  
  19262.  
  19263.                Copyright c 1991 IEEE.  All rights reserved.
  19264.       This is an unapproved IEEE Standards Draft, subject to change.
  19265.  
  19266.  
  19267.  
  19268.  
  19269.  
  19270.  A.2 Scope                                                             273
  19271.  
  19272.  
  19273.  
  19274.  
  19275.  
  19276.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19277.  
  19278.      - _C_l_a_r_i_f_i_c_a_t_i_o_n _o_f _b_a_s_e _s_t_a_n_d_a_r_d_s _r_e_f_e_r_e_n_c_i_n_g _i_s_s_u_e_s _s_u_c_h _a_s
  19279.        _s_u_b_s_e_t_t_i_n_g _a_n_d _t_h_e _h_a_n_d_l_i_n_g _o_f _o_p_t_i_o_n_s
  19280.  
  19281.      - _E_d_i_t_o_r_i_a_l _i_s_s_u_e_s _s_u_c_h _a_s _g_u_i_d_a_n_c_e _o_n _t_h_e _c_o_r_r_e_c_t _l_e_v_e_l _o_f _d_e_t_a_i_l
  19282.  
  19283.      - _A_d_d_i_t_i_o_n_a_l _g_u_i_d_a_n_c_e _o_n _r_e_f_e_r_e_n_c_i_n_g _b_a_s_e _s_t_a_n_d_a_r_d_s _a_n_d ``_s_t_a_n_d_a_r_d_s
  19284.        _i_n _p_r_o_g_r_e_s_s''
  19285.  
  19286.  
  19287.  
  19288.  A.3  The Role of POSIX SPs
  19289.  
  19290.  In 6.3.3.5, a classification scheme was given for profiles in which 3
  19291.  different ``types'' were identified.  That scheme is based, essentially,
  19292.  on the scope covered by the profile.  Another useful classification
  19293.  scheme, based on scope and on who develops the profiles, is presented in
  19294.  this annex.
  19295.  
  19296.  Figure A-1 shows these classes of profiles and the relationships between
  19297.  them and base standards.
  19298.  
  19299.  _________________________________________________________________________
  19300.  
  19301.  
  19302.  
  19303.  
  19304.  
  19305.  
  19306.  
  19307.  
  19308.  
  19309.  
  19310.  
  19311.  
  19312.  
  19313.  
  19314.  
  19315.  
  19316.  
  19317.  
  19318.  
  19319.  
  19320.  _________________________________________________________________________
  19321.              Figure A-1  -  Universe of Profiles and Standards
  19322.  
  19323.  
  19324.  Base standards cover a universe of diverse needs.  POSIX base standards
  19325.  (e.g., POSIX.1 {2}, P1003.4, ...) cover a narrower set of needs related
  19326.  to ``POSIX.''  In the figure, the POSIX base standards are shown as a
  19327.  
  19328.  
  19329.                Copyright c 1991 IEEE.  All rights reserved.
  19330.       This is an unapproved IEEE Standards Draft, subject to change.
  19331.  
  19332.  
  19333.  
  19334.  
  19335.  
  19336.  274                          A Considerations for Developers of POSIX SPs
  19337.  
  19338.  
  19339.  
  19340.  
  19341.  
  19342.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19343.  
  19344.  small subset of the larger world of base standards.
  19345.  
  19346.  At the other end of the spectrum, organization-specific (e.g., company-
  19347.  specific) profiles are large in number and range even more widely in
  19348.  their coverage.  (There are many more organizations procuring systems,
  19349.  and effectively writing profiles, than there are committees writing
  19350.  standards.)
  19351.  
  19352.  Industry-specific profiles are based on specific industry needs.  From
  19353.  the point of view of the organization-specific profile writer, industry
  19354.  specific profiles are applicable to many organizations (in the same
  19355.  industry), and hence are possibly not precisely what any specific
  19356.  individual organization needs.  They address the broad consensus of the
  19357.  industry, from which there is usually deviation when you look at
  19358.  individual organizations whose needs range further.
  19359.  
  19360.  Standardized Profiles are formal balloted documents.  POSIX SPs are the
  19361.  subset of standardized profiles that pertain to the POSIX base standards.
  19362.  While not limited to just POSIX base standards, POSIX SPs nonetheless
  19363.  provide a distinctly POSIX-oriented view of the base standards.
  19364.  
  19365.  An organization wishing to procure a ``POSIX'' based system, then, could
  19366.  first develop its own organization-specific profile, which it could base
  19367.  on POSIX-oriented industry-specific profiles (if available), which in
  19368.  turn could be based on POSIX SPs, which of course are based on the
  19369.  various POSIX base standards.
  19370.  
  19371.  POSIX SPs provide an industry-neutral building block for creating
  19372.  industry specific profiles.  The developers of POSIX SPs do not have to
  19373.  have knowledge of any particular industry.  They furthermore help ensure
  19374.  coherence among the many base standards referenced, particularly among
  19375.  the various POSIX base standards.  As such, probably, most POSIX SPs will
  19376.  be created by the IEEE POSIX working groups meeting concurrently with
  19377.  IEEE POSIX base standards working groups.  Meeting concurrently at the
  19378.  same place helps ensure the coherence of the base standards and the
  19379.  harmony among the POSIX SPs.
  19380.  
  19381.  
  19382.  
  19383.  A.4  Special Rules for POSIX SPs
  19384.  
  19385.  While no rules have yet been developed by IEEE for POSIX SPs, the
  19386.  remainder of this annex gives examples of what such rules might say and
  19387.  identifies some issues for which rules might be drafted.
  19388.  
  19389.  The following criteria for calling a profile a POSIX SP were developed
  19390.  according to some general principles that have the aim of giving definite
  19391.  value to the word ``POSIX'' when used with regards to profiles.  The
  19392.  general principles are:
  19393.  
  19394.  
  19395.                Copyright c 1991 IEEE.  All rights reserved.
  19396.       This is an unapproved IEEE Standards Draft, subject to change.
  19397.  
  19398.  
  19399.  
  19400.  
  19401.  
  19402.  A.4 Special Rules for POSIX SPs                                       275
  19403.  
  19404.  
  19405.  
  19406.  
  19407.  
  19408.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19409.  
  19410.      (1)  There is minimum content.  Specifically, a POSIX SP must
  19411.           reference some part of the suite of POSIX base standards.
  19412.           (Which part specifically is contentious.)
  19413.  
  19414.      (2)  The POSIX SP must follow a specific approach to conformance
  19415.           (specifically the P1003.3.1 test methodology.)
  19416.  
  19417.      (3)  The POSIX SP must adhere to the POSIX Reference Model.
  19418.  
  19419.      (4)  There is maximum content; i.e., some consideration must be given
  19420.           to how the POSIX SP goes beyond the POSIX OSE as described in
  19421.           this guide.
  19422.  
  19423.      (5)  Exceptions to the previous principles are expected, requiring a
  19424.           rule-making and enforcement body to make those exception
  19425.           decisions.
  19426.  
  19427.  POSIX SPs are Standardized Profiles that are related to ``POSIX.''  This
  19428.  subclause specifies the rules that need to be followed that distinguish
  19429.  POSIX SPs from ``Non-POSIX SPs''.
  19430.  
  19431.  Each POSIX SP is based on, and shall include, one of the following two
  19432.  base standards sets:
  19433.  
  19434.      (1)  POSIX.1 {2} or POSIX.2 (as verified by the P1003.3 methodology),
  19435.           or
  19436.  
  19437.      (2)  A particular subset of POSIX.1 {2} and P1003.4 that is being
  19438.           specified for a Minimal Realtime profile (as verified by the
  19439.           P1003.3 methodology.)
  19440.  
  19441.  Additionally, each POSIX SP adheres to the structure defined by the POSIX
  19442.  OSE reference model.
  19443.  
  19444.  An approved POSIX SP shall make reference only to base standards
  19445.  identified in this guide (1003.0) as being part of the POSIX OSE.  Two
  19446.  specific exceptions to this general rule are allowed for as described
  19447.  here:
  19448.  
  19449.      (1)  Reference can be made to required base standards that are
  19450.           clearly outside of the scope of the POSIX OSE.  Examples of the
  19451.           functionality that may require the use of this expedient are:
  19452.  
  19453.            - Physical connectors
  19454.  
  19455.            - Electrical characteristics
  19456.  
  19457.            - Safety requirements
  19458.  
  19459.  
  19460.  
  19461.                Copyright c 1991 IEEE.  All rights reserved.
  19462.       This is an unapproved IEEE Standards Draft, subject to change.
  19463.  
  19464.  
  19465.  
  19466.  
  19467.  
  19468.  276                          A Considerations for Developers of POSIX SPs
  19469.  
  19470.  
  19471.  
  19472.  
  19473.  
  19474.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19475.  
  19476.           Such reference to items outside the scope of the POSIX OSE shall
  19477.           be justified on a case-by-case basis.  It shall be accompanied
  19478.           by details of the body responsible for the distribution and
  19479.           maintenance of the referenced base standard.
  19480.  
  19481.      (2)  Reference can be made to required base standards that are being
  19482.           proposed for inclusion in a future version of the guide.
  19483.           Examples of this would be specification of a later version of a
  19484.           base standard that is already included within the POSIX OSE, or
  19485.           of an additional programming language base standard, not yet
  19486.           included within the POSIX OSE.
  19487.  
  19488.           In such cases, the POSIX SP should be identified as a POSIX
  19489.           Preliminary SP and the specific references should be clearly
  19490.           noted and justified on a case by case basis.
  19491.  
  19492.  A POSIX Preliminary Standardized Profile (POSIX Preliminary SP) is a
  19493.  POSIX SP that satisfies all requirements of a POSIX SP except that it is
  19494.  not a subset of the POSIX OSE.  [It therefore contains at least one
  19495.  standard or profile that is outside the POSIX OSE.  It is expected that
  19496.  application would be made to POSIX.0 to include the standard(s) or
  19497.  profile(s) in the POSIX OSE.]
  19498.  
  19499.  A further restriction of POSIX SPs is the necessity to (normatively)
  19500.  reference only standards that are recognized by the IEEE.  This is
  19501.  limited to IEEE and ISO standards.
  19502.  
  19503.  Approval of a POSIX SP shall not change the status of any documents
  19504.  referenced by it.
  19505.  
  19506.  The development of a POSIX SP may indicate the need to modify or to add
  19507.  to the requirements specified in a base standard.  In this case, it is
  19508.  necessary for the POSIX SP developer to liaise with the body responsible
  19509.  for that base standard so that the required changes may be made through
  19510.  established methods such as defect reporting, amendment procedures, or
  19511.  the introduction of new work.
  19512.  
  19513.  
  19514.  
  19515.  A.5  Other Issues
  19516.  
  19517.  A significant number of issues remain to be addressed concerning the
  19518.  management of POSIX SP development.  Some of the issues and the concerns
  19519.  are summarized here.
  19520.  
  19521.  
  19522.  
  19523.  
  19524.  
  19525.  
  19526.  
  19527.                Copyright c 1991 IEEE.  All rights reserved.
  19528.       This is an unapproved IEEE Standards Draft, subject to change.
  19529.  
  19530.  
  19531.  
  19532.  
  19533.  
  19534.  A.5 Other Issues                                                      277
  19535.  
  19536.  
  19537.  
  19538.  
  19539.  
  19540.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19541.  
  19542.  Coherence
  19543.  
  19544.  The insurance of coherence among the many base standards referenced by a
  19545.  profile has been found by profile writers to be an onerous task.  The
  19546.  profile writer's burden could be eased significantly if base standards
  19547.  writers address coherence at the outset.  Specifically, all the P1003.x
  19548.  base standards should be developed to maximize their coherence.  This is   d
  19549.  seen as a management issue for TCOS-SEC, the sponsoring body of the        d
  19550.  P1003.x standards.
  19551.  
  19552.  
  19553.  Conformance
  19554.  
  19555.  The development of conformance statements and test methods for profiles
  19556.  is a significant challenge for profile writers.  The challenge is most
  19557.  acute in the area of conformance of standards that are being developed
  19558.  outside of P1003.  A premise for the profile writing rules associated
  19559.  with conformance must be that the profile writers are not really experts
  19560.  in the referenced standards.  Profile writers (especially at this early
  19561.  period in their development) must not be overburdened with untested
  19562.  conformance writing rules.  A possible solution is to create a new
  19563.  project under the auspices of P1003.3 to actually generate new test
  19564.  methods and actually write the necessary assertions for the first
  19565.  profile.  (This approach was used also for the initial POSIX base
  19566.  standard.)
  19567.  
  19568.  
  19569.  Base Standards Working Groups
  19570.  
  19571.  Because profile writers are in some sense the customers of base
  19572.  standards, it is important for base standards writers to address with
  19573.  priority and urgency the gaps identified in the development of POSIX SPs.
  19574.  
  19575.  
  19576.  Scope and Number of POSIX SPs
  19577.  
  19578.  How many different POSIX SPs are appropriate and how broadly ranging
  19579.  should be their scope?  Should POSIX SPs be rather narrowly focused,
  19580.  spanning just a few base standards, or should they address a large number
  19581.  of base standards?
  19582.  
  19583.  
  19584.  Issues Pertaining to Referencing Base Standards
  19585.  
  19586.  Many practical writing issues pertain to referencing, for instance, parts
  19587.  of base standards.  This includes not only referencing options, but even
  19588.  the concept of subsetting, or reducing the functionality of a base
  19589.  standard.  Also an issue is how to reference multiple versions of the
  19590.  same standard (e.g., two different COBOL standards.)
  19591.  
  19592.  
  19593.                Copyright c 1991 IEEE.  All rights reserved.
  19594.       This is an unapproved IEEE Standards Draft, subject to change.
  19595.  
  19596.  
  19597.  
  19598.  
  19599.  
  19600.  278                          A Considerations for Developers of POSIX SPs
  19601.  
  19602.  
  19603.  
  19604.  
  19605.  
  19606.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19607.  
  19608.  POSIX SP Procedures and Rules
  19609.  
  19610.  What does it mean to be a POSIX SP?  Rule making for use of the word
  19611.  ``POSIX'' must address criteria for such use.  Also, many issues remain
  19612.  to be resolved in the area of ballot procedures.  Should IEEE delegate to
  19613.  others the ability to develop POSIX SPs?  If so, should IEEE maintain a
  19614.  registry of such efforts?
  19615.  
  19616.  
  19617.  
  19618.  A.6  Conformance to a POSIX SP
  19619.  
  19620.  A POSIX SP must address test methods for itself.  In the simplest case,
  19621.  testing the base standards referenced is sufficient.  In more complex
  19622.  cases, additional test methods will be necessary.  In the worst case (if
  19623.  a base standard is subsetted, for example), the test methods for the base
  19624.  standards may have to be rewritten or expanded within the POSIX SP.
  19625.  
  19626.  At the same time, P1003.3 will have to consider revisions to the _T_e_s_t
  19627.  _M_e_t_h_o_d_s _f_o_r _M_e_a_s_u_r_i_n_g _C_o_n_f_o_r_m_a_n_c_e _t_o _P_O_S_I_X to address test methods for
  19628.  POSIX SPs (e.g., additional assertion types, minimum requirements for
  19629.  testing POSIX SPs, ...)
  19630.  
  19631.  _R_J_G:  _I _t_h_o_u_g_h_t _a_b_o_u_t _a_d_d_i_n_g _s_t_u_f_f _h_e_r_e _f_r_o_m _T_R _1_0_0_0_0, _b_u_t _o_n _s_e_c_o_n_d
  19632.  _t_h_o_u_g_h_t _i_t _s_e_e_m_s _t_h_a_t _a _j_o_i_n_t _e_f_f_o_r_t _b_e_t_w_e_e_n _P_1_0_0_3._0 _a_n_d _P_1_0_0_3._3 _t_o
  19633.  _d_e_v_e_l_o_p _t_h_i_s _m_a_t_e_r_i_a_l _w_o_u_l_d _b_e _m_o_r_e _a_p_p_r_o_p_r_i_a_t_e.
  19634.  
  19635.  
  19636.  A.7  Structure of Documentation for POSIX SPs
  19637.  
  19638.  This clause gives specific format and content requirements to profile
  19639.  writers who are developing POSIX SPs.
  19640.  
  19641.  
  19642.  A.7.1  Principles
  19643.  
  19644.  The requirements for content and format of POSIX SPs are based on the
  19645.  following principles:
  19646.  
  19647.      (1)  Profiles shall be directly related to base standards and
  19648.           conformance to profiles shall imply conformance to base
  19649.           standards.
  19650.  
  19651.      (2)  POSIX SPs shall follow the rules for drafting and presentation
  19652.           of POSIX SPs detailed here.
  19653.  
  19654.      (3)  POSIX SPs are intended to be concise documents that do not
  19655.           repeat the text of the base standards.
  19656.  
  19657.  
  19658.  
  19659.                Copyright c 1991 IEEE.  All rights reserved.
  19660.       This is an unapproved IEEE Standards Draft, subject to change.
  19661.  
  19662.  
  19663.  
  19664.  
  19665.  
  19666.  A.7 Structure of Documentation for POSIX SPs                          279
  19667.  
  19668.  
  19669.  
  19670.  
  19671.  
  19672.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19673.  
  19674.      (4)  Profiles making identical use of particular base documents shall
  19675.           be consistent, down to the level of identical wording in the
  19676.           POSIX SPs for identical requirements.
  19677.  
  19678.  
  19679.  A.7.2  Multipart POSIX SPs
  19680.  
  19681.  Many profiles will be documented and published as individual POSIX SPs.
  19682.  However, where close relationships exist between two or more profiles, a
  19683.  more appropriate technique can be used.
  19684.  
  19685.  Common text between related profiles is essential to ensure consistency,
  19686.  portability, and interworking, to avoid unnecessary duplication of text,
  19687.  and to aid writers and reviewers of POSIX SPs.
  19688.  
  19689.  A _s_i_n_g_l_e-_p_a_r_t _P_O_S_I_X _S_P shall not contain the definition of more than one
  19690.  profile.
  19691.  
  19692.  The following rules apply to _m_u_l_t_i_p_a_r_t _P_O_S_I_X _S_P_s:
  19693.  
  19694.      (1)  A multipart POSIX SP shall contain the definition of a complete
  19695.           profile or of a related set of profiles.
  19696.  
  19697.      (2)  A part of a multipart POSIX SP may contain a section of the
  19698.           definition of one or more profiles.
  19699.  
  19700.      (3)  Where a multipart POSIX SP includes more than one profile, the
  19701.           part structure shall permit each profile to be the subject of a
  19702.           separate ballot; i.e., its constituent profiles shall be clearly
  19703.           identifiable, and the multipart structure shall ensure that this
  19704.           can be accomplished.
  19705.  
  19706.      (4)  Wherever possible, the references made from one part to another
  19707.           should be to complete parts.  However, controlled use of one-way
  19708.           references to sections of other parts is permitted in order to
  19709.           obtain a reasonable multipart structure.
  19710.  
  19711.  Because there may also be potential disadvantages from overuse of the
  19712.  multipart POSIX SP capability, such as difficulties in gaining approval
  19713.  for a complex linked set of parts, or reduction of the content of a part
  19714.  to a small amount of text, considerable care should be taken with its
  19715.  use.
  19716.  
  19717.  NOTES:
  19718.  
  19719.      (1)  When a section of text appears in several profiles,
  19720.           possibilities exist for sharing the corresponding code (etc.)
  19721.           for the implementation of several profiles, and the tests
  19722.           applicable to the use of the referenced base standards will be
  19723.           applicable to the testing of several profiles.
  19724.  
  19725.                Copyright c 1991 IEEE.  All rights reserved.
  19726.       This is an unapproved IEEE Standards Draft, subject to change.
  19727.  
  19728.  
  19729.  
  19730.  
  19731.  
  19732.  280                          A Considerations for Developers of POSIX SPs
  19733.  
  19734.  
  19735.  
  19736.  
  19737.  
  19738.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19739.  
  19740.      (2)  It follows that it is in the interest of the implementors to
  19741.           promote the identification of common sections of text as parts
  19742.           of POSIX SPs, but even more to promote, in future
  19743.           standardization and profile work, the use of already defined
  19744.           parts of POSIX SPs, so that profiles fall into a few ``common
  19745.           molds.''  In particular, this allows implementation of a part of
  19746.           a POSIX SP with confidence that it may be used in the
  19747.           implementation of profiles as yet undefined, so that products
  19748.           are open to future development.
  19749.  
  19750.      (3)  Possibilities exist for a complete profile to be referenced from
  19751.           within the definition of another profile.
  19752.  
  19753.  
  19754.  
  19755.  
  19756.  A.8  Rules for Drafting and Presentation of POSIX SPs
  19757.  
  19758.  Throughout this Annex, which is concerned with documentation content and
  19759.  layout, reference is made to POSIX SPs.  A POSIX SP, or part thereof, may
  19760.  contain a whole profile definition or part of one or more profile
  19761.  definitions.  The wording of the Annex assumes that it is describing an
  19762.  undivided POSIX SP that defines one profile in its entirety.  Its
  19763.  application to the other cases is easily deduced.  Note, however, that
  19764.  each part of a Multipart POSIX SP shall use the same format as far as
  19765.  appropriate.
  19766.  
  19767.  
  19768.  A.8.1  General Arrangement
  19769.  
  19770.  The elements that together form a POSIX SP are classified into three
  19771.  groups:
  19772.  
  19773.      (1)  Preliminary elements are those elements that identify the POSIX
  19774.           SP, introduce its content, and explain its background, its
  19775.           development, and its relationship with other standards and POSIX
  19776.           SPs.
  19777.  
  19778.      (2)  Normative elements are those elements setting out the provisions
  19779.           with which it is necessary to comply in order to be able to
  19780.           claim conformity with the POSIX SP.
  19781.  
  19782.      (3)  Supplementary elements are those elements that provide
  19783.           additional information intended to assist the understanding or
  19784.           use of the POSIX SP.
  19785.  
  19786.  These groups of elements are described in the following clauses.
  19787.  
  19788.  
  19789.  
  19790.  
  19791.                Copyright c 1991 IEEE.  All rights reserved.
  19792.       This is an unapproved IEEE Standards Draft, subject to change.
  19793.  
  19794.  
  19795.  
  19796.  
  19797.  
  19798.  A.8 Rules for Drafting and Presentation of POSIX SPs                  281
  19799.  
  19800.  
  19801.  
  19802.  
  19803.  
  19804.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19805.  
  19806.  A.8.2  Preliminary Elements
  19807.  
  19808.  
  19809.  A.8.2.1  Foreword
  19810.  
  19811.  The foreword shall appear in every POSIX SP.  It consists of a general
  19812.  part giving information relating to the organization responsible and a
  19813.  specific part giving as many of the following as are appropriate:
  19814.  
  19815.      - An identification of the organization or committee that prepared
  19816.        the POSIX SP; information regarding the approval of the POSIX SP
  19817.  
  19818.      - A statement that the POSIX SP cancels or replaces other documents
  19819.        in whole or in part
  19820.  
  19821.      - A statement of significant technical changes from the previous
  19822.        edition
  19823.  
  19824.      - A statement of which annexes are normative and which are
  19825.        informative
  19826.  
  19827.  A.8.2.2  Introduction
  19828.  
  19829.  The introduction shall appear in every POSIX SP.  It gives specific
  19830.  information about the process used to draft the POSIX SP and about the
  19831.  degree of international harmonization that it has received.
  19832.  
  19833.  
  19834.  A.8.3  General Normative Elements
  19835.  
  19836.  
  19837.  A.8.3.1  Title
  19838.  
  19839.  The title shall be composed of the following three elements:
  19840.  
  19841.      (1)  An introductory element:  _S_t_a_n_d_a_r_d _f_o_r _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y
  19842.  
  19843.      (2)  An identification element:  _P_O_S_I_X _S_t_a_n_d_a_r_d_i_z_e_d _P_r_o_f_i_l_e
  19844.  
  19845.      (3)  A main element indicating the subject matter of the POSIX SP.
  19846.           For a Multipart POSIX SP, this element shall be subdivided into
  19847.           a general title element common to all parts, and a specific
  19848.           title element for each part;  where necessary, this specific
  19849.           element may include the identifier of an individual profile.
  19850.           The first word of this element should be the word ``POSIX''.
  19851.  
  19852.  Example:
  19853.  
  19854.  
  19855.  
  19856.  
  19857.                Copyright c 1991 IEEE.  All rights reserved.
  19858.       This is an unapproved IEEE Standards Draft, subject to change.
  19859.  
  19860.  
  19861.  
  19862.  
  19863.  
  19864.  282                          A Considerations for Developers of POSIX SPs
  19865.  
  19866.  
  19867.  
  19868.  
  19869.  
  19870.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  19871.  
  19872.        Standard for Information Technology --
  19873.        POSIX Standardized Profile --
  19874.        POSIX Transaction Processing
  19875.  
  19876.  
  19877.  A.8.3.2  Scope
  19878.  
  19879.  This element contains two subclauses as follows:
  19880.  
  19881.      (1)  General
  19882.  
  19883.           This element shall appear at the beginning of the POSIX SP or
  19884.           POSIX SP part to define without ambiguity the purpose and
  19885.           subject matter of the document, thereby indicating the limits of
  19886.           its applicability.  It shall not contain requirements.
  19887.  
  19888.      (2)  Scenario
  19889.  
  19890.           If the POSIX SP or POSIX SP part defines a profile, it shall
  19891.           include (where appropriate) the ``scenario'' of the profile;
  19892.           i.e., an illustration of the environment within which it is
  19893.           applicable.  This may show in a simplified graphic form how this
  19894.           fits within the POSIX Reference Model.
  19895.  
  19896.  A profile should first introduce the functional area being addressed and
  19897.  the applications activities within that area.  The requirements that have
  19898.  been addressed should be delineated, as well as those areas outside of
  19899.  the scope of the profile.
  19900.  
  19901.  A.8.3.3  Normative References
  19902.  
  19903.  This element shall give a list of normative documents (base standards),
  19904.  with their titles and publication dates, to which reference is made in
  19905.  the text in such a way as to make them indispensable for the application
  19906.  of the POSIX SP.  Where published amendments or technical errata to base
  19907.  standards are relevant to the definition of the profile in such a way as
  19908.  to have a potential impact on interworking or portability, they shall be
  19909.  explicitly referenced here.
  19910.  
  19911.  Reference shall also be made to this guide.
  19912.  
  19913.  
  19914.  A.8.4  Technical Normative Elements
  19915.  
  19916.  
  19917.  
  19918.  
  19919.  
  19920.  
  19921.  
  19922.  
  19923.                Copyright c 1991 IEEE.  All rights reserved.
  19924.       This is an unapproved IEEE Standards Draft, subject to change.
  19925.  
  19926.  
  19927.  
  19928.  
  19929.  
  19930.  A.8 Rules for Drafting and Presentation of POSIX SPs                  283
  19931.  
  19932.  
  19933.  
  19934.  
  19935.  
  19936.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  19937.  
  19938.  A.8.4.1  Requirements
  19939.  
  19940.  This element includes clauses relating to the use made of each of the
  19941.  main base standards referenced in the profile definition.  The content
  19942.  and layout of these clauses are not defined, but can be tailored to the
  19943.  type of material that has to be specified in each case.
  19944.  
  19945.  The information given shall not repeat the text of the base standards,
  19946.  but shall define the choices made in the profile of classes, subsets,
  19947.  options and ranges of parameter values.  It shall be in the form of
  19948.  conformance requirements and may, where appropriate, be given in tabular
  19949.  form.
  19950.  
  19951.  See 6.3.3 for more detail concerning the nature of the content required
  19952.  in this element of a POSIX SP.
  19953.  
  19954.  
  19955.  A.8.4.2  Normative Annexes
  19956.  
  19957.  Normative annexes are integral sections of the POSIX SP that, for reasons
  19958.  of convenience, are placed after all other normative elements.  The fact
  19959.  that an annex is normative (as opposed to informative) shall be made
  19960.  clear by the way in which it is referred to in the text, by a statement
  19961.  to this effect in the foreword, and by an indication at the head of the
  19962.  annex itself.
  19963.  
  19964.  
  19965.  A.8.5  Supplementary Elements
  19966.  
  19967.  A.8.5.1  Informative Annexes
  19968.  
  19969.  Informative annexes give additional information and are placed after the
  19970.  normative elements of a POSIX SP.  They shall not contain requirements.
  19971.  The fact that an annex is informative (as opposed to normative) shall be
  19972.  made clear by the way in which it is referred to in the text, by a
  19973.  statement to this effect in the foreword, and by an indication at the
  19974.  head of the annex itself.
  19975.  
  19976.  Informative annexes provide a point for documenting useful information
  19977.  for the users of a profile that poses no requirements.  Such annexes can
  19978.  include:
  19979.  
  19980.      (1)  Specification of additional standards or options that will make
  19981.           the profile useful for specific locales (character sets, etc.)
  19982.  
  19983.      (2)  Pointers to the referenced standards and information on ordering
  19984.           these
  19985.  
  19986.  
  19987.  
  19988.  
  19989.                Copyright c 1991 IEEE.  All rights reserved.
  19990.       This is an unapproved IEEE Standards Draft, subject to change.
  19991.  
  19992.  
  19993.  
  19994.  
  19995.  
  19996.  284                          A Considerations for Developers of POSIX SPs
  19997.  
  19998.  
  19999.  
  20000.  
  20001.  
  20002.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20003.  
  20004.      (3)  Pointers to related specifications that may provide additional
  20005.           insight or potentially serve to fill gaps in the profile
  20006.  
  20007.      (4)  Comments and concepts in using the profile for various target
  20008.           readers.  This could include use in procurements (perhaps cross
  20009.           referencing related procurement standards like the FIPS in the
  20010.           US).  The annex may be used to provide recommendations for use
  20011.           that are not warranted in the standard (e.g., ``Algol is not
  20012.           recommended for new applications development'').
  20013.  
  20014.  
  20015.  
  20016.  
  20017.  
  20018.  
  20019.  
  20020.  
  20021.  
  20022.  
  20023.  
  20024.  
  20025.  
  20026.  
  20027.  
  20028.  
  20029.  
  20030.  
  20031.  
  20032.  
  20033.  
  20034.  
  20035.  
  20036.  
  20037.  
  20038.  
  20039.  
  20040.  
  20041.  
  20042.  
  20043.  
  20044.  
  20045.  
  20046.  
  20047.  
  20048.  
  20049.  
  20050.  
  20051.  
  20052.  
  20053.  
  20054.  
  20055.                Copyright c 1991 IEEE.  All rights reserved.
  20056.       This is an unapproved IEEE Standards Draft, subject to change.
  20057.  
  20058.  
  20059.  
  20060.  
  20061.  
  20062.  A.8 Rules for Drafting and Presentation of POSIX SPs                  285
  20063.  
  20064.  
  20065.  
  20066.  
  20067.  
  20068.  
  20069.  
  20070.  
  20071.  
  20072.  
  20073.  
  20074.  
  20075.  
  20076.  
  20077.  
  20078.  
  20079.  
  20080.  
  20081.  
  20082.  
  20083.  
  20084.  
  20085.  
  20086.  
  20087.  
  20088.  
  20089.  
  20090.  
  20091.  
  20092.  
  20093.  
  20094.  
  20095.  
  20096.  
  20097.  
  20098.  
  20099.  
  20100.  
  20101.  
  20102.  
  20103.  
  20104.  
  20105.  
  20106.  
  20107.  
  20108.  
  20109.  
  20110.  
  20111.  
  20112.  
  20113.  
  20114.  
  20115.  
  20116.  
  20117.  
  20118.  
  20119.  
  20120.  
  20121.  
  20122.  
  20123.  
  20124.  
  20125.  
  20126.  
  20127.  
  20128.  
  20129.  
  20130.  
  20131.  
  20132.  
  20133.  
  20134.                                                                P1003.0/D13
  20135.  
  20136.  
  20137.  
  20138.  
  20139.  
  20140.  
  20141.                                   Annex B
  20142.                                (informative)
  20143.  
  20144.                                Bibliography
  20145.  
  20146.  
  20147.  
  20148.  
  20149.  _H_L_J:  _T_h_i_s _a_n_n_e_x _s_h_o_u_l_d _i_n_c_l_u_d_e _r_e_f_e_r_e_n_c_e_s _t_o _s_t_a_n_d_a_r_d_s, _b_o_o_k_s, _a_r_t_i_c_l_e_s,
  20150.  _e_t_c., _t_h_a_t _a_r_e _n_o_t _r_e_q_u_i_r_e_d _f_o_r _a_n _i_n_t_e_g_r_a_l _u_n_d_e_r_s_t_a_n_d_i_n_g _o_f _t_h_e _d_o_c_u_m_e_n_t
  20151.  (_a_s _a_r_e _t_h_e _e_n_t_r_i_e_s _i_n _N_o_r_m_a_t_i_v_e _R_e_f_e_r_e_n_c_e_s).  _I _h_a_v_e _e_n_c_l_o_s_e_d _s_o_m_e
  20152.  _s_a_m_p_l_e_s _t_h_a_t _y_o_u _s_h_o_u_l_d _m_a_t_c_h _i_n _s_t_y_l_e, _b_u_t _n_o_t _n_e_c_e_s_s_a_r_i_l_y _i_n _s_e_l_e_c_t_i_o_n
  20153.  _c_o_n_t_e_n_t:
  20154.  
  20155.  {B1}  ISO 7498: 1984, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_-
  20156.        _c_o_n_n_e_c_t_i_o_n--_B_a_s_i_c _R_e_f_e_r_e_n_c_e _M_o_d_e_l.1)
  20157.  
  20158.  {B2}  ISO 8072: 1986, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s _I_n_t_e_r_-
  20159.        _c_o_n_n_e_c_t_i_o_n--_T_r_a_n_s_p_o_r_t _s_e_r_v_i_c_e _d_e_f_i_n_i_t_i_o_n.
  20160.  
  20161.  {B3}  ISO/IEC 8073: 1988, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_O_p_e_n _S_y_s_t_e_m_s
  20162.        _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n--_C_o_n_n_e_c_t_i_o_n _o_r_i_e_n_t_e_d _t_r_a_n_s_p_o_r_t _p_r_o_t_o_c_o_l
  20163.        _s_p_e_c_i_f_i_c_a_t_i_o_n.2)
  20164.  
  20165.  {B4}  CCITT Recommendation X.25, _I_n_t_e_r_f_a_c_e _b_e_t_w_e_e_n _d_a_t_a _t_e_r_m_i_n_a_l
  20166.        _e_q_u_i_p_m_e_n_t (_D_T_E) _a_n_d _d_a_t_a _c_i_r_c_u_i_t-_t_e_r_m_i_n_a_t_i_n_g _e_q_u_i_p_m_e_n_t (_D_C_T) _f_o_r
  20167.        _t_e_r_m_i_n_a_l_s _o_p_e_r_a_t_i_n_g _i_n _t_h_e _p_a_c_k_e_t _m_o_d_e _a_n_d _c_o_n_n_e_c_t_e_d _t_o _p_u_b_l_i_c _d_a_t_a
  20168.        _n_e_t_w_o_r_k_s _b_y _d_e_d_i_c_a_t_e_d _c_i_r_c_u_i_t.3)
  20169.  
  20170.  {B5}  CCITT Recommendation X.212, _I_n_f_o_r_m_a_t_i_o_n _p_r_o_c_e_s_s_i_n_g _s_y_s_t_e_m_s--_D_a_t_a
  20171.        _c_o_m_m_u_n_i_c_a_t_i_o_n--_D_a_t_a _l_i_n_k _s_e_r_v_i_c_e _d_e_f_i_n_i_t_i_o_n _f_o_r _O_p_e_n _S_y_s_t_e_m_s
  20172.        _I_n_t_e_r_c_o_n_n_e_c_t_i_o_n.
  20173.  
  20174.  
  20175.  
  20176.  __________
  20177.   1) ISO documents can be obtained from the ISO office, 1, rue de Varembe',
  20178.      Case Postale 56, CH-1211, Gene`ve 20, Switzerland/Suisse.
  20179.   2) IEC documents can be obtained from the IEC office, 3, rue de Varembe',
  20180.      Case Postale 131, CH-1211, Gene`ve 20, Switzerland/Suisse.
  20181.   3) CCITT documents can be obtained from the CCITT General Secretariat,
  20182.      International Telecommunications Union, Sales Section, Place des
  20183.      Nations, CH-1211, Gene`ve 20, Switzerland/Suisse.
  20184.  
  20185.  
  20186.  
  20187.                Copyright c 1991 IEEE.  All rights reserved.
  20188.       This is an unapproved IEEE Standards Draft, subject to change.
  20189.  
  20190.  
  20191.  
  20192.  
  20193.  
  20194.  Annex B Bibliography                                                  287
  20195.  
  20196.  
  20197.  
  20198.  
  20199.  
  20200.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20201.  
  20202.  {B5}  ANSI X3.113-19874), _I_n_f_o_r_m_a_t_i_o_n _s_y_s_t_e_m_s--_P_r_o_g_r_a_m_m_i_n_g _l_a_n_g_u_a_g_e--_F_U_L_L
  20203.        _B_A_S_I_C.
  20204.  
  20205.  {B6}  IEEE Computer Society Technical Committee on Operating Systems and
  20206.        Application Environments Standards Subcommittee.  _T_C_O_S-_S_S_C _P_O_S_I_X
  20207.        _S_t_a_n_d_a_r_d_s _S_t_y_l_e _G_u_i_d_e.
  20208.  
  20209.  {B7}  American Telephone and Telegraph Company.  _S_y_s_t_e_m _V _I_n_t_e_r_f_a_c_e
  20210.        _D_e_f_i_n_i_t_i_o_n (_S_V_I_D), _I_s_s_u_e_s _2 _a_n_d _3.  Morristown, NJ:  UNIX Press,
  20211.        1986, 1989.
  20212.  
  20213.  {B8}  /usr/group Standards Committee.  _1_9_8_4 /_u_s_r/_g_r_o_u_p _S_t_a_n_d_a_r_d.  Santa
  20214.        Clara, CA:  UniForum, 1984.
  20215.  
  20216.  {B9}  X/Open Company, Ltd.  _X/_O_p_e_n _P_o_r_t_a_b_i_l_i_t_y _G_u_i_d_e, _I_s_s_u_e _3.  Englewood
  20217.        Cliffs, NJ:  Prentice-Hall, 1989.
  20218.  
  20219.  
  20220.  
  20221.  
  20222.  
  20223.  
  20224.  
  20225.  
  20226.  
  20227.  
  20228.  
  20229.  
  20230.  
  20231.  
  20232.  
  20233.  
  20234.  
  20235.  
  20236.  
  20237.  
  20238.  
  20239.  
  20240.  
  20241.  
  20242.  
  20243.  
  20244.  
  20245.  
  20246.  
  20247.  __________
  20248.   4) ANSI documents can be obtained from the Sales Department, American
  20249.      National Standards Institute, 1430 Broadway, New York, NY 10018.
  20250.  
  20251.  
  20252.  
  20253.                Copyright c 1991 IEEE.  All rights reserved.
  20254.       This is an unapproved IEEE Standards Draft, subject to change.
  20255.  
  20256.  
  20257.  
  20258.  
  20259.  
  20260.  288                                                        B Bibliography
  20261.  
  20262.  
  20263.  
  20264.  
  20265.  
  20266.                                                                P1003.0/D13
  20267.  
  20268.  
  20269.  
  20270.  
  20271.  
  20272.  
  20273.                                   Annex C
  20274.                                (informative)
  20275.  
  20276.                    Standards Infrastructure Description
  20277.  
  20278.  
  20279.  
  20280.  
  20281.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y: _W_e_n_d_y _R_a_u_c_h
  20282.  
  20283.  _H_L_J:  _O_n_c_e _a_g_a_i_n, _a _f_u_l_l _r_e_p_l_a_c_e_m_e_n_t _f_o_r _t_h_i_s _A_n_n_e_x, _s_o _n_o _f_u_r_t_h_e_r _d_i_f_f    _d
  20284.  _m_a_r_k_s.  _I _w_o_u_l_d _p_o_i_n_t _o_u_t _a _g_e_n_e_r_a_l _e_d_i_t_o_r_i_a_l _i_s_s_u_e _h_e_r_e:  _I_S_O _s_t_a_n_d_a_r_d_s   _d
  20285.  _a_n_d _t_e_c_h_n_i_c_a_l _r_e_p_o_r_t_s _d_o _n_o_t _a_l_l_o_w _r_e_f_e_r_e_n_c_e_s _t_o _c_o_m_m_e_r_c_i_a_l _o_r _a_c_a_d_e_m_i_c    _d
  20286.  _o_r_g_a_n_i_z_a_t_i_o_n_s, _s_o _a _b_i_t _o_f _p_r_u_n_i_n_g _w_i_l_l _b_e _n_e_c_e_s_s_a_r_y _i_n _t_h_i_s _A_n_n_e_x.  _I     _d
  20287.  _w_o_u_l_d _a_l_s_o _r_e_c_o_m_m_e_n_d _r_e_m_o_v_i_n_g _a_n_y _t_i_m_e-_p_e_r_i_s_h_a_b_l_e _i_n_f_o_r_m_a_t_i_o_n:  _n_u_m_b_e_r _o_f  _d
  20288.  _m_e_m_b_e_r_s, _d_u_e_s, _m_e_e_t_i_n_g _s_c_h_e_d_u_l_e_s, _t_e_l_e_p_h_o_n_e _n_u_m_b_e_r_s, _e_t_c.  _A_n_d _I _r_e_n_e_w _m_y  _d
  20289.  _r_e_q_u_e_s_t _f_o_r _m_o_r_e _k_n_o_w_l_e_d_g_e_a_b_l_e _r_e_a_d_e_r_s _t_o _p_o_i_n_t _o_u_t _r_e_q_u_i_r_e_m_e_n_t_s _f_o_r       _d
  20290.  _d_i_a_c_r_i_t_i_c_a_l _m_a_r_k_s _i_n _s_o_m_e _o_f _t_h_e _n_o_n-_E_n_g_l_i_s_h _n_a_m_e_s _a_n_d _a_d_d_r_e_s_s_e_s.          _d
  20291.  _T_h_a_n_k_s.                                                                    _d
  20292.  
  20293.  
  20294.  C.1  Introduction
  20295.  
  20296.  This annex provides a brief summary of the major national and
  20297.  international organizations working on the standardization of information
  20298.  technology.
  20299.  
  20300.  There are two major categories of open standards organizations.  One
  20301.  consists of formally-recognized standards bodies, responsible for
  20302.  definition and dissemination of public standards.  Their specifications
  20303.  are known as formal or de jure standards.  International, national, and
  20304.  regional standards groups, and some professional and technical
  20305.  organizations' standards groups are examples of formal standards bodies.
  20306.  Organizations specifying standards for open system usually give
  20307.  precedence to international standards first, then regional, national, and
  20308.  finally professional group standards.
  20309.  
  20310.  The other standards organization category consists of informal bodies.
  20311.  Informal standards bodies are typically created by suppliers or users of
  20312.  information technology, usually using a consensus method, to enable the
  20313.  implementation of standards.  They produce specifications known as
  20314.  industry standards or de facto standards.  Certain trade associations,
  20315.  industry groups, vendor consortia, and user groups are examples of
  20316.  informal standards bodies.  For informal specifications to be approved as
  20317.  
  20318.  
  20319.                Copyright c 1991 IEEE.  All rights reserved.
  20320.       This is an unapproved IEEE Standards Draft, subject to change.
  20321.  
  20322.  
  20323.  
  20324.  
  20325.  
  20326.  C.1 Introduction                                                      289
  20327.  
  20328.  
  20329.  
  20330.  
  20331.  
  20332.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20333.  
  20334.  formal standards (e.g., international or national standards) informal
  20335.  standards groups typically submit their specifications to formal
  20336.  standards organizations.
  20337.  
  20338.  The term ``de facto standard'' is sometimes applied to popular vendor-
  20339.  defined systems.  Such systems, however, are closed systems, often
  20340.  controlled in a proprietary fashion.  Although they have value, closed de
  20341.  facto standards are not the subject of this guide.
  20342.  
  20343.  Most standards bodies support three types of status for their standards
  20344.  or specifications--approved, draft, and work item.  An approved standard
  20345.  is one that has been fully ratified by whatever means the approving
  20346.  standards body uses.  A draft standard is one that has yet to be fully
  20347.  ratified, such as an ISO DIS (Draft International Standard) or a CEN ENV.
  20348.  Work item is a catch-all phrase for everything else, such as immature
  20349.  specifications, technical reports, etc., that have not yet achieved draft
  20350.  status.
  20351.  
  20352.  
  20353.  C.1.1  International Standards Bodies Overview
  20354.  
  20355.  Standards with the highest status are internationally agreed ones.  In
  20356.  information technology, these are produced and published by the
  20357.  International Organization for Standardization (ISO).  Other standards
  20358.  and/or recommendations are issued by the International Electrotechnical
  20359.  Commission (IEC), the International Telecommunication Union (ITU), and
  20360.  the CCITT.  International standards bodies participants are normally
  20361.  countries and trade bodies, rather than individual suppliers or users.
  20362.  
  20363.  
  20364.  C.1.2  National Standards Bodies Overview
  20365.  
  20366.  Like the international standards bodies, most national bodies do not
  20367.  admit either suppliers or users directly, but receive representatives
  20368.  from interested trade bodies.  In general, the national bodies support
  20369.  and adopt the international standards, developing national standards only
  20370.  if no international standards are available, or to meet special national
  20371.  requirements.  Each country has a national body that is the formal
  20372.  representative to the international standards groups.
  20373.  
  20374.  The relationship between the major international and national standards
  20375.  groups is shown in Figure C-1.
  20376.  
  20377.  
  20378.  
  20379.  
  20380.  
  20381.  
  20382.  
  20383.  
  20384.  
  20385.                Copyright c 1991 IEEE.  All rights reserved.
  20386.       This is an unapproved IEEE Standards Draft, subject to change.
  20387.  
  20388.  
  20389.  
  20390.  
  20391.  
  20392.  290                                C Standards Infrastructure Description
  20393.  
  20394.  
  20395.  
  20396.  
  20397.  
  20398.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20399.  
  20400.  _________________________________________________________________________
  20401.  
  20402.  
  20403.  
  20404.  
  20405.  
  20406.  
  20407.  
  20408.  
  20409.  
  20410.  
  20411.  _________________________________________________________________________
  20412.         Figure C-1  -  International and National Standards Bodies
  20413.  
  20414.  
  20415.  
  20416.  C.1.3  International and National Standards Bodies Relationship
  20417.  
  20418.  Nongovernment standards organizations include trade associations,
  20419.  professional and technical societies, vendor consortia, user groups, and
  20420.  other special interest groups.  Actual standards development occurs
  20421.  within these groups.  The standards specified by formal standards groups
  20422.  within this category typically are subsequently submitted to national or
  20423.  international standards organizations for approval.  Many informal bodies
  20424.  submit their specifications to formal bodies for approval as an
  20425.  accredited standard.  (See Figure C-2).
  20426.  
  20427.  
  20428.  
  20429.  C.2  The Formal Standards Groups
  20430.  
  20431.  
  20432.  C.2.1  International and National Standards Organizations
  20433.  
  20434.  _A_F_N_O_R_:__A_s_s_o_c_i_a_t_i_o_n__F_r_a_n_c_a_i_s_e__d_e__N_o_r_m_a_l_i_z_a_t_i_o_n
  20435.  
  20436.  AFNOR is the French national standards body.  Its responsibilities
  20437.  include sourcing, coordinating, approving, and promoting standards,
  20438.  representing the French at international meetings, and controlling the
  20439.  use of the NF label--a trademark that shows compliance with a French
  20440.  national standard.  AFNOR publishes three types of standards documents--
  20441.  AFNOR-approved standards that are mandatory for use in the public sector,
  20442.  experimental standards that use new processes or techniques and whose use
  20443.  is voluntary, and information or guide standards.
  20444.  
  20445.  For further information, contact Association Francaise de Normalization
  20446.  (AFNOR), Tour Europe - Cedex 7, 92080 Paris La Defense, Telephone:  (1)
  20447.  42 91 55 55, Telex:  AFNOR 611 974F, Fax:  (1) 42 91 56 56.
  20448.  
  20449.  
  20450.  
  20451.                Copyright c 1991 IEEE.  All rights reserved.
  20452.       This is an unapproved IEEE Standards Draft, subject to change.
  20453.  
  20454.  
  20455.  
  20456.  
  20457.  
  20458.  C.2 The Formal Standards Groups                                       291
  20459.  
  20460.  
  20461.  
  20462.  
  20463.  
  20464.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20465.  
  20466.  _________________________________________________________________________
  20467.  
  20468.  
  20469.  
  20470.  
  20471.  
  20472.  
  20473.  
  20474.  
  20475.  
  20476.  
  20477.  
  20478.  
  20479.  
  20480.  
  20481.  
  20482.  
  20483.  
  20484.  
  20485.  
  20486.  
  20487.  
  20488.  
  20489.  
  20490.  
  20491.  
  20492.  
  20493.  
  20494.  
  20495.  
  20496.  
  20497.  
  20498.  _________________________________________________________________________
  20499.  Figure C-2  -  Selected Major Standards and Standards-Influencing Bodies
  20500.  
  20501.  
  20502.  
  20503.  _A_N_S_I_:__A_m_e_r_i_c_a_n__N_a_t_i_o_n_a_l__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  20504.  
  20505.  ANSI is the national standards coordinating and approval body for the
  20506.  United States.  A voluntary organization founded in 1918, the ANSI
  20507.  performs three major types of functions.
  20508.  
  20509.  First, the ANSI approves standards and accredits standards development
  20510.  groups and certification programs.  ANSI does not itself develop
  20511.  standards.  Instead, it approves voluntarily-submitted specifications
  20512.  that were developed by technical and professional societies, trade
  20513.  associations, and special interest groups, if these specifications and/or
  20514.  groups meet ANSI criteria for due process and consensus.
  20515.  
  20516.  
  20517.                Copyright c 1991 IEEE.  All rights reserved.
  20518.       This is an unapproved IEEE Standards Draft, subject to change.
  20519.  
  20520.  
  20521.  
  20522.  
  20523.  
  20524.  292                                C Standards Infrastructure Description
  20525.  
  20526.  
  20527.  
  20528.  
  20529.  
  20530.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20531.  
  20532.  ANSI accredits three types of organizations.  One is professional
  20533.  societies, such as the IEEE.  The second is committees formed for the
  20534.  exclusive purpose of developing standards, such as X3.  The third is
  20535.  accredited by ANSI to use the canvass method to develop standards.  Such
  20536.  organizations prepare a standard using their internal procedures.  Then
  20537.  they submit that standard to balloting by other organizations
  20538.  representing a variety of interests.  Last, they reconcile comments and
  20539.  objections returned.  The NIST is an organization accredited to use the
  20540.  canvass process for standards development.
  20541.  
  20542.  ANSI's second major function is to represent and coordinate US interests
  20543.  in international, nontreaty, and nongovernmental standards bodies.
  20544.  ANSI's third function is to be a clearinghouse for national,
  20545.  international, and foreign national standards.  ANSI membership is open
  20546.  to manufacturers, organizations, users, and communications carriers.  At
  20547.  present, more than 220 professional and technical societies and trade
  20548.  associations that develop standards in the US are ANSI members, as are
  20549.  1000 companies.
  20550.  
  20551.  For further information, contact American National Standards Institute
  20552.  (ANSI), 1430 Broadway, New York, NY 10018, (212) 354-3300, Telex:
  20553.  42 42 96 ANSI UI.
  20554.  
  20555.  _B_S_I_:__B_r_i_t_i_s_h__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  20556.  
  20557.  BSI is the British national standards body and is responsible for
  20558.  promulgation of national standards.  The BSI determines the overall UK
  20559.  view toward international standards and conveys that back to the
  20560.  secretariat of the international committee.
  20561.  
  20562.  For further information, contact British Standards Institute, 2 Park
  20563.  Street, London W1A2BS, United Kingdom, Telephone:  44 1 629 90 00, Fax:
  20564.  44 1 629 05 06.
  20565.  
  20566.  _C_a_n_a_d_i_a_n__S_t_a_n_d_a_r_d_s__A_s_s_o_c_i_a_t_i_o_n__(_C_S_A_)
  20567.  
  20568.  The Canadian Standards Association (CSA), in conjunction with regulatory
  20569.  agencies and with the provincial and national governments of Canada,
  20570.  provides a single source for consensus-based standards development,
  20571.  conformance testing, and standards-based regulations creation.  The CSA
  20572.  has no single counterpart in the US.  Instead, the CSA handles selected
  20573.  functions from US testing organizations, the FCC, and ANSI.
  20574.  
  20575.  Membership in the CSA is open to any Canadian citizen, business, or
  20576.  organization.  Members of the CSA's technical committees developing
  20577.  standards are volunteers, drawn from consumers, manufacturers,
  20578.  government, labor, and consultants.  Membership is based on expertise in
  20579.  the field, and not, as in the US, mainly on having a vested commercial
  20580.  interest.  The CSA has over 900 committees handling various aspects of
  20581.  
  20582.  
  20583.                Copyright c 1991 IEEE.  All rights reserved.
  20584.       This is an unapproved IEEE Standards Draft, subject to change.
  20585.  
  20586.  
  20587.  
  20588.  
  20589.  
  20590.  C.2 The Formal Standards Groups                                       293
  20591.  
  20592.  
  20593.  
  20594.  
  20595.  
  20596.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20597.  
  20598.  standards in areas such as the environment, electrical and electronics,
  20599.  communications and information processing, construction, energy,
  20600.  transportation and distribution, materials technology, and production
  20601.  management.
  20602.  
  20603.  CSA programs support Canadian industry and Canadian consumers where
  20604.  safety and quality of merchandise sold or made in Canada are concerned.
  20605.  To assure product quality and safety, the CSA offers fee-based testing
  20606.  services.  In performing such services, the CSA assumes that most
  20607.  manufacturers have the facilities to test their products before
  20608.  submitting them to the CSA for certification and approval.  If they do
  20609.  not, the CSA provides this service.  CSA certification involves the
  20610.  submission of the product or service by the supplier, the verification of
  20611.  that product or capability by the CSA, and then continued follow-up
  20612.  audits by the CSA to ensure that the quality of the product or service is
  20613.  maintained.
  20614.  
  20615.  For further information, contact (Address and phone number TBD).
  20616.  
  20617.  _C_C_I_T_T_:__C_o_m_i_t_e__C_o_n_s_u_l_t_a_t_i_f__I_n_t_e_r_n_a_t_i_o_n_a_l__d_e__T_e_l_e_g_r_a_p_h_i_e__e_t__T_e_l_e_p_h_o_n_i_e
  20618.  
  20619.  An international organization, the CCITT is part of the International
  20620.  Telecommunications Union, which is a United Nations treaty organization
  20621.  formed in 1865.  It is now a specialized agency of the United Nations.
  20622.  
  20623.  The CCITT's primary mission is to develop standards supporting the
  20624.  international interconnection and interoperability of telecommunications
  20625.  networks at interfaces with end-user systems, carriers, information and
  20626.  enhanced-service providers, and customer premises equipment.  Every four
  20627.  years, the CCITT publishes the results of its work as
  20628.  ``Recommendations.'' Its recommendations are law where communications in
  20629.  Europe are nationalized.
  20630.  
  20631.  Membership and participation in the CCITT are open to private companies;
  20632.  scientific and trade associations; and postal, telephone, and telegraph
  20633.  administrations.  CCITT's principal participants are telecommunications
  20634.  administrations and carriers.  Scientific and industrial organizations
  20635.  can participate as observers.  The US representative is the Department of
  20636.  State.
  20637.  
  20638.  For further information, contact International Consultative Committee on
  20639.  Telegraphy and Telephone, Central Administration Office, CH-1211, 2 rue
  20640.  de Varembe', Geneva, Switzerland,
  20641.  
  20642.  _C_E_N_/_C_E_N_E_L_E_C_/_C_E_P_T
  20643.  
  20644.  The Comite Europeen de Normalisation (CEN), Comite Europeen de
  20645.  Normalisation Electrotechnique (CENELEC), and the European Committee for
  20646.  Post and Telecommunications Administration are European regional
  20647.  
  20648.  
  20649.                Copyright c 1991 IEEE.  All rights reserved.
  20650.       This is an unapproved IEEE Standards Draft, subject to change.
  20651.  
  20652.  
  20653.  
  20654.  
  20655.  
  20656.  294                                C Standards Infrastructure Description
  20657.  
  20658.  
  20659.  
  20660.  
  20661.  
  20662.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20663.  
  20664.  standards committees responsible for developing and publishing European
  20665.  standards.  CEN is an association of EC (European Community) and EFTA
  20666.  (European Free Trade Association) members.  It is active in making
  20667.  members' standards into ISO standards and European standards.  CENELEC is
  20668.  the counterpart of CEN that deals exclusively with electrotechnical
  20669.  matters.  CEPT is the CEN counterpart that deals with telecommunications
  20670.  matters.
  20671.  
  20672.  CEN, CENELEC, and CEPT can be considered the European regional equivalent
  20673.  of ISO for two reasons.  First, they have as members the national
  20674.  standards bodies of their eighteen EC and EFTA member states.  Second,
  20675.  standards adopted by these organizations must be implemented in full as
  20676.  national standards, regardless of the way in which the member voted, and
  20677.  regardless of any standards that conflict with them must be withdrawn.
  20678.  CEN members, for example, agree to use its published standards in
  20679.  preference to national standards, wherever possible.
  20680.  
  20681.  CEN, CENELEC, and CEPT were created to improve the competitiveness of
  20682.  European enterprise by removing technical barriers to trade and
  20683.  facilitating the free movement of goods within Europe.  To accomplish its
  20684.  aims, CEN, CENELEC, and CEPT perform the following tasks:
  20685.  
  20686.      - Create and promote European Standards (EN).
  20687.  
  20688.      - Rapidly create prestandards (ENV) in technology areas in which
  20689.        there is a high level of innovation or where it is felt that future
  20690.        standardization requires basic guidance.  ENVs are subjected to an
  20691.        experimental period of up to three years.
  20692.  
  20693.      - Create harmonization documents (HD) that are more flexible than
  20694.        European Standards so that the technical, historical, or legal
  20695.        circumstances pertaining to each country can be taken into account.
  20696.  
  20697.      - Set up a framework for European certification that supports the
  20698.        issuing of a European mark of conformity to certain standards and
  20699.        the mutual recognition of test results and inspections.
  20700.  
  20701.      - Promote the application within Europe of ISO standards and
  20702.        accelerate their production.
  20703.  
  20704.      - Work in liaison with European professional federations and numerous
  20705.        technical organizations to establish priority standards programs
  20706.        and contribute to the technical work.
  20707.  
  20708.  For further information, contact the European Committee for
  20709.  Standardization (CEN), European Committee for Post and Telecommunications
  20710.  Administration, 2 rue Brederode, Buite 5, B-1000 Brussels, Belgium,
  20711.  Telephone:  +322 519 6860, Telex:  26257 CENLEC.
  20712.  
  20713.  
  20714.  
  20715.                Copyright c 1991 IEEE.  All rights reserved.
  20716.       This is an unapproved IEEE Standards Draft, subject to change.
  20717.  
  20718.  
  20719.  
  20720.  
  20721.  
  20722.  C.2 The Formal Standards Groups                                       295
  20723.  
  20724.  
  20725.  
  20726.  
  20727.  
  20728.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20729.  
  20730.  _D_I_N_:__D_e_u_t_s_c_h_e_s__I_n_s_t_i_t_u_t__f_u_r__N_o_r_m_u_n_g
  20731.  
  20732.  DIN is the German national standards body.  Its functions include those
  20733.  performed by the US's ANSI (e.g., developing national standards and
  20734.  representing Germany in international and European standards bodies such
  20735.  as ISO, the IEC, CEN, and CENELEC), in addition to test and certification
  20736.  functions that are not handled by US consensus standards organizations.
  20737.  Since a key DIN objective is eliminating technical barriers to free
  20738.  trade, DIN plays an active role in the international standards arena to
  20739.  ensure that German products can be used and accepted internationally.
  20740.  
  20741.  DIN standards are not mandatory within Germany.  DIN claims that it
  20742.  relies on the technical excellence of its standards to win converts.
  20743.  Further incentive for accepting DIN standards is provided because DIN
  20744.  standards serve as the basis for regulatory technical law in Germany.
  20745.  Also, without the DIN testing and inspection mark, no insurance carrier
  20746.  in Germany will write insurance for a product.
  20747.  
  20748.  DIN members include groups within Germany representing manufacturers, the
  20749.  academic community, user groups, user organizations (e.g., consumer
  20750.  advocate groups), the government, and trade unions.  Many DIN staff are
  20751.  supported by organizations or companies, rather than by DIN.  DIN
  20752.  presently has over 20000 standards.
  20753.  
  20754.  For further information, contact Deutsches Institut fur Normung,
  20755.  Burggrafenstrasse 6, Postfach 1107, D-1000 Berlin 30, Telephone:
  20756.  49 30 26 01-1, Fax: 49 30 260 12 31.
  20757.  
  20758.  _I_E_C_:__I_n_t_e_r_n_a_t_i_o_n_a_l__E_l_e_c_t_r_o_t_e_c_h_n_i_c_a_l__C_o_m_m_i_s_s_i_o_n
  20759.  
  20760.  The International Electrotechnical Committee is the equivalent of ISO,
  20761.  but for electrotechnical standards.  ISO and the IEC have converged many
  20762.  of their information technology efforts to form JTC1.
  20763.  
  20764.  For further information, contact International Electrotechnical
  20765.  Commission (IEC), 3, rue de Varembe', CH-1211 Geneva 20, Switzerland,
  20766.  Telephone:  41 22 34 01 50, Fax:  41 22 33 38 43.
  20767.  
  20768.  _I_S_O_:__I_n_t_e_r_n_a_t_i_o_n_a_l__O_r_g_a_n_i_z_a_t_i_o_n__f_o_r__S_t_a_n_d_a_r_d_i_z_a_t_i_o_n
  20769.  
  20770.  ISO was established in its present form in 1947 with the aim of reaching
  20771.  international agreement on standards.  A voluntary, non-United Nations
  20772.  treaty, ISO's membership consists of delegations from standards bodies in
  20773.  participating nations.  ISO solicits comments from other groups as well,
  20774.  including ECMA, the IEEE, the NIST, and the CCITT.  ISO has a close
  20775.  relationship with the CCITT, which is, perhaps, the most influential of
  20776.  all the observer groups within ISO.
  20777.  
  20778.  
  20779.  
  20780.  
  20781.                Copyright c 1991 IEEE.  All rights reserved.
  20782.       This is an unapproved IEEE Standards Draft, subject to change.
  20783.  
  20784.  
  20785.  
  20786.  
  20787.  
  20788.  296                                C Standards Infrastructure Description
  20789.  
  20790.  
  20791.  
  20792.  
  20793.  
  20794.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20795.  
  20796.  ISO is responsible for the development and standardization of the Open
  20797.  Systems Interconnection (OSI) model.  It also considers items for
  20798.  standardization that were developed in other standards bodies, such as
  20799.  ANSI.  At present, for example, it is considering the core POSIX standard
  20800.  (P1003.1).
  20801.  
  20802.  For further information, contact the International Organization for
  20803.  Standardization, Central Secretariat, 1, rue de Varembe', CH-1211, Geneva,
  20804.  Switzerland-40.
  20805.  
  20806.  _J_I_S_C_:__J_a_p_a_n_e_s_e__I_n_d_u_s_t_r_i_a_l__S_t_a_n_d_a_r_d_s__C_o_m_m_i_t_t_e_e
  20807.  
  20808.  The Japanese Industrial Standards Committee (JISC) is the national
  20809.  standards body of Japan.  The JISC represents Japan at ISO and IEC,
  20810.  develops Japanese standards, and monitors and liases with the standards-
  20811.  developing activities of other national organizations, especially those
  20812.  of the US.  The goal of the JISC is to ensure that Japanese industry can
  20813.  compete internationally in the information technology and
  20814.  telecommunications industries.
  20815.  
  20816.  The JISC has no true counterpart in other nations since the JISC has a
  20817.  special relationship with the Japanese government and major
  20818.  manufacturers.  For example, the JISC's secretariat is the Agency of
  20819.  Industrial Science and Technology, a division of the Ministry of
  20820.  International Trade and Industry (MITI), which plays a central role in
  20821.  Japanese industry.  The influence of this centralized national planning
  20822.  structure eliminates many areas of contention, including among companies
  20823.  with multinational branches, and facilitates the ability for Japanese
  20824.  standards groups to gain a consensus.
  20825.  
  20826.  Major Japanese manufacturers help plan and develop standards.  Foreign
  20827.  companies' involvement in the JISC is limited because of geographic and
  20828.  linguistic differences and because of restrictions on their meaningful
  20829.  participation.  Although large-scale manufacturers may participate, user
  20830.  groups and small manufacturers find participation very difficult.
  20831.  
  20832.  For information, contact Japanese Industrial Standards Committee, c/o
  20833.  Standards Department, Agency of Industrial Science and Technology,
  20834.  Ministry of International Trade and Industry, 1-3-1 Kasumigaseki,
  20835.  Chiyoda-ku, Telephone:  813 501 92 95/6, Fax:  81 3 580 14 18.
  20836.  
  20837.  _J_T_C_1_:__J_o_i_n_t__T_e_c_h_n_i_c_a_l__C_o_m_m_i_t_t_e_e__1
  20838.  
  20839.  The JTC1, established in 1987, is the first joint committee of the ISO
  20840.  TC97 (Information Processing Systems) and its subcommittees, with the IEC
  20841.  Technical Committee 83 (Information Technology Equipment) and the
  20842.  subcommittee IEC SC47B (Microprocessor systems).  The joint committee was
  20843.  formed to eliminate much of the two groups' standardization-activities'
  20844.  overlap and prevent the creation of incompatible standards for the same
  20845.  
  20846.  
  20847.                Copyright c 1991 IEEE.  All rights reserved.
  20848.       This is an unapproved IEEE Standards Draft, subject to change.
  20849.  
  20850.  
  20851.  
  20852.  
  20853.  
  20854.  C.2 The Formal Standards Groups                                       297
  20855.  
  20856.  
  20857.  
  20858.  
  20859.  
  20860.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20861.  
  20862.  device or technology area.
  20863.  
  20864.  Although ISO and IEC are equal partners in the management of JTC1, most
  20865.  of JTC1's standards work grew out of ISO's information processing work.
  20866.  In fact, JTC1 has become one of the most important information technology
  20867.  standards organizations today because so many of the major ISO
  20868.  information technology standards being developed today are actually being
  20869.  produced by JTC1 groups.
  20870.  
  20871.  The JTC1's purpose is to develop international standards in the areas of
  20872.  information technology systems (including microprocessor systems) and
  20873.  equipment.  Microprocessor systems include, but are not limited to,
  20874.  microprocessor assemblies, and related hardware and software for
  20875.  controlling the flow of signals at the terminals of microprocessor
  20876.  assemblies.
  20877.  
  20878.  The JTC1 initially organized its standards work into four major
  20879.  groupings, each of which contains subcommittees that, in turn contain
  20880.  working groups.  The four main groupings and their subcommittees are:
  20881.  
  20882.     JTC1 Application Elements Group
  20883.  
  20884.           SC1:     Vocabulary
  20885.  
  20886.           SC7:     Software Engineering
  20887.  
  20888.           SC14:    Representation of Data Elements
  20889.  
  20890.           SC22:    Languages
  20891.  
  20892.     JTC1 Equipment and Media Group
  20893.  
  20894.           SC11:    Flexible Magnetic Media for Digital Data Interchange
  20895.  
  20896.           SC15:    Labeling and File Structure
  20897.  
  20898.           SC17:    Identification and Credit Cards
  20899.  
  20900.           SC23:    Optical Disk Cartridges for Information Interchange
  20901.  
  20902.           SC28:    Office Equipment
  20903.  
  20904.     JTC1 Systems Group
  20905.  
  20906.           SC6:     Telecommunications and Information Exchange Between
  20907.                    Systems
  20908.  
  20909.           SC13:    Interconnection of Equipment
  20910.  
  20911.  
  20912.  
  20913.                Copyright c 1991 IEEE.  All rights reserved.
  20914.       This is an unapproved IEEE Standards Draft, subject to change.
  20915.  
  20916.  
  20917.  
  20918.  
  20919.  
  20920.  298                                C Standards Infrastructure Description
  20921.  
  20922.  
  20923.  
  20924.  
  20925.  
  20926.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  20927.  
  20928.           SC18:    Text and Office Systems
  20929.  
  20930.           SC21:    Information Retrieval, Transfer, and Management for OSI
  20931.  
  20932.     JTC1 Systems Support Group
  20933.  
  20934.           SC2:     Character Sets and Information Coding
  20935.  
  20936.           SC24:    Computer Graphics
  20937.  
  20938.           SC25:    Interconnection of Information Technology Equipment
  20939.                    (formerly IEC TC83)
  20940.  
  20941.           SC26:    Microprocessor Systems (formerly IEC TC47B)
  20942.  
  20943.           SC27:    Security Techniques (grew out of JTC1 SC20:  Data
  20944.                    Cryptographic Techniques)
  20945.  
  20946.  POSIX standardization work is being done within SC22's Working Group 15
  20947.  (SC22/WG15).  A JTC1 Special Working Group on Strategic Planning is
  20948.  performing a technical study on Application Portability (AP).  This
  20949.  study's goal is to identify the standards that need to be written or
  20950.  revised to support application portability between hardware and software
  20951.  environments.
  20952.  
  20953.  The JTC1 is not involved in application-specific information technology
  20954.  areas, such as banking and industrial automation systems, nor is it
  20955.  concerned with microprocessor subsystems covered by the scopes of IEC
  20956.  TC22 on power electronics or TC86 on fiber optics.
  20957.  
  20958.  The JTC1 has liaison relationships with numerous ISO and IEC Technical
  20959.  Committees, as well as with the CCITT.
  20960.  
  20961.  Like ISO, membership in JTC1 consists of delegations from standards
  20962.  organizations in member countries.  At present, 23 countries participate
  20963.  in JTC1, and there are another 11 observer countries.  The ANSI holds the
  20964.  secretariat for JTC1.
  20965.  
  20966.  For further information, contact:  American National Standards Institute
  20967.  (ANSI), 1430 Broadway, New York, NY 10018, (212) 354-3300, Telex:
  20968.  42 42 96 ANSI UI, or International Organization for Standardization
  20969.  (ISO), Central Secretariat, 1, rue de Varembe', CH-1211, Geneva,
  20970.  Switzerland-40.
  20971.  
  20972.  _S_G_F_S__(_S_p_e_c_i_a_l__G_r_o_u_p__o_n__F_u_n_c_t_i_o_n_a_l__S_t_a_n_d_a_r_d_i_z_a_t_i_o_n_)
  20973.  
  20974.  The Special Group on Functional Standardization (SGFS) is an ISO group,
  20975.  under JTC1, which is responsible for the international standardization
  20976.  process of profiles or functional standards.
  20977.  
  20978.  
  20979.                Copyright c 1991 IEEE.  All rights reserved.
  20980.       This is an unapproved IEEE Standards Draft, subject to change.
  20981.  
  20982.  
  20983.  
  20984.  
  20985.  
  20986.  C.2 The Formal Standards Groups                                       299
  20987.  
  20988.  
  20989.  
  20990.  
  20991.  
  20992.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  20993.  
  20994.  C.2.2  Nongovernment Formal Standards Organizations
  20995.  
  20996.  _E_C_M_A_:__E_u_r_o_p_e_a_n__C_o_m_p_u_t_e_r__M_a_n_u_f_a_c_t_u_r_e_r_s__A_s_s_o_c_i_a_t_i_o_n
  20997.  
  20998.  Established in 1961 to develop data processing standards, ECMA is a trade
  20999.  organization, open to any computer firm developing, manufacturing, or
  21000.  selling in Europe.  The ECMA has about 20 members, and approximately 13
  21001.  active Technical Committees.
  21002.  
  21003.  ECMA contributes to the ISO standards development efforts, in addition to
  21004.  issuing its own standards.  ECMA is particularly active in the
  21005.  development of higher layer protocols for OSI networking.  It also is
  21006.  developing a standard for a Portable Common Tool Environment (PCTE).
  21007.  
  21008.  For further information, contact European Computer Manufacturers
  21009.  Association, 114 rue du Rhone, CH-1204 Geneva, Switzerland, Telephone:
  21010.  41-22-735-36-34, Telex:  41 3237, Fax:  41 22 786 53 31.
  21011.  
  21012.  _E_I_A_:__E_l_e_c_t_r_o_n_i_c__I_n_d_u_s_t_r_i_e_s__A_s_s_o_c_i_a_t_i_o_n
  21013.  
  21014.  The EIA is a US trade organization, whose membership consists primarily
  21015.  of manufacturers.  The EIA has been a standards developer in the areas of
  21016.  electrical and electronic products and components since 1926.  Many of
  21017.  its standards have been submitted to ANSI and approved as ANSI standards.
  21018.  The EIA is best known for the RS-232-C standard.
  21019.  
  21020.  For further information, contact John Kinn, Vice President - Engineering,
  21021.  Electronic Industries Association (EIA), 2001 I Street NW, Washington, DC
  21022.  20036, (202) 467-4961.
  21023.  
  21024.  _I_E_E_E_:__I_n_s_t_i_t_u_t_e__o_f__E_l_e_c_t_r_i_c_a_l__a_n_d__E_l_e_c_t_r_o_n_i_c__E_n_g_i_n_e_e_r_s
  21025.  
  21026.  The IEEE is a professional scientific, engineering, and educational
  21027.  society that develops and publishes standards and specifications in a
  21028.  variety of computer and engineering areas.  The standards and
  21029.  specifications published are of three types:  true standards, recommended
  21030.  practices, and guides.
  21031.  
  21032.  ``Standards'' are specifications with mandatory requirements.
  21033.  Recommended practices are specifications of procedures and positions
  21034.  preferred by the IEEE.  Guides are specifications that suggest
  21035.  alternative approaches to good practice, but make no clear-cut
  21036.  recommendations.  The IEEE is accredited by ANSI, and can, therefore,
  21037.  submit its standards directly to the ANSI board of Standards Review.  All
  21038.  new and revised IEEE standards are submitted to ANSI for review and
  21039.  adoption as ANSI standards.
  21040.  
  21041.  The IEEE Standards Board authorizes, coordinates, and approves all
  21042.  standards projects, and coordinates cooperation with other standards
  21043.  
  21044.  
  21045.                Copyright c 1991 IEEE.  All rights reserved.
  21046.       This is an unapproved IEEE Standards Draft, subject to change.
  21047.  
  21048.  
  21049.  
  21050.  
  21051.  
  21052.  300                                C Standards Infrastructure Description
  21053.  
  21054.  
  21055.  
  21056.  
  21057.  
  21058.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21059.  
  21060.  organizations.  Standards are proposed and sponsored by technical
  21061.  committees of the IEEE Societies, standards committees, or Standards
  21062.  Coordinating Committees (SCC), depending on the scope of the work.
  21063.  Either these committees or standards subcommittees manage the actual
  21064.  standards development and balloting.  The individual draft standards are
  21065.  specified in working groups inside the subcommittees--one working group
  21066.  per standard (see Figure C-3).
  21067.  
  21068.  _H_L_J:  _T_h_i_s _i_s _t_h_e _f_i_g_u_r_e _f_r_o_m _p_r_e_v_i_o_u_s _d_r_a_f_t_s.  _W_e_n_d_y'_s _i_n_p_u_t _t_o _m_e
  21069.  _d_u_p_l_i_c_a_t_e_d _t_h_e _C-_2 _f_i_g_u_r_e, _w_h_i_c_h _s_e_e_m_e_d _l_e_s_s _c_o_r_r_e_c_t.
  21070.  
  21071.  IEEE membership is open to any dues-paying individuals.  Standards
  21072.  participants are individuals, not companies or organizations.  IEEE
  21073.  membership is required for voting, but not for participating in the
  21074.  development of draft standards.
  21075.  
  21076.  Approximately 30000 members are active in standards development.  More
  21077.  than 500 IEEE standards exist, and more than 800 standards projects are
  21078.  underway.  The IEEE also administers the secretariat or cosecretariat of
  21079.  17 American National Standards committees.
  21080.  
  21081.  The most well known IEEE standards are the IEEE 802.3 CSMA/CD and 802.4
  21082.  token bus LANS, IEEE-488 bus, the National Electrical Safety Code, and
  21083.  the P1003.n POSIX standards.  The 802.3 and 802.4 standards are also
  21084.  approved ISO standards.  The core POSIX standard (POSIX.1 {2}) has been
  21085.  approved by ISO, and is now an ISO, as well as an IEEE, standard.  The
  21086.  POSIX.0 specifications, with which this document is concerned, will be,
  21087.  in IEEE parlance, a ``Guide'' to a POSIX Open Systems Environment.
  21088.  
  21089.  For further information, contact the Institute of Electrical and
  21090.  Electronics Engineers, Inc., 345 East 47th Street, New York, NY 10017,
  21091.  USA.
  21092.  
  21093.  _N_I_S_T_:__N_a_t_i_o_n_a_l__I_n_s_t_i_t_u_t_e__o_f__S_t_a_n_d_a_r_d_s__a_n_d__T_e_c_h_n_o_l_o_g_y
  21094.  
  21095.  The National Institute of Standards and Technology (formerly the National
  21096.  Bureau of Standards) was established by an act of the US Congress on
  21097.  March 3, 1901 to advance, and facilitate the application of, US science
  21098.  and technology for public benefit.  Toward this end, the Institute for
  21099.  Computer Sciences and Technology (ICST) within the NIST, conducts
  21100.  research and provides technical advisory services to help Federal
  21101.  agencies acquire and apply computer technology.
  21102.  
  21103.  The NIST is a major driving force behind standards development.  Through
  21104.  the Institute for Computer Sciences and Technology, the NIST develops and
  21105.  publishes Federal Information Processing Standards (FIPS) for the United
  21106.  States.  Federal agencies to use in their computer equipment
  21107.  procurements.  Federal agencies are obligated to use these standards,
  21108.  where applicable.
  21109.  
  21110.  
  21111.                Copyright c 1991 IEEE.  All rights reserved.
  21112.       This is an unapproved IEEE Standards Draft, subject to change.
  21113.  
  21114.  
  21115.  
  21116.  
  21117.  
  21118.  C.2 The Formal Standards Groups                                       301
  21119.  
  21120.  
  21121.  
  21122.  
  21123.  
  21124.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21125.  
  21126.  _________________________________________________________________________
  21127.  
  21128.  
  21129.  
  21130.  
  21131.  
  21132.  
  21133.  
  21134.  
  21135.  
  21136.  
  21137.  
  21138.  
  21139.  
  21140.  
  21141.  
  21142.  
  21143.  
  21144.  
  21145.  
  21146.  
  21147.  
  21148.  
  21149.  
  21150.  
  21151.  
  21152.  
  21153.  
  21154.  
  21155.  
  21156.  
  21157.  
  21158.  
  21159.  
  21160.  
  21161.  
  21162.  
  21163.  
  21164.  
  21165.  
  21166.  
  21167.  
  21168.  
  21169.  
  21170.  
  21171.  _________________________________________________________________________
  21172.                    Figure C-3  -  IEEE Standards Diagram
  21173.  
  21174.  
  21175.  
  21176.  
  21177.                Copyright c 1991 IEEE.  All rights reserved.
  21178.       This is an unapproved IEEE Standards Draft, subject to change.
  21179.  
  21180.  
  21181.  
  21182.  
  21183.  
  21184.  302                                C Standards Infrastructure Description
  21185.  
  21186.  
  21187.  
  21188.  
  21189.  
  21190.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21191.  
  21192.  Federal computer standards also are widely used by the private sector,
  21193.  and often are adopted as ANSI standards.  Besides defining standards, the
  21194.  NIST has defined an Application Portability Profile (APP), which
  21195.  comprises a series of nonmandatory specifications and a guide for US
  21196.  government users to use in developing a portable, interoperable
  21197.  architecture and environment.
  21198.  
  21199.  The development and evolution of both FIPS and the APP is carried out in
  21200.  conjunction with users and vendors through an ongoing series of NIST-
  21201.  conducted Implementor Workshops and User Workshops (e.g., OSI
  21202.  implementors workshops, APP workshops, and Integrated Software
  21203.  Engineering Environment workshops).  The workshops provide forums for
  21204.  user and vendor feedback and comments on evolving NIST standards, and
  21205.  help ensure that there is a general commitment among vendors to building
  21206.  products that conform to the evolving NIST specifications.
  21207.  
  21208.  Additionally, the NIST develops test methods and performance measures to
  21209.  help users and vendors implement standards and to test the conformance of
  21210.  vendor implementations to FIPS specifications.  Among others, the NIST
  21211.  has test suites for most FIPS programming languages, FIPS Database SQL,
  21212.  and POSIX.1 {2}.  The POSIX.1 {2} conformance test suite, however, is
  21213.  based on the conformance-test assertions developed in the POSIX Test and
  21214.  Methods working group (P1003.3.1).
  21215.  
  21216.  Besides developing its own standards, NIST staff members participate in a
  21217.  number of other standards activities and organizations, including the
  21218.  ANSI X3 Committee on Information Processing Systems, ISO/IEC JTC1, CCITT,
  21219.  ECMA, and the IEEE.
  21220.  
  21221.  For further information, contact the National Institute of Standards and
  21222.  Technology, Gaithersburg, MD 20899, Telephone:  (301) 975-2000.  The
  21223.  cognizant person for P1003.0 information is Allen Hankinson at
  21224.  (301) 975-3290.
  21225.  
  21226.  _T_1
  21227.  
  21228.  T1, established in 1984, is an ANSI-accredited standards body that is
  21229.  developing standards and technical reports.  The standards and reports
  21230.  are intended to support interconnection and interoperability of
  21231.  telecommunications networks at interfaces with end-user systems,
  21232.  carriers, information and enhanced-service providers, and customer
  21233.  premises equipment.
  21234.  
  21235.  Six T1 technical subcommittees are currently developing these standards
  21236.  and reports under the T1 Advisory Group.  The subcommittees also
  21237.  recommend positions on matters under consideration by other North
  21238.  American and international standards bodies.
  21239.  
  21240.  
  21241.  
  21242.  
  21243.                Copyright c 1991 IEEE.  All rights reserved.
  21244.       This is an unapproved IEEE Standards Draft, subject to change.
  21245.  
  21246.  
  21247.  
  21248.  
  21249.  
  21250.  C.2 The Formal Standards Groups                                       303
  21251.  
  21252.  
  21253.  
  21254.  
  21255.  
  21256.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21257.  
  21258.  T1 Membership and full participation is available to all interested
  21259.  parties.  For further information, contact Alvin Lai, Exchange Carriers
  21260.  Standards Association, c/o T1 Secretariat, 5430 Grosvenor Lane, Suite
  21261.  200, Bethesda, Maryland 20814-2122, or call (301) 654-4505.
  21262.  
  21263.  _X_3
  21264.  
  21265.  X3, established in 1961, is an ANSI-accredited standards body that
  21266.  develops computer, information processing, and office systems standards.
  21267.  X3 also participates in the development of international standards in
  21268.  these areas.  In addition, it serves as a Technical Advisory Group (TAG)
  21269.  to ANSI for most of the subcommittees working on international
  21270.  standardization projects within JTC1.  The Computer and Business
  21271.  Equipment Manufacturers Association (CBEMA) functions as X3's
  21272.  secretariat.
  21273.  
  21274.  X3 membership is open to all organizations, upon payment of a service
  21275.  fee.  The current membership includes computer manufacturers,
  21276.  communications carriers, user groups, and government agencies.  More than
  21277.  3200 volunteers from these organizations participate in the X3 standards
  21278.  work.  They are organized into about 85 technical groups, working on 700
  21279.  projects.
  21280.  
  21281.  Three standing committees report to X3:  the Standards Planning and
  21282.  Requirements Committee (SPARC), the Strategic Planning Committee (SPC),
  21283.  and the Secretariat Management Committee (SMC).  The following are the
  21284.  major X3 technical committees:
  21285.  
  21286.     Recognition
  21287.  
  21288.           X3A1     Optical Character Recognition
  21289.  
  21290.     Media
  21291.  
  21292.           X3B5     Digital Magnetic Tape
  21293.  
  21294.           X3B6     Instrumentation Tape
  21295.  
  21296.           X3B7     Magnetic Disks
  21297.  
  21298.           X3B8     Flexible Disk Cartridges
  21299.  
  21300.           X3B9     Paper/Forms Layout
  21301.  
  21302.           X3B10    Credit/Identification Cards
  21303.  
  21304.           X3B11    Optical Digital Data Disks
  21305.  
  21306.  
  21307.  
  21308.  
  21309.                Copyright c 1991 IEEE.  All rights reserved.
  21310.       This is an unapproved IEEE Standards Draft, subject to change.
  21311.  
  21312.  
  21313.  
  21314.  
  21315.  
  21316.  304                                C Standards Infrastructure Description
  21317.  
  21318.  
  21319.  
  21320.  
  21321.  
  21322.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21323.  
  21324.     Data Management and Graphics
  21325.  
  21326.           X3H2     Database
  21327.  
  21328.           X3H3     Computer Graphics
  21329.  
  21330.           X3H3.6   Windowing Interfaces
  21331.  
  21332.           X3H4     Information Resource & Dictionary
  21333.  
  21334.     Languages
  21335.  
  21336.           X3J1     PL/1
  21337.  
  21338.           X3J2     Basic
  21339.  
  21340.           X3J3     Fortran
  21341.  
  21342.           X3J4     COBOL
  21343.  
  21344.           X3J7     APT
  21345.  
  21346.           X3J9     Pascal
  21347.  
  21348.           X3J10    APL
  21349.  
  21350.           X3J11    C
  21351.  
  21352.           X3J12    Dibol
  21353.  
  21354.           X3J13    Common Lisp
  21355.  
  21356.           X3J14    Forth
  21357.  
  21358.           X3J15    Databus
  21359.  
  21360.     Documentation
  21361.  
  21362.           X3K1     Computer Documentation
  21363.  
  21364.           X3K5     Vocabulary
  21365.  
  21366.     Data Representation
  21367.  
  21368.           X3L2     Codes and Character Sets
  21369.  
  21370.           X3L5     Labels and file Structure
  21371.  
  21372.  
  21373.  
  21374.  
  21375.                Copyright c 1991 IEEE.  All rights reserved.
  21376.       This is an unapproved IEEE Standards Draft, subject to change.
  21377.  
  21378.  
  21379.  
  21380.  
  21381.  
  21382.  C.2 The Formal Standards Groups                                       305
  21383.  
  21384.  
  21385.  
  21386.  
  21387.  
  21388.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21389.  
  21390.           X3L8     Data Representation
  21391.  
  21392.     Communication
  21393.  
  21394.           X3S3     Data Communications
  21395.  
  21396.     Systems Technology
  21397.  
  21398.           X3T1     Data Encryption
  21399.  
  21400.           X3T2     Data Interchange
  21401.  
  21402.           X3T5     Open Systems Interconnection
  21403.  
  21404.           X3T9     I/O Interface
  21405.  
  21406.     Text
  21407.  
  21408.           X3V1     Office and Publishing Systems
  21409.  
  21410.  For more information, contact CBEMA, c/o X3 Secretariat, 311 First Street
  21411.  NW, Suite 500, Washington, DC 20001-2178, Telephone:  (212) 626-5740.
  21412.  
  21413.  
  21414.  
  21415.  C.3  The Informal Standards Organizations
  21416.  
  21417.  The following organizations are some of the major trade associations,
  21418.  user groups, and professional bodies active in either promoting,
  21419.  implementing, or reviewing information technology standards.
  21420.  
  21421.  _B_C_S_:__B_r_i_t_i_s_h__C_o_m_p_u_t_e_r__S_o_c_i_e_t_y
  21422.  
  21423.  The BCS is a professional institution that participates in standards
  21424.  work, organizing specialist groups on specific subjects for input to BSI.
  21425.  
  21426.  For further information, contact (information TBD).
  21427.  
  21428.  _C_B_E_M_A_:__C_o_m_p_u_t_e_r__a_n_d__B_u_s_i_n_e_s_s__E_q_u_i_p_m_e_n_t__M_a_n_u_f_a_c_t_u_r_e_r_s__A_s_s_o_c_i_a_t_i_o_n
  21429.  
  21430.  CBEMA is a trade organization whose primary function is to represent
  21431.  large manufacturers of hardware-based information technologies equipment
  21432.  in lobbying about public policy.  In addition, it provides education
  21433.  programs, information exchange forums, and deals with the industry's
  21434.  public image.
  21435.  
  21436.  CBEMA has long had an interest in standards.  It serves as the
  21437.  secretariat for X3.  It also offers a standards and technology program
  21438.  where its members can exchange information on standards issues and
  21439.  industry standards.
  21440.  
  21441.                Copyright c 1991 IEEE.  All rights reserved.
  21442.       This is an unapproved IEEE Standards Draft, subject to change.
  21443.  
  21444.  
  21445.  
  21446.  
  21447.  
  21448.  306                                C Standards Infrastructure Description
  21449.  
  21450.  
  21451.  
  21452.  
  21453.  
  21454.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21455.  
  21456.  CBEMA's members are mostly large manufacturers because its dues are tied
  21457.  to corporate revenues and structured in a way that makes it too expensive
  21458.  for small companies to join.  Members are either American companies or US
  21459.  subsidiaries of non-American companies.
  21460.  
  21461.  For more information, contact CBEMA, 311 First Street, NW, Suite 500,
  21462.  Washington, DC 20001-2178, Telephone: (202) 626-5740.
  21463.  
  21464.  _C_O_D_A_S_Y_L_:__T_h_e__C_o_n_f_e_r_e_n_c_e__o_n__D_a_t_a__S_y_s_t_e_m_s__L_a_n_g_u_a_g_e_s
  21465.  
  21466.  The Conference on Data Systems Language (CODASYL) has been active since
  21467.  1960 in the development of the COBOL language, through its COBOL
  21468.  Committee (CC).  Since 1969, it also has been active in the development
  21469.  of a common Data Description Language for defining schemas and
  21470.  subschemas, and in a data manipulation language, through the DBTG Data
  21471.  Base Task Group of the CC.  The activities of the CC are documented in
  21472.  the COBOL Journal of Development, which serves as the official COBOL
  21473.  language specification.
  21474.  
  21475.  In 1969, ANSI (then the United States of America Standards Institute)
  21476.  issued the first COBOL standard.  At that time, the X3.4 committee stated
  21477.  that X3.4 recognizes the CODASYL COBOL Committee as the development and
  21478.  maintenance authority for COBOL.  In practice, this meant that ANSI
  21479.  agreed not to make any changes to the CODASYL-defined language
  21480.  specification.  Although this agreement has been challenged over the
  21481.  years, the CODASYL-ANSI agreement is still strong.  As a result, the
  21482.  CODASYL has enormous influence upon the COBOL language.
  21483.  
  21484.  Toward the end of 1971, a new CODASYL committee was established--the Data
  21485.  Description Language Committee (DDLC).  The DDLC was formed to serve the
  21486.  same functions for the schema DDL as the CC does for COBOL.  That is,
  21487.  since the schema DDL is a conceptual schema and network-model database
  21488.  language for use with many programming languages, not just COBOL, the
  21489.  DDLC continues the schema DDL development and publishes its own Journal
  21490.  of Development documenting the language's current status.
  21491.  
  21492.  The COBOL DML and subschema DDL (for defining an external view) of the
  21493.  DBTG are COBOL-specific and have remained part of the CC under the name
  21494.  ``The COBOL Data Base Facility.''
  21495.  
  21496.  The CODASYL membership is composed of voluntary representatives, mostly
  21497.  from computer manufacturers and users in industry and the US Federal
  21498.  government.
  21499.  
  21500.  _C_O_S_:__C_o_r_p_o_r_a_t_i_o_n__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  21501.  
  21502.  COS is a US-based, international, nonprofit association of vendors and
  21503.  users, formed in 1985 to promote and accelerate the adoption of
  21504.  interoperable, multivendor products and services based on OSI and ISDN
  21505.  
  21506.  
  21507.                Copyright c 1991 IEEE.  All rights reserved.
  21508.       This is an unapproved IEEE Standards Draft, subject to change.
  21509.  
  21510.  
  21511.  
  21512.  
  21513.  
  21514.  C.3 The Informal Standards Organizations                              307
  21515.  
  21516.  
  21517.  
  21518.  
  21519.  
  21520.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21521.  
  21522.  standards.  To accomplish its goals, COS provides a user-vendor forum for
  21523.  the statement of user requirements and the discussion and management of
  21524.  the issues surrounding the deployment of open systems.  COS also
  21525.  identifies test requirements, and sponsors test tools development and
  21526.  conformance and interoperability testing to verify that computer products
  21527.  and services conform to OSI or ISDN standards.
  21528.  
  21529.  COS's membership consists of more than 60 prominent manufacturer, user,
  21530.  and telecommunication service organizations worldwide.  COS cooperates
  21531.  with similar organizations such as SPAG Services in Europe and POSI in
  21532.  Japan.  Other key groups in the worldwide promotion, implementation and
  21533.  testing of OSI and ISDN standards are affiliated with COS under its
  21534.  Alliance Associate program.
  21535.  
  21536.  For further information, contact the Corporation for Open Systems, 1750
  21537.  Old Meadow Road, Suite 400, McLean, VA 22102-4306, USA, Telephone:
  21538.  (703) 883-2700, Fax:  (703) 848-8933.  In Europe contact Corporation for
  21539.  Open Systems, Avenue des Arts 1-2, bte 11, 1040 Bruxelles, Belgique,
  21540.  Telephone:  32 2 210 08 11, Fax:  32 2 210 08 00.
  21541.  
  21542.  _E_M_U_G_/_O_S_I_T_O_P_:__E_u_r_o_p_e_a_n__U_s_e_r_s__G_r_o_u_p_s
  21543.  
  21544.  These groups are involved in promoting and developing the MAP and TOP
  21545.  specifications (see below for MAP/TOP).
  21546.  
  21547.  _E_P_R_I_:__E_l_e_c_t_r_i_c__P_o_w_e_r__R_e_s_e_a_r_c_h__I_n_s_t_i_t_u_t_e
  21548.  
  21549.  The Electric Power Research Institute's (EPRI) is an industry association
  21550.  concerned with electric power utilities.  Its membership comprises more
  21551.  than 673 publicly and privately owned utilities in the United States.
  21552.  Besides providing a variety of utility-specific services to its
  21553.  membership, EPRI's latest mission is to facilitate the use of open
  21554.  systems technology in the utility industry.
  21555.  
  21556.  Toward this end, EPRI has developed a Utilities Communication
  21557.  Architecture (UCA), which is similar to the National Institute for
  21558.  Standards and Technology's (NIST) Government Open Systems Interconnect
  21559.  Profile (GOSIP) Version 2.0.  Much of the UCA was developed by EPRI with
  21560.  the cooperation of Honeywell and Anderson Consulting.
  21561.  
  21562.  EPRI's specific open system interests span realtime UNIX, expert systems,
  21563.  and database access using RDA and SQL.  Because of the financial
  21564.  structure of the utilities industry, EPRI wants to encourage these and
  21565.  other open systems technologies for equipment with a 12 to 15 year life
  21566.  cycle.
  21567.  
  21568.  For further information, contact EPRI's headquarters at 3412 Hillview
  21569.  Avenue, P.O.  Box 10412, Palo Alto, CA 94303, Telephone:  (415) 934-4212.
  21570.  
  21571.  
  21572.  
  21573.                Copyright c 1991 IEEE.  All rights reserved.
  21574.       This is an unapproved IEEE Standards Draft, subject to change.
  21575.  
  21576.  
  21577.  
  21578.  
  21579.  
  21580.  308                                C Standards Infrastructure Description
  21581.  
  21582.  
  21583.  
  21584.  
  21585.  
  21586.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21587.  
  21588.  _E_S_P_R_I_T (_E_u_r_o_p_e_a_n _S_t_r_a_t_e_g_i_c _P_r_o_g_r_a_m_m_e _f_o_r _R_e_s_e_a_r_c_h _a_n_d _D_e_v_e_l_o_p_m_e_n_t _i_n
  21589.  _I_n_f_o_r_m_a_t_i_o_n _T_e_c_h_n_o_l_o_g_y)
  21590.  
  21591.  The European Strategic Programme for Research and development in
  21592.  Information Technology is a European research programme initiative,
  21593.  started in 1982 and sponsored by the Commission of the European
  21594.  Communities.  About 227 projects were implemented during the first phase
  21595.  of the project in five major work areas:  advanced microelectronics,
  21596.  software engineering and technology, advanced information processing,
  21597.  office automation, and computer integrated manufacturing.
  21598.  
  21599.  Nearly thirty projects have enabled substantial advances to be made in
  21600.  establishing internationally recognized standards.  Examples of the
  21601.  Portable Communications Tool Environment (PCTE) project, the
  21602.  Communication Network for Manufacturing Applications (CNMA) project, and
  21603.  the Herode project, which has prepared an Office Document Architecture
  21604.  standard for adoption as an ISO standard.
  21605.  
  21606.  The second phase of the Esprit programme will be concerned mainly with
  21607.  three areas--microelectronics and peripheral technologies; the creation
  21608.  of technologies and tools for the design of information processing
  21609.  systems; and enhancing the capacity for using and integrating information
  21610.  technology to extend the scope of its applications.
  21611.  
  21612.  For further information contact ESPRIT, Director General, DG XIII, CEC,
  21613.  rue de la Loi 200, B-1049 Brussels, Belgium, Telephone:
  21614.  (32 2) 235 11 11, and Telex:  21877 comeu b.
  21615.  
  21616.  _E_T_S_I_:__E_u_r_o_p_e_a_n__T_e_l_e_c_o_m_m_u_n_i_c_a_t_i_o_n_s__S_t_a_n_d_a_r_d_s__I_n_s_t_i_t_u_t_e
  21617.  
  21618.  The European Telecommunications Standards Institute (ETSI), founded in
  21619.  1988, is a voluntary standards organization involved in producing the
  21620.  telecommunications standards necessary to achieve a European unified
  21621.  market.  ETSI was established outside the CEN/CENELEC framework.  ETSI,
  21622.  however, works with CEN, CENELEC, and the European Broadcasting Union
  21623.  (EBU) in areas of mutual interest.
  21624.  
  21625.  ETSI's voting membership consists of postal administrations, along with
  21626.  manufacturers and trade associations, in each of the CEPT countries.
  21627.  Membership is not restricted to official representatives of member
  21628.  countries.  The United States and US companies have been granted observer
  21629.  status.
  21630.  
  21631.  Standards approved by ETSI are voluntary standards known as ETS (European
  21632.  Telecommunications Standards).  ETSI also conducts prestandardization
  21633.  studies, develops technical reports and guidelines, holds conferences,
  21634.  workshops, seminars, and conducts interviews.  ETSI's interim standards
  21635.  are designated I-ETS.
  21636.  
  21637.  
  21638.  
  21639.                Copyright c 1991 IEEE.  All rights reserved.
  21640.       This is an unapproved IEEE Standards Draft, subject to change.
  21641.  
  21642.  
  21643.  
  21644.  
  21645.  
  21646.  C.3 The Informal Standards Organizations                              309
  21647.  
  21648.  
  21649.  
  21650.  
  21651.  
  21652.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21653.  
  21654.  For further information, contact the European Telecommunications
  21655.  Standards Institute, B.P.  No.  52, F-06561 Valbonne CEDEX, France,
  21656.  Telephone:  (33 92) 94 42 00, Telex:  470 040 F, and Fax Number:
  21657.  (33 93) 65 47 16.
  21658.  
  21659.  _E_W_O_S_:__E_u_r_o_p_e_a_n__W_o_r_k_s_h_o_p__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  21660.  
  21661.  The EWOS is an ongoing regional workshop, formed in 1987, to provide and
  21662.  coordinate European input to the international standard profiles process.
  21663.  It was formed as the result of an initiative of SPAG, in conjunction with
  21664.  EMUG, OSITOP, CEN/CENELEC, CEPT, RARE/COSINE, and ECMA, and it assumes
  21665.  some of the responsibilities previously held by CEN/CENELEC.  Membership
  21666.  in EWOS is not open to the United States.
  21667.  
  21668.  EWOS is the focal point in Europe for the study and development of OSI
  21669.  profiles and corresponding conformance test specifications.  EWOS
  21670.  documents have only to be submitted to public enquiry by CEN and CENELEC
  21671.  before becoming European Standards.  EWOS's is active in numerous
  21672.  networking and communications areas including File Transfer, Access, and
  21673.  Management (FTAM); Office Document Architecture (ODA); Message Handling
  21674.  Systems (MHS); Virtual Terminal (VT); Directory services; and
  21675.  Manufacturing Messaging Services (MMS).
  21676.  
  21677.  For further information contact European Workshop on Open Systems (EWOS),
  21678.  rue de Brederode 13, B-1000 Brussels, Belgium, Telephone:
  21679.  32 2 511 74 55.
  21680.  
  21681.  _F_O_C_U_S_:__F_O_C_U_S__C_o_m_m_i_t_t_e_e
  21682.  
  21683.  This UK committee was established in 1981 to identify issues on
  21684.  information technology standards and to determine action needed to
  21685.  promote effective progress.  It makes recommendations to the Department
  21686.  of Trade and Industry on actions to fill gaps, prevent duplication, and
  21687.  remove incompatibilities.
  21688.  
  21689.  _I_N_T_A_P (_I_n_t_e_r_o_p_e_r_a_b_i_l_i_t_y _T_e_c_h_n_o_l_o_g_y _A_s_s_o_c_i_a_t_i_o_n _f_o_r _I_n_f_o_r_m_a_t_i_o_n
  21690.  _P_r_o_c_e_s_s_i_n_g)
  21691.  
  21692.  The Interoperability Technology Association for Information Processing,
  21693.  in Japan, is a national agency, funded by MITI.  It deals with
  21694.  information technology, and specifically OSI products and advanced
  21695.  projects.  INTAP is developing and providing conformance testing tools
  21696.  and services in Japan in cooperation with POSI.
  21697.  
  21698.  _M_A_P/_T_O_P _U_s_e_r _G_r_o_u_p: (_M_a_n_u_f_a_c_t_u_r_i_n_g _A_u_t_o_m_a_t_i_o_n _P_r_o_t_o_c_o_l _a_n_d _T_e_c_h_n_i_c_a_l _a_n_d
  21699.  _O_f_f_i_c_e _P_r_o_t_o_c_o_l)
  21700.  
  21701.  The MAP Task Force was formed in 1980 by engineers from seven General
  21702.  Motors (GM) divisions, to identify a common OSI-based networking standard
  21703.  
  21704.  
  21705.                Copyright c 1991 IEEE.  All rights reserved.
  21706.       This is an unapproved IEEE Standards Draft, subject to change.
  21707.  
  21708.  
  21709.  
  21710.  
  21711.  
  21712.  310                                C Standards Infrastructure Description
  21713.  
  21714.  
  21715.  
  21716.  
  21717.  
  21718.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21719.  
  21720.  for plant-floor systems.  The Task Force grew to include all GM
  21721.  divisions, many other users, and many vendors.  Its specifications are
  21722.  known as Manufacturing Automation Protocol (MAP).
  21723.  
  21724.  The MAP specifications mostly reference OSI standards, but they also draw
  21725.  on ANSI, IEEE, EIA, CCITT, and various industry standards.  Where
  21726.  standards do not exist, as in the case of the manufacturing messaging
  21727.  protocol, the MAP Task Force is either defining its own or instigating
  21728.  their formation by industry standards bodies.
  21729.  
  21730.  In 1984, the MAP Users Group was formed, under the auspices of GM, with
  21731.  the Society of Manufacturing Engineers as its Secretariat.  Its objective
  21732.  is to promote knowledge and use of MAP, and to insure input from users.
  21733.  
  21734.  In 1985, Boeing sponsored a similar effort to specify common networking
  21735.  protocols, known as the Technical and Office Protocols (TOP), for the
  21736.  engineering and business offices.  TOP is largely compatible with MAP,
  21737.  differing only at the lower two layers and the application layer where
  21738.  TOP addresses requirements of the technical and office user, rather than
  21739.  factory users.
  21740.  
  21741.  Later in 1985, a TOP Users Group was formed.  The entire effort became an
  21742.  international effort known as MAP/TOP, and the user group became the
  21743.  MAP/TOP User Group, which meets twice a year.
  21744.  
  21745.  Today, the MAP/TOP User Group is an independent, self-funded organization
  21746.  that represents thousands of users worldwide, tied together through a
  21747.  worldwide federation of MAP/TOP user groups.  Membership is open to
  21748.  either users or companies.  The Industry Cooperative Services (ICS) is
  21749.  the worldwide secretariat.  The MAP/TOP User Group also is a member of
  21750.  the Corporation for Open Systems (COS) and in North America, COS acts as
  21751.  the MAP/TOP User Group secretariat.
  21752.  
  21753.  The MAP/TOP User Group is a Requirements Interest Group (RIG) of the
  21754.  Corporation for Open Systems (COS).  This means that the MAP/TOP User
  21755.  Group generates requirements that vendors can use to built products.  COS
  21756.  serves as the coordinator between users and vendors.
  21757.  
  21758.  The MAP/TOP Task Force and User Group also is a major contributor of
  21759.  technical and conceptual ideas and specifications to the NIST, COS, and
  21760.  many of the IEEE POSIX Groups.
  21761.  
  21762.  For further information contact the World Federation of MAP/TOP Users
  21763.  Groups, P.O.  Box 1457, Ann Arbor, MI 48106, Telephone:  (313) 769-4571,
  21764.  Fax:  (313) 769-4064.  In North America, also contact the Corporation for
  21765.  Open Systems at 1750 Old Meadow Road, Suite 400, McLean, VA 22102-4306,
  21766.  Telephone: (703) 883-2700, Fax:  (703) 848-8933.
  21767.  
  21768.  
  21769.  
  21770.  
  21771.                Copyright c 1991 IEEE.  All rights reserved.
  21772.       This is an unapproved IEEE Standards Draft, subject to change.
  21773.  
  21774.  
  21775.  
  21776.  
  21777.  
  21778.  C.3 The Informal Standards Organizations                              311
  21779.  
  21780.  
  21781.  
  21782.  
  21783.  
  21784.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21785.  
  21786.  _N_C_C_:__N_a_t_i_o_n_a_l__C_o_m_p_u_t_i_n_g__C_e_n_t_r_e
  21787.  
  21788.  The NCC, centered in Manchester, England, though not a standardizing
  21789.  body, is active in developing codes of practice and providing testing and
  21790.  certification services for information technologies.  It is currently
  21791.  leading a consortium to establish a harmonized European Test service for
  21792.  POSIX.
  21793.  
  21794.  For further information contact National Computing Centre Ltd., Oxford
  21795.  Road, Manchester M17ED, UK, Telephone:  (061) 228-6333.
  21796.  
  21797.  _N_e_t_w_o_r_k__M_a_n_a_g_e_m_e_n_t__F_o_r_u_m
  21798.  
  21799.  A vendor-driven group, the Network Management Forum is chartered to
  21800.  produce a commonly agreed-upon specification subset of ISO's network
  21801.  management protocols and the command sets to implement this subset.  The
  21802.  promise of the NMF is that all of the network management products that
  21803.  its members come up with will conform to this common specification.
  21804.  
  21805.  The NMF itself will produce no products nor will it specify
  21806.  implementations.  Rather, the NMF will specify interfaces.
  21807.  
  21808.  Major vendors belong to the NMF from both the computer (e.g., IBM, DEC,
  21809.  HP, Unisys) and telecommunications industries (e.g., AT&T, Northern
  21810.  Telecom, Telecom Canada).  The NMF has published Release 1 of its
  21811.  specifications (1990).  Member firms are developing products that conform
  21812.  to Release 1.
  21813.  
  21814.  NMF information may be had from the organization at 40 Morristown Road,
  21815.  Bernardsville, NJ 07924.  Telephone:  (201) 766-1544.
  21816.  
  21817.  _N_P_S_C_:__N_a_t_i_o_n_a_l__P_r_o_t_o_c_o_l__S_u_p_p_o_r_t__C_e_n_t_e_r
  21818.  
  21819.  An Australian organization, the National Protocol Support Center was
  21820.  formed in 1986 as a joint effort between industry and the government.
  21821.  Like SPAG, COS, and POSI, the NPSC is promoting the adoption of OSI
  21822.  standards in information technology products and will be supporting a
  21823.  conformance testing capability in Australia.  The Australian government,
  21824.  however, provides approximately 50 percent of the NPSC funding.  For
  21825.  further information, contact (contact address and other information TBD).
  21826.  
  21827.  _O_b_j_e_c_t__M_a_n_a_g_e_m_e_n_t__G_r_o_u_p
  21828.  
  21829.  Founded in 1989 and headquartered in Framingham, MA, with marketing
  21830.  operations in Boulder, CO, the Object Management Group (OMG) is an
  21831.  international organization of more than 146 systems vendors, software
  21832.  developers and users.  The OMG was founded to promote the theory and
  21833.  practice of object management technology in the development of software.
  21834.  
  21835.  
  21836.  
  21837.                Copyright c 1991 IEEE.  All rights reserved.
  21838.       This is an unapproved IEEE Standards Draft, subject to change.
  21839.  
  21840.  
  21841.  
  21842.  
  21843.  
  21844.  312                                C Standards Infrastructure Description
  21845.  
  21846.  
  21847.  
  21848.  
  21849.  
  21850.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21851.  
  21852.  The OMG's goal is to develop a common framework, based on industry-
  21853.  derived guidelines, that is suitable for object-oriented applications.
  21854.  The adoption of this framework will make it possible to develop a
  21855.  heterogeneous applications environment across all major hardware and
  21856.  operating systems.
  21857.  
  21858.  The OMG members are quick to form a consensus on certain object
  21859.  management issues because they see these issues directly affecting their
  21860.  software sales.  For example, the OMG's object request broker design--key
  21861.  software needed to allow disparate open systems to request object
  21862.  services from remote sites--is supported by all the major object-oriented
  21863.  software vendors (e.g., IBM, Apple, Sun, DEC, HP, NCR, AT&T).
  21864.  
  21865.  Further information is available from the OMG at 492 Old Connecticut
  21866.  Path, Framingham, MA 01701.  Telephone:  (508) 820-4300.
  21867.  
  21868.  _O_S_F_:__O_p_e_n__S_o_f_t_w_a_r_e__F_o_u_n_d_a_t_i_o_n
  21869.  
  21870.  The Open Software Foundation is a nonprofit, international vendor
  21871.  organization.  Formed in 1988 by seven sponsoring computer manufacturers,
  21872.  its goals are to develop specifications for an open computing
  21873.  environment, develop software based on the specifications, and sponsor
  21874.  research and development in open systems.
  21875.  
  21876.  OSF specifications are defined, and software developed, using an open
  21877.  process into which vendors and users have input and access.  The
  21878.  specifications will be available, and the software licensable, to OSF
  21879.  members and nonmembers.  Both members and nonmembers can also submit
  21880.  technologies to the OSF for consideration as an OSF specification and/or
  21881.  offering.  Only OSF members, however, can participate in the selection of
  21882.  technologies or get early access to the software offerings.  OSF's
  21883.  specifications and software will be based on IEEE's core POSIX system
  21884.  (POSIX.1 {2}).  Other specifications and software will be based on a
  21885.  variety of international and national, as well as industry standards
  21886.  (e.g., AT&T System V.2 UNIX, Berkeley BSD UNIX, Massachusetts Institute
  21887.  of Technology's (MIT) X Window System and Kerberos Security System,
  21888.  Carnegie Mellon University's Mach Kernel, and X/Open's Transport
  21889.  Independent Interface).  The remainder of OSF software will based on
  21890.  technologies contributed by numerous companies as part of OSF's Request
  21891.  for Technology (RFT) process.
  21892.  
  21893.  In addition to its specification and software work, the OSF has created
  21894.  and funded a research institute to innovate and transfer open systems
  21895.  technology from universities and research labs to commercial companies.
  21896.  
  21897.  OSF active-participation membership is open to computer hardware and
  21898.  software companies, government agencies, educational institutions, and
  21899.  other interested organizations worldwide.  Memberships range from $25,000
  21900.  a year for profit-making organizations to $5,000 a year for nonprofit
  21901.  
  21902.  
  21903.                Copyright c 1991 IEEE.  All rights reserved.
  21904.       This is an unapproved IEEE Standards Draft, subject to change.
  21905.  
  21906.  
  21907.  
  21908.  
  21909.  
  21910.  C.3 The Informal Standards Organizations                              313
  21911.  
  21912.  
  21913.  
  21914.  
  21915.  
  21916.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  21917.  
  21918.  organizations.  The OSF currently has more than 65 sponsors and members,
  21919.  and more than $150 million in funding commitments through 1991.
  21920.  
  21921.  For further information, contact OSF at Eleven Cambridge Center,
  21922.  Cambridge, MA, Telephone:  (617) 621-8700.  Alternatively, contact
  21923.  European headquarters at Open Software Foundation/Europe, Stefan-George-
  21924.  Ring 29, 8000 Munich 81, Germany, Telephone:  (49 89) 930 920, or Open
  21925.  Software Foundation/Japan, ABS Building, 2-4-16 Kudan Minami, Chiyoda-Ku,
  21926.  Tokyo 102, Japan, (81 3) 3 221 9770.
  21927.  
  21928.  _P_e_t_r_o_c_h_e_m_i_c_a_l__O_p_e_n__S_o_f_t_w_a_r_e__F_o_u_n_d_a_t_i_o_n
  21929.  
  21930.  Founded in Oct., 1990, the Petrochemical Open Software Corporation (POSC)
  21931.  was started by BP Exploration, Chevron, Elf Aquitane, Mobil and Texaco to
  21932.  facilitate the development of integrated computing technology for the
  21933.  exploration and production (E & P) segment of the international petroleum
  21934.  industry.  Today, membership is open to all entities interested in the E
  21935.  & P industry.  These members include other petroleum companies, E & P
  21936.  service companies, software vendors, computer manufacturers, and research
  21937.  institutes.
  21938.  
  21939.  POSC's primary mission is the development of an industry-standard, open
  21940.  systems-based, software integration profile for E & P applications.  This
  21941.  platform will be the interface between petrochemical software
  21942.  applications, database management systems, workstations and users.  POSC
  21943.  activities focus on the development of an integrated E & P data model, a
  21944.  common look and feel user front-end, and a set of test suites enabling
  21945.  developers to evaluate their offerings against selected industry
  21946.  standards.
  21947.  
  21948.  POSC is moving quickly and has sent out two public requests for inputs in
  21949.  several technical areas.  Project teams for base standards, the E & P
  21950.  data model, and data access are in place.  Staffing is in progress for
  21951.  other projects and special interest groups have been formed.  POSC
  21952.  offerings will be released to industry for production over the next few
  21953.  years.
  21954.  
  21955.  POSC is headquartered in Houston, TX at 10777 Westheimer, Suite 275,
  21956.  Houston, 77042.  Telephone:  (713) 784-1880.
  21957.  
  21958.  _P_O_S_I_:__P_r_o_m_o_t_i_n_g__C_o_n_f_e_r_e_n_c_e__f_o_r__O_S_I
  21959.  
  21960.  The Promoting Conference for OSI was formed in Japan in November 1985 by
  21961.  six major computer manufacturers and the Nippon Telephone and Telegraph
  21962.  Corporation.  Its raison d'etre is to promote the adoption of OSI
  21963.  standards by cooperating with other international groups that have the
  21964.  same objective, such as the European-based SPAG and the US-based COS.
  21965.  But conformance testing in Japan is being developed and will be provided
  21966.  by the INTAP.
  21967.  
  21968.  
  21969.                Copyright c 1991 IEEE.  All rights reserved.
  21970.       This is an unapproved IEEE Standards Draft, subject to change.
  21971.  
  21972.  
  21973.  
  21974.  
  21975.  
  21976.  314                                C Standards Infrastructure Description
  21977.  
  21978.  
  21979.  
  21980.  
  21981.  
  21982.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  21983.  
  21984.  For further information, contact (contact information TBD).
  21985.  
  21986.  _S_P_A_G_:__S_t_a_n_d_a_r_d_s__P_r_o_m_o_t_i_o_n__a_n_d__A_p_p_l_i_c_a_t_i_o_n__G_r_o_u_p
  21987.  
  21988.  The Standards Promotion and Application Group (SPAG), founded in 1983, is
  21989.  a nonprofit, international research and development consortium of about
  21990.  65 information technology manufacturers and users.  In 1986, it became a
  21991.  company registered under Belgian law as SPAG Services s.a.  SPAG's goals
  21992.  are to promote multivendor, interoperable products based on international
  21993.  standards, particularly OSI, and to keep its members informed about the
  21994.  latest developments in functional standards and conformance testing of
  21995.  products.
  21996.  
  21997.  To achieve its goals, SPAG plays a leading role in the European Workshop
  21998.  on Open Systems (EWOS), publishes the Guide to the Use of Standards (GUS)
  21999.  regularly, and participates in the development of International Standard
  22000.  Profiles (ISPs).  SPAG is particularly active in the development and
  22001.  marketing of test tools for manufacturing applications.  Through its
  22002.  SPAG-CCT efforts, (a collaboration of European organizations) which arose
  22003.  out of the ESPRIT Project 955, SPAG is developing, and will be providing,
  22004.  conformance test tools for testing MAP/TOP 3.0, and conformance testing
  22005.  services to industry.
  22006.  
  22007.  SPAG also is working within Europe to implement the certification
  22008.  infrastructure for OSI products, and is involved in a number of
  22009.  Conformance Test Services (CTS) projects within the Commission of
  22010.  European Communities (CEC).  In addition, SPAG is active in
  22011.  Telecommunications areas and is leading a consortium developing
  22012.  verification services for the Broadband Networks project RACE.
  22013.  
  22014.  Twelve shareholder companies make up SPAG's board of directors.  The
  22015.  original founding companies--Bull, ICL, Nixdorf, Olivetti, Philips,
  22016.  Siemens, and STET--occupy seven seats on SPAG's twelve member board.  The
  22017.  shareholder membership was subsequently expanded to include Alcatel,
  22018.  British Telecom, Digital Equipment Corp., Hewlett-Packard, and IBM, who
  22019.  occupy the five remaining board seats.
  22020.  
  22021.  SPAG has close working relationships with its counterparts in North
  22022.  America (COS) and the Far East (POSI).
  22023.  
  22024.  For further information, contact Graham Knight, at SPAG Services s.a.,
  22025.  Standards Promotion and Application Group (SPAG), Avenue des Arts, 1-2
  22026.  bte 11, 1040 Brussels, Belgium, Telephone:  32 2 210 08 11, Fax
  22027.  32 2 210 08 00.
  22028.  
  22029.  _S_Q_L__A_c_c_e_s_s__G_r_o_u_p
  22030.  
  22031.  The SQL Access Group is a vendor group formed by a number of people in
  22032.  the ISO Remote Data Access (RDA) Group.
  22033.  
  22034.  
  22035.                Copyright c 1991 IEEE.  All rights reserved.
  22036.       This is an unapproved IEEE Standards Draft, subject to change.
  22037.  
  22038.  
  22039.  
  22040.  
  22041.  
  22042.  C.3 The Informal Standards Organizations                              315
  22043.  
  22044.  
  22045.  
  22046.  
  22047.  
  22048.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  22049.  
  22050.  The SQL Access Group's charter is several fold.  First, the Group is
  22051.  chartered to define a common subset of SQL functions to get around the
  22052.  many SQLs that exist.  The specifications will include an SQL data
  22053.  format, as well as protocols for moving data within a multivendor SQL
  22054.  environment.  Also included will be specifications for an enhanced SQL
  22055.  programming interface that will let developers write a single application
  22056.  that can access a variety of SQL databases.  These SQL Access
  22057.  specifications are scheduled to be published in late 1991.
  22058.  
  22059.  The SQL Access Group's second charter is to accelerate the work of the
  22060.  RDA group.  Third, the SQL Access Group is working on putting more
  22061.  distributed functionality into RDA.  Toward this end, each thing
  22062.  accomplished by the SQL Access group is fed back into the RDA group.
  22063.  
  22064.  For further information, contact the SQL Access Group at (Address TBD).
  22065.  
  22066.  _U_N_I_X__I_n_t_e_r_n_a_t_i_o_n_a_l
  22067.  
  22068.  UNIX International (UI) is a nonprofit industry organization formed to
  22069.  represent hardware manufacturers, system integrators, independent
  22070.  software vendors, value-added resellers, end-users, government agencies
  22071.  worldwide, industry standards bodies, and academic and research
  22072.  institutions who want to direct the evolution of System V UNIX.  It has
  22073.  since expanded its scope to provide a framework for UNIX-based open
  22074.  systems work in the areas of desktop computing, corporate hub computing,
  22075.  and distributed computing.
  22076.  
  22077.  Unlike X/Open, OSF, AT&T, and the IEEE, UI does not produce
  22078.  specifications, software, or standards.  Its functions range from
  22079.  specifying technical and timing requirements for future System V versions
  22080.  and making suggestions about specific function designs to influencing
  22081.  AT&T UNIX licensing policies.
  22082.  
  22083.  Using its ``one-member, one-vote'' approach, UI members formulate a
  22084.  consensus regarding the requirements and technical specifications for new
  22085.  System V UNIX versions.  UI delivers its requirements to UNIX System
  22086.  Laboratories (USL), the AT&T spinoff that develops, distributed, and
  22087.  licenses UNIX.  UI is USL's primary input source on technical
  22088.  requirements, conformance, and timing of releases.  USL is committed to
  22089.  implement software to satisfy UI's requirements, unless there is a reason
  22090.  not to.
  22091.  
  22092.  UI accomplishes its requirements and UNIX roadmap work through a series
  22093.  of work groups.  UI members get early access to AT&T UNIX source code.
  22094.  UI also offers its members business opportunities seminars, porting
  22095.  guides and the use of member companies' porting centers, technical
  22096.  courses on various aspects of UNIX, and loaner or discounted systems from
  22097.  member companies.
  22098.  
  22099.  
  22100.  
  22101.                Copyright c 1991 IEEE.  All rights reserved.
  22102.       This is an unapproved IEEE Standards Draft, subject to change.
  22103.  
  22104.  
  22105.  
  22106.  
  22107.  
  22108.  316                                C Standards Infrastructure Description
  22109.  
  22110.  
  22111.  
  22112.  
  22113.  
  22114.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  22115.  
  22116.  For further information, contact UNIX International, Waterview Boulevard,
  22117.  Parsippany, NJ 07054, (201) 263-8400 or (800) 848-6495.  In Europe
  22118.  contact UNIX International, Avenue de Beautieu 25, 1160 Brussels,
  22119.  Belgium, (32-2-672-3700).  In the Asian Pacific region, contact
  22120.  Karufuru-Kanda Bldg.  8F, 1-2-1 Kanda Suda-cho, Chiyoda-du Tokyo 101,
  22121.  Japan, (81) 3-5256-6959.
  22122.  
  22123.  _U_s_e_r__A_l_l_i_a_n_c_e__f_o_r__O_p_e_n__S_y_s_t_e_m_s
  22124.  
  22125.  The user Alliance for Open Systems was formed from two informal
  22126.  organizations (the Atlanta 17 and the Houston 30).  The Alliance is
  22127.  currently a Requirements Interest Group (RIG) of the Corporation for Open
  22128.  Systems International (COS).
  22129.  
  22130.  The Alliance is dedicated to overcoming barriers to open systems and
  22131.  speeding the development and deployment of open systems products.  It
  22132.  intends to act as a catalyst toward the development and use of open
  22133.  systems.  It will develop no specifications or products.  Rather, the
  22134.  Alliance will create and support processes to influence and accelerate
  22135.  the availability of open systems technology (e.g., a repository of
  22136.  information about the cost benefits of open systems).
  22137.  
  22138.  In 1990 the organization began its work by identifying barriers to open
  22139.  systems and global actions to eliminate those barriers.  In 1991 the
  22140.  organization intends to start bringing resources to bear to achieve its
  22141.  goals.  The Alliance has had one formal meeting (Dallas, March 1991) and
  22142.  will have its second formal meeting in McLean, Virginia in Nov.  1992.
  22143.  Alliance committee work is ongoing throughout this period with three
  22144.  major subgroups in the formative stages.
  22145.  
  22146.  For further information, contact the Corporation for Open Systems, 1750
  22147.  Old Meadow Road, Suite 400, McLean, VA 22102-4306, Telephone:
  22148.  (703) 883-2700.
  22149.  
  22150.  _X_._4_0_0__A_P_I__A_s_s_o_c_i_a_t_i_o_n
  22151.  
  22152.  The X.400 API (Application Programming Interface) Association is an
  22153.  industry association formed initially to bring X.400 messaging into the
  22154.  PC LAN world.  There are more than twenty companies in the association,
  22155.  and they include most of the current X.400 players.
  22156.  
  22157.  Among its activities, the X.400 API Association developed an X.400
  22158.  Application Programming Interface specification in conjunction with
  22159.  X/Open.  These interfaces, completed in September 1990, are jointly owned
  22160.  by the X.400 API Association and X/Open.  The two organizations
  22161.  contributed these interface specifications to the P1224 Group to use as a
  22162.  basis for the P1224 standard.
  22163.  
  22164.  
  22165.  
  22166.  
  22167.                Copyright c 1991 IEEE.  All rights reserved.
  22168.       This is an unapproved IEEE Standards Draft, subject to change.
  22169.  
  22170.  
  22171.  
  22172.  
  22173.  
  22174.  C.3 The Informal Standards Organizations                              317
  22175.  
  22176.  
  22177.  
  22178.  
  22179.  
  22180.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  22181.  
  22182.  For further information contact (Address and other contact information:
  22183.  TBD)
  22184.  
  22185.  _X_/_O_p_e_n
  22186.  
  22187.  X/Open is an independent, nonprofit, consortium formed in 1984 to specify
  22188.  a complete, source-level-portable application environment.  Although its
  22189.  members were initially vendors, X/Open's membership now encompasses
  22190.  users, system integrators, value-added resellers, government agencies
  22191.  worldwide, other industry-standards groups, and academic and research
  22192.  institutions.
  22193.  
  22194.  Through an extensive market research program, X/Open works with members
  22195.  and nonmembers X/Open to identify user and market requirements for
  22196.  computer systems and software, prioritize the functional areas for X/Open
  22197.  to focus on, and determine the actual specifications for the X/Open
  22198.  environment.  The prioritized requirements, identified directly drive
  22199.  X/Open's specification process.
  22200.  
  22201.  The X/Open user requirements process, called the ``Xtra'' process
  22202.  determines requirements through one-on-one interviews and a series of
  22203.  market requirements conferences.  The X/Open specifications are published
  22204.  in a series of books known as the X/Open Portability Guide.
  22205.  
  22206.  The X/Open environment includes specifications for an operating system
  22207.  interface, networking, data management, programming languages, floppy
  22208.  disk formats, and internationalization, and distributed transaction
  22209.  processing.  The X/Open Group does not normally define standards for
  22210.  these areas.  Instead, it chooses from existing and emerging standards.
  22211.  
  22212.  The underpinnings of the X/Open environment is based on the IEEE core
  22213.  POSIX (POSIX.1 {2}) standard and parts of AT&T's System V Interface
  22214.  Definition (SVID).  Most of the remainder of the specifications are
  22215.  formal international standards that are already accepted or likely to be
  22216.  accepted.  However, to rapidly get standards into the field for practical
  22217.  use, where no formal standards exist, X/Open specifies industry standards
  22218.  and widely-accepted de facto standards (including some based on real-
  22219.  world products that have achieved consensus in the marketplace).  In some
  22220.  instances where neither formal nor de facto specifications exist but
  22221.  there is a strong need for standards (e.g., internationalization and
  22222.  transaction processing), X/Open has itself defined specifications.
  22223.  
  22224.  Besides producing specifications, X/Open cooperates technically with
  22225.  international standards bodies and private specification groups.  To help
  22226.  users identify X/Open-compliant systems, the X/Open Group has developed a
  22227.  set of verification tests and a branding program.
  22228.  
  22229.  X/Open was founded in Europe by Bull, Nixdorf, Olivetti, International
  22230.  Computers Ltd.  (ICL) and Siemens.  Its vendor membership was
  22231.  
  22232.  
  22233.                Copyright c 1991 IEEE.  All rights reserved.
  22234.       This is an unapproved IEEE Standards Draft, subject to change.
  22235.  
  22236.  
  22237.  
  22238.  
  22239.  
  22240.  318                                C Standards Infrastructure Description
  22241.  
  22242.  
  22243.  
  22244.  
  22245.  
  22246.  ENVIRONMENT INTERIM DOCUMENT                                  P1003.0/D13
  22247.  
  22248.  subsequently expanded to include AT&T, Digital Equipment Corp., Fujitsu,
  22249.  Hewlett-Packard, IBM, NCR, Nokia Data, Philips, Sun Microsystems, and
  22250.  Unisys.  These vendors establish the X/Open specifications, although User
  22251.  and Independent Software Vendor (ISV) Advisory councils, which meet on a
  22252.  regular basis, as well as the ``Xtra'' process, provide the means for
  22253.  input from both users and ISVs.  The user advisory council is composed of
  22254.  senior executives from Fortune 500 and International 1000 companies, as
  22255.  well as large government agencies in the US and Europe.  The X/Open
  22256.  advisory council is composed of senior management of large software firms
  22257.  who have responsibility for planning and implementing corporate business
  22258.  strategies.
  22259.  
  22260.  All members of X/Open are committed to supporting the environment
  22261.  defined.  More than 100 software companies worldwide building compliant
  22262.  software products.
  22263.  
  22264.  For further information, contact X/Open Company Ltd.  at Apex Plaza,
  22265.  Forbury Road, Reading, Berkshire, RG1 1AX, UK, Telephone: 44 734 508 311.
  22266.  In the US, contact X/Open at 1010 El Camino Real, Menlo Park, CA 94025,
  22267.  Telephone: (415) 323-7992.
  22268.  
  22269.  
  22270.  
  22271.  
  22272.  
  22273.  
  22274.  
  22275.  
  22276.  
  22277.  
  22278.  
  22279.  
  22280.  
  22281.  
  22282.  
  22283.  
  22284.  
  22285.  
  22286.  
  22287.  
  22288.  
  22289.  
  22290.  
  22291.  
  22292.  
  22293.  
  22294.  
  22295.  
  22296.  
  22297.  
  22298.  
  22299.                Copyright c 1991 IEEE.  All rights reserved.
  22300.       This is an unapproved IEEE Standards Draft, subject to change.
  22301.  
  22302.  
  22303.  
  22304.  
  22305.  
  22306.  C.3 The Informal Standards Organizations                              319
  22307.  
  22308.  
  22309.  
  22310.  
  22311.  
  22312.  
  22313.  
  22314.  
  22315.  
  22316.  
  22317.  
  22318.  
  22319.  
  22320.  
  22321.  
  22322.  
  22323.  
  22324.  
  22325.  
  22326.  
  22327.  
  22328.  
  22329.  
  22330.  
  22331.  
  22332.  
  22333.  
  22334.  
  22335.  
  22336.  
  22337.  
  22338.  
  22339.  
  22340.  
  22341.  
  22342.  
  22343.  
  22344.  
  22345.  
  22346.  
  22347.  
  22348.  
  22349.  
  22350.  
  22351.  
  22352.  
  22353.  
  22354.  
  22355.  
  22356.  
  22357.  
  22358.  
  22359.  
  22360.  
  22361.  
  22362.  
  22363.  
  22364.  
  22365.  
  22366.  
  22367.  
  22368.  
  22369.  
  22370.  
  22371.  
  22372.  
  22373.  
  22374.  
  22375.  
  22376.  
  22377.  
  22378.                                                                P1003.0/D13
  22379.  
  22380.  
  22381.  
  22382.  
  22383.  
  22384.  
  22385.                                   Annex D
  22386.                                (informative)
  22387.  
  22388.                               Electronic-Mail
  22389.  
  22390.  
  22391.  
  22392.  
  22393.  _R_e_s_p_o_n_s_i_b_i_l_i_t_y:  _K_e_v_i_n _L_e_w_i_s
  22394.  
  22395.  The following table lists currently-known e-mail addresses for active
  22396.  working group members.  To correct your entry, send e-mail directly to
  22397.  Hal Jespersen, listed below.
  22398.  
  22399.  Michelle Aden      Sun Microsystems      aden@ebay.sun.com
  22400.  Ralph Barker       UniForum              ...uunet!usrgrp!ralph
  22401.  Carolyn Baker      MITRE                 cgb@d74sun.mitre.org
  22402.  Timothy Baker      Ford Aerospace
  22403.  Rich Bergman       NOSC                  rich@tecr.nosc.mil
  22404.  Andy Bihain        GTE Telops            arb1@gte.bunny.com
  22405.  Joseph Cote        Treasury Board
  22406.                        of Canada
  22407.  Bernard Cox        NASA JSC
  22408.  Don Folland        CCTA                  def@cctal.co.uk
  22409.  Thomas Ford        USAF                  tford@xpt.ssc.af.mil
  22410.  Bob Gambrel        Unisys                rjg@rsvl.unisys.com
  22411.  Al Hankinson       NIST/NCSL             alhank@swe.ncsl.nist.gov
  22412.  Jim Isaak          DEC                   isaak@decvax.dec.com
  22413.  Petr Janecek       X/Open                p.janecek@xopen.co.uk
  22414.  Hal Jespersen      POSIX Software Group  hlj@posix.com
  22415.  Lorraine Kevra     AT&T                  L.Kevra@att.com
  22416.  Ruth Klein         AT&T                  ruthlk@attunix.att.com
  22417.  Doris Lebovits     AT&T                  lebovits@attunix.att.com
  22418.  Kevin Lewis        DEC                   klewis@gucci.dec.com
  22419.  Heinz Lycklama     Interactive Systems   heinz@ism.isc.com
  22420.  Randolph Lynwood   NASA
  22421.  Doug MacDonald     General Electric
  22422.  Roger Martin       NIST                  rmartin@swe.ncsl.nist.gov
  22423.  Dick McNaney       SAIC                  saic-02@huachuca-emh2.army.mil    d
  22424.  Pete Meier         IBM                   ...uunet!aixsm!meier
  22425.  Mary Lynne Nielsen IEEE                  m.nielsen@ieee.org
  22426.  Patricia Oberndorf NADC                  tricia@nadc.navy.mil
  22427.  Jim Oblinger       NUSC                  oblinger@nusc.ada.arpa
  22428.  
  22429.  
  22430.  
  22431.                Copyright c 1991 IEEE.  All rights reserved.
  22432.       This is an unapproved IEEE Standards Draft, subject to change.
  22433.  
  22434.  
  22435.  
  22436.  
  22437.  
  22438.  Annex D Electronic-Mail                                               321
  22439.  
  22440.  
  22441.  
  22442.  
  22443.  
  22444.  P1003.0/D13                               GUIDE TO THE POSIX OPEN SYSTEMS
  22445.  
  22446.  Pat Patterson      NASA                  patterso@gmuvax2.gmu.edu
  22447.  David Pruett       NASA JSC              dpruett@nasamail.nasa.gov
  22448.  Wendy Rauch        Emerging Technologies ...uunet!etg!wrauch
  22449.                        Group
  22450.  Brad Reed          EDS                   reed@eds.com
  22451.  Carl Schmiedekamp  NADC                  schmiede@nadc.navy.mil
  22452.  Fritz Schulz       OSF                   fschulz@osf.org
  22453.  Richard Scott      Chemical Abstracts    uunet!osu-cis!chemabs!rls27
  22454.                        Service
  22455.  Glen Seeds         Systemhouse
  22456.  Charles Severance  Mich. State Univ.     crs@convex.cl.msu.edu
  22457.  Lewis Shannon      NCR                   lew.shannon@dayton.ncr.com
  22458.  Peter Smith        DEC                   psmith@decvax.dec.com
  22459.  Sandra Swearingen  USAF                  tic-tisc@afcc-oal.af.mil
  22460.  Marti Szczur       NASA/GSFC             msxcxur@postman.gsfc.nasa.gov
  22461.  Martial Van Neste  CGI Group             vanneste@bond.crim.ca             d
  22462.  Robert Voigt       Space & Naval Warfare voigt@nusc.ada.arpa
  22463.                        Systems Command
  22464.  Gentry Watson      UNIX Int'l            glw@ui.org
  22465.  Alan Weaver        IBM                   ...uunet!aixsm!weaver
  22466.                                                                             d
  22467.  John Williams      GM-CPC Hdqts.         ...uunet!edscws!rphroy!
  22468.                                              gmcpcl!jrw
  22469.  Arnold Winkler     Unisys
  22470.  George Zerdian     Hughes                george@eos.wel.scg.hac.com
  22471.  
  22472.  
  22473.  
  22474.  
  22475.  
  22476.  
  22477.  
  22478.  
  22479.  
  22480.  
  22481.  
  22482.  
  22483.  
  22484.  
  22485.  
  22486.  
  22487.  
  22488.  
  22489.  
  22490.  
  22491.  
  22492.  
  22493.  
  22494.  
  22495.  
  22496.  
  22497.                Copyright c 1991 IEEE.  All rights reserved.
  22498.       This is an unapproved IEEE Standards Draft, subject to change.
  22499.  
  22500.  
  22501.  
  22502.  
  22503.  
  22504.  322                                                     D Electronic-Mail
  22505.  
  22506.  
  22507.  
  22508.  
  22509.  
  22510.                                                                P1003.0/D13
  22511.  
  22512.                          Alphabetic Topical Index
  22513.  
  22514.  
  22515.  
  22516.  A                                      Application Platform
  22517.                                            Implementation Considerations
  22518.  Abbreviations  ... 13                      ... 33
  22519.  ABS  ... 314                           application platform
  22520.  Accounting  ... 171, 241                  definition of  ... 7
  22521.  ACID  ... 183, 185, 189-190            Application Program Interface
  22522.  ACL  ... 135                              (API) Elements  ... 130
  22523.  Ada  ... 45, 48                        Application Program Interface
  22524.  Administration  ... 170                   (API)  ... 20, 25
  22525.  AEP  ... 7                             application program interface
  22526.  AES  ... 67, 72, 181                      (API)
  22527.  AFNOR: Association Francaise de           definition of  ... 7
  22528.     Normalization  ... 291              Application Program Interface
  22529.  AFNOR  ... 291                            Services  ... 56, 88, 107, 119,
  22530.  Alphabetic Topical Index  ... 323         131, 154, 168, 178, 188, 201
  22531.  ANSI: American National Standards      Application Program Interface
  22532.     Institute  ... 292                      ... 24
  22533.  ANSI X3.122  ... 121-122               Application Program Services
  22534.  ANSI X3.133  ... 112                       ... 45
  22535.  ANSI X3.135  ... 110-111, 196          Application Programming Interface
  22536.  ANSI X3.138  ... 110, 113                 Services  ... 232
  22537.  ANSI X3.159  ... 262                   Application Software Elements
  22538.  ANSI X3.168  ... 110-111, 196              ... 129
  22539.  ANSI/ISO  ... 157                      application software entities
  22540.  ANSI  ... 48-49, 111-114, 121-122,         ... 25
  22541.     140, 147, 155, 158-160, 162-        application software
  22542.     163, 194, 256, 266, 268, 288,          definition of  ... 7
  22543.     292-293, 296-297, 299-300,          Application to Application Service
  22544.     303-304, 307, 311                       ... 89
  22545.  API Service Requirements  ... 218      Application to System Services
  22546.  API                                        ... 88
  22547.     definition of  ... 13               application
  22548.  APIA  ... 98-99                           definition of  ... 7
  22549.  API/EEI  ... 98-100                    Applications Environment Profile
  22550.  APL  ... 46, 48                           (AEP)
  22551.  APL  ... 45-46, 48, 193, 305              definition of  ... 7
  22552.  Application Platform Decomposition     APP  ... 262, 303
  22553.     III - Redirection  ... 36           Approved POSIX Standardized
  22554.  Application Platform Decomposition        Profiles  ... 261
  22555.     II - Layering  ... 36               APT  ... 305
  22556.  Application Platform                   ASCE  ... 85
  22557.     Implementation - Subdivision        ASCII  ... 212
  22558.      ... 35                             ASN.1  ... 115, 121, 124, 227
  22559.  
  22560.  
  22561.  
  22562.  
  22563.                Copyright c 1991 IEEE.  All rights reserved.
  22564.       This is an unapproved IEEE Standards Draft, subject to change.
  22565.  
  22566.  
  22567.  
  22568.  
  22569.  
  22570.  Alphabetic Topical Index                                              323
  22571.  
  22572.  
  22573.  
  22574.  
  22575.  
  22576.  P1003.0/D13
  22577.  
  22578.  AT&T  ... 72, 75, 181, 312-313,        CASE Data Interchange Format
  22579.     316, 318-319                           (CDIF)  ... 123, 204
  22580.  Availability Management  ... 242       CASE  ... 123, 129, 201, 204
  22581.                                         CBEMA: Computer and Business
  22582.                                            Equipment Manufacturers
  22583.  B                                         Association  ... 306
  22584.                                         CBEMA  ... 304, 306-307
  22585.  background  ... 2, 6, 177, 184,        CCITT: Comite Consultatif
  22586.     215, 281                               International de Telegraphie et
  22587.  base standard                             Telephonie  ... 294
  22588.     definition of  ... 7                CCITT  ... 97, 222-223, 234, 287,
  22589.  Base Standards Working Groups             290, 294, 296, 299, 303, 311
  22590.      ... 278                            CCR  ... 195
  22591.  Basic Network Services Model           CCR  ... 114-115, 195
  22592.      ... 85                             CDIF  ... 121, 123, 201, 204
  22593.  Basic Terminology  ... 250             CD-ROM  ... 202-203
  22594.  Basic Window Services  ... 131         CEC  ... 309, 315
  22595.  BASIC  ... 46, 48, 50                  CEDEX  ... 310
  22596.  BASIC  ... 45-46, 48, 50, 193, 288     CEN/CENELEC/CEPT  ... 294
  22597.  Basis for This Guidance  ... 253       CEN/CENELEC/CEPT  ... 294
  22598.  BCS: British Computer Society          CEN/CENELEC  ... 309-310
  22599.      ... 306                            CENELEC  ... 294-296, 309-310
  22600.  BCS  ... 306                           CENLEC  ... 295
  22601.  Bibliography  ... 287                  CEN  ... 290, 294-296, 309-310
  22602.  B.P  ... 310                           CEPT  ... 295, 309-310
  22603.  BSD  ... 70, 179-181, 313              CGI  ... 148, 160
  22604.  BSI: British Standards Institute       CGM  ... 121-122, 147, 160-161,
  22605.      ... 293                               266
  22606.  BSI  ... 293, 306                      CGRM  ... 147-148, 162
  22607.  built-in  ... 174                      CH-1211  ... 2, 287
  22608.                                         Character Sets and Data
  22609.                                            Representation  ... 120, 212
  22610.  C                                      Character-based Terminal Reference
  22611.                                            Model  ... 168
  22612.  C Standard  ... 141, 169, 181, 300     Character-Based User Interface
  22613.  C-2  ... 301                              Services  ... 167
  22614.  C  ... 46, 49                          Clear Communications  ... 256
  22615.  CAD/CAM/CAE  ... 149                   C-LISP  ... 193
  22616.  CAD/CAM  ... 125                       CMA  ... 234
  22617.  CAD  ... 47, 123                       CMDB  ... 240
  22618.  CAIS-A  ... 74                         CNMA  ... 309
  22619.  CAIS-A  ... 74                         COBOL  ... 47, 49
  22620.  Canadian Standards Association         COBOL  ... 23, 27, 44-45, 47-49,
  22621.     (CSA)  ... 293                         112, 193, 266, 268, 278, 305,
  22622.  Capability and Security Services          307
  22623.      ... 72                             CODASYL: The Conference on Data
  22624.  Capacity Management  ... 242              Systems Languages  ... 307
  22625.  
  22626.  
  22627.  
  22628.  
  22629.                Copyright c 1991 IEEE.  All rights reserved.
  22630.       This is an unapproved IEEE Standards Draft, subject to change.
  22631.  
  22632.  
  22633.  
  22634.  
  22635.  
  22636.  324                                              Alphabetic Topical Index
  22637.  
  22638.  
  22639.  
  22640.  
  22641.  
  22642.                                                                P1003.0/D13
  22643.  
  22644.  CODASYL-ANSI  ... 307                  COS  ... 307-308, 311-312, 314-
  22645.  CODASYL  ... 112, 307                     315, 317
  22646.  Coherence  ... 256, 278                CPIC  ... 97
  22647.  Common LISP  ... 47                    CPIO  ... 69
  22648.  Communication EEI Elements  ... 80     CPU  ... 59, 265
  22649.  Communications Interface               C++  ... 45, 47-48, 50
  22650.     definition of  ... 7                CRS  ... 87-88, 90, 94, 97, 169
  22651.  Communications Services API            CRT  ... 25
  22652.      ... 26                             CSA  ... 293-294
  22653.  Communications Services  ... 25        CSA-Z243  ... 225
  22654.  Completeness  ... 255                  CSMA/CD  ... 301
  22655.  Component Management Services          CSS  ... 161
  22656.      ... 233                            CTS  ... 315
  22657.  Computer Graphics Metafile (CGM)       Cultural Conventions  ... 215, 219
  22658.      ... 122                            Current Networking Standards
  22659.  Computer Graphics Reference Model          ... 98
  22660.     Level Structure  ... 149            Current Standards in the POSIX OSE
  22661.  Configuration Management  ... 170          ... 48, 68, 97, 111, 121, 139,
  22662.  Conformance Testing  ... 182              156, 169, 193, 202, 221
  22663.  Conformance to a POSIX SP  ... 279     Current Standards  ... 179
  22664.  Conformance  ... 3, 278                Curses  ... 170
  22665.  conformance  ... 3, 7, 43, 68,
  22666.     147-148, 162, 182, 230, 252-
  22667.     255, 269, 273, 276, 278-279,        D
  22668.     284, 293, 303, 308, 310, 312,
  22669.     314-316                             DAC  ... 232
  22670.  Considerations for Developers of       Data Access Services  ... 108
  22671.     POSIX SPs  ... 273                  Data Definition and Manipulation
  22672.  Content of the Multiprocessing            Services  ... 108
  22673.     Systems Profile  ... 264            Data Description Protocols
  22674.  Content of the Platform                    ... 120
  22675.     Environment Profile  ... 262        Data Format Protocols  ... 120
  22676.  Content of the Realtime                Data Integrity Services  ... 108
  22677.     Application Profiles  ... 269       Data Interchange Reference Model
  22678.  Content of the Supercomputing              ... 118
  22679.     Profile  ... 266                    Data Interchange Services  ... 117
  22680.  Content of the Transaction             Data Interchange Standards
  22681.     Processing Profile  ... 267             ... 121
  22682.  Conventional Transaction               Data Representation Services
  22683.     Processing Model  ... 186               ... 92
  22684.  Conventional Transaction               Data Transfer and Connectivity
  22685.     Processing Reference Model              ... 94
  22686.      ... 185                            Database Administration Services
  22687.  Conventions  ... 5                         ... 110
  22688.  Coordinate Systems and Clipping        Database API  ... 104
  22689.      ... 152                            Database Manager  ... 104
  22690.  COS: Corporation for Open Systems      Database Recovery Services
  22691.      ... 307                                ... 110
  22692.  
  22693.  
  22694.  
  22695.                Copyright c 1991 IEEE.  All rights reserved.
  22696.       This is an unapproved IEEE Standards Draft, subject to change.
  22697.  
  22698.  
  22699.  
  22700.  
  22701.  
  22702.  Alphabetic Topical Index                                              325
  22703.  
  22704.  
  22705.  
  22706.  
  22707.  
  22708.  P1003.0/D13
  22709.  
  22710.  Database Resource Management              233-234, 239, 249-250, 253-257,
  22711.     Services  ... 109                      262, 264, 273, 275, 277, 279-
  22712.  Database Services  ... 103                284, 287-288, 291, 295, 301,
  22713.  Database Standards  ... 111               305, 307, 309-310
  22714.  Database Utility Program  ... 104      DOD  ... 234
  22715.  DBMS  ... 201                          domain
  22716.  DBSSG  ... 114                            definition of  ... 8
  22717.  DBTG  ... 307                          DTE  ... 287
  22718.  DCT  ... 287                           DTP  ... 184, 193-195
  22719.  DDLC  ... 307
  22720.  DDL  ... 112, 307
  22721.  De Facto Standards  ... 123, 170       E
  22722.  DEC  ... 165, 312-313
  22723.  Defining a Profile  ... 257            EBU  ... 309
  22724.  Definitions  ... 5                     ECMA: European Computer
  22725.  definitions  ... 7                        Manufacturers Association
  22726.  DEF  ... 202-203, 235                      ... 300
  22727.  Detailed Guidance to Profile           ECMA-127  ... 195
  22728.     Writers  ... 254                    ECMA-149  ... 74, 203
  22729.  Detailed Network Service               ECMA  ... 74, 97, 99, 113, 203-
  22730.     Requirements  ... 91                   204, 234, 296, 300, 303, 310
  22731.  Development of a Profile  ... 258      EDIFACT  ... 121-122
  22732.  Dialog Services  ... 137               EDI  ... 122
  22733.  DIN: Deutsches Institut fur            EEI
  22734.     Normung  ... 296                       definition of  ... 13
  22735.  DIN  ... 216, 296                      EEI-API Service Relationships
  22736.  Directory Services Architecture            ... 27
  22737.      ... 87                             EEI-API  ... 27
  22738.  Directory Services  ... 88             EEI  ... 8, 13, 20, 24-25, 27-28,
  22739.  directory  ... 62-63, 69, 73, 77,         32, 34, 43, 55, 78, 80, 82, 86,
  22740.     79, 85-88, 96-97, 177, 180,            94-96, 118-120, 127-130, 140,
  22741.     191-192, 195, 234, 309-310, 315        150, 155, 167, 174-175, 178,
  22742.  DIS  ... 50, 156, 158-160, 162,           192
  22743.     195, 256, 290                       EFTA  ... 295
  22744.  Distributed Database Management        EIA: Electronic Industries
  22745.     Services  ... 110                      Association  ... 300
  22746.  Distributed System Configuration       EIA  ... 123, 204, 300, 311
  22747.     Management  ... 241                 Electronic Data Interchange (EDI)
  22748.  Distributed System Environment             ... 122
  22749.     Model  ... 29                       Electronic-Mail  ... 321
  22750.  Distributed System Services            Emerging Networking Standards
  22751.      ... 92                                 ... 99
  22752.  DML  ... 112, 307                      Emerging Standards in the POSIX
  22753.  DNI  ... 86                               OSE  ... 50, 70, 112, 122, 140,
  22754.  document  ... 2, 5-8, 12, 22, 29,         161, 169, 193, 203, 224, 234
  22755.     31, 41, 43, 68, 75, 106-107,        Emerging Standards  ... 97, 180
  22756.     111, 121-122, 125, 139, 156,        EMUG/OSITOP: European Users Groups
  22757.     181, 189-190, 198, 202-203,             ... 308
  22758.     217, 219-220, 226-227, 230,
  22759.  
  22760.  
  22761.                Copyright c 1991 IEEE.  All rights reserved.
  22762.       This is an unapproved IEEE Standards Draft, subject to change.
  22763.  
  22764.  
  22765.  
  22766.  
  22767.  
  22768.  326                                              Alphabetic Topical Index
  22769.  
  22770.  
  22771.  
  22772.  
  22773.  
  22774.                                                                P1003.0/D13
  22775.  
  22776.  EMUG/OSITOP  ... 308                   Fault Diagnosis  ... 246
  22777.  EMUG  ... 310                          Fault Isolation;  ... 245
  22778.  _e_n_v_i_r_o_n  ... 69                        Fault Management  ... 74, 171, 245
  22779.  Environment Services  ... 60           Fault Recovery  ... 246
  22780.  ENV  ... 290, 295                      FCC  ... 293
  22781.  EPRI: Electric Power Research          FES  ... 32
  22782.     Institute  ... 308                  FGP  ... 233
  22783.  EPRI  ... 308                          FIFO  ... 69
  22784.  _e_r_r_n_o  ... 69                          File Modification Primitives
  22785.  Error Handling  ... 133, 153               ... 62
  22786.  ESPRIT (European Strategic             File Oriented Services  ... 62
  22787.     Programme for Research and          File Support Services  ... 63
  22788.     Development in Information          file system  ... 69, 71, 269-270
  22789.     Technology)  ... 309                FIMS  ... 169
  22790.  ESPRIT  ... 309, 315                   FIMS  ... 141, 169
  22791.  ETSI: European Telecommunications      find  ... 265
  22792.     Standards Institute  ... 309        FIPS 120  ... 159
  22793.  ETSI  ... 309                          FIPS 127  ... 111, 196
  22794.  ETS  ... 309                           FIPS 151-1  ... 70, 75, 262
  22795.  Event Handling  ... 132                FIPS 158  ... 139
  22796.  EWOS: European Workshop for Open       FIPS  ... 70, 75, 111, 113, 139,
  22797.     Systems  ... 310                       256, 266, 268, 285, 301, 303
  22798.  EWOS  ... 310, 315                     Flagger  ... 110
  22799.  _e_x_e_c()  ... 69                         FOCUS: FOCUS Committee  ... 310
  22800.  External Environment Interface         FOCUS  ... 310
  22801.     (EEI) Elements  ... 130             foreground  ... 177
  22802.  External Environment Interface         Foreword  ... 282
  22803.     (EEI)  ... 25                       _f_o_r_k()  ... 11, 69
  22804.     definition of  ... 8                Formal Standards Groups  ... 291
  22805.  External Environment Interface         FORTRAN-77  ... 266
  22806.     Elements  ... 80                    FORTRAN  ... 47
  22807.  External Environment Interface         Fortran  ... 49
  22808.     Services  ... 48, 66, 93, 109,      FORTRAN  ... 27, 45-48, 112,
  22809.     119, 138, 155, 169, 175, 190,          263-264
  22810.     201, 233                            FTAM  ... 74, 85, 97, 310
  22811.  External Environment Interface         FTP  ... 97
  22812.      ... 20                             FULL  ... 288
  22813.  external environment                   Functionality of POSIX.1 Standard
  22814.     definition of  ... 8                    ... 69
  22815.                                         Functionality  ... 68
  22816.  
  22817.  F
  22818.                                         G
  22819.  Factors in Standards Selection
  22820.      ... 30                             GAN  ... 95
  22821.  Fault Avoidance  ... 246               Gap Identification  ... 257
  22822.  Fault Detection  ... 245               Gaps in Available Standards
  22823.                                             ... 50, 71, 97, 114, 123, 141,
  22824.                                            162, 170, 180, 194, 204, 225,
  22825.  
  22826.  
  22827.                Copyright c 1991 IEEE.  All rights reserved.
  22828.       This is an unapproved IEEE Standards Draft, subject to change.
  22829.  
  22830.  
  22831.  
  22832.  
  22833.  
  22834.  Alphabetic Topical Index                                              327
  22835.  
  22836.  
  22837.  
  22838.  
  22839.  
  22840.  P1003.0/D13
  22841.  
  22842.     234                                 HFS-HCI  ... 140
  22843.  Gaps in Networking Standards           High-End Realtime Profiles
  22844.      ... 100                                ... 270
  22845.  GDSII  ... 121, 123                    HLHSR  ... 159
  22846.  General Arrangement  ... 281           HLJ  ... 2, 33, 77, 145, 173, 191,
  22847.  General Normative Elements                229, 287, 289, 301
  22848.      ... 282                            HSF-HCI  ... 140
  22849.  General Purpose POSIX SPs  ... 261     Human/Computer Interaction
  22850.  General Service Requirements              Services API  ... 26
  22851.     Application Platform  ... 211       Human/Computer Interaction
  22852.  General Terms  ... 7                      Services  ... 25
  22853.  General  ... 1                         Human/Computer Interface
  22854.  Generalized Input/Output Services         definition of  ... 8
  22855.      ... 62
  22856.  getconf  ... 268
  22857.  GKS-3D  ... 147, 155, 159-160          I
  22858.  GKS  ... 125, 142, 147, 149-150,
  22859.     155, 157, 159-160, 266              IBM  ... 165, 312-313, 315, 319
  22860.  GOSIP  ... 259, 308                    ICL  ... 315, 318
  22861.  Government/Legal Standards             ICS  ... 311
  22862.      ... 123, 170                       ICST  ... 301
  22863.  GPC  ... 165                           IEC: International
  22864.  Graphic Design System II (GDSII)          Electrotechnical Commission
  22865.     CAD Exchange Format  ... 123            ... 296
  22866.  graphical user interface  ... 125      IEEE 1003.11  ... 267
  22867.  Graphics Concepts  ... 151             IEEE 1003.18  ... 181
  22868.  Graphics Requirements  ... 153         IEEE 1003.2  ... 268
  22869.  Graphics Resource Management           IEEE 1003.3.2  ... 182
  22870.     Services  ... 155                   IEEE 1003.3  ... 68
  22871.  Graphics Services  ... 145             IEEE 1003.4  ... 181, 268
  22872.  grep  ... 265                          IEEE 1003.6  ... 268
  22873.  Guidance to Profile Writers            IEEE 1003.7  ... 181
  22874.      ... 252                            IEEE 1003  ... 261
  22875.  GUS  ... 315                           IEEE 802.3  ... 301
  22876.                                         IEEE: Institute of Electrical and
  22877.                                            Electronic Engineers  ... 300
  22878.  H                                      IEEE P1003.0  ... 74, 279, 303
  22879.                                         IEEE P1003.10  ... 97, 99, 262
  22880.  Hardware Description Language          IEEE P1003.11  ... 97, 99, 183,
  22881.     (VHDL VHSIC)  ... 123                  192, 194, 262, 268
  22882.  hardware                               IEEE P1003.12  ... 74, 84-85, 97
  22883.     definition of  ... 8                IEEE P1003.13  ... 99, 262
  22884.  harmonization  ... 251                 IEEE P1003.14  ... 262
  22885.  Harmonization  ... 256                 IEEE P1003.17  ... 85-86, 97
  22886.  HCI  ... 1, 125-131, 137-139,          IEEE P1003.18  ... 262
  22887.     141-142                             IEEE P1003.1  ... 74-75, 297
  22888.  Heterogeneous Environment Support      IEEE P1003.2  ... 6
  22889.     Services  ... 110
  22890.  
  22891.  
  22892.  
  22893.                Copyright c 1991 IEEE.  All rights reserved.
  22894.       This is an unapproved IEEE Standards Draft, subject to change.
  22895.  
  22896.  
  22897.  
  22898.  
  22899.  
  22900.  328                                              Alphabetic Topical Index
  22901.  
  22902.  
  22903.  
  22904.  
  22905.  
  22906.                                                                P1003.0/D13
  22907.  
  22908.  IEEE P1003.3  ... 6, 276, 278-279,     Informative Annexes  ... 284
  22909.     303                                 informative
  22910.  IEEE P1003.4  ... 70-71, 274, 276         definition of  ... 6
  22911.  IEEE P1003.4a  ... 71                  Initial Graphics Exchange
  22912.  IEEE P1003.6  ... 74, 97, 230, 232        Specification (NBSIR 86-3359)
  22913.  IEEE P1003.7  ... 86                       ... 123
  22914.  IEEE P1003.8  ... 97                   Input Device Management  ... 134
  22915.  IEEE P1003.   ... 6                    Input Model  ... 152
  22916.  IEEE P1003  ... 13                     Input Primitives  ... 152
  22917.  IEEE P1076  ... 121, 123               INTAP (Interoperability Technology
  22918.  IEEE P1201.1  ... 141                     Association for Information
  22919.  IEEE P1201.2  ... 140-141                 Processing)  ... 310
  22920.  IEEE P1201.   ... 141                  INTAP  ... 310, 314
  22921.  IEEE P1201  ... 164                    Interapplication Entity Services
  22922.  IEEE P1224  ... 97                         ... 138, 178
  22923.  IEEE P1237  ... 99                     Interapplication Software Entity
  22924.  IEEE P1238.0  ... 85                      Services  ... 48, 66, 155, 190,
  22925.  IEEE P1238.1  ... 85, 97                  201, 233
  22926.  IEEE P1238  ... 97                     Interclient Communication  ... 133
  22927.  IEEE Std 1003.1  ... 68                interface
  22928.  IEEE-488  ... 301                         definition of  ... 8
  22929.  IEEE  ... 6, 13, 53, 140, 155,         International and National
  22930.     179-181, 230, 253, 258, 261,           Standards Bodies Relationship
  22931.     263-268, 273, 275, 277, 279,            ... 291
  22932.     288, 293, 296, 300-303, 311,        International and National
  22933.     313, 316, 318                          Standards Bodies  ... 291
  22934.  IEEE Standards Diagram  ... 302        International and National
  22935.  IGES/PDES  ... 164                        Standards Organizations
  22936.  IGES  ... 121, 123, 163, 266               ... 291
  22937.  III  ... 36                            International and National
  22938.  implementation agreements  ... 250        Standards  ... 179
  22939.  Implementation Aspects  ... 55,        International and Other Formal
  22940.     80, 105                                Standards  ... 180
  22941.  implementation defined  ... 5, 71,     International Standards Bodies
  22942.     220                                    Overview  ... 290
  22943.     definition of  ... 5                International Standards  ... 48,
  22944.  Importance Of Profiles  ... 252           50, 68, 70, 121-122, 193, 202-
  22945.  Informal Standards Organizations          203, 221, 224
  22946.      ... 306                            Internationalization  ... 181, 209
  22947.  Information Interchange Interface      internationalization
  22948.     definition of  ... 8                   definition of  ... 9
  22949.  Information Interchange Services       interoperability
  22950.     API  ... 26                            definition of  ... 9
  22951.  Information Resource Dictionary        Introduction  ... 250, 261, 273,
  22952.     System (IRDS)  ... 113                 282, 289
  22953.  Information Services  ... 25           IPC  ... 37, 265
  22954.  Information System Management          IPI  ... 161
  22955.      ... 235
  22956.  
  22957.  
  22958.  
  22959.                Copyright c 1991 IEEE.  All rights reserved.
  22960.       This is an unapproved IEEE Standards Draft, subject to change.
  22961.  
  22962.  
  22963.  
  22964.  
  22965.  
  22966.  Alphabetic Topical Index                                              329
  22967.  
  22968.  
  22969.  
  22970.  
  22971.  
  22972.  P1003.0/D13
  22973.  
  22974.  IPO  ... 164                           ISO 8651-1  ... 159
  22975.  IPS  ... 77                            ISO 8651-2  ... 159
  22976.  IRDS  ... 110, 113                     ISO 8652  ... 48
  22977.  ISAM  ... 106                          ISO 8805  ... 159
  22978.  ISDN  ... 307-308                      ISO 8824  ... 115, 124, 227
  22979.  ISIS  ... 124                          ISO 8825  ... 115, 121, 124, 227
  22980.  ISO 1001  ... 202                      ISO 8859-1  ... 2, 212, 225
  22981.  ISO 1359  ... 44                       ISO 8859-  ... 223
  22982.  ISO 1539  ... 48-49                    ISO 8879  ... 121-122, 164
  22983.  ISO 1989  ... 44, 48-49                ISO 8907  ... 110, 112
  22984.  ISO 2014  ... 221                      ISO 8-  ... 221
  22985.  ISO 2022  ... 221                      ISO 9075  ... 110-111, 196
  22986.  ISO 3307  ... 221                      ISO 9127  ... 202-203
  22987.  ISO 4031  ... 221                      ISO 9293  ... 202
  22988.  ISO 4217  ... 221                      ISO 9592  ... 156, 161
  22989.  ISO 4341  ... 202                      ISO 9593-1  ... 156
  22990.  ISO 4873  ... 221, 224                 ISO 9593-3  ... 156
  22991.  ISO 5807  ... 202-203                  ISO 9593  ... 98
  22992.  ISO 6093  ... 222                      ISO 9596  ... 97
  22993.  ISO 6160  ... 48-49                    ISO 9660  ... 202-203
  22994.  ISO 6373  ... 48                       ISO 9735  ... 121-122
  22995.  ISO 6429  ... 222                      ISO 9945  ... 6
  22996.  ISO 646  ... 221-222                   ISO DIS 10148  ... 99
  22997.  ISO 6522  ... 48-49                    ISO DIS 10646  ... 224
  22998.  ISO 6592  ... 202-203                  ISO DIS 8613  ... 226
  22999.  ISO 6593  ... 202-203                  ISO DP 10027  ... 110
  23000.  ISO 6936  ... 222                      ISO DP 10303  ... 121-122
  23001.  ISO 6937-1  ... 222                    ISO DP 8800  ... 110
  23002.  ISO 6937-2  ... 222                    ISO DP 9579  ... 112
  23003.  ISO 6937  ... 222                      ISO: International Organization
  23004.  ISO 7185  ... 48-49                       for Standardization  ... 296
  23005.  ISO 7350  ... 222                      ISO/CCITT X.400  ... 97, 124, 234
  23006.  ISO 7498-2  ... 233                    ISO/IEC 8073  ... 287
  23007.  ISO 7498  ... 287                      ISO/IEC 8613  ... 233
  23008.  ISO 7665  ... 202                      ISO/IEC 9804  ... 114
  23009.  ISO 7942  ... 159                      ISO/IEC 9805  ... 115
  23010.  ISO 7-  ... 221-222                    ISO/IEC 9899  ... 48-49
  23011.  ISO 802  ... 97-98                     ISO/IEC 9945-1  ... 2, 67-68, 70-
  23012.  ISO 803  ... 97                           71, 267
  23013.  ISO 8072  ... 287                      ISO/IEC 9945-3  ... 68
  23014.  ISO 8211  ... 202-203                  ISO/IEC 9945  ... 10
  23015.  ISO 8485  ... 48                       ISO/IEC CD 9995-  ... 224
  23016.  ISO 8587  ... 97                       ISO/IEC DIS 10026-1  ... 192-194
  23017.  ISO 8601  ... 223                      ISO/IEC DIS 10026-2  ... 193-194
  23018.  ISO 8613  ... 121, 233                 ISO/IEC DIS 10026-3  ... 193-194
  23019.  ISO 8631  ... 202-203                  ISO/IEC DIS 10026  ... 195
  23020.  ISO 8632  ... 121-122, 160             ISO/IEC DIS 10367  ... 224
  23021.  
  23022.  
  23023.  
  23024.  
  23025.                Copyright c 1991 IEEE.  All rights reserved.
  23026.       This is an unapproved IEEE Standards Draft, subject to change.
  23027.  
  23028.  
  23029.  
  23030.  
  23031.  
  23032.  330                                              Alphabetic Topical Index
  23033.  
  23034.  
  23035.  
  23036.  
  23037.  
  23038.                                                                P1003.0/D13
  23039.  
  23040.  ISO/IEC DIS 9804-3  ... 195            Language Services  ... 43
  23041.  ISO/IEC DIS 9805-3  ... 195            Language Standards Activities
  23042.  ISO/IEC DP 10026-1  ... 183                ... 49
  23043.  ISO/IEC DP 9759  ... 110               language-binding API
  23044.  ISO/NMF  ... 97                           definition of  ... 9
  23045.  ISO/OSI  ... 97                        language-independent service
  23046.  ISO Networking Reference Model            specification
  23047.      ... 81                                definition of  ... 9
  23048.  ISP  ... 97, 253                       LAN  ... 95, 317
  23049.  Issues Pertaining to Referencing       LANS  ... 301
  23050.     Base Standards  ... 278             Layering  ... 35
  23051.  ISV  ... 319                           LC_COLLATE  ... 220
  23052.  ITA  ... 222                           LC_CTYPE  ... 220
  23053.  ITU  ... 290                           LC_MONETARY  ... 220
  23054.                                         LC_NUMERIC  ... 220
  23055.                                         LC_TIME  ... 220
  23056.  J                                      License Services  ... 237
  23057.                                         LISP  ... 45, 47-48, 50, 159, 266
  23058.  JISC: Japanese Industrial              LIS  ... 193
  23059.     Standards Committee  ... 297        local adaptation
  23060.  JISC  ... 297                             definition of  ... 9
  23061.  JIS  ... 224                           locale
  23062.  Job Scheduling  ... 239                   definition of  ... 9
  23063.  JTC1: Joint Technical Committee 1      _l_o_c_a_l_e()  ... 220
  23064.      ... 297                            locale  ... 9, 69, 177, 181, 220,
  23065.  JTC1  ... 161, 165                        284
  23066.                                         Localization Tools Requirements
  23067.                                             ... 219
  23068.  K                                      localization
  23069.                                            definition of  ... 9
  23070.  KEYSYM  ... 163                        Logical Naming Services  ... 65
  23071.  KornShell  ... 25, 303, 309-310,
  23072.     315, 319
  23073.                                         M
  23074.  
  23075.  L                                      MAC  ... 232-233
  23076.                                         Main Elements of a Profile
  23077.  Labeling and File Structure of            Definition Document  ... 255
  23078.     Magnetic Media  ... 202             Maintainability  ... 247
  23079.  language binding  ... 9, 22, 26-       make  ... 265
  23080.     27, 43, 45, 50, 126, 130-131,       MAP  ... 259, 308, 310-311
  23081.     146, 148, 150, 155-156, 159-        MAP/TOP User Group: (Manufacturing
  23082.     161, 193, 235, 263-264, 268            Automation Protocol and
  23083.  Language Resource Management              Technical and Office Protocol)
  23084.     Services  ... 48                        ... 310
  23085.  Language Service Reference Model       MAP/TOP  ... 308, 310-311, 315
  23086.      ... 44                             may
  23087.                                            definition of  ... 6
  23088.  
  23089.  
  23090.  
  23091.                Copyright c 1991 IEEE.  All rights reserved.
  23092.       This is an unapproved IEEE Standards Draft, subject to change.
  23093.  
  23094.  
  23095.  
  23096.  
  23097.  
  23098.  Alphabetic Topical Index                                              331
  23099.  
  23100.  
  23101.  
  23102.  
  23103.  
  23104.  P1003.0/D13
  23105.  
  23106.  Memory Management Services  ... 65     NDL Standard Database Language
  23107.  MHS  ... 124, 310                          ... 112
  23108.  Mid-Range Realtime Profiles            NDL  ... 110, 112
  23109.      ... 270                            Network Application Program
  23110.  MIL-STD-1777  ... 97                      Interface (API) Services
  23111.  MIL-STD-1778  ... 100                      ... 79
  23112.  MIL-STD-1780  ... 97                   Network Configuration Management
  23113.  MIL-STD-1781  ... 97                       ... 240
  23114.  MIL-STD-1782  ... 97                   Network Management and Security
  23115.  MIL-STD-1838A  ... 74                     Services  ... 96
  23116.  Minimal Embedded Realtime Profiles     Network Management and Security
  23117.      ... 269                               User Services  ... 96
  23118.  Miscellaneous Services  ... 109        Network Management Forum  ... 312
  23119.  MITI  ... 297, 310                     Network Management Services
  23120.  MIT  ... 161, 163-164, 313                 ... 93
  23121.  MMS  ... 310                           Network Services  ... 77
  23122.  MOSI  ... 27                           NFS  ... 100
  23123.  MRS  ... 140                           NIST: National Institute of
  23124.  MS-DOS  ... 225                           Standards and Technology
  23125.  Multipart POSIX SPs  ... 280               ... 301
  23126.  Multiple POSIX OSE APIs to             NIST  ... 139, 158, 266, 293, 296,
  23127.     Different OSI Layers  ... 84           301, 303, 308, 311
  23128.  Multiprocessing Systems Platform       NMF  ... 312
  23129.     Profiles  ... 263                   Node Internal Communication and
  23130.                                            Synchronization Services
  23131.                                             ... 61
  23132.  N                                      Nongovernment Formal Standards
  23133.                                            Organizations  ... 300
  23134.  Naming and Directory Services          Nontechnical Security Objectives
  23135.      ... 62                                 ... 232
  23136.  naming services                        Normative Annexes  ... 284
  23137.     logical  ... 65                     Normative References  ... 2, 283
  23138.  N/A  ... 193                           normative
  23139.  National Standards Bodies Overview        definition of  ... 6
  23140.      ... 290                            NOTE  ... 191-192
  23141.  National Standards  ... 50, 70,        NPSC: National Protocol Support
  23142.     122-123, 193, 203-204, 223, 225        Center  ... 312
  23143.  National/International  ... 156        NPSC  ... 312
  23144.  Natural Language Support  ... 217,     NURBS  ... 151
  23145.     219
  23146.  NBSIR 86-3359  ... 121, 123, 163
  23147.  NBSIR 86  ... 121                      O
  23148.  NCC: National Computing Centre
  23149.      ... 312                            Object Management Group  ... 312
  23150.  NCC  ... 312                           Objectives  ... 68
  23151.  NCGA  ... 165                          ODA/ODIF  ... 121-122, 227
  23152.  NCR  ... 313, 319                      ODA  ... 121, 226, 233, 310
  23153.  
  23154.  
  23155.  
  23156.  
  23157.                Copyright c 1991 IEEE.  All rights reserved.
  23158.       This is an unapproved IEEE Standards Draft, subject to change.
  23159.  
  23160.  
  23161.  
  23162.  
  23163.  
  23164.  332                                              Alphabetic Topical Index
  23165.  
  23166.  
  23167.  
  23168.  
  23169.  
  23170.                                                                P1003.0/D13
  23171.  
  23172.  ODASYL  ... 141, 169                   Other Issues  ... 277
  23173.  ODIF  ... 121                          Output Model  ... 153
  23174.  Office Media Management and            Output Primitives  ... 151
  23175.     Backup/Restore  ... 238
  23176.  OLTP Resource Management Services
  23177.      ... 191                            P
  23178.  OLTP  ... 139, 184, 191, 267-268
  23179.  OMG  ... 312-313                       P1003.4  ... 70-71
  23180.  OMNICOM  ... 94                        P.10  ... 45
  23181.  Online Disk Management  ... 239        P.5  ... 41
  23182.  Open Document Architecture             PAR  ... 194
  23183.     (ODA)/Open Document Interchange     Pascal  ... 47, 49-50
  23184.     Format (ODIF)  ... 121              PCI  ... 97, 100
  23185.  Open Issues  ... 51, 74, 124, 142,     PCTE  ... 74
  23186.     165, 171, 182, 196, 205, 227,       PCTE  ... 74, 203-204, 300, 309
  23187.     243                                 PEP  ... 181, 261-263
  23188.  open specifications                    Performance and Capacity
  23189.     definition of  ... 9                   Specification Metrics  ... 165
  23190.  Open System Application Program        Performance and Capacity Values
  23191.     Interface                               ... 220
  23192.     definition of  ... 9                performance evaluation
  23193.  Open System Environment (OSE)             definition of  ... 10
  23194.     definition of  ... 10               Performance Management  ... 242
  23195.  open system                            performance requirement
  23196.     definition of  ... 10                  definition of  ... 10
  23197.  OSC  ... 67, 72                        Performance  ... 171
  23198.  OSE Cross-Category Services            performance
  23199.      ... 50, 72, 114, 124, 141,            definition of  ... 10
  23200.     163, 170, 195, 204, 226, 234,       Petrochemical Open Software
  23201.     243                                    Foundation  ... 314
  23202.  OSF: Open Software Foundation          PEX  ... 142, 161, 266
  23203.      ... 313                            PEX-SI  ... 161
  23204.  OSF/1  ... 72                          PHIGS PLUS  ... 155, 158
  23205.  OSF/1  ... 72, 179, 181                PHIGS  ... 125, 142, 147, 149-150,
  23206.  OSF  ... 67, 72, 179, 181, 313-           155-159, 161, 266
  23207.     314, 316                            PIK  ... 150, 161
  23208.  OSI Distributed Transaction            pipe  ... 69, 153
  23209.     Processing (DTP)  ... 193           pipes  ... 69
  23210.  OSI  ... 11, 32, 74, 77, 81-86,        PL/1  ... 47, 49
  23211.     94, 97, 101, 113-115, 138, 163,     PL/1  ... 45, 47-49, 112, 193, 305
  23212.     193-195, 233, 259, 266, 268,        PLB  ... 165
  23213.     297, 299-300, 303, 307-308,         PLUS  ... 158-159
  23214.     310-312, 314-315                    P.O  ... 308, 311
  23215.  OSI Network Services Standards         portability
  23216.      ... 101                               definition of  ... 10
  23217.  OSITOP  ... 310                        Portable Common Tool Environment
  23218.  OSI/VT  ... 97                            (PCTE)  ... 204
  23219.  
  23220.  
  23221.  
  23222.  
  23223.                Copyright c 1991 IEEE.  All rights reserved.
  23224.       This is an unapproved IEEE Standards Draft, subject to change.
  23225.  
  23226.  
  23227.  
  23228.  
  23229.  
  23230.  Alphabetic Topical Index                                              333
  23231.  
  23232.  
  23233.  
  23234.  
  23235.  
  23236.  P1003.0/D13
  23237.  
  23238.  Portable Operating System              POSIX.0
  23239.     Interface (POSIX) Part 1               definition of  ... 13
  23240.      ... 68                             POSIX.0  ... 11, 13, 258, 277, 301
  23241.  POSC  ... 314                          POSIX.10  ... 259, 264-267
  23242.  POSI: Promoting Conference for OSI     POSIX.11 POSIX Transaction
  23243.      ... 314                               Processing  ... 194
  23244.  POSI  ... 308, 310, 312, 314-315       POSIX.11  ... 185, 193-194, 259,
  23245.  POSIX Network Standards Efforts           264
  23246.      ... 83                             POSIX.13  ... 259, 264, 269
  23247.  POSIX Open System Environment -        POSIX.14  ... 260, 263-265
  23248.     General Requirements  ... 16        POSIX.15  ... 264, 267
  23249.  POSIX Open System Environment          POSIX.18  ... 260-263
  23250.     (POSIX OSE)                         POSIX.1  ... 27, 30-31, 44, 70,
  23251.     definition of  ... 10                  104, 140, 180-181, 194, 232,
  23252.  POSIX Open System Environment             249-251, 261-262, 264, 266-267,
  23253.     Profiles  ... 32                       269-270, 274, 276, 301, 303,
  23254.  POSIX Open System Environment             313, 318
  23255.     Reference Model  ... 19             POSIX.2  ... 6, 43, 140, 169,
  23256.  POSIX Open System Environment             179-182, 250, 262, 264, 266,
  23257.     Services  ... 28, 39                   276
  23258.  POSIX Open System Environment          POSIX.3  ... 6
  23259.     Standards  ... 29                   POSIX.4  ... 181, 194, 259, 264,
  23260.  POSIX OSE Cross-Category Services         266, 268-270
  23261.      ... 181, 207                       POSIX.5  ... 264
  23262.     definition of  ... 10               POSIX.6  ... 233, 264, 266
  23263.  POSIX OSE Database Services            POSIX.7  ... 264, 266
  23264.     Reference Model  ... 104            POSIX.8  ... 123, 194, 266
  23265.  POSIX OSE Network Services             POSIX.9  ... 264
  23266.     Reference Model  ... 78             POSIX
  23267.  POSIX OSE Reference Model (with           definition of  ... 6
  23268.     Transaction Processing)             POSIX._n
  23269.      ... 186                               definition of  ... 13
  23270.  POSIX OSE System Services              POSIX-OSE  ... 17
  23271.     Reference Model  ... 53             POSIX Database Reference Model
  23272.  POSIX OSE-Based Distributed                ... 106
  23273.     Systems  ... 27                     POSIX Networking Reference Model
  23274.  POSIX Platform Environment Profile         ... 78
  23275.     (PEP)  ... 261                      POSIX Open System Environment
  23276.  POSIX Security Interfaces  ... 232         ... 15
  23277.  POSIX SP Procedures and Rules          POSIX OSE Graphics Service
  23278.      ... 279                               Reference Model Standards
  23279.  POSIX SP Profiling Efforts                 ... 156
  23280.      ... 261                            POSIX OSE Graphics Service
  23281.  POSIX Standardized Profile (POSIX         Reference Model  ... 150
  23282.     SP)                                 POSIX OSE Reference Model -
  23283.     definition of  ... 11                  Distributed Systems  ... 28
  23284.  POSIX Standardized Profiles In-        POSIX OSE Reference Model -
  23285.     Progress  ... 261                      Entities  ... 22
  23286.  
  23287.  
  23288.  
  23289.                Copyright c 1991 IEEE.  All rights reserved.
  23290.       This is an unapproved IEEE Standards Draft, subject to change.
  23291.  
  23292.  
  23293.  
  23294.  
  23295.  
  23296.  334                                              Alphabetic Topical Index
  23297.  
  23298.  
  23299.  
  23300.  
  23301.  
  23302.                                                                P1003.0/D13
  23303.  
  23304.  POSIX OSE Reference Model -            R
  23305.     Interfaces  ... 24
  23306.  POSIX OSE Reference Model for          RACE  ... 315
  23307.     Command Interfaces  ... 174         RARE/COSINE  ... 310
  23308.  POSIX OSE Reference Model  ... 20      RDA  ... 110, 112-113, 308,
  23309.  POSIX OSE Transaction Processing          315-316
  23310.     Reference Model  ... 187            Real World Considerations  ... 187
  23311.  POSIX SPs In Progress  ... 262         Realtime Application Profiles
  23312.  Preliminary Elements  ... 282              ... 268
  23313.  Presentation Management  ... 132       Realtime Files  ... 63
  23314.  Prevention of Data Compromise          Realtime Metrics  ... 55, 57
  23315.      ... 73                             Reconfiguration  ... 247
  23316.  Prevention of Service Denial           Redirection  ... 36
  23317.      ... 73                             redirection
  23318.  Prevention of Unauthorized Access         definition of  ... 11
  23319.      ... 73                             Reference Model Entities and
  23320.  Primitive Attributes  ... 152             Elements  ... 21
  23321.  Principles  ... 279                    Reference Model Interfaces  ... 24
  23322.  Print Output and Distribution          Reference Model  ... 43, 53, 104,
  23323.     Services  ... 237                      118, 127, 147, 167, 174, 185,
  23324.  process ID  ... 69                        199, 211, 231, 236
  23325.  Process Management Services            reference model
  23326.      ... 58                                definition of  ... 11
  23327.  process                                Regional Standards  ... 50, 70,
  23328.     definition of  ... 11                  122, 193, 203, 223, 225
  23329.  Processor Configuration Management     regular expression  ... 176
  23330.      ... 240                            Related Documents in the POSIX OSE
  23331.  Profile Concepts  ... 250                  ... 234
  23332.  Profile Objectives  ... 255            Related Service Requirements
  23333.  profile                                    ... 169
  23334.     definition of  ... 11               Related Standards in the POSIX OSE
  23335.  Profiles  ... 249                          ... 233
  23336.  programming language API  ... 26       Related Standards  ... 50, 74,
  23337.     definition of  ... 11                  114, 124, 142, 163, 171, 181,
  23338.  Prolog  ... 45, 48, 50                    195, 205, 226, 234, 243
  23339.  PROLOG  ... 48                         Relationship Between the OSI
  23340.  protocol (OSI)                            Reference Model and the POSIX
  23341.     definition of  ... 11                  OSE Network Reference Model
  23342.  PSE  ... 197                               ... 81
  23343.  Public Specifications  ... 71, 181     Relationship of ISO and POSIX OSE
  23344.  public specifications                     Network Reference Models
  23345.     definition of  ... 11                   ... 83
  23346.  Purpose of Profiles  ... 253           Relationship to Base Standards
  23347.  PVT  ... 158                               ... 254
  23348.                                         Relationships Between This Guide
  23349.                                            and Profiles  ... 251
  23350.                                         Remote Data Access (RDA) Protocol
  23351.                                             ... 112
  23352.  
  23353.  
  23354.  
  23355.                Copyright c 1991 IEEE.  All rights reserved.
  23356.       This is an unapproved IEEE Standards Draft, subject to change.
  23357.  
  23358.  
  23359.  
  23360.  
  23361.  
  23362.  Alphabetic Topical Index                                              335
  23363.  
  23364.  
  23365.  
  23366.  
  23367.  
  23368.  P1003.0/D13
  23369.  
  23370.  Remote Procedure Call  ... 195         SC4  ... 140-141, 164
  23371.  Requirements  ... 284                  SC6  ... 298
  23372.  Resource Management Services           SC7  ... 298
  23373.      ... 66                             scaleability
  23374.  RFC-1034  ... 97                          definition of  ... 11
  23375.  RFC-1098  ... 100                      SCC  ... 301
  23376.  RFC-1129  ... 97                       SC&D  ... 236-237
  23377.  RFC-1194  ... 97                       Scope and Number of POSIX SPs
  23378.  RFC  ... 83                                ... 278
  23379.  RFT  ... 313                           Scope  ... 1, 43, 53, 77, 104,
  23380.  RG1  ... 319                              117, 126, 146, 167, 173, 184,
  23381.  RIG  ... 311, 317                         198, 210, 230, 235, 249, 273,
  23382.  RJG  ... 188, 191, 194, 273, 279          283
  23383.  Role of POSIX SPs  ... 274             Screen Management  ... 134
  23384.  Routing and Relay Services  ... 94     SDE  ... 197-199
  23385.  RPC Services  ... 90                   Security Administration  ... 73
  23386.  RPC  ... 88-90, 97, 186, 189, 194,     Security Management  ... 243
  23387.     266, 268                            Security  ... 114, 141, 170
  23388.  Rules for Drafting and                 security
  23389.     Presentation of POSIX SPs              definition of  ... 12
  23390.      ... 281                            Selected Major Standards and
  23391.                                            Standards-Influencing Bodies
  23392.                                             ... 292
  23393.  S                                      Selection Precedence  ... 31
  23394.                                         Server Connection Management
  23395.  SAA  ... 170                               ... 135
  23396.  SAA  ... 170                           Service Components and Interfaces
  23397.  SAG  ... 97                                ... 33
  23398.  SC11  ... 298                          Service Delivery Latency  ... 55
  23399.  SC13  ... 298                          service delivery latency
  23400.  SC14  ... 298                             definition of  ... 12
  23401.  SC15  ... 298                          Service Request Latency  ... 55
  23402.  SC17  ... 298                          service request latency
  23403.  SC18  ... 140, 165, 299                   definition of  ... 12
  23404.  SC1  ... 298                           Service Requirements  ... 44, 56,
  23405.  SC20  ... 299                             86, 107, 119, 130, 151, 167,
  23406.  SC21  ... 113, 185, 194, 233, 299         175, 188, 211, 231, 236
  23407.  SC22  ... 298-299                      Services Provided at the TM/TPRM
  23408.  SC23  ... 298                             SII  ... 191
  23409.  SC24  ... 299                          Services Provided by the
  23410.  SC25  ... 299                             Application Platform at the EEI
  23411.  SC26  ... 299                              ... 95
  23412.  SC27  ... 299                          Services Requirements  ... 200
  23413.  SC28  ... 298                          session  ... 66, 138, 219, 241
  23414.  SC29  ... 165                          _s_e_t_l_o_c_a_l_e()  ... 69
  23415.  SC2  ... 299                           SGFS (Special Group on Functional
  23416.  SC47B  ... 297                            Standardization)  ... 299
  23417.  
  23418.  
  23419.  
  23420.  
  23421.                Copyright c 1991 IEEE.  All rights reserved.
  23422.       This is an unapproved IEEE Standards Draft, subject to change.
  23423.  
  23424.  
  23425.  
  23426.  
  23427.  
  23428.  336                                              Alphabetic Topical Index
  23429.  
  23430.  
  23431.  
  23432.  
  23433.  
  23434.                                                                P1003.0/D13
  23435.  
  23436.  SGFS  ... 253, 299                     SQL Standard Database Language
  23437.  SGML  ... 121-122, 164                     ... 111, 196
  23438.  Shell and Utilities Standards          SQL  ... 106, 110-113, 194, 196,
  23439.     Activities  ... 179                    251, 268, 303, 308, 315-316
  23440.  shell  ... 43, 142, 173-174, 179-      SSP  ... 230-231
  23441.     180, 262, 264, 266, 268             Standard for the Exchange of
  23442.  should                                    Product Model Data (STEP)
  23443.     definition of  ... 6                    ... 122
  23444.  SII                                    Standard Generalized Markup
  23445.     definition of  ... 14                  Language (SGML)  ... 122
  23446.  SII  ... 12, 14, 34, 185, 187-188,     standardized profile
  23447.     191, 194                               definition of  ... 12
  23448.  Simple Network Services  ... 90        Standards and Specifications
  23449.  SIRS  ... 99                              outside the POSIX OSE  ... 50
  23450.  SLA  ... 239                           Standards and Specifications
  23451.  SMB  ... 97                               Outside the POSIX OSE  ... 123,
  23452.  SMC  ... 304                              204, 225
  23453.  SMTP  ... 97                           Standards Infrastructure
  23454.  SNI  ... 84, 86                           Description  ... 289
  23455.  SNMP  ... 100                          standards
  23456.  Software Development Environments         definition of  ... 12
  23457.      ... 197                            Standards/Specifications Outside
  23458.  Software Development Model                the POSIX OSE  ... 72, 170, 194
  23459.      ... 199                            Status of System Components
  23460.  Software Development Reference             ... 247
  23461.     Model  ... 200                      STD  ... 234
  23462.  Software Development Resource          STEP  ... 121-122, 164
  23463.     Management Services  ... 201        STET  ... 315
  23464.  Software Development Standards         Storage/Archiving  ... 153
  23465.     Activities  ... 202                 Structure of Documentation for
  23466.  Software Documentation  ... 203           POSIX SPs  ... 279
  23467.  Software Installation and              Subdivision  ... 35
  23468.     Distribution  ... 236               Supercomputing  ... 265
  23469.  Software Safety  ... 246               Supplementary Elements  ... 284
  23470.  software                               SVID  ... 72
  23471.     definition of  ... 12               SVID  ... 67, 72, 75, 179, 181,
  23472.  SPAG: Standards Promotion and             288, 318
  23473.     Application Group  ... 315          System Administration  ... 67
  23474.  SPAG-CCT  ... 315                      System Internal Interface (SII)
  23475.  SPAG  ... 308, 310, 312, 314-315          definition of  ... 12
  23476.  SPARC  ... 304                         System Operator Services  ... 66
  23477.  SPC  ... 304                           System Security Services  ... 229
  23478.  Special Rules for POSIX SPs            System Services API  ... 26
  23479.      ... 275                               definition of  ... 13
  23480.  specification                          System Services Reference Model
  23481.     definition of  ... 12                   ... 54
  23482.  SQL Access Group  ... 315              System Services Standards
  23483.                                            Activities  ... 67
  23484.  
  23485.  
  23486.  
  23487.                Copyright c 1991 IEEE.  All rights reserved.
  23488.       This is an unapproved IEEE Standards Draft, subject to change.
  23489.  
  23490.  
  23491.  
  23492.  
  23493.  
  23494.  Alphabetic Topical Index                                              337
  23495.  
  23496.  
  23497.  
  23498.  
  23499.  
  23500.  P1003.0/D13
  23501.  
  23502.  System Services  ... 53                TFA  ... 97
  23503.  system services                        Time Services  ... 64
  23504.     definition of  ... 12               Title  ... 282
  23505.  system software                        TM/TPRM  ... 185, 187-188, 191-
  23506.     definition of  ... 13                  192, 194
  23507.  System V  ... 68, 70, 72, 97, 139,     TOC  ... 1, 5, 15, 39, 207, 249,
  23508.     179, 181, 288, 313, 316, 318           261, 289, 321
  23509.  Systems Integration Interface          Toolkit Window Services  ... 135
  23510.     Requirements  ... 171               TOP  ... 259, 308, 311
  23511.                                         TPC-A  ... 103
  23512.                                         TPRM  ... 185-186, 194
  23513.  T                                      TR 10000  ... 253
  23514.                                         Traditional Database Model
  23515.  T1  ... 303                                ... 105
  23516.  T.61  ... 223                          Training  ... 171
  23517.  TAG  ... 304                           transaction application program
  23518.  Task Management Services  ... 60          definition of  ... 13
  23519.  TBD  ... 153, 155, 294, 306, 312,      Transaction Manager API  ... 185
  23520.     315-316, 318                        Transaction Processing Services
  23521.  TC130  ... 164                             ... 183
  23522.  TC159  ... 140-141                     Transaction Processing Standards
  23523.  TC184  ... 164                            Activities  ... 192
  23524.  TC22  ... 113, 299                     Transaction Processing Standards
  23525.  TC33  ... 204                             Language Bindings  ... 193
  23526.  TC47B  ... 299                         Transaction Processing  ... 267
  23527.  TC83  ... 299                          transaction
  23528.  TC86  ... 299                             definition of  ... 13
  23529.  TC97  ... 113, 297                     Types of Access Methods  ... 107
  23530.  TCOS-SEC  ... 278                      Types of Data Objects  ... 107
  23531.  TCOS-SSC  ... 273, 288                 Types of Database Management
  23532.  TCP/IP  ... 77, 83-84, 86, 94, 97,        Systems  ... 107
  23533.     163, 266, 268                       Types of Profiles  ... 259
  23534.  TCP  ... 100
  23535.  TE9  ... 234
  23536.  Technical Normative Elements           U
  23537.      ... 283
  23538.  Technical Security Objectives          UCA  ... 308
  23539.      ... 231                            undefined  ... 281
  23540.  terminal  ... 13, 61, 68-69, 73,       Universe of Profiles and Standards
  23541.     95, 97, 125-126, 128, 139, 141,         ... 274
  23542.     167-170, 177-179, 184, 189,         UNIX International  ... 316
  23543.     192, 195, 234, 242, 287, 298,       UNIX  ... 46, 68, 174, 179-182,
  23544.     310                                    233, 260-262, 265-266, 288,
  23545.  Terminology and General                   308, 313, 316-317
  23546.     Requirements  ... 5                 Unsatisfied Service Requirements
  23547.  Terminology  ... 5                         ... 50, 72, 123, 195, 204
  23548.  terms  ... 7                           Unsatisfied  ... 225
  23549.  
  23550.  
  23551.  
  23552.  
  23553.                Copyright c 1991 IEEE.  All rights reserved.
  23554.       This is an unapproved IEEE Standards Draft, subject to change.
  23555.  
  23556.  
  23557.  
  23558.  
  23559.  
  23560.  338                                              Alphabetic Topical Index
  23561.  
  23562.  
  23563.  
  23564.  
  23565.  
  23566.                                                                P1003.0/D13
  23567.  
  23568.  unspecified  ... 254                   Windowing System Services  ... 125
  23569.  UPE  ... 179                           WINDOWS-3  ... 225
  23570.  USA  ... 301, 308
  23571.  User Alliance for Open Systems
  23572.      ... 317                            X
  23573.  User Command Interface Services
  23574.      ... 173                            X Window System  ... 139
  23575.  User Interface EEI Elements            X.12  ... 121-122
  23576.      ... 80                             X.212  ... 287
  23577.  User Interface Management Systems      X.25  ... 94, 97, 287
  23578.     (UIMS)  ... 137                     X3  ... 304
  23579.  user interface  ... 125                X.400 API Association  ... 317
  23580.  User Preferences Management            X.400  ... 99, 317
  23581.      ... 135                            X.500  ... 86, 97
  23582.  USI-P001  ... 262                      X.509  ... 234
  23583.  USL  ... 316                           XIII  ... 309
  23584.  U.S  ... 70                            XLIB  ... 163
  23585.  USTAR  ... 69                          X/Open TP  ... 195
  23586.  UUCP  ... 182                          X/Open  ... 75, 318
  23587.  UUCP  ... 94, 100, 181-182             X/Open  ... 75, 97, 100, 179, 181,
  23588.                                            194-195, 229, 258, 268, 288,
  23589.                                            313, 316-319
  23590.  V                                      X/PEX  ... 149
  23591.                                         XPG3  ... 75, 181
  23592.  Validation  ... 256                    XPG  ... 75, 179
  23593.  validation                             XTI  ... 97
  23594.     definition of  ... 13               XTP  ... 97
  23595.  VDI  ... 160
  23596.  VHDL  ... 121, 123
  23597.  VHSIC  ... 121, 123
  23598.  VMUIF  ... 140
  23599.  
  23600.  
  23601.  W
  23602.  
  23603.  _w_a_i_t()  ... 69
  23604.  WAN  ... 95
  23605.  WG15  ... 299
  23606.  WG19  ... 140
  23607.  WG1  ... 233
  23608.  WG3  ... 113
  23609.  WG5  ... 140-141, 194
  23610.  Window Management  ... 132
  23611.  Windowing Reference Model  ... 127
  23612.  Windowing Resource Management
  23613.     Services  ... 139
  23614.  Windowing Standards  ... 140
  23615.  
  23616.  
  23617.  
  23618.  
  23619.                Copyright c 1991 IEEE.  All rights reserved.
  23620.       This is an unapproved IEEE Standards Draft, subject to change.
  23621.  
  23622.  
  23623.  
  23624.  
  23625.  
  23626.  Alphabetic Topical Index                                              339
  23627.  
  23628.  
  23629.  
  23630.  
  23631.  
  23632.  P1003.0/D13
  23633.  
  23634.                               Acknowledgments
  23635.  
  23636.  We wish to thank the following organizations for donating significant
  23637.  computer, printing, and editing resources to the production of this
  23638.  standard:  the X/Open Company, Ltd.
  23639.  
  23640.  Also we wish to thank the organizations employing the members of the
  23641.  Working Group and the Balloting Group for both covering the expenses
  23642.  related to attending and participating in meetings, and donating the time
  23643.  required both in and out of meetings for this effort.
  23644.  
  23645.  _E_d_i_t_o_r'_s _N_o_t_e:  _T_h_i_s _l_i_s_t _s_h_o_u_l_d _b_e _t_h_e _u_n_i_o_n _o_f _t_h_e _c_o_m_p_a_n_i_e_s _s_p_o_n_s_o_r_i_n_g
  23646.  _W_o_r_k_i_n_g _G_r_o_u_p _a_t_t_e_n_d_e_e_s _a_n_d _B_a_l_l_o_t_i_n_g _G_r_o_u_p _m_e_m_b_e_r_s.  _I_t _w_i_l_l _a_p_p_e_a_r
  23647.  _a_f_t_e_r _b_a_l_l_o_t_i_n_g _b_e_g_i_n_s.
  23648.  
  23649.                     <_t_o _b_e _p_r_o_v_i_d_e_d>   <_t_o _b_e _p_r_o_v_i_d_e_d>
  23650.  
  23651.  In the preceding list, the organizations marked with an asterisk (*) have
  23652.  hosted 1003 Working Group meetings since the group's inception in 1985,
  23653.  providing useful logistical support for the ongoing work of the
  23654.  committees.
  23655.  
  23656.  
  23657.  
  23658.  
  23659.  
  23660.  
  23661.  
  23662.  
  23663.  
  23664.  
  23665.  
  23666.  
  23667.  
  23668.  
  23669.  
  23670.  
  23671.  
  23672.  
  23673.  
  23674.  
  23675.  
  23676.  
  23677.  
  23678.  
  23679.  
  23680.  
  23681.  
  23682.  
  23683.  
  23684.  
  23685.  
  23686.  
  23687.  
  23688.  
  23689.  
  23690.  
  23691.  
  23692.  340
  23693.  
  23694.  
  23695.