home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lasysapi.zip / SIMPMAST.INF (.txt)
OS/2 Help File  |  1995-04-20  |  291KB  |  4,844 lines

  1.  
  2. ΓòÉΓòÉΓòÉ <hidden> Unformatted Text ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5. ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
  6.  
  7. References in this publication to IBM products, programs, or services do not 
  8. imply that IBM intends to make these available in all countries in which IBM 
  9. operates.  Any reference to an IBM product, program, or service is not intended 
  10. to state or imply that only IBM's product, program, or service may be used. 
  11. Any functionally equivalent product, program, or service that does not infringe 
  12. any of IBM's intellectual property rights or other legally protectable rights 
  13. may be used instead of the IBM product, program, or service.  Evaluation and 
  14. verification of operation in conjunction with other products, programs, or 
  15. services, except those expressly designated by IBM, are the user's 
  16. responsibility. 
  17.  
  18. IBM may have patents or pending patent applications covering subject matter in 
  19. this document.  The furnishing of this document does not give you any rights to 
  20. these patents.  You can inquire, in writing, to the IBM Director of Licensing 
  21. Services, IBM Corporation, 500 Columbus Avenue, Thornwood, NY  10594 - U.S.A. 
  22.  
  23.  
  24. ΓòÉΓòÉΓòÉ 1.1. Trademarks ΓòÉΓòÉΓòÉ
  25.  
  26. The following terms, referenced in this document, are trademarks of the IBM 
  27. Corporation in the United States, other countries, or both: 
  28.  
  29. AIX 
  30. AIX/6000 
  31. AIXwindows 
  32. Anynet 
  33. Anynet/2 
  34. BookManager 
  35. BookMaster 
  36. C Set++ 
  37. C Set/2 
  38. CD Showcase 
  39. CICS 
  40. CM/2 
  41. Common User Access 
  42. CPI-C 
  43. CUA 
  44. DB/2 
  45. DDE 
  46. Direct to SOM 
  47. FFST/2 
  48. FlowMark 
  49. IBM 
  50. iFOR/LS 
  51. InfoExplorer 
  52. IPF 
  53. IPF/X 
  54. IPF/Win 
  55. LAD/2 
  56. LAN NetView 
  57. LAN NetView Monitor 
  58. MQSeries 
  59. NetSP 
  60. NetViewDM/2 
  61. NetView/6000 
  62. NetViewDM/6000 
  63. Operating System/2 
  64. OS/2 
  65. Person-to-Person/2 
  66. Presentation Manager 
  67. PS/2 
  68. RISC System/6000 
  69. SNA 
  70. SOM 
  71. SOMobjects 
  72. SPM/2 
  73. SQL 
  74. System Object Model 
  75. Time and Place/2 
  76. Workplace Shell 
  77.  
  78. The following terms, referenced inthis document, are trademarks of other 
  79. companies as follows: 
  80.  
  81. Trademarked Terms:             Trademark Owner: 
  82. ArborText                      ArborText, Inc. 
  83. ATT                            American Telephone  Telegraph Company 
  84. Borland C++                    Borland International, Inc. 
  85. CorelDraw!                     Corel 
  86. DCE                            Open Software Foundation, Inc. 
  87. DEC                            Digital Equipment Corporation 
  88. DOS                            Microsoft Corporation 
  89. Encina                         Transarc Corporation 
  90. HP                             Hewlett-Packard Company 
  91. InterLeaf                      Interleaf, Inc. 
  92. Kerberos                       Massachusetts Institute of Technology 
  93. Macintosh                      Apple Computer, Inc. 
  94. Motif                          Open Software Foundation, Inc. 
  95. NetLS                          Hewlett-Packard Company 
  96. Network Computing System (NCS) Hewlett-Packard Company 
  97. Netware                        Novell, Inc. 
  98. Network File System (NFS)      Sun Microsystems, Inc. 
  99. OLE                            Microsoft Corporation 
  100. Open Software Foundation (OSF) Open Software Foundation, Inc. 
  101. Open Network Computing         Sun Microsystems, Inc. 
  102. OSF/DCE                        Open Software Foundation, Inc. 
  103. OSF/Motif                      Open Software Foundation, Inc. 
  104. OpenVision                     OpenDoc 
  105. Component Integration Laboratories Hewlett-Packard Company 
  106. Palladium                      Massachusetts Institute of Technology 
  107. POSIX                          Institute of Electrical and Electronics 
  108.                                Engineers, Inc. (IEEE) 
  109. PostScript                     Adobe Systems, Inc. 
  110. RPC                            Sun Microsystems, Inc. 
  111. RTF                            Microsoft Corporation 
  112. SGML                           ISO Standard 
  113. SoftQuad Author/Editor         SoftQuad, Inc. 
  114. SunSoft (Sun)                  Sun Microsystems, Inc. 
  115. Taligent                       Taligent 
  116. UNIX                           UNIX System Laboratories, Inc. 
  117. Windows                        Microsoft Corporation 
  118. X/Open                         X/Open Company Limited, U.K. 
  119.  
  120.  
  121. ΓòÉΓòÉΓòÉ 2. Preface ΓòÉΓòÉΓòÉ
  122.  
  123. Why the Focus on LAN Systems? 
  124.  
  125. What This Roadmap Covers 
  126.  
  127. What Are the Guidelines For? 
  128.  
  129.  
  130. ΓòÉΓòÉΓòÉ 2.1. Why the Focus on LAN Systems? ΓòÉΓòÉΓòÉ
  131.  
  132. The personal computer has enhanced the way people communicate and the way in 
  133. which they work. Originally, local area networks (LANs) provided a way for a 
  134. group of people who were located together to share resources and communicate. 
  135. As PC's became faster and their capacity grew, new applications capitalized on 
  136. the LAN's communications capabilities, that were also becoming faster and more 
  137. capable. People wanted applications that could send mail, share files, access 
  138. centralized databases, and use expensive output devices. Communication is now 
  139. with people both down the hall and around the world. Technology now enables LAN 
  140. systems to meet any geographic requirement and can support computers attached 
  141. remotely or only occasionally, for mobile computers. The LAN system of today 
  142. encompasses different operating systems, a wide variety of applications, 
  143. sophisticated communications, and large numbers of users. It requires the 
  144. management, administration, and reliability that are appropriate for this 
  145. sophistication and complexity. 
  146.  
  147. The strategy for IBM LAN systems is to simplify these complex environments from 
  148. the application developer's perspective by treating the LAN as a system. This 
  149. manageable LAN environment serves as the platform for a new generation of 
  150. distributed applications.  Backing up this strategy is IBM's commitment to 
  151. adhere to an Open Blueprint that addresses the challenges of the distributed 
  152. computing environment.  This approach enables the development, execution, and 
  153. management of distributed, client/server applications work together in an 
  154. integrated fashion in today's heterogeneous, multivendor environment. 
  155.  
  156. Today's IBM LAN systems products are designed to provide a single system image 
  157. of the network, giving users access to the information they need, regardless of 
  158. where that information is located.  At the same time, the products insulate 
  159. application developers and administrators from the complexities of the network: 
  160. including connections, protocols, service providers, and hardware. 
  161.  
  162. o   From a user's perspective, this means that the user logs in once and 
  163.     accesses resources anywhere in the network (given the appropriate 
  164.     authorization) without needing to know where a given resource resides.  The 
  165.     resources in the network are represented as seamless extensions to their 
  166.     local resources and are manipulated the same way. 
  167.  
  168. o   From an administrator's perspective, administrative tasks within the 
  169.     network can be performed by modifying the contents of the distributed 
  170.     directory or security servers rather than administering the user and 
  171.     resource on each server separately. In addition, administration can be 
  172.     performed from anywhere in the network. 
  173.  
  174. o   From an application developer's perspective, the same programming 
  175.     interfaces are available from anywhere in the network to enable application 
  176.     portability among heterogeneous machines. 
  177.  
  178.  
  179. ΓòÉΓòÉΓòÉ 2.2. What This Roadmap Covers ΓòÉΓòÉΓòÉ
  180.  
  181. Today's IBM LAN systems products provide a wide array of functionality to solve 
  182. your business need: 
  183.  
  184. o   OS/2 provides reliable client software that supports multiple hardware and 
  185.     software environments. 
  186. o   AIX/6000 provides workstations access to data across heterogeneous systems 
  187.     including LANs, minicomputers, and mainframe hosts. 
  188. o   OS/2 LAN Server transforms OS/2 into a full-fledged Network Operating 
  189.     System. 
  190. o   Network Transport Services/2 and the AnyNet product family provide 
  191.     connection flexibility. 
  192. o   Advanced Server for Workgroups, Lotus Notes, and Lotus cc:Mail support 
  193.     workgroup computing. 
  194. o   LAN Distance lets you bring your LAN on the road. 
  195. o   Communications Manager/2 provides an "all-in-one" subsystem for 
  196.     communcating among networks. 
  197. o   The DB2 product family, the Distributed Database Connection Services 
  198.     product family, the LAN Resource Extension Services for VM and MVS, and LAN 
  199.     Server for VM and VMS provide easy access to host data. 
  200. o   The LAN Netview product family provides comprehensive system management. 
  201. o   The Distributed Computing Environment (DCE) and the System Object Model 
  202.     (SOM) extend today's products to the distributed objects of the future. 
  203.  
  204. Together, the LAN Systems APIs allow an application developer to take advantage 
  205. of and manage every aspect of the single system image provided by the LAN 
  206. Systems products.  In this roadmap, the LAN Systems API implementation 
  207. guidelines are categorized by the functionality they provide: 
  208.  
  209. Base Operating System APIs are generally specific to the local operating system 
  210. and manage resources that are not distributed.  However, a few guidelines are 
  211. appropriate to ensure application portability, network- wide time 
  212. synchronization and internationalization. 
  213.  
  214. Security APIs provide for user registration, mutual authentication of clients 
  215. and servers, access control restrictions and auditing of security-related 
  216. events. Guidelines ensure you can take advantage of the security single system 
  217. image. 
  218.  
  219. Interprocess Communication (IPC) APIs provide mechanisms for parts of a 
  220. distributed application or resource manager to talke to each other.  Guidelines 
  221. help you determine the best communication mechanism for your application needs. 
  222.  
  223. Inter-Application Collaboration (IAC) for Compound Documents provides for 
  224. interapplication collaboration. 
  225.  
  226. Tranport APIs provide reliable end-to-end communications across Wide Area 
  227. Networks (WANs) and Local Area Networks (LANs) across various protocols, such 
  228. as NetBIOS, TCP/IP, IPX/SPX, etc. Guidelines let you take advantage of 
  229. transport independent APIs. 
  230.  
  231. System Management APIs provide a way to manage both local and remote systems. 
  232. Guidelines ensure you can take advantage of the key features of system 
  233. management, such as RAS, software management, license management, performance 
  234. monitoring, and remote system management. 
  235.  
  236. Extended Operating System APIs provide functionality that extend base operating 
  237. system specific functions across a network, such as printing or provide 
  238. additional functionality in a network environment, such as mail. Guidelines 
  239. ensure you can take advantage of the single system image. 
  240.  
  241. Development Tool Delivery  outlines the development tool delivery strategy and 
  242. mechanism using The Developer Connection for LAN Systems. 
  243.  
  244. Customer Information  provides guidelines for design and content of customer 
  245. information and associated tools that can be used. 
  246.  
  247. Usability provides guidelines for application installation, configuration, and 
  248. user interface. 
  249.  
  250. Note:  For more information about specific APIs or IBM's API strategy, see the 
  251. LAN Systems API Roadmap on The Developer Connection for LAN Systems CD-ROM. 
  252.  
  253.  
  254. ΓòÉΓòÉΓòÉ 2.3. What Are the Guidelines For? ΓòÉΓòÉΓòÉ
  255.  
  256. These guidelines outline the best route to take advantage of the LAN as a 
  257. system when designing applications.  Use of the guidelines will help you to 
  258. make the underlying distributed services transparent to your users and 
  259. administrators, ensure your application integrates easily into this complex 
  260. environment, ensure application portability across platforms, and better 
  261. prepare your application for future technology developments. 
  262.  
  263.  
  264. ΓòÉΓòÉΓòÉ 3. Base Operating System ΓòÉΓòÉΓòÉ
  265.  
  266. Application Portability 
  267.  
  268. Time 
  269.  
  270. Internationalization (I18N) 
  271.  
  272.  
  273. ΓòÉΓòÉΓòÉ 3.1. Application Portability ΓòÉΓòÉΓòÉ
  274.  
  275. The goal of application portability is to minimize additional work for 
  276. application developers as the environment in which those applications run 
  277. evolves. Application portability comes in two types:  (1) source compatibility, 
  278. and (2) binary compatibility.  Source compatibility means that the source code 
  279. is generally portable across multiple operating systems with little or no 
  280. change; i.e. only re-compilation, re-linking, re-building types of activity. 
  281. Binary compatibility means that the current application binary code can run 
  282. as-is on multiple versions of an operating system. 
  283.  
  284.  
  285. ΓòÉΓòÉΓòÉ 3.1.1. Operating System Services ΓòÉΓòÉΓòÉ
  286.  
  287. Writing applications involves not only the use of APIs defined in this roadmap, 
  288. but the use of operating system services and interfaces as well. Use of 
  289. standard operating system services and interfaces increases portability of 
  290. applications. These operating system services and interfaces can be specific to 
  291. that operating system or a class of operating systems.  A class of operating 
  292. systems, for example, could be the set of DOS, Windows, and OS/2. Unix-based 
  293. operating systems such as AIX, HP/UX, Solaris, and OSF/1 are another class of 
  294. operating systems. Operating systems can also provide their services and 
  295. interfaces based on well-recognized international standards. An example of a 
  296. set of system services and interfaces specific to an operating system would be 
  297. the OS/2 threads for the OS/2 operating system. Examples of well-recognized 
  298. international standards for system services and interfaces independent of 
  299. operating system are POSIX 1003.1 for system services and interfaces (except 
  300. for process model) and POSIX 1003.4a for threads. 
  301.  
  302.  
  303. ΓòÉΓòÉΓòÉ 3.1.2. Standards ΓòÉΓòÉΓòÉ
  304.  
  305. Standards can aid the application developer in application portability. A 
  306. standard may be anything which has sufficiently widespread industry acceptance. 
  307. Standards can be viewed in two forms: 
  308.  
  309. o   formal standards created by standards organizations 
  310.  
  311. o   accepted industry standards created by the marketplace (e.g. companies and 
  312.     consortiums) 
  313.  
  314. Both types of standards are recommended in this document.  Examples of formal 
  315. standards are the POSIX system services and interfaces from IEEE (Institute of 
  316. Electrical and Electronic Engineers) and the DCE (Distributed Computing 
  317. Environment) from X/Open.  Examples of accepted industry standards are the DOS 
  318. APIs and the LAN Server APIs. 
  319.  
  320.  
  321. ΓòÉΓòÉΓòÉ 3.1.3. Object Management Interfaces and Services ΓòÉΓòÉΓòÉ
  322.  
  323. For an object-oriented programming model, IBM provides the System Object 
  324. Model/Distributed System Object Model (SOM/DSOM). In addition to all the 
  325. benefits of object-oriented programming, like encapsulation, 
  326. multiple-inheritance, and polymorphism, it provides the following to 
  327. application developers: 
  328.  
  329. o   language neutrality 
  330.  
  331. o   dynamic binding 
  332.  
  333. o   location-transparent access to distributed objects 
  334.  
  335. o   persistence, replication, collection, emitter frameworks 
  336.  
  337.  
  338. ΓòÉΓòÉΓòÉ 3.1.3.1. SOM/DSOM ΓòÉΓòÉΓòÉ
  339.  
  340. Distributed SOM is the distributed object programming model and is compliant 
  341. with OMG's CORBA specification for object request brokers.  By using SOM's 
  342. CORBA-compliant IDL (InterfaceDefinition Language), application developers get 
  343. portable interfaces, language-neutrality, and transparent distributed object 
  344. access. DSOM presents the clients with proxy objects of the remote objects, 
  345. which can be used like local objects. DSOM can use existing SOM objects 
  346. transparently. 
  347.  
  348. There are various granularities at which you can apply object-oriented 
  349. techniques. For example, at the SOM-object level, SOM/DSOM addresses the three 
  350. main aspects of object-oriented systems design: 
  351.  
  352. o   object model: identities and structures of objects (SOM objects) 
  353.  
  354. o   dynamic model: interactions among objects (passing message/methods) 
  355.  
  356. o   functional model: transformations inside an object (state transition) 
  357.  
  358.  
  359. ΓòÉΓòÉΓòÉ 3.1.3.2. SOM-based Frameworks ΓòÉΓòÉΓòÉ
  360.  
  361. To exploit this object-oriented paradigm in a more general way, frameworks are 
  362. built to encapsulate the aspects of models and achieve the plug-in capability 
  363. (replaceability) at the component level. Each component can be a single SOM 
  364. object, or more generally, an encapsulated set of SOM objects (may include 
  365. class objects) which: 
  366.  
  367. o   serves as a unit (object model) and 
  368.  
  369. o   with external interfaces, (dynamic model) and 
  370.  
  371. o   with internal interfaces, (functional model). 
  372.  
  373. In a framework, the single component itself may be distributed across the 
  374. network and developers should make sure that the interfaces correctly 
  375. encapsulate the component. Frameworks are usually packaged as sets of (dynamic 
  376. or static) class libraries for particular capabilities, and application classes 
  377. can be derived from them to acquire the behavior through (multiple) 
  378. inheritance. The following SOM-based frameworks are available from IBM: 
  379.  
  380. o   Distributed SOM (DSOM). DSOM allows application programs to access SOM 
  381.     objects across address spaces. This transparent access to remote objects is 
  382.     provided through its Object Request Broker (ORB); the location and 
  383.     implementation of the object are hidden from the client and the client 
  384.     accesses the object as if it were local. 
  385.  
  386. o   Interface Repository Framework. The interface repository is a database that 
  387.     can hold all of the information contained in the IDL description of a class 
  388.     of objects. The interface repository framework consists of the 11 classes 
  389.     defined in the CORBA standard for accessing the interface repository. 
  390.  
  391. o   Persistence Framework. The persistence framework is a collection of SOM 
  392.     classes that provide methods for saving objects (either in a file or in a 
  393.     more specialized repository) and later restoring them. This means that the 
  394.     state of an object can be preserved beyond the termination of the process 
  395.     that creates it. 
  396.  
  397. o   Replication Framework. The replication framework is a collection of SOM 
  398.     classes that allows a replica (copy) of an object to exist in multiple 
  399.     address spaces, while maintaining a single-copy image. Updates to any copy 
  400.     are propagated immediately to all other copies. This framework handles 
  401.     locking, synchronization, and update propagation, and guarantees mutual 
  402.     consistency among the replicas. 
  403.  
  404. o   Emitter Framework. The emitter framework is a collection of SOM classes 
  405.     that allows programmers to write their own emitters. Emitter is a general 
  406.     term used to describe a back-end output component of the SOM Compiler. Each 
  407.     emitter takes as input information about an interface and produces output 
  408.     organized in a different format. SOM provides a set of emitters that 
  409.     generate the binding for C and C++ programming (header files and 
  410.     implementation templates). 
  411.  
  412. With SOM, IBM also provides a large group of classes and methods called the 
  413. Collection Classes (sometimes called Foundation Classes).  The purpose of the 
  414. Collection Classes is to contain other objects. These classes can be used in 
  415. client code "as is", or they can be used as the basis for deriving new classes. 
  416.  
  417. To get all of the benefits of the object management interfaces and services, 
  418. application developers should choose programming tools that support SOM/DSOM, 
  419. an example is VisualAge from IBM. IBM also provides the Direct to SOM compiler 
  420. which generates SOM-bindings from C++ code, and SOM's Emitter framework can 
  421. generate bindings from multiple languages. Also, Microsoft-COM emitter for SOM 
  422. is available: application developers building applications on SOM/DSOM can use 
  423. it to achieve SOM-COM interoperability. 
  424.  
  425.  
  426. ΓòÉΓòÉΓòÉ 3.1.3.3. Supported Platforms ΓòÉΓòÉΓòÉ
  427.  
  428. SOM/DSOM will be available on all major IBM platforms and some other industry 
  429. platforms. Today, it is available on AIX/6000, OS/2, and Windows. 
  430.  
  431.  
  432. ΓòÉΓòÉΓòÉ 3.1.4. Application Portability Guidelines ΓòÉΓòÉΓòÉ
  433.  
  434. The following guidelines will help to increase application portability in this 
  435. environment. 
  436.  
  437. 1.  Use the guidelines for each service discussed in this document. 
  438.  
  439. 2.  Use 32-bit APIs; support for 16-bit APIs is diminishing. 
  440.  
  441. 3.  Use the operating system services and interfaces that best meet your 
  442.     application portability environment. 
  443.  
  444.     Portability across classes of operating systems:  use those operating 
  445.     system services and interfaces that are common across classes of operating 
  446.     systems. For example, X/Open Specification 1170 defines APIs that are in 
  447.     wide use across applications and operating systems. 
  448.  
  449.     Portability within a class of operating systems:  use those operating 
  450.     system services and interfaces that are common within that class of 
  451.     operating system. For example, POSIX 1003.1 APIs are common across Unix 
  452.     operating systems. 
  453.  
  454. 4.  Write your application programs in a language portable across operating 
  455.     systems and hardware platforms.  The ANSI C language is one such example. 
  456.     An assembler language is an example of what not to use to write portable 
  457.     applications. 
  458.  
  459. 5.  Use SOM as the object-oriented programming model. 
  460.  
  461.     Application developers should try to use the SOM-based frameworks and 
  462.     classes rather than implementing similar functionality themselves. 
  463.     Application developers are encouraged to write more specialized and 
  464.     modularized component applications that can participate in this 
  465.     collaboration environment. 
  466.  
  467. 6.  Isolate access to system-specific APIs to as few places as possible within 
  468.     your application. 
  469.  
  470.  
  471. ΓòÉΓòÉΓòÉ 3.2. Time ΓòÉΓòÉΓòÉ
  472.  
  473. Time means date, time of day in hours, minutes, and seconds down to some 
  474. granularity that may be less than seconds, timezone, and daylight savings time 
  475. state.  Each operating system generally has its own time API and time service. 
  476. Single system image for time means that each system that participates in 
  477. network-wide clock synchronization sees the same time.  The clock 
  478. synchronization provided by the time service enables distributed computing 
  479. applications to use timestamps for operations such as event sequencing, 
  480. duration, and scheduling. Since a distributed system may span several time 
  481. zones, applications need a standard time representation for calculations and 
  482. should convert to local time only for display purposes. 
  483.  
  484.  
  485. ΓòÉΓòÉΓòÉ 3.2.1. Time Interfaces and Services ΓòÉΓòÉΓòÉ
  486.  
  487. Time-dependent applications in a distributed single system image need access to 
  488. a network-wide synchronized clock.  A number of time services and interfaces 
  489. are available in this environment to assist the programmer in exploiting time 
  490. and timestamps in applications. The figure illustrates the general structure of 
  491. these services. 
  492.  
  493. In the figure, the following terms are associated with the time technical 
  494. model. 
  495.  
  496. Object: clock 
  497.  
  498. Service: time operations 
  499.  
  500. APIs: time service APIs 
  501.  
  502. Service Provider: time service 
  503.  
  504. There are four aspects of the time interface/service from the application 
  505. developer's viewpoint. 
  506.  
  507. o   An application uses the time interface to obtain time. 
  508.  
  509. o   An application may change the timezone information and have the changed 
  510.     timezone information apply to itself. 
  511.  
  512. o   An application uses the time interface to do timestamp operations such as 
  513.     manipulations, conversions, comparisons, and calculations. 
  514.  
  515. o   The customer may choose to add an external time source, such as an atomic 
  516.     clock, in the network and may write a program to do this device to the 
  517.     network time synchronization - the program is written using an external 
  518.     time provider interface. 
  519.  
  520.  
  521. ΓòÉΓòÉΓòÉ 3.2.2. Time Guidelines ΓòÉΓòÉΓòÉ
  522.  
  523. Get Time Information 
  524.  
  525. Convert Time Information 
  526.  
  527. Manipulate Time Information 
  528.  
  529. Set Time Information 
  530.  
  531. Year 2000 Clean 
  532.  
  533. Timestamp Content 
  534.  
  535. Time Presentation 
  536.  
  537.  
  538. ΓòÉΓòÉΓòÉ 3.2.2.1. Get Time Information Guidelines ΓòÉΓòÉΓòÉ
  539.  
  540. Applications use time for a variety of reasons, such as timestamped entries in 
  541. a log file, and hence have a need to obtain time from the system. Getting time 
  542. means getting date, time, timezone information, and daylight savings time 
  543. state.  Some operating systems have operating system specific interfaces for 
  544. obtaining time; others use standard interfaces. Applications that need time 
  545. information that is valid in a network environment should not base timestamps 
  546. on "local system time", but rather on standard timestamps. 
  547.  
  548. 1.  (LAN Server) Use the LAN Server NetRemoteTOD API to obtain time from the 
  549.     domain controller or any LAN server. 
  550.  
  551. 2.  (DCE) Use X/Open DCE APIs to obtain time information.  Applications should 
  552.     use the X/Open DCE:  Time Services Preliminary Specification for these time 
  553.     functions. 
  554.  
  555. 3.  (Other) Use POSIX or X/Open Specification 1170 APIs to obtain time 
  556.     information. 
  557.  
  558.  
  559. ΓòÉΓòÉΓòÉ 3.2.2.2. Convert Time Information Guidelines ΓòÉΓòÉΓòÉ
  560.  
  561. Time is typically returned in a structure and the content and format of that 
  562. structure varies by the interface invoked to obtain time. Interfaces are 
  563. available that convert between these binary timestamps that use different time 
  564. structures.  Examples of available conversions are: 
  565.  
  566. o   between POSIX and DCE binary timestamps (tm struct and utc struct) 
  567. o   between the DCE binary representations (utc struct and timespec struct) 
  568. o   between a binary time stamp and its ASCII representation 
  569.  
  570. 1.  (DCE) The application uses X/Open DCE APIs to convert time information. 
  571.     Applications should use the X/Open DCE: Time Services Preliminary 
  572.     Specification for these time functions. 
  573.  
  574. 2.  (Other) The application uses POSIX or X/Open Specification 1170 APIs to 
  575.     convert time information. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ 3.2.2.3. Manipulate Time Information Guidelines ΓòÉΓòÉΓòÉ
  579.  
  580. These are interfaces that allow an application to compare binary timestamps, do 
  581. calculations between two binary timestamps such as add or subtract, and 
  582. manipulate binary timestamps to establish a time range. 
  583.  
  584. 1.  (DCE) Use X/Open DCE APIs to manipulate time information. Application 
  585.     should use the X/Open DCE:  Time Services Preliminary Specification for 
  586.     these time functions. 
  587.  
  588. 2.  (Other) Use POSIX or X/Open Specification 1170 APIs to mainpulate time 
  589.     information. 
  590.  
  591.  
  592. ΓòÉΓòÉΓòÉ 3.2.2.4. Set Time Information Guidelines ΓòÉΓòÉΓòÉ
  593.  
  594. In general, an application does not have the need to set the time. However, one 
  595. example of this is to change timezone information - the TZ environment variable 
  596. in POSIX and X/Open Specification 1170 and the utc_* interfaces in X/Open DCE 
  597. provide this capability.  The X/Open DCE provides a superset of the POSIX 
  598. timezone rules for more granularity.  Another example is an application that is 
  599. written to add an external time source to the systems network time 
  600. synchronization.  That application is written using the X/Open DCE time 
  601. provider interface. 
  602.  
  603. 1.  (DCE) Use X/Open DCE APIs to set time information.  Applications should use 
  604.     the X/Open DCE:  Time Services Preliminary Specification for these time 
  605.     functions. 
  606.  
  607. 2.  (Other) Use POSIX or X/Open Specification 1170 APIs to set time 
  608.     information. 
  609.  
  610.  
  611. ΓòÉΓòÉΓòÉ 3.2.2.5. Year 2000 Clean Guidelines ΓòÉΓòÉΓòÉ
  612.  
  613. Clean applications which manipulate time outside of supplied interfaces should 
  614. ensure that dates before the year 2000, the year 2000 itself, and after the 
  615. year 2000 are handled correctly. 
  616.  
  617.  
  618. ΓòÉΓòÉΓòÉ 3.2.2.6. Timestamp Content Guidelines ΓòÉΓòÉΓòÉ
  619.  
  620. Timestamps should always contain at least the following information: date, 
  621. time, daylight savings time status, and timezone. 
  622.  
  623.  
  624. ΓòÉΓòÉΓòÉ 3.2.2.7. Time Presentation Guidelines ΓòÉΓòÉΓòÉ
  625.  
  626. Timestamps should be converted to the appropriate time zone and cultural format 
  627. for presentation to users.  XPG/4 APIs are used to accomplish the correct 
  628. presentation.  See Culture-specific Information Guidelines for 
  629. internationalization of the time format presentation. 
  630.  
  631.  
  632. ΓòÉΓòÉΓòÉ 3.3. Internationalization ΓòÉΓòÉΓòÉ
  633.  
  634. Internationalization (commonly abbreviated as I18N) of applications consists of 
  635. the ability to support such things as the characters of the native language 
  636. (for instance, keyboards and presentation), as well as culture-specific 
  637. information (for instance, time and date formats and collation/sorting), and 
  638. user-visible text in the user's native language. 
  639.  
  640. The goal of internationalization is to produce a single worldwide product with 
  641. a single binary image that is usable by a customer who is from any culture and 
  642. who possibly speaks a different language from the language of the application 
  643. developer, possibly in a world-wide context of multiple countries, languages, 
  644. and cultures. 
  645.  
  646. A Worldwide Product includes all character and string handling, as well as 
  647. support for culture-specific formatting such as time and date and for 
  648. culture-sensitive collation. It should be achieved regardless of whether the 
  649. product is ever translated (for example, from English into another language). 
  650.  
  651. The major aspects of internationalization are: 
  652.  
  653. 1.  Code-set independence (CSI) 
  654.  
  655.     Code-set independence means that the application does not rely on knowledge 
  656.     of a specific code set, or on knowledge of how many bytes represent a 
  657.     character. 
  658.  
  659.     Programming the CSI aspect also results in enabling character and string 
  660.     handling for SBCS (single-byte character Set), DBCS (double-byte character 
  661.     set), and MBCS (multi-byte character set) support. 
  662.  
  663. 2.  Culture-specific information (locale support) 
  664.  
  665.     Culture-specific information includes time and date, numeric, and monetary 
  666.     formats, as well as collation.  Such information is kept in a locale path 
  667.     (combined language and territory/country information) that is named 
  668.     according to each specific locale, and configured in the user's environment 
  669.     variables. Programming for locale support ensures that cultural formatting 
  670.     can be adapted to the customs of the user. 
  671.  
  672. 3.  User-visible Text (messaging) 
  673.  
  674.     Messages and other user-visible items such as icons are isolated from the 
  675.     application code and handled in a standardized way. Internationalizing 
  676.     user-visible text not only provides the capability to switch languages, but 
  677.     also provides the capability to translate more easily. 
  678.  
  679. 4.  Conversion of code sets or character sets 
  680.  
  681.     In a heterogeneous code-set environment, it is necessary to convert a 
  682.     character from one code set to another in order to preserve data integrity. 
  683.     Conversion APIs are called by the application. 
  684.  
  685.  
  686. ΓòÉΓòÉΓòÉ 3.3.1. Internationalization APIs and Services ΓòÉΓòÉΓòÉ
  687.  
  688. This section addresses today's National Language Support (NLS) environment and 
  689. what lies in the future for the application developer. NLS includes both 
  690. internationalization and localization (commonly abbreviated as L10N -- the 
  691. specific country information for cultural formatting and the translated version 
  692. of user-visible text). Each operating system, present and moving into the 
  693. future, provides a solution and a set of APIs for each of the major aspects of 
  694. internationalization:  code-set independence, culture-specific information, 
  695. user-visible text, and code-set conversion. Operating system-specific 
  696. solutions, however, are converging toward a solution that can be applied across 
  697. operating systems. 
  698.  
  699.  
  700. ΓòÉΓòÉΓòÉ 3.3.1.1. Today ΓòÉΓòÉΓòÉ
  701.  
  702. OS/2 applications today use either a set of family APIs to get language, 
  703. country, keyboard and code set information according to the user's 
  704. configuration in CONFIG.SYS, or applications use a set of OS/2 Presentation 
  705. Manager (PM) APIs (Prf*) to obtain culture-specific information from the .ini 
  706. file that has been configured during installation or by making a selection on 
  707. the OS/2 Country Settings notebook behind the OS/2 WorkPlace Shell System Setup 
  708. folder. 
  709.  
  710. AIX/6000 applications use a library of XPG/4 I18N APIs that access the locale 
  711. on the path that has been configured as an environment variable. 
  712.  
  713. As a step toward converging the programming model across operating systems, and 
  714. therefore across distributed systems, The Developer Connection for OS/2 CDROM 
  715. provides a library of XPG/4 I18N APIs and locales for OS/2. This set of APIs 
  716. provides access to locales that meet current cultural standards for the 
  717. supported countries. The XPG/4 conversion APIs iconv_open(), iconv() and 
  718. iconv_close() will be supported on each operating system to manage code set 
  719. conversion in a code-set heterogeneous environment. Applications are then able 
  720. to handle the major aspects of I18N programming in the same way, using the same 
  721. set of XPG/4 I18N APIs for each of the operating systems:  OS/2 and AIX/6000. 
  722.  
  723. Today, only data from a single code set at one time is supported in the LAN 
  724. environment by machines that share resources with each other.  Many different 
  725. code sets are supported, but the LAN environment must be homogeneous in order 
  726. to retain accurate data representation.  OS/2 and AIX/6000 on the same LAN must 
  727. be configured for the same code sets in order for data beyond 7-bit ASCII to be 
  728. exchanged correctly. 
  729.  
  730.  
  731. ΓòÉΓòÉΓòÉ 3.3.1.2. Future ΓòÉΓòÉΓòÉ
  732.  
  733. To provide support for all the world's major published languages within a 
  734. single session, ISO 10646 UCS-2 (Unicode) will be supported in the XPG/4 I18N 
  735. model via locales that are encoded according to a scheme called the Universal 
  736. Transfer Format based on 8 bits (UTF-8). UTF-8 was adopted by X/Open and 
  737. originally called "File-system Safe" because it includes no null bytes, which 
  738. signal End of File on the UNIX file system. The encoding scheme uses one to six 
  739. bytes to represent a character. Unicode and ISO 10646 UCS-2 provide the world's 
  740. major publishable characters in a single 64K-code set that has been established 
  741. by ISO standards. The encoding scheme uses two bytes to represent a basic 
  742. character and uses extensions to create composite characters. The large size of 
  743. the unicode character set allows it to support the scripts of the world's major 
  744. languages. 
  745.  
  746. A programming model with APIs is needed to support ISO 10646 UCS-2 as well as 
  747. to support multithreading. Supporting locales on multiple threads at the same 
  748. time requires the capability of switching locale context.  Special APIs that 
  749. specify a locale handle have been proposed for future support of locale-context 
  750. switching. 
  751. Such use of the locale handle prevents the global setlocale() from affecting 
  752. any other threads of the same session. 
  753. Extensions will be developed to the XPG/4 model to support both ISO 10646 UCS-2 
  754. and multithreading. 
  755.  
  756.  
  757. ΓòÉΓòÉΓòÉ 3.3.2. Internationalization Guidelines ΓòÉΓòÉΓòÉ
  758.  
  759. Applications should be written to the X/Open Portability Guide Issue 4 (XPG/4) 
  760. I18N programming model. AIX/6000 already provides the XPG/4 APIs in the I18N 
  761. library, and for OS/2, the library is provided on The Developer Connection for 
  762. OS/2  CDROM. The XPG/4 I18N programming model uses the setlocale() API at the 
  763. beginning, and is followed by the appropriate XPG/4 I18N API according to the 
  764. four aspects of I18N: code-set independence, culture-specific information, 
  765. user-visible text, and conversion of code sets. 
  766.  
  767. Using setlocale() and the appropriate XPG/4 I18N API results in isolating 
  768. culture-specific information from the application code. An application can 
  769. compile only the application code and manage separately the localization for 
  770. each locale. Instead of building, testing, and shipping n different versions of 
  771. the code, the application developer can build, test, and ship a single version 
  772. of the application code and n smaller versions of only the culture-dependent 
  773. information that can be accessed at run-time according to the user's 
  774. configuration. 
  775.  
  776. The following guidelines define how to achieve a worldwide product with the 
  777. major aspects of interationalization: 
  778.  
  779. Code-set Independence (CSI) 
  780.  
  781. Culture-specific information (locale support) 
  782.  
  783. User-visible text 
  784.  
  785. Conversion of code sets or code pages 
  786.  
  787. Internationalizing icons 
  788.  
  789.  
  790. ΓòÉΓòÉΓòÉ 3.3.2.1. Code-set Independence (CSI) Guidelines ΓòÉΓòÉΓòÉ
  791.  
  792. The need that has been solved by CSI has also been expressed as DBCS 
  793. (double-byte character set) enabling and MBCS (multi-byte character set) 
  794. enabling. The solution handles strings or characters without making assumptions 
  795. as to which coded character set the characters come from, or which encoding the 
  796. characters have. 
  797.  
  798. Using the XPG/4 model for code-set independence provides a way for the 
  799. applicaton to support all of the locales that are provided by the operating 
  800. system as well as any properly user-defined locale. 
  801.  
  802.  
  803. ΓòÉΓòÉΓòÉ 3.3.2.2. Culture-specific Information Guidelines ΓòÉΓòÉΓòÉ
  804.  
  805. Culture-specific information is supported by the XPG/4 APIs. The XPG/4 I18N 
  806. provides the locale and API support for the following: 
  807.  
  808. o   Time and date format 
  809. o   Monetary format 
  810. o   Numeric format 
  811. o   Cultural collation 
  812.  
  813. Using the XPG/4 model for culture-specific information provides a way for the 
  814. application to support all of the locales that are provided by the operating 
  815. system. 
  816.  
  817.  
  818. ΓòÉΓòÉΓòÉ 3.3.2.3. User-visible Text Guidelines ΓòÉΓòÉΓòÉ
  819.  
  820. It is important that user-visible text be isolated from the source code text. 
  821. For information about displaying text through GUIs, see the Graphical User 
  822. Interface section. For guidelines on composing user-visible text (usually 
  823. English) so that it is correct and translatable, see the Customer Information 
  824. section. 
  825.  
  826. For a model that is portable across OS/2 and AIX/6000, messaging should handled 
  827. according to the XPG/4 I18N standard. 
  828.  
  829. Not all user-visible text should be translated. Examples include: 
  830.  
  831. o   Command names, API verb names, path names, and executable program names 
  832. o   Environment variables 
  833. o   Reserved device names (e.g. MOUSE, POINTER, SCRN, PRN, LPT1-3, COM1-2) 
  834. o   Font family names and type names 
  835. o   Extended Attribute (EA) content and EA keywords (e.g. .CODEPAGE=) 
  836. o   Hypertext links 
  837. o   Control information that points to any of the above 
  838.  
  839.  
  840. ΓòÉΓòÉΓòÉ 3.3.2.4. Code-set Conversion Guidelines ΓòÉΓòÉΓòÉ
  841.  
  842. The XPG/4 model provides a set of APIs to handle conversions from one code set 
  843. to another.  Such conversions should be used to manage interchange of data on a 
  844. code-set heterogeneous system.  IBM provides mappings that have been 
  845. implemented in the conversion tables. If the mappings used are not coordinated, 
  846. the application runs the risk of not being able to interoperate properly with 
  847. IBM systems and other standard systems, and data cannot be interchanged with 
  848. consistency. 
  849.  
  850.  
  851. ΓòÉΓòÉΓòÉ 3.3.2.5. Internationalizing Icons Guidelines ΓòÉΓòÉΓòÉ
  852.  
  853. In order to avoid offending people of any culture with inappropriate icons, 
  854. providing an icon that is not understandable in another culture, or colliding 
  855. with an existing product logo in any country, icons should be 
  856. internationalized. 
  857.  
  858. 1.  Icons can be substituted by the country as appropriate and stored according 
  859.     to the XPG/4 locale path name. 
  860.  
  861. 2.  Icons are not bound into the executable.  They are provided in separate 
  862.     resource files. 
  863.  
  864. 3.  Icons do not contain text of any kind. 
  865.  
  866.  
  867. ΓòÉΓòÉΓòÉ 4. Security ΓòÉΓòÉΓòÉ
  868.  
  869. Many customers require that the security single system image should be a 
  870. Distributed C2 Single System Image: the whole collection of hardware and 
  871. software in a customer's enterprise should be configurable to look to its users 
  872. like a single system which meets (and in some selected areas exceeds) the US 
  873. Government TCSEC ("Orange Book") C2 (commercial) security requirements. 
  874.  
  875. In general terms, the C2 requirements state: 
  876.  
  877. o   The system should identify all system users uniquely and authenticate their 
  878.     identities before allowing them access to any system resources 
  879.     (authentication). 
  880.  
  881. o   The system should enable users to restrict access to resources they own by 
  882.     specifying allowable accesses for each system user (authorization). In 
  883.     networked configurations, restricting access to resources may require use 
  884.     of message protection services. These services protect information flowing 
  885.     across network links from unauthorized modification and/or examination. 
  886.  
  887. o   The system should irrevocably destroy information in all deleted resources 
  888.     (object reuse protection). 
  889.  
  890. o   The system should keep a tamper-resistant audit log of security-relevant 
  891.     events, which can be examined for evidence of attacks on the system's 
  892.     security (audit). See "Trusted Computer System Evaluation Criteria", 
  893.     protection class C2, for information about what events should be considered 
  894.     security-relevant. 
  895.  
  896. Note:  Complying with the security guidelines in this document will not (by 
  897.        itself) insure that compliant applications or the environments in which 
  898.        they run will conform to all C2 criteria. (C2 criteria require that all 
  899.        components of a system, including hardware, be evaluated as an integral 
  900.        whole; furthermore, C2 criteria include documentation and development 
  901.        process assurance requirements not addressed in this document.) 
  902.  
  903. The Single System Image requirement further implies that: 
  904.  
  905. o   Users should be able to gain access to all resources on the system through 
  906.     a single logon (i.e. a single presentation of a username and password to 
  907.     the system), regardless of where in the system the resources are stored and 
  908.     which resource manager protects them. 
  909.  
  910. o   Users should be able to change passwords from any computer in the system 
  911.     and be assured that the new password will be valid for logon at  all 
  912.     machines in the network shortly after such a change. 
  913.  
  914. o   Users and administrators should be able to administer access permission 
  915.     information for all resources they own regardless of where in the system 
  916.     those resources are stored and which resource manager protects them. 
  917.  
  918. o   System administrators should be able to administer users and policy in a 
  919.     single logical database through a single interface. 
  920.  
  921.  
  922. ΓòÉΓòÉΓòÉ 4.1. Security Interfaces and Services ΓòÉΓòÉΓòÉ
  923.  
  924. A number of security services and interfaces are available in this environment 
  925. to assist the programmer in producing secure, manageable applications. 
  926.  
  927. Security interfaces and services include: 
  928.  
  929. User management 
  930.  
  931. Local security context management 
  932.  
  933. Network authentication 
  934.  
  935. Authorization 
  936.  
  937. Security auditing 
  938.  
  939.  
  940. ΓòÉΓòÉΓòÉ 4.1.1. Supported Platforms ΓòÉΓòÉΓòÉ
  941.  
  942. Today's LAN Server and DCE offerings provide APIs for management of user 
  943. information, user logon, secure session establishment, management of 
  944. authorization information, and authorization checking (see below). AIX/6000 3.0 
  945. and above provide APIs for recording security audit information. Applications 
  946. in today's environment should be written to use the APIs of the operating 
  947. system and network services available; in this environment possible operating 
  948. systems include Windows (perhaps with third-party security services installed), 
  949. OS/2, and AIX/6000. 
  950.  
  951. In the future, applications will be able to access network security services 
  952. through a set of generic interfaces as shown below. User information will be 
  953. manageable through a User Registry Framework API. 
  954.  
  955.  
  956. ΓòÉΓòÉΓòÉ 4.1.2. User Management ΓòÉΓòÉΓòÉ
  957.  
  958. User information includes: 
  959.  
  960. o   user definitions 
  961. o   group memberships 
  962. o   passwords 
  963. o   password composition rules 
  964. o   password expiration intervals 
  965. o   credential expiration intervals 
  966. o   logon hours 
  967. o   workstation logon restrictions 
  968.  
  969.  
  970. ΓòÉΓòÉΓòÉ 4.1.3. Local Security Context Management ΓòÉΓòÉΓòÉ
  971.  
  972. Local Security Context Management services allow applications to discover ( 
  973. and, in the case of trusted applications, to change) the user identity 
  974. associated with operating system processes and threads. Different operating 
  975. systems typically have different Local Security Context Management services and 
  976. interfaces. The AIX/6000 local security context management API is the POSIX 
  977. 1003.1 (getuid(), getgrp(), setuid(), etc...) family of interfaces. 
  978.  
  979. Future releases of OS/2 will have a Security Context Services API for local 
  980. security context management. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ 4.1.4. Network Authentication ΓòÉΓòÉΓòÉ
  984.  
  985. Secure association services provide applications with location- transparent, 
  986. secure inter-process communication mechanisms. Applications which take 
  987. advantage of secure association services need to be only minimally 
  988. "security-aware"; they need not implement any security functions themselves. 
  989.  
  990. The DCE Authenticated RPC service is the first (and currently the only) 
  991. available secure association service in this environment. In the future, a 
  992. Secure Conversation Service (exposing the CPIC interface) and a Secure Message 
  993. Queueing Service also will be implemented. 
  994.  
  995. Applications that cannot use an existing secure association service in the 
  996. future will be able to protect data transmitted over networks by using network 
  997. security context and message protection services through the GSSAPI. Using 
  998. GSSAPI requires slightly more security awareness than using a secure 
  999. association service, but is significantly easier and safer than implementing 
  1000. network security protocols in application code. 
  1001.  
  1002. GSSAPI provides the following functions: 
  1003.  
  1004. o   Network Authentication (Allows application clients (acting on behalf of 
  1005.     users) and remote resource managers to authenticate one another's 
  1006.     identities). 
  1007. o   Network Security Context Management (Allows users and remote resource 
  1008.     managers to build "secure connections" on top of insecure transport or 
  1009.     association services). 
  1010. o   Message Protection (Allows applications to protect the integrity and 
  1011.     privacy of data which flows on network links). 
  1012.  
  1013. Various authentication, security context management, and message protection 
  1014. services will be available through GSSAPI; the recommended authentication 
  1015. service will be DCE. If other authentication services are used, some 
  1016. authorization and delegation functionality may not be available. The 
  1017. recommended authorization credential format will be the DCE Privilege Attribute 
  1018. Certificate (PAC). OSF/DCE 1.1 will provide an "Extended PAC" (EPAC) which will 
  1019. be usable by applications requiring authorization information other than DCE 
  1020. user and group identities. 
  1021.  
  1022.  
  1023. ΓòÉΓòÉΓòÉ 4.1.5. Authorization ΓòÉΓòÉΓòÉ
  1024.  
  1025. The OS/2 LAN Server provides the NetAccess* APIs for management of 
  1026. authorization information. AIX versions 3.0 and above provide an access control 
  1027. interface which can be used to protect AIX files which are accessed locally, or 
  1028. from remote AIX clients through the NFS filesystem. 
  1029.  
  1030. DCE provides the sec_acl* authorization interface; future versions of DCE will 
  1031. provide an access control library which will allow applications to use this API 
  1032. to manage their own authorization information. 
  1033.  
  1034. The sec_acl* API will be the recommended interface for management and checking 
  1035. of authorization information in the future. 
  1036.  
  1037.  
  1038. ΓòÉΓòÉΓòÉ 4.1.6. Security Auditing ΓòÉΓòÉΓòÉ
  1039.  
  1040. AIX versions 3.0 and above provide an API for recording security audit 
  1041. information. 
  1042.  
  1043. Future versions of DCE will provide a security auditing API and service, which 
  1044. applications will be able to use to record security audit information. This API 
  1045. will be based on the forthcoming POSIX security auditing standard and will be 
  1046. the recommended interface when it becomes available. 
  1047.  
  1048.  
  1049. ΓòÉΓòÉΓòÉ 4.2. Security Guidelines ΓòÉΓòÉΓòÉ
  1050.  
  1051. Integrated logon 
  1052.  
  1053. Integrated user management 
  1054.  
  1055. User names and passwords 
  1056.  
  1057. Integrated authorization policy management 
  1058.  
  1059. Identified operations 
  1060.  
  1061. Authorized access 
  1062.  
  1063. Audit 
  1064.  
  1065. Message protection 
  1066.  
  1067. Object reuse protection 
  1068.  
  1069.  
  1070. ΓòÉΓòÉΓòÉ 4.2.1. Integrated Logon Guidelines ΓòÉΓòÉΓòÉ
  1071.  
  1072. Applications should take advantage of the Local Logon and Local and Network 
  1073. Security Context Management facilities of the system to avoid asking a user who 
  1074. has already logged on to present his password again. When running in this 
  1075. environment, the application always uses identity information obtained from : 
  1076.  
  1077. The operating system's Security Context Management services (for calls within 
  1078. the application's own address space) 
  1079.  
  1080. -OR- 
  1081.  
  1082. An operating system Secure IPC service (for all cross-address-space calls 
  1083. within the application's machine) 
  1084.  
  1085. -OR- 
  1086.  
  1087. A Secure Association service or GSSAPI (for all calls across a network) 
  1088.  
  1089. Complying with these guidelines will allow an application to use the identity 
  1090. information already collected by the operating system and the network services 
  1091. running on the platform, without having to prompt the user for a username and 
  1092. password. 
  1093.  
  1094.  
  1095. ΓòÉΓòÉΓòÉ 4.2.2. Integrated User Management Guidelines ΓòÉΓòÉΓòÉ
  1096.  
  1097. Applications should take advantage of the user management facilities of the 
  1098. system to maintain the image of a single user database and a single user 
  1099. management interface for the system. The application does not have its own user 
  1100. registry service. 
  1101.  
  1102.  
  1103. ΓòÉΓòÉΓòÉ 4.2.3. User Names and Passwords Guidelines ΓòÉΓòÉΓòÉ
  1104.  
  1105. To allow users to have a single username and password everywhere, it is 
  1106. necessary to define a username and password syntax which all applications in 
  1107. this environment recognize.  If all applications in this environment used the 
  1108. same authentication service and took their user definitions from the same user 
  1109. registry, this would be simple; the user registry would define the username and 
  1110. password syntax, and the authentication service would accept that same syntax. 
  1111. The actual environment is more complex, however; it must allow "old" 
  1112. applications to continue to function with their existing username and password 
  1113. syntax for some period of time. 
  1114.  
  1115. To enable single logon, therefore, applications must adhere to the set of 
  1116. username and password syntax rules which are designed to be acceptable to a 
  1117. very wide range of existing secure applications. 
  1118.  
  1119. 1.  Each user account has a globally unique name which conforms to the DCE 
  1120.     principal naming rules and has the following form: 
  1121.  
  1122.            <accountname>   ../<leaf>
  1123.            <pathcomponent>
  1124.  
  1125. 2.  Applications which do not use an account's globally unique name should use 
  1126.     a flattened form of the globally unique name, formed by extracting the 
  1127.     <leaf> component of the globally unique name and applying any "character 
  1128.     folding" (e.g. mapping to all uppercase or to all lowercase) necessary to 
  1129.     satisfy the application's requirements.  DCE does not require that <leaf> 
  1130.     names be unique in a cell, so it is possible that a single cell might 
  1131.     contain two accounts named 
  1132.  
  1133.         /.../C=USA/O=IBM/PSP/Austin/LANSystems/sec/principal/design/Bob
  1134.         and
  1135.         /.../C=USA/O=IBM/PSP/Austin/LANSystems/sec/principal/marketing/Dept505/bob
  1136.  
  1137. 3.  In this case, both users' flattened names would be bob (or possibly BOB). 
  1138.     Care should be taken, when assigning usernames in cells which support "old" 
  1139.     applications using flattened names, to avoid this kind of name collision. 
  1140.  
  1141.      -AND- 
  1142.  
  1143.     Each user account has a password whose syntax is constrained by the same 
  1144.     rules which govern <leaf> names (these rules are described above).  Note 
  1145.     that this password syntax captures the password restrictions of most UNIX 
  1146.     systems. 
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ 4.2.4. Integrated Authorization Policy Management Guidelines ΓòÉΓòÉΓòÉ
  1150.  
  1151. Applications should take advantage of the authorization facilities of the 
  1152. system to maintain the image of a single authorization policy semantics and a 
  1153. consistent authorization information storage model for the system. 
  1154.  
  1155. The application uses the authorization functions of the local file system or 
  1156. the network services (e.g. DCE).  The application does not implement its own 
  1157. access control service or interface. 
  1158.  
  1159.  
  1160. ΓòÉΓòÉΓòÉ 4.2.5. Identified Operations Guidelines ΓòÉΓòÉΓòÉ
  1161.  
  1162. Applications should always perform operations under the identity of the subject 
  1163. (user or identified program) which initiated those operations. 
  1164.  
  1165. 1.  (AIX/6000) The application always ensures that the identity associated with 
  1166.     its processes and threads by the operating system security context 
  1167.     management service correctly represents the user on whose behalf those 
  1168.     processes and threads are doing work. 
  1169.  
  1170. 2.  (AIX/6000) The application always ensures that the identity and credentials 
  1171.     associated with an IPC or network call correctly represent the user on 
  1172.     whose behalf the call is made. 
  1173.  
  1174. Note:  Note that "trusted server" applications, which may sometimes perform 
  1175.        work under their own identities, and which may do work on behalf of 
  1176.        different users at different times, may need to use local and network 
  1177.        Security Context Management interfaces to change the active identities 
  1178.        they represent from time to time in order to satisfy this requirement. 
  1179.  
  1180.  
  1181. ΓòÉΓòÉΓòÉ 4.2.6. Authorized Access Guidelines ΓòÉΓòÉΓòÉ
  1182.  
  1183. Applications should always check to see if an operation is authorized before 
  1184. performing that operation. The application always ensures (perhaps through use 
  1185. of an underlying secure file system or other secure resource manager) that all 
  1186. of the following are done before granting access to a resource it owns and 
  1187. protects: 
  1188.  
  1189. 1.  The identity and credentials of the user requesting access are determined 
  1190.  
  1191. 2.  The identity and credentials are checked against the resource's 
  1192.     authorization policy 
  1193.  
  1194. 3.  The access request is denied if it is not authorized 
  1195.  
  1196.  
  1197. ΓòÉΓòÉΓòÉ 4.2.7. Audit Guidelines ΓòÉΓòÉΓòÉ
  1198.  
  1199. Applications should audit all security-sensitive operations and ensure that 
  1200. audit records contain all security-relevant data about attempted operations. 
  1201.  
  1202. 1.  The application generates an audit record for each security-sensitive 
  1203.     operation specified as auditable by the currently active audit policy. 
  1204.  
  1205. 2.  Each audit record includes at least the following information: 
  1206.  
  1207.     a.  timestamp 
  1208.     b.  operation identifier 
  1209.     c.  operation class 
  1210.     d.  unique user identifier 
  1211.     e.  unique resource identifier 
  1212.     f.  completion code indicating success or reason for failure 
  1213.  
  1214.  
  1215. ΓòÉΓòÉΓòÉ 4.2.8. Message Protection Guidelines ΓòÉΓòÉΓòÉ
  1216.  
  1217. Applications should protect data transmitted over networks against modification 
  1218. and disclosure. 
  1219.  
  1220. 1.  The application always implements message integrity protection (by adding a 
  1221.     Message Authentication Code (MAC) to the message data) on all network 
  1222.     calls. 
  1223.  
  1224. 2.  The application always implements message confidentiality protection (by 
  1225.     encrypting the message data) on all network calls containing sensitive data 
  1226.     (e.g. by using the message confidentiality features of GSSAPI or a secure 
  1227.     association service). 
  1228.  
  1229.  
  1230. ΓòÉΓòÉΓòÉ 4.2.9. Object Reuse Protection Guidelines ΓòÉΓòÉΓòÉ
  1231.  
  1232. Applications should ensure that data structures which are deallocated (returned 
  1233. to the system) do not contain any sensitive data. The application clears all 
  1234. bytes of each data structure it deallocates immediately prior to returning the 
  1235. structure's storage to the system. 
  1236.  
  1237.  
  1238. ΓòÉΓòÉΓòÉ 5. Interprocess Communication (IPC) ΓòÉΓòÉΓòÉ
  1239.  
  1240. Use of interprocess communication (communication services that are higher level 
  1241. than the transport layer) enable developers to create applications whose parts 
  1242. can be executed on one or multiple computers in these environments. Developers 
  1243. should consider which of the following capabilities their application needs to 
  1244. choose the best communication mechanism: 
  1245.  
  1246. o   local or distributed network support 
  1247. o   homogeneous or heterogeneous multivendor environment support 
  1248. o   synchronous or asynchronous communication capability 
  1249. o   transaction handling capabilities 
  1250. Application developers who need lower-level communications control (for 
  1251. example, sockets) should refer to the Transport section, and application 
  1252. developers who need object management services should refer to the 
  1253. Inter-Application Collaboration section. 
  1254.  
  1255.  
  1256. ΓòÉΓòÉΓòÉ 5.1. IPC Services and Interfaces ΓòÉΓòÉΓòÉ
  1257.  
  1258. Interprocess communication services mainly deal with communications among 
  1259. processes (or threads) in distributed environments. 
  1260.  
  1261. Today, LAN Server provides the following services for communication between 
  1262. applications on one or more machines in a LAN Server network: 
  1263.  
  1264. Mailslots 
  1265.  
  1266. Named Pipes 
  1267.  
  1268. For applications that require communication services in a heterogeneous 
  1269. environment, the following additional communication services are available: 
  1270.  
  1271. Conversational 
  1272.  
  1273. Remote procedure calls (RPC) 
  1274.  
  1275. Messaging and queuing 
  1276.  
  1277.  
  1278. ΓòÉΓòÉΓòÉ 5.1.1. Mailslots ΓòÉΓòÉΓòÉ
  1279.  
  1280. The Mailslot services API provides one-way interprocess communications based on 
  1281. NetBIOS datagrams. A process can write to a (local or remote) Mailslot with a 
  1282. class and priority attribute, using the Mailslot's network name. OS/2 and DOS 
  1283. clients can use this API, as can other platforms that support LAN Server. 
  1284.  
  1285.  
  1286. ΓòÉΓòÉΓòÉ 5.1.2. Named Pipes ΓòÉΓòÉΓòÉ
  1287.  
  1288. Named Pipes provide 2-way communications among (local or remote) processes. 
  1289. After a server creates a Named Pipe it waits for clients, the clients can use 
  1290. the standard file services (for example: DosOpen(), DosRead(),) on the Pipe's 
  1291. network name, to access the Named Pipe. Named pipes have a client side and a 
  1292. server side. The server side must be on a LAN Server running either the server 
  1293. or peer service. The client side can run on either an OS/2 or DOS client. Named 
  1294. pipes are also supported on other platforms that support the X/Open SMB 
  1295. protocol. 
  1296.  
  1297.  
  1298. ΓòÉΓòÉΓòÉ 5.1.3. Conversational ΓòÉΓòÉΓòÉ
  1299.  
  1300. In the conversation model, the distributed parts "converse" with one another 
  1301. and are synchronized in a manner similar to the speakers in a telephone 
  1302. conversation. This model is based on the program-to-program communication model 
  1303. defined by SNA APPC, where one part of a distributed application or resource 
  1304. manager initiates a conversation with another, and they then exchange 
  1305. synchronous messages until the user's requests are satisfied, at which time the 
  1306. conversation is terminated. Each part of the distributed application or 
  1307. resource manager is responsible for maintaining the state of the conversation 
  1308. and abiding by the rules of the conversation protocol. The conversational model 
  1309. provides a synchronous service. 
  1310.  
  1311. ISO has chosen the conversational model as the basis for the OSI Transaction 
  1312. Processing protocol specification. X/Open's Common Programming Interface for 
  1313. Communications (CPI-C) provides a common interface for the implementation of 
  1314. the conversational model on all major platforms for access to both LU6.2/APPC 
  1315. conversations and OSI dialogs. 
  1316.  
  1317.  
  1318. ΓòÉΓòÉΓòÉ 5.1.4. Remote Procedure Calls (RPC) ΓòÉΓòÉΓòÉ
  1319.  
  1320. In the RPC model, one part requests a service from the other part, and awaits a 
  1321. reply. With RPC, a client program includes a call stub that packages the 
  1322. arguments of the call, sends them to the server program, and waits for a reply. 
  1323. A companion server stub unpacks the arguments, invokes the called procedure, 
  1324. packages the results, and sends a reply back to the client. RPC has a mechanism 
  1325. for placing the definitions of service interfaces into the directory. It 
  1326. includes a mechanism for operation across machines of different architectures, 
  1327. which is supported by the stubs. 
  1328.  
  1329. The Open Software Foundation (OSF) chose RPC as the fundamental communication 
  1330. model for the Distributed Computing Environment. The DCE technology for RPC 
  1331. supports connection-oriented and connectionless transports. 
  1332.  
  1333. The RPC model is synchronous from the point of view of the calling program, 
  1334. because it must wait until the requested procedure finishes its execution and 
  1335. returns the results. 
  1336.  
  1337.  
  1338. ΓòÉΓòÉΓòÉ 5.1.5. Messaging and Queuing ΓòÉΓòÉΓòÉ
  1339.  
  1340. The messaging and queuing model is characterized by the independent execution 
  1341. of the partner programs. The partners communicate indirectly through message 
  1342. queues, which are analogous to mail boxes, at the sending and receiving 
  1343. locations. The communicating programs do not have to be active simultaneously. 
  1344. Messaging and queueing support provides time-independent communication, with 
  1345. the sender and receiver executing at their own pace. 
  1346.  
  1347. The sending application uses the Message Queue Interface (MQI) to place a 
  1348. message on a queue at the sending system. In the receiving system, the message 
  1349. is placed on a queue for the receiving application. There can be a single 
  1350. queue, or separate queues for different types of messages. Distributed 
  1351. applications may be created by arranging the flow of messages between 
  1352. serially-reusable message processing programs. 
  1353.  
  1354.  
  1355. ΓòÉΓòÉΓòÉ 5.2. IPC Guidelines ΓòÉΓòÉΓòÉ
  1356.  
  1357. There are three major communication models in Communication Services: 
  1358.  
  1359. Conversational 
  1360.  
  1361. Remote Procedure Calls (RPC) 
  1362.  
  1363. Messaging and Queuing 
  1364.  
  1365.  
  1366. ΓòÉΓòÉΓòÉ 5.2.1. Conversational Guidelines ΓòÉΓòÉΓòÉ
  1367.  
  1368. In this fully-duplexed connection-oriented model, a series of synchronous 
  1369. messages are passed and remain active in both directions during the 
  1370. conversation. This model is based on the peer-to-peer communications defined by 
  1371. SNA APPC. X/Open CPI-C provides a common interface for the implementation on 
  1372. all major platforms. For application developers, CPI-C provides a consistent 
  1373. call-based API on top of APPC (cf. APPC-verbs with control-block API). IBM 
  1374. provides CPI-C language bindings for all its compilers. 
  1375.  
  1376.  
  1377. ΓòÉΓòÉΓòÉ 5.2.2. Remote Procedure Calls (RPC) Guidelines ΓòÉΓòÉΓòÉ
  1378.  
  1379. In RPC, clients make calls on the remote server as if it were local, and 
  1380. synchronously waits and gets the reply from the server as the return value or 
  1381. as out-parameters (using threads, asynchronous operation is possible, but by 
  1382. itself, RPC is synchronous). To the application developer, the only difference 
  1383. in this call that makes it remote is the additional binding handle parameter, 
  1384. which should be obtained through NSI  (Name Service Interface), using only the 
  1385. service's advertised name in the DCE directory (not network address). Using the 
  1386. RPC mechanism, servers become generic network resources and register themselves 
  1387. to the DCE Directory (and Security) services, (or administers do that), so that 
  1388. authorized clients can discover them by name, and make authenticated RPCs on 
  1389. them. RPC also takes care of data format differences via data-marshalling and 
  1390. "receiver makes it right" rule so application developers should not worry about 
  1391. it. Special care should be taken for passing pointers as RPC parameters since 
  1392. the server is running in a different address space. 
  1393.  
  1394. IBM offers the DCE services on AIX/6000, and selected services on OS/2 and 
  1395. other IBM platforms now. 
  1396.  
  1397.  
  1398. ΓòÉΓòÉΓòÉ 5.2.3. Messaging and Queuing Guidelines ΓòÉΓòÉΓòÉ
  1399.  
  1400. Messaging and queuing allows applications to communicate with each other 
  1401. asynchronously, through queue managers so that the delivery is guaranteed, and 
  1402. all the routing details are encapsulated inside queue managers and transparent 
  1403. to applications.  For this, application developers should use MQSeries (IBM 
  1404. Messaging and Queuing Series) which is a family of products that enable 
  1405. programs to talk to each other across a heterogeneous network using a simple 
  1406. and consistent API (MQI) by just Getting/Putting messages in the queue: MQPUT, 
  1407. MQGET are the main functions and there are also several more utility calls. 
  1408. All the difficult work of communication is hidden from the application 
  1409. developer. An application developer who develops a parallel distributed 
  1410. application should take advantage of the load balancing capabilities of 
  1411. messaging and queuing. For queue managers, IBM MQSeries provide Generic Message 
  1412. Queue Manager (MQM) function: 
  1413.  
  1414. o   Queue name-to-address resolution 
  1415. o   Message routing 
  1416. o   Message Channel Agent (MCA) 
  1417. o   Administration 
  1418. o   Sync point 
  1419. MQSeries is available on all major IBM platforms. 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 6. Inter-Application Collaboration (IAC) for Compound Documents ΓòÉΓòÉΓòÉ
  1423.  
  1424. To carry out complex tasks in distributed computing environments, applications 
  1425. often collaborate among themselves, taking the roles of clients and servers in 
  1426. turn. Compared to a single monolithic application trying to execute complex 
  1427. tasks on its own, modularized applications that can act as components in 
  1428. collaboration environments tend to be more flexible and customizable, easier to 
  1429. maintain, and more easily reused as components in multiple environments. 
  1430.  
  1431. In the distributed IAC environment, the unit of applications in collaboration 
  1432. are system objects which can be very fine-grained (e.g. an object in memory, a 
  1433. part-handler method, an executable, a DLL, a process), or very coarse-grained 
  1434. (e.g. a component framework), and these system objects can be distributed 
  1435. across the network. When discussing IAC, anything that can provide a service 
  1436. through well-defined interfaces can be called an application. System objects 
  1437. with state-data and methods are used to model these applications. 
  1438.  
  1439. Compound Documents is an architecture where interapplication collaboration is 
  1440. exploited. Compound document support requires a set of interoperability 
  1441. protocols designed to produce a single document for the user. Compound 
  1442. documents is an architecture in which the center of communication is a data 
  1443. object usually called a document or a container object (e.g. text, spreadsheet, 
  1444. multimedia object, etc. with associated applications or methods that can 
  1445. manipulate this document) which can link or embed other documents. These 
  1446. provide productivity improvements for the user. For example, a text container 
  1447. object linking a spreadsheet and embedding a sound object can provide the 
  1448. containing text with the following capabilities: 
  1449.  
  1450. o   automatic updates, as the linked spreadsheet is modified 
  1451. o   in-place edit/activation of linked or embedded objects (with the 
  1452.     applications which were used to create the objects) without ending the 
  1453.     current application 
  1454. o   customization through scripting 
  1455. o   drafting and version control 
  1456.  
  1457.  
  1458. ΓòÉΓòÉΓòÉ 6.1. IAC Services and Interfaces ΓòÉΓòÉΓòÉ
  1459.  
  1460. For some compound document support, IBM currently provides (for OS/2) support 
  1461. for Dynamic Data Exchange (DDE). DDE is broadcast-based and suitable for 
  1462. smaller objects. Future releases of LAN Server will provide network support for 
  1463. DDE. DSOM will be added to this environment to provide support for distributed 
  1464. objects. 
  1465.  
  1466. Application developers who need more compound document capabilities can write 
  1467. to OpenDoc. Because it will use SOM/DSOM, OpenDoc will provide, transparent to 
  1468. the application developer, interoperability and all the benefits of the CORBA 
  1469. specification. 
  1470.  
  1471. In the following figure, observe that OpenDoc is built on the SOM object model 
  1472. to provide compound document support for applications. SOM/DSOM provides a 
  1473. language neutral distributed object model and interoperability with other 
  1474. object request brokers (ORBs) and other object models like the Component Object 
  1475. Model (COM). 
  1476.  
  1477. OpenDoc enables the creation of compound documents (documents which are created 
  1478. and edited by several cooperating applications working within a single 
  1479. document). In OpenDoc, a document is a collection of parts, each of which is 
  1480. much like a present day document. Each part has a type, and this type is used 
  1481. to choose a part handler. which will help the user edit, view, and print that 
  1482. part of the document. No single application has complete control of the 
  1483. document; therefore, protocols are required to make sure that the various 
  1484. pieces stay in sync. 
  1485.  
  1486. OpenDoc supports irregular document frames, version control, in-place editing, 
  1487. stable linkage, distributed objects (via DSOM), and interoperability with OLE. 
  1488. OpenDoc will be available on OS/2, AIX/6000, Windows, and Macintosh. 
  1489.  
  1490.  
  1491. ΓòÉΓòÉΓòÉ 6.2. IAC Guidelines ΓòÉΓòÉΓòÉ
  1492.  
  1493. OpenDoc is the recommended architecture for compound document support in these 
  1494. environments. The IBM OpenDoc code is available on The Developer Connection for 
  1495. OS/2. OpenDoc has the following technology components: 
  1496.  
  1497. o   OpenDoc architecture for document embedding 
  1498. o   Open Scripting Architecture (OSA): this supports customization and 
  1499.     automation (macro) capabilities of compound documents 
  1500. o   Bento Storage format 
  1501. o   CORBA-compliant, SOM-based object model 
  1502.  
  1503. In the OpenDoc environment, there is a process called document shell which 
  1504. dispatches/arbitrates the events/messages among the parts in the container 
  1505. document and the part-handlers. The part-handlers are the routines/methods that 
  1506. can manipulate the associated parts. IBM's OpenDoc platform offerings will 
  1507. implement the storage protocol between part handlers and the document shell, 
  1508. and application developers need to provide the part-handlers only (minimal 
  1509. work). These part-handlers themselves can be considered modularized 
  1510. applications for the collaboration. 
  1511.  
  1512. 1.  Use OpenDoc for IAC to support compound documents. 
  1513.  
  1514. 2.  Use IAC for services available from other applications rather than 
  1515.     re-implementing those services. 
  1516.  
  1517.  
  1518. ΓòÉΓòÉΓòÉ 7. Transport ΓòÉΓòÉΓòÉ
  1519.  
  1520. The term transport is used to refer to the base network service layer (OSI 
  1521. reference model layers 1-4) for providing end-to-end connectivity for client 
  1522. and server applications across the network. The transport single system image 
  1523. goal is to enable applications to communicate without being aware of the 
  1524. physical network topology. A customer should be able to select a network 
  1525. protocol and/or communication hardware based on business needs such as cost and 
  1526. performance. This selection should be independent of application usage. 
  1527.  
  1528. The transport layer shields the complexity of different network types from 
  1529. higher layer services and applications by the provision of a transport 
  1530. independent application programming interface (API). Use of this 
  1531. transport-protocol-independent API insulates the application from network 
  1532. changes, and enables the application to run on different networks including 
  1533. TCP/IP, NetBIOS, IPX and SNA. The transport architecture allows: 
  1534.  
  1535. o   clients to install a single network protocol to access services from 
  1536.     different networks. This optimizes workstation performance, RAM and disk 
  1537.     usage, and minimizes administration overhead. 
  1538.  
  1539. o   servers to support multiple protocols to be accessible by clients installed 
  1540.     on different types of networks. 
  1541.  
  1542.  
  1543. ΓòÉΓòÉΓòÉ 7.1. Sockets Framework ΓòÉΓòÉΓòÉ
  1544.  
  1545. Berkeley Software Distribution (BSD) 4.3/4.4 Sockets (as defined in POSIX 
  1546. 1003.12) is the recommended standard transport API in these environments. 
  1547. Sockets using its AF_INET address family option to access TCP/IP and is 
  1548. available on most operating system platforms. 
  1549.  
  1550. Sockets on OS/2 is an IPC/Transport framework supporting multi-protocol access 
  1551. including local IPC (AF_OS2), TCP/IP (AF_INET), and NetBIOS (AF_NB). The 
  1552. following figure shows today's OS/2 implementation; this architecture will be 
  1553. implemented on additional platforms in the future. 
  1554.  
  1555. Using the socket API model, applications can be written in a protocol 
  1556. independent manner. Via the use of the AF(address_family) option, and by 
  1557. specifying protocol specific address (usually acquired from a application level 
  1558. directory services such as DCE CDS), applications can choose a specific network 
  1559. protocol to communicate with remote transport applications. The remote 
  1560. transport application can be written to sockets, XTI or other transport 
  1561. protocol specific APIs (e.g.  Sockets (AF_NB) to communicate with NetBIOS 3.0 
  1562. NCB I/F). 
  1563.  
  1564. Multiprotocol Transport Networking (MPTN) 
  1565.  
  1566. Transport Services 
  1567.  
  1568. Supported Platforms 
  1569.  
  1570.  
  1571. ΓòÉΓòÉΓòÉ 7.1.1. Multiprotocol Transport Networking (MPTN) ΓòÉΓòÉΓòÉ
  1572.  
  1573. OS/2 Sockets (AF_INET) may also be used to support TCP/IP applications running 
  1574. over NetBIOS and SNA network unchanged. This is provided under the socket 
  1575. transport framework. In addition, applications written to current SNA APIs 
  1576. (e.g. CPI-C) and NetBIOS NCB I/F can also run on nonmatching networks such as 
  1577. TCP/IP, SNA and NetBIOS LAN. This mix-and-match networking capability is 
  1578. described under CTS (Common Transport Semantics) within IBM's MPTN 
  1579. architecture. CTS supports matching and nonmatching transport API and protocol 
  1580. access. MPTN complements existing mixed protocol access standards such as RFC 
  1581. 1001, 1002 for NetBIOS on TCP/IP by providing an architecture framework to 
  1582. enable communications applications using a protocol specific API to run on 
  1583. different networks. 
  1584.  
  1585.  
  1586. ΓòÉΓòÉΓòÉ 7.1.2. Transport Services ΓòÉΓòÉΓòÉ
  1587.  
  1588. Sockets provide two basic sets of transport services: 
  1589.  
  1590. o   Connection-oriented data transfer:  Connection-oriented services provides 
  1591.     reliable end-to-end delivery of data. It is peer-to-peer and full duplex. 
  1592.     The data transfer type may be stream (SOCK_STREAM) or message 
  1593.     (SOCK_SEQPACKET). 
  1594.  
  1595. o   Connection-less (SOCK_DGRAM) data transfer:  Connection-less services 
  1596.     provide unreliable message-based data transfer and include unicast, 
  1597.     multicast and broadcast message support. 
  1598.  
  1599.  
  1600. ΓòÉΓòÉΓòÉ 7.1.3. Supported Platforms ΓòÉΓòÉΓòÉ
  1601.  
  1602. Sockets is supported on most operating system platforms: 
  1603.  
  1604. o   Sockets (AF_OS2, AF_UNIX) for local domain is available on OS/2. and 
  1605.     AIX/6000. 
  1606.  
  1607. o   Sockets (AF_INET) for TCP/IP is available for DOS, Windows(called Winsock), 
  1608.     OS/2, and AIX/6000. 
  1609.  
  1610. o   Sockets (AF_NB, AF_PX) for NetBIOS is available on OS/2. 
  1611.  
  1612. o   Sockets (AF_INET) over NetBIOS is available on OS/2. 
  1613.  
  1614. o   Sockets (AF_INET) over SNA is available on OS/2, AIX/6000. and MVS. 
  1615.  
  1616. If the sockets interface is not available for a platform, other protocol 
  1617. specific interfaces may be used. These include: 
  1618.  
  1619. o   NetBIOS API on native NetBIOS protocol for DOS, Windows, OS/2, and 
  1620.     AIX/6000. 
  1621.  
  1622. o   NetBIOS API on TCP/IP for NetBIOS applications migration to TCP/IP network 
  1623.     is available on DOS, Windows, OS/2, AIX/6000 and other systems. 
  1624.  
  1625. o   NetBIOS API on SNA protocols will be available on OS/2. 
  1626.  
  1627. o   SNA CPI-C and APPC APIs on TCP/IP is available on OS/2 and AIX/6000. 
  1628.  
  1629.  
  1630. ΓòÉΓòÉΓòÉ 7.2. Transport Guidelines ΓòÉΓòÉΓòÉ
  1631.  
  1632. This section describes how to build a network independent application to 
  1633. interoperate with remote applications for new and migrating applications 
  1634. environment. 
  1635.  
  1636. Application Use of Transport Services 
  1637.  
  1638. Transport Interoperability 
  1639.  
  1640.  
  1641. ΓòÉΓòÉΓòÉ 7.2.1. Application Use of Transport Services Guidelines ΓòÉΓòÉΓòÉ
  1642.  
  1643. Applications do not use transport services directly. Higher layer communication 
  1644. services such as RPC are used instead. 
  1645.  
  1646. -OR- 
  1647.  
  1648. Applications only use transport services directly if interoperability with 
  1649. existing transport level applications is required or when there is a 
  1650. requirement which cannot be met by using other higher layer communication 
  1651. services. 
  1652.  
  1653.  
  1654. ΓòÉΓòÉΓòÉ 7.2.2. Transport Interoperability Guidelines ΓòÉΓòÉΓòÉ
  1655.  
  1656. 1.  Use Sockets AF_INET as the transport independent interface over any network 
  1657.     type. Native TCP/IP network should be used for internetworking over 
  1658.     heterogeneous systems. 
  1659.  
  1660. 2.  Use Sockets as the common IPC/Transport API (non-AF_INET address families) 
  1661.     to access other native protocols for interoperability with remote 
  1662.     applications writing to specific transport. 
  1663.  
  1664.  
  1665. ΓòÉΓòÉΓòÉ 8. System Management ΓòÉΓòÉΓòÉ
  1666.  
  1667. In distributed environments the need for system management has become an 
  1668. important customer priority. Customer requirements include the need to be able 
  1669. to manage both local and remote systems using basic system administration 
  1670. skills. The effectiveness and success of the system management applications 
  1671. will be only as good as the data received from the managed applications. 
  1672.  
  1673. System Management Requirements are defined for applications to enable support 
  1674. of a common set of functions. This will allow the customers to manage their 
  1675. systems through a set of managing applications. Our goal is to provide a common 
  1676. look and feel for system management functions across the AIX/6000 and OS/2 
  1677. systems. The following requirements are considered key to a successful system 
  1678. management strategy and are defined in detail in the following sections: 
  1679.  
  1680. o   Reliability, Availability and Serviceability (RAS) 
  1681.  
  1682. o   Software Management 
  1683.  
  1684.     -   Packaging 
  1685.     -   Delivery/Distribution 
  1686.     -   Configuration 
  1687.     -   Installation 
  1688.  
  1689. o   License Management 
  1690.  
  1691. o   Performance Monitoring 
  1692.  
  1693. o   Remote System Management Access 
  1694. when 
  1695.  
  1696.  
  1697. ΓòÉΓòÉΓòÉ 8.1. Reliability, Availability and Serviceability (RAS) ΓòÉΓòÉΓòÉ
  1698.  
  1699. RAS is defined as Reliability, Availability and Serviceability. The Reliability 
  1700. of a system is defined as the ability to recover from detected errors and to 
  1701. avoid the hanging or crashing of the application or system. Availability is the 
  1702. ratio of the total time a functional unit/application is capable of being used 
  1703. to the total time the functional unit/application is required for use. 
  1704. Applications can improve availability by having administrative functions 
  1705. operate concurrently with system operation. This includes the changing of 
  1706. configuration, installation of software fixes, and changing of hardware 
  1707. components without disrupting (i.e. rebooting) the system operation. 
  1708. Serviceability is the ability to identify and repair system failures in the 
  1709. least amount of time with minimal disruption to the customer operation. The 
  1710. provision of good Problem Determination/ Problem Source Identification (PD/PSI) 
  1711. is a key factor in the design of a serviceable system. 
  1712.  
  1713. To have a serviceable system the application should follow the defined strategy 
  1714. and all the PD/PSI tools and aids should ship with the base application and be 
  1715. installed as the installation default. These strategies and functions include: 
  1716.  
  1717. o   Message Format/Logging 
  1718.  
  1719. o   Failure Detection/Formatting 
  1720.  
  1721.     -   Error Log 
  1722.     -   Trace 
  1723.     -   Dump 
  1724.  
  1725. o   PD/PSI Start Points 
  1726.  
  1727. o   Problem Determination Guide 
  1728.  
  1729. o   Application/API Test Utilities 
  1730. chart. 
  1731.  
  1732.  
  1733. ΓòÉΓòÉΓòÉ 8.1.1. What is PD/PSI? ΓòÉΓòÉΓòÉ
  1734.  
  1735. Problem Determination (PD) is described by IBM as the process to determine if 
  1736. the problem is caused by hardware or software. Once the problem is isolated to 
  1737. hardware or software then the next step is to determine the Problem Source 
  1738. Identification (PSI) within the software (SW) category (this would be the 
  1739. software module) or the Customer Replaceable Unit (CRU) within the hardware 
  1740. (HDW) category (this would be a defective hardware component such as memory or 
  1741. adapter card). 
  1742.  
  1743. With a good implementation of PD/PSI, the customer will be able to isolate and 
  1744. replace a hardware or software defect without any assistance from an external 
  1745. support structure. To enable this, the application developer will need to 
  1746. utilize the guidelines described in this section. 
  1747.  
  1748. This PD/PSI goal should also apply to the initial installation/configuration of 
  1749. the system. The customer should be able to install and configure the system 
  1750. successfully without assistance from an external support structure. 
  1751.  
  1752.  
  1753. ΓòÉΓòÉΓòÉ 8.1.2. Future Considerations for RAS ΓòÉΓòÉΓòÉ
  1754.  
  1755. DCE 
  1756.  
  1757. OSF is proposing a DCE logging facility that should be available in the OSF/DCE 
  1758. 1.1 release. 
  1759.  
  1760. OS/2 and AIX/6000 
  1761.  
  1762. OS/2 and AIX/6000 will have logging facilities based on the FFST technology 
  1763. added in future base releases. See the reference section for additional 
  1764. information on FFST. 
  1765.  
  1766. Object-Oriented Environments 
  1767.  
  1768. RAS requirements will not change when programs are written using an 
  1769. object-oriented programming language but can be standardized by taking 
  1770. advantage of inheritance (sub-classing) technology. Applications should be 
  1771. designed with a basic set of RAS classes that all application classes can 
  1772. inherit such as: 
  1773.  
  1774.  o   Trace activation/deactivation 
  1775.  o   Test command 
  1776.  o   Return current status (active/waiting/etc) 
  1777.  o   Performance monitor activation/deactivation 
  1778.  
  1779. RAS requirements such as logging, that don't require class message support 
  1780. since logging is non-solicited, can use either a procedure call or send a 
  1781. message to a logging object if the services are defined as object classes. 
  1782.  
  1783. There is no industry/platform standard set of RAS classes available today for 
  1784. RAS class inheritance. 
  1785.  
  1786.  
  1787. ΓòÉΓòÉΓòÉ 8.1.3. RAS Guidelines ΓòÉΓòÉΓòÉ
  1788.  
  1789. To be effective in the detection and isolation of problems, the application 
  1790. should support the following set of RAS compliance categories to ensure that 
  1791. the user/administrator will be able to isolate and resolve problems without 
  1792. support center involvement. 
  1793.  
  1794. Message Format 
  1795.  
  1796. Message Logging 
  1797.  
  1798. Failure Detection 
  1799.  
  1800. PD/PSI Start Point 
  1801.  
  1802. Problem Determination Guide (PDG) 
  1803.  
  1804. Application/API Test Utilities 
  1805.  
  1806.  
  1807. ΓòÉΓòÉΓòÉ 8.1.3.1. Message Format Guidelines ΓòÉΓòÉΓòÉ
  1808.  
  1809. Messages that are generated should be timestamped, have an ID, and have help 
  1810. information if the original message requires more detailed text for problem 
  1811. clarification. The timestamp allows the message to be associated with a message 
  1812. log entry so that the proper information about the condition can be gathered. 
  1813. Error messages should also be hypertext enabled for easy access to supporting 
  1814. logs and related information. Information displayed while using the hypertext 
  1815. links should be logged to a common file for later access by a support group. An 
  1816. example would be if a message indicates that the error log contains additional 
  1817. information and the error log instructs the user to run diagnostics. As the 
  1818. user is proceeding through the steps (message, error log, diagnostics) the 
  1819. information that is retrieved at each step should be stored in a common file 
  1820. for later retrieval. See Customer Information Messages Guidelines for message 
  1821. format and see Internationalization Guidelines for requirements. 
  1822.  
  1823. Code that detects error conditions but has no user interface should make sure 
  1824. that all detected errors have unique return codes. These return codes can then 
  1825. be passed to the requesting interface for accurate generation of messages and 
  1826. user actions. Error return codes should not be consolidated to generate a 
  1827. single message such as "program error, unable to continue" when individual 
  1828. messages would have more isolation capabilities. 
  1829.  
  1830.  
  1831. ΓòÉΓòÉΓòÉ 8.1.3.2. Message Logging Guidelines ΓòÉΓòÉΓòÉ
  1832.  
  1833. In many cases it is very helpful to reproduce the events that led up to the 
  1834. error condition via a message log. This log should contain the messages that 
  1835. the application generated and are displayed to the user. Log access should have 
  1836. supporting help panels that describe the probable cause and action required to 
  1837. correct the problem. 
  1838.  
  1839. 1.  Application generated messages are timestamped and describe probable cause 
  1840.     and action with supporting helps as described in Customer Information 
  1841.     section. 
  1842.  
  1843. 2.  Supporting documentation exists for message definition that can be used for 
  1844.     remote assistance. Message logging is provided for additional information. 
  1845.  
  1846.  
  1847. ΓòÉΓòÉΓòÉ 8.1.3.3. Failure Detection Guidelines ΓòÉΓòÉΓòÉ
  1848.  
  1849. Error Log 
  1850.  
  1851. Applications should be designed to detect, log (if required), and recover from 
  1852. errors. Errors that are logged should have timestamps and information that can 
  1853. be used to tie together all the events that are associated with the error 
  1854. condition. If messages are displayed, the error log entries should use the same 
  1855. wording and error causes so the administrator can associate the displayed 
  1856. message with an error log entry to perform effective PD/PSI. 
  1857.  
  1858. Sufficient error information should be logged so that probable cause of the 
  1859. error can be determined and displayed when the error log is used for PD/PSI 
  1860. activities. If the probable cause of an error can be different for 
  1861. installation, execution, or user activities the log should indicate these 
  1862. differences. An example would be that a CONFIG.SYS error in OS/2 might be the 
  1863. cause of an error condition during install time but would probably not be a 
  1864. cause on a system that has been working and no changes have been made to the 
  1865. CONFIG.SYS file. Applications should also allow for the generation of error 
  1866. notifications to remote administration systems. See Remote System Management 
  1867. Access section for remote system management requirements and the reference 
  1868. section for pointers to programming documentation that applies to your 
  1869. development platform for logging error information. 
  1870.  
  1871. Trace 
  1872.  
  1873. Traces are used to gather dynamic information about system and application 
  1874. activities to assist with PD/PSI and performance-related activities. The 
  1875. performance trace requirements are described in Performance Monitoring section. 
  1876.  
  1877. The PD/PSI trace should be designed to isolate the flow at major APIs in the 
  1878. system such as the interface into and out of each application and be able to 
  1879. trace events through the application. Most trace data associated with an 
  1880. individual application is unique. A formatter should be provided to display the 
  1881. trace information and registers, buffers and other areas should be clearly 
  1882. labeled. Any error conditions (i.e. bad return codes, invalid commands) should 
  1883. be detected and described by the formatter. 
  1884.  
  1885. The user of an application feature should be able to activate tracing when the 
  1886. feature is started. An example would be if you were trying to start TCP/IP and 
  1887. a failure occurred on activation. If the TCP/IP program had been required to be 
  1888. active before the trace could be started it would not have been able to capture 
  1889. the initial activation error sequence. OS/2 and AIX/6000 provide trace services 
  1890. that can be used to gather information from code that has been instrumented. 
  1891. AIX/6000 provides a trace formatter and a mechanism for applications to use 
  1892. that formatter to format their trace data. Many applications have defined their 
  1893. own trace facilities. 
  1894.  
  1895. Dump 
  1896.  
  1897. Applications, when in an unrecoverable system error condition, should support a 
  1898. dump procedure that allows a total or partial dump (by component) of the 
  1899. application space or process. There should be a formatter that will describe 
  1900. the cause of failure in a symptom string format that can be used by the support 
  1901. structure to identify rediscoveries. This symptom string information should 
  1902. also include failing module identification. 
  1903.  
  1904. The AIX/6000 system dump is a tool for isolating system problems. Selected 
  1905. areas of the system can be dumped by defining them in the master dump table via 
  1906. a dmp_add kernel service and in the component dump table via the sys/dump.h 
  1907. header file. Each function that is dumped can install a unique formatting 
  1908. routine that can be called by the crash command for interpretation and 
  1909. formatting of system structures. The crash command provides a variety of 
  1910. subcommands for viewing both an active system as well as a system image file. 
  1911.  
  1912. 1.  (AIX/6000) Device drivers use the AIX/6000 RAS facilities by instrumenting 
  1913.     the code with syslog calls for error logging, dmp_add for dump, and event 
  1914.     hooks for trace. 
  1915.  
  1916. 2.  (DCE) Base platform (AIX/6000 and OS/2) services should be used for error 
  1917.     logging, dump, and trace support. 
  1918.  
  1919.  
  1920. ΓòÉΓòÉΓòÉ 8.1.3.4. Error Log, Trace and Dump Formatting Guidelines ΓòÉΓòÉΓòÉ
  1921.  
  1922. Failure information that is logged for future display should have a format 
  1923. program for error log, dump, and trace information. 
  1924.  
  1925. 1.  Formatters are provided for the display of error log, dump, and trace 
  1926.     information with probable cause of failure displayed when possible. 
  1927.  
  1928. 2.  Probable cause analysis programs are used for multiple log correlation and 
  1929.     analysis. 
  1930.  
  1931.  
  1932. ΓòÉΓòÉΓòÉ 8.1.3.5. PD/PSI Start Point Guidelines ΓòÉΓòÉΓòÉ
  1933.  
  1934. There should be a single desktop start point that will provide access to the 
  1935. PD/PSI tools by the administrator and should be accessible both locally and 
  1936. remotely. See Remote System Management section for remote access requirements. 
  1937. There should be selections for trace, error logs, dump, and any other tools the 
  1938. application provides. There should also be a hardcopy description of what to do 
  1939. in case of a problem in a situation when the application is in a state that it 
  1940. can no longer communicate with the operator or send information to the 
  1941. operating system for recovery. This documentation should also describe the 
  1942. error log, trace, dump, and message detail information. 
  1943.  
  1944. The application PD/PSI tools have a desktop start point where all PD/PSI tools 
  1945. can be accessed. 
  1946.  
  1947.  
  1948. ΓòÉΓòÉΓòÉ 8.1.3.6. Problem Determination Guide Guidelines ΓòÉΓòÉΓòÉ
  1949.  
  1950. The PDG should describe the problem determination procedure from starting point 
  1951. to finish. The PD/PSI starting information should address all detectable 
  1952. situations (e.g. system inoperable, unexpected results, etc) and describe the 
  1953. use of the supporting tools such as error logs, traces and dumps that can be 
  1954. used for remote assistance. 
  1955.  
  1956. The application has PD/PSI documentation to support system-inoperable 
  1957. conditions, remote assistance requirements, and supporting documentation for 
  1958. the interpretation of error log, dump, and trace information. 
  1959.  
  1960.  
  1961. ΓòÉΓòÉΓòÉ 8.1.3.7. Application/API Test Utilities Guidelines ΓòÉΓòÉΓòÉ
  1962.  
  1963. During PD/PSI, an important step is to identify the parts of the system that 
  1964. are working correctly. When only APIs are shipped with an application, the only 
  1965. way to verify correct operation may be with a test program. This test program 
  1966. plays an important role when isolating user vs application API problems. Sample 
  1967. test programs should be made available for verification of client/server 
  1968. end-to-end communications (e.g. Send/Receive). There is also a need to have 
  1969. test commands that will verify the correct operation of system path components 
  1970. (e.g. TCP/IP ping) and local hardware (e.g. wrap, loop-back modem commands). 
  1971.  
  1972. The application has test programs, utilities and test commands that will verify 
  1973. correct operation of the application APIs and program and hardware paths. 
  1974.  
  1975.  
  1976. ΓòÉΓòÉΓòÉ 8.2. Software Management ΓòÉΓòÉΓòÉ
  1977.  
  1978. Software applications pass through a lifecycle that starts with development and 
  1979. packaging, then delivery to users, then distribution within users' 
  1980. organizations, then configuration and installation on on users' workstations, 
  1981. then possible additional configuration after installation, then actual 
  1982. operation, then possible updating and/or removal from the users' systems. 
  1983. During this lifecycle the objective is to enable the user, the support 
  1984. personnel, and the development organization to manage the application images 
  1985. that are on the user's workstation. 
  1986.  
  1987. This figure illustrates the applications lifecycle stages. Each box represents 
  1988. a separate process in the software lifecycle from Software Product Development 
  1989. in the beginning to Deinstall at the end. Note that there are no separate steps 
  1990. for software maintenance or updates; software updates and fix packages flow 
  1991. through the same steps as the initial software releases.  A point release or 
  1992. fix package may skip a configuration step (because previous configuration still 
  1993. applies),  but the path should be the same for application updates as for 
  1994. original products.  Where differences between AIX/6000 and OS/2 apply, there 
  1995. are notes beside the process boxes. 
  1996.  
  1997. The requirements for the stages of software management include the following: 
  1998.  
  1999. o   Packaging  provides the data required to manage the software during its 
  2000.     lifecycle. 
  2001.  
  2002. o   Delivery to Customer  requires that products be media independent, e.g., 
  2003.     easily copied from one media type to another. 
  2004.  
  2005. o   Distribution within Customer Organization  provides for management of code 
  2006.     servers, code packages, customer workstations, and groups of workstations. 
  2007.  
  2008.     IBM's NetView Distribution Manager/2 (NetViewDM/2) and NetView Distribution 
  2009.     Manager/6000 (NetViewDM/6000) are examples of software distribution 
  2010.     applications for OS/2 and AIX/6000. 
  2011.  
  2012. o   Feature Selection / Configuration  before installation provides for 
  2013.     unattended installation across a network. 
  2014.  
  2015. o   Installation  makes applications executable on the workstation. Feature 
  2016.     selection and configuration determines what code is actually installed on 
  2017.     the workstation.  Client/server applications can minimize the code and data 
  2018.     that is required on each client workstation. 
  2019.  
  2020. o   Configuration  changes can be made after installation is complete, either 
  2021.     locally and remotely. 
  2022.  
  2023. o   Operation  of the software application is now possible by the customer 
  2024.     until a fix package update is applied, a later release of the application 
  2025.     is installed or the application is removed from the workstation. An 
  2026.     inventory of the software on each workstation is required to enable other 
  2027.     applications or updates to the original application to perform prerequisite 
  2028.     checking. 
  2029.  
  2030.     Runtime licensing of software provides the customer with usage records for 
  2031.     the software and insures the customer is in compliance with the software 
  2032.     license agreement. 
  2033.  
  2034. o   Deinstall  is the removal of an application without impairing the operation 
  2035.     of the other software on the workstation. 
  2036.  
  2037. o   Maintenance  of application software uses all the previously listed stages. 
  2038.     Updates to an application require the same software management that the 
  2039.     original application does. 
  2040.  
  2041.  
  2042. ΓòÉΓòÉΓòÉ 8.2.1. Software Management Services and Interfaces ΓòÉΓòÉΓòÉ
  2043.  
  2044. The Current Environment 
  2045.  
  2046. The Future Environment 
  2047.  
  2048.  
  2049. ΓòÉΓòÉΓòÉ 8.2.1.1. The Current Environment ΓòÉΓòÉΓòÉ
  2050.  
  2051. AIX/6000 provides a software management tool called installp and documents how 
  2052. to package AIX/6000 applications to use this facility in the AIX/6000 General 
  2053. Programming Concepts publication. There is also a software distribution 
  2054. product, NetView Distribution Manager/6000, available on AIX/6000 that can 
  2055. distribute and install software to AIX/6000, OS/2, and Window systems. 
  2056.  
  2057. For OS/2 and Windows applications IBM provides Software Installer for OS/2 and 
  2058. Software Installer for Windows, respectively. IBM also publishes the CID 
  2059. Enablement Guidelines that describes how to develop an OS/2, DOS, or Windows 
  2060. install program that can be executed remotely on an unattended system. By 
  2061. following these guidelines a software developer can produce an application that 
  2062. can be distributed and installed by the OS/2 product NetViewDM/2 or by the 
  2063. AIX/6000 product NetViewDM/6000. 
  2064.  
  2065.  
  2066. ΓòÉΓòÉΓòÉ 8.2.1.2. The Future Environment ΓòÉΓòÉΓòÉ
  2067.  
  2068. POSIX draft standard, P1378.2 Draft 12, March 1994, Software Administration 
  2069. describes software management utilities that will be available in the fugure 
  2070. releases AIX/6000 and future releases of OS/2. When the POSIX software 
  2071. administration utilities are available on AIX/6000and OS/2, applications will 
  2072. be able to package software so it can be installed easily and managed 
  2073. consistently on AIX/6000 and OS/2 systems. IBM's Software Installer for OS/2 
  2074. product will provide migration for its application install programs to the 
  2075. POSIX software administration utilities. 
  2076.  
  2077. Future releases of OS/2 will provide a means to configure and customize the 
  2078. system without having to update shared ASCII files like CONFIG.SYS and OS2.INI. 
  2079. These new functions will help application install and remove software without 
  2080. altering the operation of other applications. 
  2081.  
  2082.  
  2083. ΓòÉΓòÉΓòÉ 8.2.2. Software Management Guidelines ΓòÉΓòÉΓòÉ
  2084.  
  2085. Packaging 
  2086.  
  2087. Delivery to Customer 
  2088.  
  2089. Distribution with Customer Organization 
  2090.  
  2091. Feature Selection/Configuration 
  2092.  
  2093. Installation 
  2094.  
  2095. Configuration after Install 
  2096.  
  2097. Deinstall 
  2098.  
  2099. Maintenance 
  2100.  
  2101.  
  2102. ΓòÉΓòÉΓòÉ 8.2.2.1. Packaging Guidelines ΓòÉΓòÉΓòÉ
  2103.  
  2104. 1.  (AIX/6000) The application is packaged for remote installation using 
  2105.     installp. 
  2106.  
  2107. 2.  (OS/2, DOS, Windows) The application meets the CID Enablement 
  2108.     Specifications. 
  2109.  
  2110. 3.  (OS/2) IBM's Software Installer for OS/2 is used to install the 
  2111.     application. 
  2112.  
  2113. 4.  (Windows) IBM's Software Installer for Windows is used to install the 
  2114.     application. 
  2115.  
  2116.  
  2117. ΓòÉΓòÉΓòÉ 8.2.2.2. Delivery to Customer Guidelines ΓòÉΓòÉΓòÉ
  2118.  
  2119. 1.  The application is independent of delivery media and provides utilities to 
  2120.     copy from one media to another, for example from CDROM to disk. 
  2121.  
  2122. 2.  Utilities are provided to update application images with fixes. 
  2123.  
  2124.     -OR- 
  2125.  
  2126.     Updates are made only with replacement of application images. 
  2127.  
  2128.  
  2129. ΓòÉΓòÉΓòÉ 8.2.2.3. Distribution within Customer Organization Guidelines ΓòÉΓòÉΓòÉ
  2130.  
  2131. Within a customer's organization software applications can be distributed to 
  2132. code servers and to user workstations without user participation.  IBM's 
  2133. software distribution family of products NetViewDM, NetViewDM/2 and 
  2134. NetViewDM/6000 provide common platforms for the distribution of data and 
  2135. applications to customer workstation. 
  2136.  
  2137. To take full advantage of these distribution applications, developers should 
  2138. provide remotely installable software as described by the Installation 
  2139. Guidelines or provide software that can be cloned.  To support cloning an 
  2140. application must provide for configuration after installation. The application 
  2141. can be distributed and installed by the IBM's NetViewDM, either as a clone or 
  2142. remote installable application. 
  2143.  
  2144.  
  2145. ΓòÉΓòÉΓòÉ 8.2.2.4. Feature Selection / Configuration Guidelines ΓòÉΓòÉΓòÉ
  2146.  
  2147. Application features should be selectable prior to install, and all 
  2148. configuration options should be able to be specified before install.  This 
  2149. allows the administrator at the customer site to preselect and preconfigure 
  2150. software before it is installed on a remote unattended system. 
  2151.  
  2152. 1.  (AIX/6000) Feature selection of the application can be accomplished before 
  2153.     installation. 
  2154.  
  2155. 2.  (OS/2, DOS, Windows) All of the configuration options of the application 
  2156.     can be specified in a CID response file for remote installation. 
  2157.  
  2158.  
  2159. ΓòÉΓòÉΓòÉ 8.2.2.5. Installation Guidelines ΓòÉΓòÉΓòÉ
  2160.  
  2161. OS/2 and DOS applications should be CID-enabled as defined by the CID 
  2162. Enablement Specifications. This includes the requirement to be able to install 
  2163. on unattended systems. 
  2164.  
  2165. A CID-enabled application should: 
  2166.  
  2167. o   Transfer application diskettes to a defined code server 
  2168. o   Generation and support of response file to define configuration options 
  2169. o   Command line parameter support to name files used 
  2170. o   Install code from any network drive (redirected install) 
  2171. o   Pass defined return codes to the software distribution manager 
  2172. o   Write progress information (error/history) to logs 
  2173. o   A reboot return code allows the software distribution manager (SDM) to 
  2174.     reboot the system once after multiple installs. 
  2175.  
  2176. CID install programs are best designed as two separate functions.  The first, 
  2177. user interface program, generates command and response files. The second 
  2178. program, the install engine, uses these files to drive the actual copies and 
  2179. update files. In this manner the install and configuration user interfaces can 
  2180. be separated for the actual install across time and space.  In other words, an 
  2181. administrator can select and configure an application,  and then later 
  2182. distribute the application to be installed later on remote unattended customer 
  2183. machines. 
  2184.  
  2185. AIX/6000 applications should be installable by installp. The AIX/6000 General 
  2186. Programming Concepts publication in the reference list describes the packaging 
  2187. file formats required to use installp. 
  2188.  
  2189. 1.  (AIX/6000) Application uses installp as described in the AIX/6000 General 
  2190.     Programming Concepts publication. 
  2191.  
  2192. 2.  (OS/2, DOS, Windows) Application can be installed remotely by a software 
  2193.     distribution manager on the users system. 
  2194.  
  2195. 3.  (OS/2, DOS, Windows) A GUI install utility is provided to create the CID 
  2196.     response file for the remote unattended install. 
  2197.  
  2198. 4.  (OS/2) IBM's Software Installer for OS/2 is used to develop the application 
  2199.     install program. 
  2200.  
  2201. 5.  (Windows) IBM's Software Installer for Windows is used to develop the 
  2202.     application install program. 
  2203.  
  2204.  
  2205. ΓòÉΓòÉΓòÉ 8.2.2.6. Configuration after Install Guidelines ΓòÉΓòÉΓòÉ
  2206.  
  2207. Applications should be configurable before and after installation. Requiring 
  2208. the customer to find installation media just to change a configuration 
  2209. parameter can be very annoying and time consuming. A local or remote 
  2210. administrator or user should be able to configure the software.  Just as CID 
  2211. enablement and  installp provide remote unattended install, these same 
  2212. techniques should be used to provide remote unattended configuration updates. 
  2213.  
  2214. 1.  The application allows configuration options to be changed after install 
  2215.     (without reinstalling). 
  2216.  
  2217. 2.  The application continues the install without the configuration options 
  2218.     being completed. The user is allowed to configure the application at first 
  2219.     execution. 
  2220.  
  2221. 3.  The application can be remotely configured after install. 
  2222.  
  2223.  
  2224. ΓòÉΓòÉΓòÉ 8.2.2.7. Deinstall Guidelines ΓòÉΓòÉΓòÉ
  2225.  
  2226. An application should be able to deinstall (remove itself) and reinstall itself 
  2227. on a workstation.  This includes removing directories, files, and updates the 
  2228. application makes to shared file, e.g., CONFIG.SYS on DOS or OS/2.  Care should 
  2229. be exercised when removing text from shared files because there is no standard 
  2230. way of checking to see if other applications are dependent on the same 
  2231. parameters.  If other applications depend on changes made to shared files, then 
  2232. the deinstalling application should leave the changes in place. 
  2233.  
  2234. 1.  The application can deinstall itself without affecting the system or other 
  2235.     applications. 
  2236.  
  2237. 2.  The application can install itself multiple times without affecting its own 
  2238.     or any other application's operation. 
  2239.  
  2240.  
  2241. ΓòÉΓòÉΓòÉ 8.2.2.8. Maintenance Guidelines ΓòÉΓòÉΓòÉ
  2242.  
  2243. The updates to an application are made with the same tools and procedures as 
  2244. the original install. 
  2245.  
  2246.  
  2247. ΓòÉΓòÉΓòÉ 8.3. License Management ΓòÉΓòÉΓòÉ
  2248.  
  2249. License management policy enforcement using electronic techniques via embedded 
  2250. API calls is called technical license management or  technical licensing. The 
  2251. license management guidelines assume that the application makes use of the 
  2252. security mechanisms described in the security section for user authentication 
  2253. and authorization. Technical licensing is the runtime enforcement of a selected 
  2254. license policy using electronic keys for: 
  2255.  
  2256. o   Software (asset) execution control (the ability to limit application 
  2257.     executions to the number of applications licensed) 
  2258. o   Software asset management (the ability to know how many applications are 
  2259.     licensed, who is using them, and where they are being used) 
  2260. o   Protection of software intellectual property rights. 
  2261.  
  2262. Today, the software industry licenses copies of software. It is important to 
  2263. know how many copies are being used at any point in time. This is called 
  2264. concurrent licensing. This technical licensing capability is currently 
  2265. supported for AIX/6000 using NetLS and will be in future releases of OS/2. 
  2266. iFOR/LS will be the name of the next release of this technology from IBM. NetLS 
  2267. and iFOR/LS technology will be interoperable. iFOR/LS will be a license manager 
  2268. product which implements technical licensing technology. 
  2269.  
  2270. Application developers and suppliers may want a method, or methods, which allow 
  2271. them to control access to and the use of their applications. The control 
  2272. depends entirely upon the policy chosen by each application developer. In most 
  2273. cases, this is necessary to ensure that the developers receive fair 
  2274. compensation for use.  The most common control method used by software 
  2275. developers is licensing, where the license can be provided through technical 
  2276. (software or hardware) or contractual means using a written license.  Written 
  2277. licenses are always a viable option but written license agreements do not 
  2278. provide the level of control provided by technical licensing (the use of 
  2279. software passwords or keys). Therefore, application developers will continue to 
  2280. require technical licensing methods to complement written legal contracts. It 
  2281. is apparent that software and hardware resources must be managed on a 
  2282. network-wide basis for maximum efficiency. However, the resulting requirement 
  2283. for network-wide sharing of software licenses and/or license keys may be less 
  2284. apparent. 
  2285.  
  2286. The capabilities of iFOR/LS include: 
  2287.  
  2288. o   License control 
  2289. o   Asset management (through the use of licenses) 
  2290. o   Logging (under user control) 
  2291. o   Server flexibility 
  2292. o   Additional sales channels through the use of "try and buy" type licenses. 
  2293.  
  2294.  
  2295. ΓòÉΓòÉΓòÉ 8.3.1. Today's Environment without License Management ΓòÉΓòÉΓòÉ
  2296.  
  2297. The following figure illustrates a LAN without license management. These LANs 
  2298. are not using any technically licensed applications. Currently there are very 
  2299. few tools to assist the administrator in managing software assets. There are 
  2300. eight applications being used -- two licenses have been purchased for each of 
  2301. the eight applications.  As can be seen, three applications (APPL1, APPL3 and 
  2302. APPL8) of the eight violate the licensing agreements because three copies of 
  2303. each are being used concurrently on different workstations (for example: APPL1 
  2304. is on workstations "A","B", and "C"). There is no metering application to 
  2305. monitor or to limit the number of applications being used concurrently. 
  2306.  
  2307. In the following figure, metering has been added to the same LAN by adding a 
  2308. system-type application to the file server and then moving the code for the 
  2309. eight applications to the file server and using it as a combination file and 
  2310. code server. The term metering is used in three ways by the industry: 
  2311.  
  2312. o   Simple counting of application requests (executions) 
  2313. o   Counting application requests and accumulating the execution time 
  2314. o   Counting application requests and limiting the concurrent executions to 
  2315.     those applications according to the number of paper licenses purchased. 
  2316.  
  2317. This figure illustrates license conformity using metering to count application 
  2318. requests and limit the concurrent executions. The parameters for the metering 
  2319. program were set to allow two copies to execute concurrently (in conformance 
  2320. with the license agreement). This conformance requires that some workstations 
  2321. wait for applications since this LAN is under licensed (i.e., it does not have 
  2322. as many concurrent runtime licenses as it has concurrent requests). 
  2323.  
  2324.  
  2325. ΓòÉΓòÉΓòÉ 8.3.2. The Licensing Environments ΓòÉΓòÉΓòÉ
  2326.  
  2327. The following figure illustrates the use of applications which are license 
  2328. enabled.  This means that the applications contain API calls which request a 
  2329. license key from a license key server before it proceeds with its execution. A 
  2330. license enabled application does not have to reside on a code server in order 
  2331. to have the concurrent execution requests controlled. The control resides in 
  2332. the application as a policy which logically represents a paper license. 
  2333.  
  2334. As each application initializes, it requests a license key from the license 
  2335. server.  Each of the first two application requests (for APPL1 thru APPL8) is 
  2336. able to get a key since each application on the LAN has been licensed for two 
  2337. concurrent users. The third concurrent request for each of the applications 
  2338. receives a return code which means that licenses are available but they are all 
  2339. currently in use.  APPL1, APPL3 and APPL8 (in the illustration) all received 
  2340. this return code and all decided to queue on the server and to wait until a 
  2341. license if free.  The alternative action was to hard stop. 
  2342.  
  2343. Each application in a license queue will periodically poll the license server 
  2344. to determine if a license has been made free. As soon as a license is 
  2345. available, the application will begin its execution phase. 
  2346.  
  2347.  
  2348. ΓòÉΓòÉΓòÉ 8.3.3. License Policy ΓòÉΓòÉΓòÉ
  2349.  
  2350. A licensing policy enforces a written licensing agreement. It answers the 
  2351. following types of questions: 
  2352.  
  2353. o   What type of license keys are required (or types of licenses)? 
  2354. o   What does the application do when it does not find a license key? 
  2355.  
  2356.     -   Does it queue for a license key? 
  2357.     -   Does it quit immediately? 
  2358.     -   Does it continue but with a warning message? 
  2359.     -   Does it continue but in a degraded mode? 
  2360. o   Is more than one license key required and why? 
  2361. o   What happens if the user requests exceed the count of available licenses? 
  2362.  
  2363. iFOR/LS has the capabilities to enforce some very complex policies. Software 
  2364. developers should keep the supported policy as simple as is possible yet strict 
  2365. enough to protect intellectual property and assets. For AIX/6000 and OS/2, 
  2366. sample policy code will be made available to those who purchase the Application 
  2367. Developer's Kits (ADKs). 
  2368.  
  2369.  
  2370. ΓòÉΓòÉΓòÉ 8.3.4. License Guidelines ΓòÉΓòÉΓòÉ
  2371.  
  2372. An application is not considered to be license-enabled unless it uses the 
  2373. iFOR/LS APIs. The following guidelines assume that the application will use 
  2374. iFOR/LS for future releases of OS/2 and NetLS for AIX/6000. 
  2375.  
  2376. With software license management, the user may or may not have a printed 
  2377. license to read that explains the policy supported by the enabled application. 
  2378. The application developer should provide a means of explanation (e.g. a file or 
  2379. online help information) so that the interested user can read the description 
  2380. of the actual policy being enforced by the software. 
  2381.  
  2382. 1.  The APIs should be installed at the proper places within the code to 
  2383.     request a license. The license initialization and license request APIs 
  2384.     should be issued prior to or during the initialization of the application. 
  2385.  
  2386. 2.  Applications should notify the license server at intervals specified by the 
  2387.     license policy that the application is still using the license.  This is 
  2388.     best implemented using a timer thread which issues the API to notify the 
  2389.     server. Use the netls_check_license API. 
  2390.  
  2391. 3.  When the application requests a license and learns that the workstation is 
  2392.     not registered, the application should notify the user that the workstation 
  2393.     is not registered and inform the user as to how to properly register the 
  2394.     workstation. 
  2395.  
  2396. 4.  A mechanism (e.g. a file or help information) should be provided which 
  2397.     states the license policy enforced by the software. 
  2398.  
  2399. 5.  The implemented policy should be simple and easy to explain and to 
  2400.     understand. 
  2401.  
  2402. 6.  The user should be given online instructions on how to obtain a license 
  2403.     when the software determines that a license does not exist. 
  2404.  
  2405. 7.  When the application is started and it does not find a license, it 
  2406.  
  2407. 8.  cannot exit without telling the user how to purchase a license. 
  2408.  
  2409. 9.  Applications should provide the flexibility to include the name, telephone 
  2410.     number, and/or address of the reseller who sold the software to the end 
  2411.     user. The design of this flexibility is left to the application developer. 
  2412.  
  2413. 10. The user should have the option, during runtime, to choose whether or not 
  2414.     to wait for a license when one exists but is not available. 
  2415.  
  2416.  
  2417. ΓòÉΓòÉΓòÉ 8.4. Performance Monitoring ΓòÉΓòÉΓòÉ
  2418.  
  2419. Performance Monitoring tools should provide a single view of the networked 
  2420. system and the capability to monitor each individual node. A Managing System 
  2421. provides access to, and collection of, the data from the various nodes (Managed 
  2422. Systems). A Managing System is defined as a computer or workstation where the 
  2423. results of the performance monitoring are viewed or observed. A Managed System 
  2424. is the computer or workstation where the performance-instrumented application 
  2425. is executing and performance data is being collected and sent to the Managing 
  2426. System. Following is an example of a performance monitoring environment. 
  2427.  
  2428. Application developers should instrument their code with user metrics to 
  2429. support the various performance monitoring activities that take place 
  2430. throughout the application's life cycle. Examples of user metrics are: 
  2431.  
  2432. o   number of transactions or executions per second 
  2433. o   number of bytes sent or received from a remote server 
  2434. o   response times for server requests 
  2435. o   number of logged-on users 
  2436. o   number of data buffers currently allocated 
  2437.  
  2438. Following is an example of performance monitoring instrumentation. 
  2439.  
  2440. This performance monitoring instrumentation can be used during the application 
  2441. design and development phases to support design validation analysis, 
  2442. verification of the application versus its performance objectives, memory leak 
  2443. analysis, and determining the causes of performance problems that are detected 
  2444. during development and testing. 
  2445.  
  2446. Once the instrumented application is operational, it can be monitored for 
  2447. performance characteristics. This data can be used to support system 
  2448. administration and management activities which include tracking system resource 
  2449. utilization, identifying growth trends and additional resources that will be 
  2450. needed, and identifying symptoms of operational performance problems. 
  2451.  
  2452. Performance monitoring is used to address performance problems/questions from 
  2453. customers. Application support personnel may use performance monitoring 
  2454. instrumentation from either the design and development phase (for problem 
  2455. symptoms) or the system administration and management phase (for identifying 
  2456. problem causes). 
  2457.  
  2458.  
  2459. ΓòÉΓòÉΓòÉ 8.4.1. Supported Platforms ΓòÉΓòÉΓòÉ
  2460.  
  2461. In the following discussions of the supported platforms and their performance 
  2462. monitoring instrumentation and tools, only the discussions under the System 
  2463. Administration and Management topics are to be considered as implementation 
  2464. guidelines within the scope of this document. The instrumentation and tools 
  2465. discussed under the Application Design and Development topics are included as 
  2466. general, useful information on optimizing the performance of the application, 
  2467. but not as implementation guidelines. 
  2468.  
  2469. OS/2 
  2470.  
  2471. AIX/6000 
  2472.  
  2473.  
  2474. ΓòÉΓòÉΓòÉ 8.4.1.1. OS/2 ΓòÉΓòÉΓòÉ
  2475.  
  2476. Instrumentation for System Administration and Management 
  2477.  
  2478. Application programmers should use the SPM/2 API to instrument their code with 
  2479. user metrics for system administration and management. 
  2480.  
  2481. To support OS/2 application and device driver user metric enabling, the SPM/2 
  2482. API allows you to: 
  2483.  
  2484. o   Register/deregister counter groups for collection 
  2485. o   Set/clear semaphore to control access to counter groups 
  2486. o   Increment/decrement counter value 
  2487. o   Start/stop timer 
  2488. o   Set queue (counter/timer pair) value 
  2489. o   Add/remove a specified number of elements to/from a queue 
  2490. o   Query current time. 
  2491. The instrumentation resulting from this API enables performance monitoring by 
  2492. using the SPM/2 and/or LAN NetView Monitor products. The description on how to 
  2493. instrument user code, and to define and register user metrics for both of these 
  2494. products is provided in the SPM/2 documentation (see References). 
  2495.  
  2496. Described briefly, user performance metrics for an instrumented application can 
  2497. be collected by SPM/2 and made available for real-time processing by using the 
  2498. SPM/2 API to: 
  2499.  
  2500. o   Determine active SPM/2 components 
  2501. o   Retrieve real-time and historical data 
  2502. o   Initialize/terminate a monitor session 
  2503. o   Open/close a monitor session file 
  2504. o   Read an instance of sample data from a monitor session file 
  2505. o   Query the status of active and inactive monitor sessions. 
  2506.  
  2507. Instrumentation for Application Design and Development 
  2508.  
  2509. For support of the application design and development phases, there is no 
  2510. performance trace facility provided for OS/2, and thus, no trace 
  2511. instrumentation methodology. The rich features of SPM/2 and LAN Netview Monitor 
  2512. are helpful in this environment. 
  2513.  
  2514. Using the SPM/2 API, application developers can register performance counters 
  2515. and timers for 16-bit and 32-bit OS/2 applications, device drivers, file system 
  2516. device drivers and virtual device drivers. These instrumented performance 
  2517. counters and timers can be used in the ANSI C programming language development 
  2518. environment to optimize application or device driver performance. 
  2519.  
  2520. The SPM/2 Theseus capability supports memory usage analysis and memory leak 
  2521. detection. See Performance Monitoring References, "Memory Debugging for C and 
  2522. C++ Programs" for guidelines, tools, and techniques. 
  2523.  
  2524.  
  2525. ΓòÉΓòÉΓòÉ 8.4.1.2. AIX/6000 ΓòÉΓòÉΓòÉ
  2526.  
  2527. Instrumentation for System Administration and Management 
  2528.  
  2529. To instrument application code under AIX/6000 for performance system 
  2530. administration and management, application developers should define and 
  2531. register user metrics using the AIX/6000 System Performance Measurement 
  2532. Interface (SPMI) API. The data thus collected can be reported using the 
  2533. AIX/6000 'xmperf' tool. How to use these facilities is described in the 
  2534. AIX/6000 documentation. 
  2535.  
  2536. Instrumentation for Application Design and Development 
  2537.  
  2538. For support of the application design and development phases, application 
  2539. developers should instrument their code for the AIX/6000 Trace Facility. The 
  2540. documentation on how to do this is provided in the AIX/6000 Performance Tuning 
  2541. Guide. Instrumentation should be included to mark entry and exit for each API 
  2542. that is developed for application users, and to trace the processing flow in 
  2543. key application functions and algorithms. (Consideration should be given to 
  2544. including this instrumentation in the shipped application; however, it may be 
  2545. decided to insert these calls conditionally and compile them out when the 
  2546. application is shipped). 
  2547.  
  2548. Trace can be postprocessed by the trcrpt tool, producing a very detailed, 
  2549. integrated view of the application's activity within the context of the rest of 
  2550. the system. See AIX/6000 Trace documentation for more information. 
  2551.  
  2552. Additionally, AIX/6000 provides a number of other tools which should be used to 
  2553. optimize application performance during design and development. A partial list 
  2554. of these tools for AIX Version 4.1 includes (many of these are available for 
  2555. earlier versions of AIX): 
  2556.  
  2557. o   tprof: 
  2558.  
  2559.     tprof allows developers to profile their applications.  That is, the 
  2560.     application can be executed, and tprof will identify portions of the 
  2561.     application in which most of the CPU time is being spent. In cases where 
  2562.     portions of an application are not available in source form (perhaps 
  2563.     involving a joint development activity, or integration with some 
  2564.     third-party application/subsystem), tprof is still capable of providing 
  2565.     subroutine level profiling of the entire application.  In the more likely 
  2566.     case where source is available, tprof can provide profiling down to the 
  2567.     source statement level. 
  2568.  
  2569. o   stem: 
  2570.  
  2571.     stem is a unique tool for tracing program flow. It allows programmers to 
  2572.     insert arbitrary instrumentation code into the entry and exit of any 
  2573.     executable. This instrumentation code can write its data into a shared 
  2574.     memory segment, or directly to a file.  Stem is shipped with a base set of 
  2575.     instrumentation routines that allow a user to immediately produce a 
  2576.     detailed call-graph of any executable. Like tprof, stem does not require 
  2577.     source code.  Unlike tprof, stem can trace every call, both in the user's 
  2578.     code, and in any library that code uses (even if no source code for that 
  2579.     library is available). Tprof is based on a sampling technique, so it might 
  2580.     miss certain short-duration activity.  Stem will catch every call. 
  2581.  
  2582. o   svmon: 
  2583.  
  2584.     svmon allows for process and system-wide memory usage to be profiled. It 
  2585.     provides a snapshot of the current state of memory for a process or for the 
  2586.     entire system.  It also provides detailed segment usage. 
  2587.  
  2588. o   rmss: 
  2589.  
  2590.     rmss allows a developer to experiment with an application's sensitivity to 
  2591.     real memory size.  By simultaneously varying a machine's real memory size 
  2592.     and repeatedly executing an application, a profile of memory size versus 
  2593.     paging activity is obtained.  Note that rmss actually simulates a change in 
  2594.     the machine's real memory allocation. 
  2595.  
  2596. o   fdpr: 
  2597.  
  2598.     fdpr applies a technique called feedback directed program restructuring 
  2599.     (fdpr) to effectively speedup an application execution. fdpr reorders 
  2600.     elements of an executable to improve that executable's use of system cache. 
  2601.     fdpr would be applied as the last step to program development, after all 
  2602.     programmer-initiated and compiler-directed optimizations had been applied. 
  2603.  
  2604. o   bigfoot: 
  2605.  
  2606.     bigfoot provides in depth trace of a program's memory footprint. Every page 
  2607.     reference (with the exception of pinned pages) is captured into an event 
  2608.     log. The result is a very detailed profile of an application's memory 
  2609.     activity. This profile is available at the process and subroutine level, 
  2610.     with both tabular and graphical outputs. 
  2611.  
  2612.  
  2613. ΓòÉΓòÉΓòÉ 8.4.2. Performance Monitoring Guidelines ΓòÉΓòÉΓòÉ
  2614.  
  2615. Application developers should use the facilities provided by this environment 
  2616. to instrument a broad range of user metrics, and to register and report these 
  2617. metrics as part of the larger set of performance metrics maintained for this 
  2618. environment. 
  2619.  
  2620. 1.  The application provides comprehensive instrumentation of user metrics 
  2621.     which support evaluation by a system administrator of resource usage by 
  2622.     this application in a system context. 
  2623.  
  2624. 2.  The application registers these metrics with the provided system 
  2625.     performance measurement facility, and provides report capabilities as 
  2626.     required by that facility. AIX/6000 applications use the SPMI API to 
  2627.     register these metrics. OS/2 applications use the SMP/2 API. 
  2628.  
  2629.  
  2630. ΓòÉΓòÉΓòÉ 8.5. Remote System Management Access ΓòÉΓòÉΓòÉ
  2631.  
  2632. Remote system management provides the administrator with a Single System Image 
  2633. of the network of systems that is being managed.  Network resources, such as 
  2634. gateways, routers, and servers show up in this image and can be monitored and 
  2635. controlled by the administrator. Managed systems will have a Simple Network 
  2636. Management Protocol (SNMP) agent that forwards status to and accepts commands 
  2637. from a managing workstation. Subagents can be included with the application to 
  2638. make their resources manageable. Subagents instrument enterprise-specific 
  2639. application MIBs to these management applications. A Management Information 
  2640. Base (MIB) is required for each subagent to define its management attributes. 
  2641. For example, a mail server could be enabled for remote management by including 
  2642. a MIB definition and an SNMP subagent that would allow the systems 
  2643. administrator at the remote console to: 
  2644.  
  2645. o   see that the mail server is operating normally 
  2646. o   observe the performance of the mail server in real time or from a recorded 
  2647.     log 
  2648. o   access RAS facilities (trace, error log, dump) 
  2649. o   start or stop the functions of the mail server. 
  2650.  
  2651. The job of the remote system manager, e.g, NetView/6000 (NV/6000) or LAN 
  2652. NetView (LNV), is to process error messages and/or alarms generated by managed 
  2653. systems. The RAS section of this document provides information describing how 
  2654. each application should generate errors, messages and alarms/alerts. The remote 
  2655. system manager can record these error messages and produce trouble tickets to 
  2656. track repair of failed systems and components. 
  2657.  
  2658.  
  2659. ΓòÉΓòÉΓòÉ 8.5.1. Current Remote Systems Management ΓòÉΓòÉΓòÉ
  2660.  
  2661. LAN NetView and NetView/6000 provide remote management of network as well as 
  2662. system resources (OS/2, AIX/6000 and other systems) through the use of SNMP. 
  2663. Operating system and machine resources are being instrumented using the host 
  2664. resource MIB (RFC-1514 of Internet Engineering Task Force). Applications can 
  2665. also be managed by LAN NetView on OS/2 and NetView/6000 on AIX/6000 by writing 
  2666. subagents to these management applications. 
  2667.  
  2668. The following figure illustrates the current remote system management 
  2669. environment. Either LAN NetView on OS/2 or NetView/6000 on AIX/6000 can be the 
  2670. management console (the managing system) for the network and for the 
  2671. applications running on the managed systems in the network.  Applications that 
  2672. run on OS/2, AIX/6000, Windows, DOS, or any system that provides a TCP/IP 
  2673. protocol stack and an SNMP agent can be managed by these applications. For 
  2674. example, Novell NetWare servers provide an SNMP agent to enable remote systems 
  2675. management. 
  2676.  
  2677. AIX/6000 provides the SNMP Multiplexing Protocol (SMUX) to allow an application 
  2678. to create subagent to the systems MIB. OS/2 TCP/IP Version 2.0 provides the 
  2679. Distributed Program Interface (DPI) for OS/2 applications to similarly enable 
  2680. resources for remote management. 
  2681.  
  2682.  
  2683. ΓòÉΓòÉΓòÉ 8.5.2. Future Remote Systems Management ΓòÉΓòÉΓòÉ
  2684.  
  2685. o   Communications protocols supported will be expanded to include NetBios, 
  2686.     IPX, and SNA transports.  This will allow applications with SNMP agents to 
  2687.     be managed in these additional environments. 
  2688.  
  2689. o   The Desktop Management Task Force's (DMTF) Desktop Management Interface 
  2690.     (DMI) will be provided for application instrumentation. This will allow the 
  2691.     application developer to write to the DMI and not have to construct an SNMP 
  2692.     subagent. 
  2693.  
  2694. o   The X/Open proposed Object Management Framework will be available and 
  2695.     managed object base classes will be defined for remote system management. 
  2696.     Applications will be able to subclass these managed object base classes to 
  2697.     create their own managed object classes.  For example,  the mailserver 
  2698.     objects for people and destinations could be monitored and managed from a 
  2699.     management application that uses the CORBA compliant Object Request Broker, 
  2700.     e.g, IBM's DSOM.  This will allow applications to enable objects for 
  2701.     management and will provide a consistent object view of the network and all 
  2702.     the systems and resources. 
  2703.  
  2704. o   IBM has proposed an event management system to the Open Software Foundation 
  2705.     (OSF) to be included in a future version of the Distributed Computing 
  2706.     Environment. This event management system will provide event notification 
  2707.     and routing to management applications. Documentation will be available in 
  2708.     a future OSF RFC. 
  2709.  
  2710. o   A future version of the IBM DCE Developers Toolkit will contain a SOM class 
  2711.     library for DCE administration objects. Application developers can use this 
  2712.     library to generate administration applications with user interfaces that 
  2713.     are consistent with other DCE management applications. 
  2714.  
  2715.  
  2716. ΓòÉΓòÉΓòÉ 8.5.3. Remote System Management Guidelines ΓòÉΓòÉΓòÉ
  2717.  
  2718. This section provides the guidelines for developers to make their applications 
  2719. manageable from remote systems. 
  2720.  
  2721. 1.  (AIX/6000) The application provides a MIB definition and an SNMP subagent 
  2722.     written to the SMUX interface.  Functions are provided to see if the 
  2723.     application is running properly and to allow the application to be stopped 
  2724.     and started. 
  2725.  
  2726. 2.  (OS/2) The application provides a MIB definition and an SNMP subagent 
  2727.     written to the DPI.  Functions are provided to see if the application is 
  2728.     running properly and to allow the application to be stopped and started. 
  2729.  
  2730. 3.  Additional data is provided to allow the performance of the application to 
  2731.     be monitored. 
  2732.  
  2733.  
  2734. ΓòÉΓòÉΓòÉ 9. Extended Operating System ΓòÉΓòÉΓòÉ
  2735.  
  2736. Naming 
  2737.  
  2738. Printing 
  2739.  
  2740.  
  2741. ΓòÉΓòÉΓòÉ 9.1. Naming ΓòÉΓòÉΓòÉ
  2742.  
  2743. Single System Image for naming means that there is a single consistent view of 
  2744. the namespace for all users.  Parts of the namespace may reside on physically 
  2745. different systems, but to the user the namespace appears as if it is local. 
  2746. This is called location transparency. 
  2747.  
  2748. The namespace is used to store the names of all the resources in the network as 
  2749. well as those resources' attributes.  Network resources may be logical devices 
  2750. such as queues and physical devices such as printers and servers.  All network 
  2751. resources are called objects.  Examples of objects commonly found in a network 
  2752. are users, organizations, printers, and printer queues. 
  2753.  
  2754. An attribute is a piece of information associated with an object.  An object's 
  2755. attributes may define its class, network address, or other values.  So, for 
  2756. example, if a resource moves from one server to another server, its attribute 
  2757. for network address will change, but the object's resource name remains 
  2758. unchanged.  Attributes are also used to search for objects. 
  2759.  
  2760. Policies for placement of objects in the namespace and the composition of names 
  2761. of objects provide a additional means to portray a single system image of the 
  2762. namespace.  Policies also provide a consistent way of accessing objects in the 
  2763. namespace as a step toward application portability. 
  2764.  
  2765. The naming service provides a set of services and protocols accessed via a set 
  2766. of interfaces.  These interfaces and services assist the programmer in 
  2767. developing applications.  The interfaces and services can be categorized as: 
  2768.  
  2769. o   base context operations: operations on names, such as binding a name to a 
  2770.     reference, looking up the reference bound to a name, and unbinding a name. 
  2771.  
  2772. o   attribute operations: operations on attributes such as get, create, delete, 
  2773.     modify, and search.  Operations may be for a single attribute or multiple 
  2774.     attributes. 
  2775.  
  2776. The following example demonstrates a use of the name service. The following 
  2777. figure represents a part of a namespace hierarchy that contains printer objects 
  2778. and their attributes. Objects 'A', 'B', 'C', and 'D' are printers with their 
  2779. associated attributes in brackets. The following terms are associated with this 
  2780. example: 
  2781.  
  2782. o   Object type: printer 
  2783. o   Service: search 
  2784. o   API: X/Open Directory Service API ds_search() 
  2785. o   Service Provider: name service offered by the naming system, e.g. cell 
  2786.     directory service or X.500 
  2787.  
  2788. An application composes the following request based on user input and invokes 
  2789. the ds_search API and receives the result. 
  2790.  
  2791. Request list all of the postscript printers in bldg901 
  2792.  
  2793. Result returns a list of printer objects that have the attributes postscript 
  2794. and building 901 (i.e. printer objects 'A' and 'B' are returned) 
  2795.  
  2796.  
  2797. ΓòÉΓòÉΓòÉ 9.1.1. Naming Interfaces and Services ΓòÉΓòÉΓòÉ
  2798.  
  2799. This section addresses the current naming environment and where the technology 
  2800. is going in the future for the application developer. 
  2801.  
  2802.  
  2803. ΓòÉΓòÉΓòÉ 9.1.1.1. The Current Environment ΓòÉΓòÉΓòÉ
  2804.  
  2805. Naming interfaces and services today are provided in this environment by LAN 
  2806. Server and the Distributed Computing Environment (DCE). 
  2807.  
  2808. Location transparency and single system image are achieved in LAN Server by use 
  2809. of a namespace that includes, among other things, aliases, user definitions, 
  2810. and application definitions. Aliases describe attributes and the location of a 
  2811. shared file, print, or serial device resource. User definitions store 
  2812. information about users including password, group memberships, logon 
  2813. assignments, and other attributes. Application definitions define a set of 
  2814. attributes such as command line parameters and location for a shared 
  2815. application. The structure of the namespace and the types of objects that can 
  2816. be represented in the namespace are fixed, and applications do not explicitly 
  2817. reference the namespace. Instead, the application developer uses the Net* APIs 
  2818. to define servers and resources. Through the use of these APIs, the servers and 
  2819. resources being defined are automatically inserted correctly into the LAN 
  2820. Server namespace, i.e., the User Account Subsystem (UAS) and the Domain Control 
  2821. DataBase (DCDB). 
  2822.  
  2823. DCE introduces international standards for naming interfaces and services. The 
  2824. Name Service Interface (NSI) provides interfaces for name lookup, binding, and 
  2825. unbinding for the DCE Cell Directory Service (CDS). The X/Open Directory 
  2826. Service interface (XDS) provides interfaces for reading, adding, deleting, and 
  2827. modifying directory entries, attribute manipulation such as comparison and 
  2828. search, enumeration of directory entries and its subordinates.  The XDS 
  2829. interface is available for use with the CDS and the X.500 directory service. 
  2830. (Note:  XDS and X.500 currently are supported only on AIX, and the XDS search 
  2831. API is not supported for the Cell Directory Service). These interfaces (NSI and 
  2832. XDS) are X/Open standards and part X/Open's Distributed Computing Service 
  2833. profile. The following figure illustrates the current naming API environment. 
  2834.  
  2835. DCE has multiple namespaces: 
  2836.  
  2837. o   a global namespace (either X.500 or Domain Name System) to catalog cell 
  2838.     names, 
  2839. o   a cell namespace to contain server location information, profile 
  2840.     information for the cell, and a list of hosts that comprise that cell, 
  2841. o   a security namespace to hold user, group, account, and policy, information, 
  2842.     and 
  2843. o   a file namespace to hold file data. 
  2844.  
  2845. DCE provides for the joining of these namespaces in a hierarchy by a convention 
  2846. called junctions.  This joining is also known as federation. This federation 
  2847. provides logically a single namespace with a single global root denoted by 
  2848. '/...'. 
  2849.  
  2850. Refer to OSF DCE Administration Guide: Planning, Configuring, and Starting Up 
  2851. DCE, Appendix A: The DCE Cell Namespace, for complete layout and description of 
  2852. the DCE namespace. 
  2853.  
  2854.  
  2855. ΓòÉΓòÉΓòÉ 9.1.1.2. The Future Environment ΓòÉΓòÉΓòÉ
  2856.  
  2857. Naming interfaces and services will extend the current environment to one in 
  2858. which interfaces and services are generalized international standards. The 
  2859. following figure illustrates the goal for the naming environment. The naming 
  2860. interfaces are expected to appear in two forms:  an object interface and a 
  2861. procedural interface. The object interface is that defined by the Object 
  2862. Management Group (OMG) Joint Object System Services (JOSS) Naming 
  2863. specification. OMG++ refers to the current OMG naming interfaces enhanced to 
  2864. provide attribute operations.  These enhancements do not yet exist, but for OMG 
  2865. to become the naming interface of choice for object-oriented programming these 
  2866. extensions are necessary.  The procedural interface is that defined by X/Open's 
  2867. Federating Naming (XFN) specification. The XFN specification also defines a 
  2868. wire protocol for this interface. 
  2869.  
  2870. Noticeably missing from this environment are the NSI and XDS interfaces. 
  2871. Support for backward compatibility for these interfaces will remain because: 
  2872.  
  2873. o   NSI provides a small, simple interface for lookup and bind for applications 
  2874.     that use only that level of service 
  2875. o   XDS is still the standard API for the X.500 and X.400 environment 
  2876. o   NSI and XDS are standards now and there are applications written to those 
  2877.     interfaces. 
  2878.  
  2879. The following figure illustrates a future with this backward compatibility. 
  2880.  
  2881. Namespaces are expected to be federated in a standardized manner. An object may 
  2882. be looked up through a standard interface where the name (path) to access that 
  2883. object may span multiple namespaces. Policies are expected to be provided to 
  2884. govern the hierarchical relationships among the logical namespaces. Mappings 
  2885. for existing APIs are expected in this environment so that existing 
  2886. applications can continue to work. The following figure illustrates the 
  2887. building blocks for federation. 
  2888.  
  2889.  
  2890. ΓòÉΓòÉΓòÉ 9.1.2. Naming Guidelines ΓòÉΓòÉΓòÉ
  2891.  
  2892. DCE Cell Directory Service (CDS) Usage Guidelines, available as DCE RFC 44.0 
  2893. from OSF, contains useful coding and testing hints for application developers. 
  2894. Many of the DCE guidelines listed below are from that document. 
  2895.  
  2896. Naming APIs 
  2897.  
  2898. User Names and Passwords 
  2899.  
  2900. Location Transparency 
  2901.  
  2902. Namespace Usage 
  2903.  
  2904.  
  2905. ΓòÉΓòÉΓòÉ 9.1.2.1. Naming APIs Guidelines ΓòÉΓòÉΓòÉ
  2906.  
  2907. Applications should use those APIs available in the environment. 
  2908.  
  2909. 1.  (LAN Server) The application uses the LAN Server Net* APIs to access the 
  2910.     naming service. 
  2911.  
  2912. 2.  (DCE) The application uses X/Open DCE APIs, NSI and XDS, to access the 
  2913.     naming service. 
  2914.  
  2915.  
  2916. ΓòÉΓòÉΓòÉ 9.1.2.2. User Names and Passwords Guidelines ΓòÉΓòÉΓòÉ
  2917.  
  2918. To allow users to have a single username and password everywhere, it is 
  2919. necessary to define a username and password syntax which all applications in 
  2920. this environment recognize.  If all applications in this environment used the 
  2921. same authentication service and took their user definitions from the same user 
  2922. registry, this would be simple; the user registry would define the username and 
  2923. password syntax, and the authentication service would accept that same syntax. 
  2924. The actual environment is more complex, however; it must allow "old" 
  2925. applications to continue to function with their existing username and password 
  2926. syntax for some period of time. 
  2927.  
  2928. To enable single logon, therefore, applications should adhere to the set of 
  2929. username and password guidelines (refer to security guidelines) which are 
  2930. designed to be acceptable to a very wide range of existing secure applications. 
  2931.  
  2932. 1.  Each user account has a globally unique name which conforms to the DCE 
  2933.     principal naming rules. 
  2934.  
  2935. 2.  Applications which do not use an account's globally unique name should use 
  2936.     a flattened form of the globally unique name. 
  2937.  
  2938. 3.  Each user account has a password whose syntax is constrained by the same 
  2939.     rules which govern the <leaf> part of user names. 
  2940.  
  2941.  
  2942. ΓòÉΓòÉΓòÉ 9.1.2.3. Location Transparency Guidelines ΓòÉΓòÉΓòÉ
  2943.  
  2944. The service or subsystem should be able to have its physical location moved 
  2945. transparent to the application locating it. 
  2946.  
  2947. 1.  (LAN Server) The application uses the LAN Server Net* APIs to access the 
  2948.     naming service. The application does not use UNC (Universal Naming 
  2949.     Convention) names. 
  2950.  
  2951. 2.  (DCE) Register servers in a host-independent group or profile. This group 
  2952.     or profile would be used by clients to locate the server. This provides 
  2953.     location transparency since clients would otherwise have to specify the 
  2954.     unique server entry. 
  2955.  
  2956.  
  2957. ΓòÉΓòÉΓòÉ 9.1.2.4. General Namespace Guidelines ΓòÉΓòÉΓòÉ
  2958.  
  2959. 1.  (LAN Server) The application uses the LAN Server Net* APIs. This implicitly 
  2960.     provides the correct namespace (UAS and DCDB) usage. 
  2961.  
  2962. 2.  (DCE) 
  2963.  
  2964.     a.  Store server (resource) binding information in the CDS namespace along 
  2965.         with attributes needed for that object or service to allow for that 
  2966.         object/service to be located. While the CDS namespace can be used to 
  2967.         store arbitrary information, it is not intended as a general purpose 
  2968.         database. Use of the CDS namespace for purposes other than the storage 
  2969.         of server bindings might impact the performance of the DCE cell. 
  2970.     b.  Organize the namespace by creating a well-organized directory 
  2971.         structure. Create directory namespace entries as you would files and 
  2972.         directories in a filesystem.  A well-organized namespace makes 
  2973.         searching and management easier. 
  2974.     c.  Subsystems register their services under the <cellroot>/subsys 
  2975.         directory.  The DCE directory below subsys is for DCE core services. 
  2976.         Resource managers should create a directory directly beneath subsys 
  2977.         using a descriptive name.  For example, LAN Server would register its 
  2978.         services under the <cellroot>/subsys/ibmls directory. The 
  2979.         <cellroot>/hosts/hostname directory contains bindings for DCE services 
  2980.         that are running on that hostname. 
  2981.     d.  Keep the root of the namespace clean for ease in searching.  A few 
  2982.         well-known entries in the root are acceptable. 
  2983.     e.  Choose sensible names for entries such as the name of the server or a 
  2984.         name that relates better to what the server does than its own name. For 
  2985.         working in a heterogeneous international environment, refer to 
  2986.         Internationalization Guidelines.  Do not use dynamically generated 
  2987.         UUIDs (Universal Unique Identifiers) as CDS entry names.  Names are 
  2988.         meant to be meaningful. 
  2989.     f.  Groups should be used to store a set of identical server entries. 
  2990.         Profiles should be used for other collections of logically related 
  2991.         entries. 
  2992.     g.  Use RPC Name Service (NS) group to store bindings for a set of 
  2993.         identical servers for server redundancy. A client can perform a lookup 
  2994.         in the group and continue searching until it finds a server that is up 
  2995.         and able to satisfy its request. 
  2996.     h.  Use profiles instead of groups to register a collection of server 
  2997.         entries with different interfaces.  This makes searching more 
  2998.         efficient. 
  2999.     i.  Register server entries in the most specific profile or group that 
  3000.         makes sense.  This avoids unnecessary searching in higher-level 
  3001.         profiles and groups. 
  3002.     j.  Clients should use /.../cell-profile as a default profile if no 
  3003.         host-independent group or profile name was specified. 
  3004.  
  3005.  
  3006. ΓòÉΓòÉΓòÉ 9.2. Printing ΓòÉΓòÉΓòÉ
  3007.  
  3008. Printing services enable users to print jobs and to manage print resources. A 
  3009. central goal for printing is to provide users with a Single System Image of the 
  3010. printing environment. This means that applications are written to programming 
  3011. interfaces that hide the complexity of the printing environment. The result is 
  3012. a Single System Image (illustrated below) which: 
  3013.  
  3014. o   hides the physical location of the print objects accessed through the print 
  3015.     APIs 
  3016.  
  3017. o   hides the specific print service providers that are processing the APIs and 
  3018.     implementing the print objects 
  3019.  
  3020. o   hides the protocols used by a service provider to communicate print 
  3021.     requests to and receive status from print services in response to the APIs 
  3022.  
  3023. Today, the print APIs and the corresponding print objects supported by those 
  3024. APIs are based on the print service providers for the operating systems on 
  3025. which an application runs. Print objects typically supported include "job", 
  3026. "queue" and "printer" where a job is a printable entity with options such as 
  3027. number of copies, a queue is a repository for jobs that are scheduled for one 
  3028. or more printers supported by the queue, and a printer is a physical device on 
  3029. which a job is printed. 
  3030.  
  3031. In the future, the print APIs and the corresponding print objects supported 
  3032. will be standardized across OS/2 and AIX/6000 to enable true application 
  3033. portability across a multi-system environment. 
  3034.  
  3035.  
  3036. ΓòÉΓòÉΓòÉ 9.2.1. Print Interfaces and Services ΓòÉΓòÉΓòÉ
  3037.  
  3038. There are two main aspects of the print APIs. 
  3039.  
  3040. o   An application submits a print job consisting of the print options and data 
  3041.     that is printable by the target printer object (e.g. Postscript). The data 
  3042.     can be printed on the target printer or can be translated by the print 
  3043.     service that processes the data on behalf of the target printer object. 
  3044.  
  3045. o   An application enables a user or administrator to create, delete, modify 
  3046.     and manage print objects. 
  3047.  
  3048.  
  3049. ΓòÉΓòÉΓòÉ 9.2.1.1. Job Submission ΓòÉΓòÉΓòÉ
  3050.  
  3051. First, the application selects a queue for the job. The application can use the 
  3052. default queue defined for the operating system or present a list of queues to 
  3053. the user and use the queue they select. 
  3054.  
  3055. Once the application selects a queue, the application obtains the job 
  3056. properties for the queue to be used by the print service to print the job. Job 
  3057. properties, also known as job attributes, might include print quality and page 
  3058. orientation. Typically, the job properties come from the printer driver that 
  3059. will be used to print the job. 
  3060.  
  3061. The application chooses application-specific options, such as a range of pages 
  3062. to print. The application also selects print service options such as number of 
  3063. copies and job priority. 
  3064.  
  3065. The queue, job properties, application print options and print service options 
  3066. are collectively called job setup options. Once the job setup options have been 
  3067. established, the application then submits the print job to the print service. 
  3068. The print job consists of the job setup options and a printable document. 
  3069.  
  3070.  
  3071. ΓòÉΓòÉΓòÉ 9.2.1.2. Print Object Management ΓòÉΓòÉΓòÉ
  3072.  
  3073. Most applications do not need to directly manage print objects such as jobs, 
  3074. queues and printers. Instead, the print service providers deliver user 
  3075. interface applications that enable users and systems administrators to manage 
  3076. these objects. 
  3077.  
  3078. For applications that manage print objects, these interfaces enable 
  3079. applications to create, delete, configure, modify and control the print objects 
  3080. supported by the service providers. 
  3081.  
  3082.  
  3083. ΓòÉΓòÉΓòÉ 9.2.1.3. The Current Environment ΓòÉΓòÉΓòÉ
  3084.  
  3085. Today, application developers use current operating system printing APIs based 
  3086. on the operating systems on which their applications run. On OS/2, the Single 
  3087. System Image is provided by the procedural print framework in OS/2. This 
  3088. framework enables applications written to the APIs for OS/2 Presentation 
  3089. Manager (PM), OS/2 (non-PM), DOS and Windows to transparently print on 
  3090. locally-attached or remotely-attached printers. Furthermore, PM and OS/2 
  3091. applications can control and manage print objects through a single set of APIs 
  3092. regardless of the physical location of these print objects. This Single System 
  3093. Image is accomplished through print service providers, such as the local OS/2 
  3094. print service and the remote print services of OS/2 LAN Server and Novell 
  3095. Netware, that are installed below the procedural print framework and, as a 
  3096. result, map the APIs supported by the framework to the specific operations and 
  3097. protocols supported by the respective print services. 
  3098.  
  3099. On AIX/6000, the Single System Image is provided by the AIX/6000 print 
  3100. subsystem. Print queues can be assigned to locally-attached or 
  3101. remotely-attached printers and accessed transparently by applications through 
  3102. the Command Line Interfaces (CLIs) supported by AIX/6000. 
  3103.  
  3104.  
  3105. ΓòÉΓòÉΓòÉ 9.2.1.4. The Future Environment ΓòÉΓòÉΓòÉ
  3106.  
  3107. In the future, IBM's Distributed Print Management Framework, based on Palladium 
  3108. Version 2, delivers the Single System Image across multiple operating systems 
  3109. including OS/2 and AIX/6000. Users, system administrators and application 
  3110. developers can use a single set of interfaces for advanced user and systems 
  3111. management functionality regardless of the physical location of the printer and 
  3112. print resources being used and managed. 
  3113.  
  3114.  
  3115. ΓòÉΓòÉΓòÉ 9.2.2. Printing Guidelines ΓòÉΓòÉΓòÉ
  3116.  
  3117. Typically applications allow users to print documents with document formats 
  3118. supported by the application. For applications that print documents, the 
  3119. guidelines include: 
  3120.  
  3121. Queue selection 
  3122. Job properties selection 
  3123. Print service options 
  3124. Application print options 
  3125. Job submission 
  3126.  
  3127. For applications that manage print objects, the guidelines include: 
  3128.  
  3129. Job object management 
  3130. Queue object management 
  3131. Device object management 
  3132. Additional print object management 
  3133.  
  3134.  
  3135. ΓòÉΓòÉΓòÉ 9.2.2.1. Queue Selection Guidelines ΓòÉΓòÉΓòÉ
  3136.  
  3137. 1.  The application uses the default queue to submit a print job. 
  3138.  
  3139.     a.  PM and OS/2 2.1 and above applications should use the SplEnumQueue API 
  3140.         and search the returned list of queues for a queue with an fsType field 
  3141.         value of PRQ3_TYPE_APPDEFAULT to obtain the default queue. 
  3142.     b.  PM and OS/2 2.0 applications should use the PrfQueryProfileString API 
  3143.         with an application name of PM_SPOOLER and a key name of QUEUE to 
  3144.         obtain the default queue. 
  3145.     c.  AIX/6000 applications should not determine the default queue since 
  3146.         AIX/6000 determines the default queue with the qprt CLI. 
  3147.  
  3148. 2.  The application enables the user to select a queue from a list of available 
  3149.     queues. 
  3150.  
  3151.     a.  PM and OS/2 applications use the SplEnumQueue API to obtain the list of 
  3152.         queues and then use application-specific mechanisms to present the list 
  3153.         to the user and to attain their selection. 
  3154.     b.  AIX/6000 applications use the lsallq CLI to obtain the list of queues 
  3155.         and then use application-specific mechanisms to present the list to the 
  3156.         user and to attain their selection. 
  3157.  
  3158.  
  3159. ΓòÉΓòÉΓòÉ 9.2.2.2. Job Properties Selection Guidelines ΓòÉΓòÉΓòÉ
  3160.  
  3161. 1.  The application uses the job properties of the queue selected for a print 
  3162.     job. 
  3163.  
  3164.     a.  PM and OS/2 applications should use the SplQueryQueue API to obtain the 
  3165.         job properties of the queue selected for a print job. 
  3166.     b.  AIX/6000 applications should not determine the job properties since 
  3167.         AIX/6000 determines the job properties for the queue with the qprt CLI. 
  3168.  
  3169. 2.  The application presents to the user the job properties of the queue 
  3170.     selected for a print job. 
  3171.  
  3172.     a.  Presentation Manager (PM) and OS/2 applications should use the 
  3173.         DevPostDeviceModes API to display the job properties of the queue for 
  3174.         the print job. The application subsequently uses the job properties 
  3175.         returned from this API to submit a print job. 
  3176.     b.  AIX/6000 applications use application-specific mechanisms to present 
  3177.         job properties to the user. The application subsequently uses the job 
  3178.         properties to submit a print job. 
  3179.  
  3180.  
  3181. ΓòÉΓòÉΓòÉ 9.2.2.3. Print Service Options Guidelines ΓòÉΓòÉΓòÉ
  3182.  
  3183. 1.  The application presents number of copies with a default value of one. The 
  3184.     user can specify a value within a valid range of values defined by the 
  3185.     operating system. Applications use application-specific mechanisms to 
  3186.     present this option to the user. 
  3187.  
  3188. 2.  The application presents job priority with the default value of the 
  3189.     operating system. The user can specify a value within a valid range of 
  3190.     values defined by the operating system. Applications use 
  3191.     application-specific mechanisms to present this option to the user. 
  3192.  
  3193.  
  3194. ΓòÉΓòÉΓòÉ 9.2.2.4. Application Print Options Guidelines ΓòÉΓòÉΓòÉ
  3195.  
  3196. 1.  The application presents application-specific options to the user through 
  3197.     an application's print user interface. The specific options vary by 
  3198.     application but typically include a range of pages to print. The 
  3199.     application presents number of copies with the application-specific 
  3200.     options. The user can submit a print job from the application's print user 
  3201.     interface. 
  3202.  
  3203. 2.  The application presents job properties and job priority through the 
  3204.     application's print user interface. 
  3205.  
  3206.  
  3207. ΓòÉΓòÉΓòÉ 9.2.2.5. Job Submission Guidelines ΓòÉΓòÉΓòÉ
  3208.  
  3209. 1.  The application submits a print job to the default queue with job setup 
  3210.     options. 
  3211.  
  3212.     a.  PM applications should use the Dev* APIs. PM applications should 
  3213.         specify the default queue, the job properties for the queue and 
  3214.         PM_Q_STD for DevOpenDC. 
  3215.     b.  OS/2 applications should use the SplQm* APIs. OS/2 applications should 
  3216.         specify the default queue, the job properties and PM_Q_RAW for 
  3217.         SplQmOpen. 
  3218.     c.  AIX/6000 applications should use the qprt CLI with no queue name. 
  3219.     d.  DOS applications should use the DOS APIs. 
  3220.  
  3221. 2.  The application submits a print job to the queue selected by the user with 
  3222.     job setup options. 
  3223.  
  3224.     a.  PM applications should use the Dev* APIs. PM applications should 
  3225.         specify the queue selected by the user, the job properties for the 
  3226.         queue and PM_Q_STD for DevOpenDC. 
  3227.     b.  OS/2 applications should use the SplQm* APIs. OS/2 applications should 
  3228.         specify the queue selected by the user, the job properties and PM_Q_RAW 
  3229.         for SplQmOpen. 
  3230.     c.  AIX/6000 applications should use the qprt CLI with the queue selected 
  3231.         by the user. 
  3232.  
  3233.  
  3234. ΓòÉΓòÉΓòÉ 9.2.2.6. Job Object Management Guidelines ΓòÉΓòÉΓòÉ
  3235.  
  3236. Most applications do not need to directly manage this object. Therefore, this 
  3237. compliance category is not always applicable. However, if an application 
  3238. manages this object, the following guidelines apply. 
  3239.  
  3240. 1.  PM and OS/2 applications should use the Spl*Job APIs. 
  3241.  
  3242. 2.  DOS applications should use the DosPrintJob* APIs. 
  3243.  
  3244. 3.  AIX/6000 applications should use the qcan, qchk and qpri CLIs. 
  3245.  
  3246.  
  3247. ΓòÉΓòÉΓòÉ 9.2.2.7. Queue Object Management Guidelines ΓòÉΓòÉΓòÉ
  3248.  
  3249. Most applications do not need to directly manage this object. Therefore, this 
  3250. compliance category is not always applicable. However, if an application 
  3251. manages this object, the following guidelines apply. 
  3252.  
  3253. 1.  PM and OS/2 applications should use the Spl*Queue APIs. 
  3254.  
  3255. 2.  DOS applications should use the DosPrintQ* APIs. 
  3256.  
  3257. 3.  AIX/6000 applications should use the qchk, qstatus, qadm, lsallq, mkque, 
  3258.     chque and rmque CLIs. 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ 9.2.2.8. Device Object Management Guidelines ΓòÉΓòÉΓòÉ
  3262.  
  3263. Most applications do not need to directly manage this object. Therefore, this 
  3264. compliance category is not always applicable. However, if an application 
  3265. manages this object, the following guidelines apply. 
  3266.  
  3267. 1.  PM and OS/2 applications should use the Spl*Device APIs. 
  3268.  
  3269. 2.  DOS applications should use the DosPrintDest* APIs. 
  3270.  
  3271. 3.  AIX/6000 applications should use the lsallqdev, rmquedev, mkquedev, 
  3272.     lsquedev, chquedev, chvirprt, lsvirprt, rmvirprt and lsattr CLIs. 
  3273.  
  3274.  
  3275. ΓòÉΓòÉΓòÉ 9.2.2.9. Additional Print Object Management Guidelines ΓòÉΓòÉΓòÉ
  3276.  
  3277. Most applications do not need to directly manage this object. Therefore, this 
  3278. compliance category is not always applicable. However, if an application 
  3279. manages this object, the following guidelines apply. 
  3280.  
  3281. 1.  PM and OS/2 applications should use the Spl*Driver, Spl*Port and 
  3282.     SplQueueProcessor APIs to manage printer drivers, port drivers and queue 
  3283.     processors respectively. 
  3284.  
  3285. 2.  AIX/6000 applications should use the splp CLI to manage printer drivers. 
  3286.  
  3287.  
  3288. ΓòÉΓòÉΓòÉ 10. Development Tool Delivery ΓòÉΓòÉΓòÉ
  3289.  
  3290. The IBM LAN Systems API Roadmap documents an application development 
  3291. environment with industry-standard APIs for application portability and object 
  3292. frameworks to assist developers with code reuse.  This document is delivered on 
  3293. the The Developer Connection for LAN Systems. 
  3294.  
  3295. The Developer Connection is a yearly subscription service which consists of a 
  3296. quarterly CD-ROM and newsletter, and access to a private CompuServe or Internet 
  3297. forum.  The Developer Connection benefits developers by providing easy access 
  3298. to the most timely and in-depth development tools and information available. 
  3299. The service offers: browser and catalog functions, development tools, 
  3300. productivity tools, documentation, sample code, product pre-release and beta 
  3301. code, promotional material and demos (IBM and 3rd party). 
  3302.  
  3303. The Developer Connection program is becoming a recognized delivery vehicle for 
  3304. development tools and toolkits from IBM in the PC arena. 
  3305.  
  3306. o   "This is the disk to get if you're an OS/2 developer."  PC Magazine 9/94 
  3307. o   Named one of the "Top 100 CD ROMs" by PC Magazine. 
  3308. o   Over 10,000 subscribers for The Developer Connection for OS/2 
  3309.  
  3310. Within the Developer Connection family the following Product Owners exist: 
  3311.  
  3312. o   The Developer Connection for OS/2 
  3313. o   The Developer Connection for Device Drivers 
  3314. o   The Developer Connection for LAN Systems - this CD-ROM provides 
  3315.     cross-platform support (OS/2, Windows, AIX, etc.) focussing on 
  3316.     client/server development.  It is shipped for free with the Developer 
  3317.     Connection for OS/2. 
  3318. o   The Developer Connection for AIX 
  3319.  
  3320. Product owners have responsibility for product content, audience satisfaction, 
  3321. newsletter articles and API roadmap content. 
  3322.  
  3323.  
  3324. ΓòÉΓòÉΓòÉ 10.1. Development Tool Delivery Guidelines ΓòÉΓòÉΓòÉ
  3325.  
  3326. The guidelines described below must be followed by Content providers (those who 
  3327. develop and supply programming tools or utilities to a Developer Connection 
  3328. Product owner) to enable a product or tool to be included on a Developer 
  3329. Connection CD-ROM. 
  3330.  
  3331. Required data           RAM and DASD requirements and the minimum recommended 
  3332.                         configuration. 
  3333. API roadmap             Overall API strategy for product and a high-level 
  3334.                         description of each API/framework/object with future 
  3335.                         directions as appropriate. 
  3336. Icon                    A unique, well-designed and meaningful icon. 
  3337. Installation requirements Standard, CD-ROM and network-enabled installation 
  3338.                         mechanism 
  3339. Standard format for documentation Documentation and books provided in standard 
  3340.                         format(s) such as INF, BookManager, PostScript or HTML. 
  3341. Execution requirements  Executes directly from CD, when feasible. 
  3342. Standards               ISO 9660 compliant. 
  3343. Maximum resource utilization Less then 16M. 
  3344. Demo software           Time-outs (disabling traps) should be set for release 
  3345.                         date + 90 days and any limitations of the demo or trial 
  3346.                         software must be clearly documented. 
  3347. WWWeb links             Initially, these will be maintained in-house by the 
  3348.                         Developer Connection team. 
  3349. Customer feedback       Need to respond to customer feedback via e-mail and 
  3350.                         WWWeb and the support structure for the product needs 
  3351.                         to be clearly identified. 
  3352. Product classification  Need to assign appropriate classification of alpha, 
  3353.                         beta, demo, pre-release, GA and provide necessary 
  3354.                         content, support and legal sign-off. 
  3355. Terms and conditions    Product fits the terms and conditions stated in The 
  3356.                         Developer Connection license agreement. 
  3357. Single point of contact Provide a single contact point for technical support 
  3358.                         related to Developer Connection publishing issues. 
  3359. Sample code             Must exist to demonstrate how to take advantage of the 
  3360.                         programming model and the benefits it provides. 
  3361. 3rd-party products      Vendor must provide Vendor Evaluation Request/License, 
  3362.                         IBM Mfg/Distribution Agreement and Vendor Certificate 
  3363.                         of Originality. 
  3364.  
  3365.  
  3366. ΓòÉΓòÉΓòÉ 11. Customer Information ΓòÉΓòÉΓòÉ
  3367.  
  3368. As used in this document, customer information includes all information 
  3369. delivered with the application.  Each independent set of information is 
  3370. referred to as an information unit. Information units include the following: 
  3371.  
  3372. o   Help information (explanations of function panels for an application or a 
  3373.     major component) 
  3374. o   Message information (displayed by the application when unexpected or error 
  3375.     conditions occur) 
  3376. o   Softcopy information (structured like printed books, but provided in form 
  3377.     to be viewed from the system or electronic media) 
  3378. o   Integrated online information (viewable task-level descriptions linked to 
  3379.     help information) 
  3380. o   Printed information (traditional books) 
  3381. o   Tutorial information (various media and interactive) 
  3382.  
  3383. An application's information units collectively and individually represent an 
  3384. interface to the user. 
  3385.  
  3386. Information design, based on task analysis of the application, identifies the 
  3387. best combination of information units to meet user requirements.  Multi-media 
  3388. presentation may be selected for some information units; however, the 
  3389. guidelines provided here are for visual presentation of information and do not 
  3390. at this time address the full multi-media scope. 
  3391.  
  3392.  
  3393. ΓòÉΓòÉΓòÉ 11.1. Customer Information Guidelines ΓòÉΓòÉΓòÉ
  3394.  
  3395. The following guidelines address: 
  3396.  
  3397. o   Design and content of customer information 
  3398. o   Selection of tools to produce information units 
  3399.  
  3400. Consistent Design 
  3401.  
  3402. Translation Enabled 
  3403.  
  3404. Viewable or Printed Choice 
  3405.  
  3406. CDROM Enabled 
  3407.  
  3408. Consistent Style 
  3409.  
  3410. Help Information 
  3411.  
  3412. Messages 
  3413.  
  3414. Examples 
  3415.  
  3416. Consistent Name References 
  3417.  
  3418. Text Tools 
  3419.  
  3420. Graphics Tools 
  3421.  
  3422. View Tools 
  3423.  
  3424. Build Tools 
  3425.  
  3426. Print Format Tools 
  3427.  
  3428.  
  3429. ΓòÉΓòÉΓòÉ 11.1.1. Consistent Design Guidelines ΓòÉΓòÉΓòÉ
  3430.  
  3431. Applications to be used in multiple operating system environments require an 
  3432. information design that provides a consistent look and feel for comparable 
  3433. information from one operating system environment to another.  Otherwise, users 
  3434. in a mixed environment are faced with added complexity that can lead to 
  3435. misinterpretation and decreased satisfaction with the product. 
  3436.  
  3437. 1.  Comparable information is provided across all operating systems. 
  3438.  
  3439. 2.  Views are similar across all operating systems. 
  3440.  
  3441. 3.  Comparable information is provided across all operating systems. 
  3442.  
  3443. 4.  Views are consistent across all operating systems (common view tool 
  3444.     supported on all operating systems). 
  3445.  
  3446.  
  3447. ΓòÉΓòÉΓòÉ 11.1.2. Translation Enabled Guidelines ΓòÉΓòÉΓòÉ
  3448.  
  3449. If an application will be marketed in geographic areas with native languages 
  3450. other than the initial development language, the application should be enabled 
  3451. for translation.  If translated, customer information should comply with the 
  3452. following guidelines to support translation tools designed to reuse language 
  3453. segments (i.e., a phrase used multiple times throughout a book is translated 
  3454. only once).  A language segment could be a name, book reference, sentence, 
  3455. tabular information, note, or paragraph - any string of text can be a language 
  3456. segment. For additional requirements, refer to Internationalization section. 
  3457. The key to translatability is to ensure that the text is as precise, clear, and 
  3458. correct as possible, taking into consideration the following: 
  3459.  
  3460. o   Terminology (define technical terms and use terminology consistently) 
  3461. o   Cultural factors (avoid country-specific examples, graphics, and numeric 
  3462.     conventions) 
  3463. o   Translation efficiency (clearly indicate common information and provide 
  3464.     revision tags for changed source) 
  3465.  
  3466. 1.  Revision tags or comments are inserted around a complete language segment 
  3467.     (not in the middle) 
  3468.  
  3469. 2.  Highlighting is the same for identical language segments 
  3470.  
  3471.  
  3472. ΓòÉΓòÉΓòÉ 11.1.3. Viewable or Printed Choice Guidelines ΓòÉΓòÉΓòÉ
  3473.  
  3474. People vary in their preferences for printed information vs. viewable 
  3475. information. Preferences are influenced by the nature of the task at hand, 
  3476. situational factors, and personal styles and habits. Information access 
  3477. possibilities include the traditional use of printed books (varying from 
  3478. studying entire sections to quick retrieval of specific reference data) plus 
  3479. several modes of viewing information on the system, such as browsing softcopy 
  3480. books or retrieving specific topic descriptions.  Ideally, each user could 
  3481. individually access information in the mode best suited to the task and 
  3482. situation at hand. It is important to accommodate multiple access modes to 
  3483. ensure usability. 
  3484.  
  3485. 1.  The application includes online help information. 
  3486.  
  3487. 2.  Information required for installation (not part of the user interface) is 
  3488.     printed or provided as a file that can be printed prior to installation of 
  3489.     the application. 
  3490.  
  3491. 3.  Information units provided with the application are primarily integrated 
  3492.     online information; softcopy books and printed books can be ordered 
  3493.     separately. 
  3494.  
  3495. 4.  Integrated online information includes topic print capability. 
  3496.  
  3497.  
  3498. ΓòÉΓòÉΓòÉ 11.1.4. CDROM Enabled Guidelines ΓòÉΓòÉΓòÉ
  3499.  
  3500. CDROM popularity is increasing, and it has become the most practical media for 
  3501. distributing applications and information. Enabling an application and its 
  3502. information units for CDROM delivery facilitates inclusion with other software 
  3503. in total-solution offerings (suites, collection kits, etc.). Guidelines related 
  3504. to enabling applications for distribution are contained in the guidelines for 
  3505. packaging and delivery in the Software Management Guidelines. 
  3506.  
  3507. 1.  Any installation routines required to access information units are enabled 
  3508.     for CDROM. 
  3509.  
  3510. 2.  All information units are integrated online, softcopy, or printable files. 
  3511.  
  3512.  
  3513. ΓòÉΓòÉΓòÉ 11.1.5. Consistent Style Guidelines ΓòÉΓòÉΓòÉ
  3514.  
  3515. Style, as used here, includes: 
  3516.  
  3517. o   Mechanical style (e.g., grammar, punctuation, word usage, spelling, and the 
  3518.     representation of numbers) 
  3519. o   Content style (e.g., inclusion of glossary and index) 
  3520. o   Format style (e.g., page layout, fonts, and headings) 
  3521.  
  3522. All information units associated with an application should have a consistent 
  3523. style. Adopting a style comparable to that of other applications and operating 
  3524. systems likely to be used by the same customers can enhance the effectiveness 
  3525. of the customer's total collection of information units. 
  3526.  
  3527. 1.  Grammar, punctuation, word usage, spelling, and the representation of 
  3528.     numbers meet accepted usage standards. 
  3529.  
  3530. 2.  Information includes appropriate retrieval mechanisms, including contents 
  3531.     and index. 
  3532.  
  3533. 3.  Information conforms to The Chicago Manual of Style. 
  3534.  
  3535. 4.  Information contains additional retrieval aids (e.g., glossaries, online 
  3536.     search capability, and hypertext links within online information.) 
  3537.  
  3538. 5.  Graphics augment textual descriptions. 
  3539.  
  3540. 6.  Printed information is formatted for 7x9 page size. 
  3541.  
  3542.  
  3543. ΓòÉΓòÉΓòÉ 11.1.6. Help Information Guidelines ΓòÉΓòÉΓòÉ
  3544.  
  3545. Help information should be provided for all function panels, providing 
  3546. explanations of relevant tasks, options, and likely scenarios. Help information 
  3547. should relate to user tasks and options, not to how the application functions. 
  3548.  
  3549. 1.  Help information is provided for all function panels. 
  3550.  
  3551. 2.  Help information provides more guidance than given on the function panel. 
  3552.  
  3553. 3.  Help information facilitates task completion for all likely user scenarios. 
  3554.  
  3555. 4.  Help information facilitates task completion for novice as well as expert 
  3556.     users. 
  3557.  
  3558.  
  3559. ΓòÉΓòÉΓòÉ 11.1.7. Messages Guidelines ΓòÉΓòÉΓòÉ
  3560.  
  3561. As used in this section, messages refers to information displayed by the 
  3562. application when unexpected or error conditions occur. The format of messages 
  3563. should be consistent and easy to interpret. Messages should be linked to 
  3564. message explanations that address the circumstances that caused the message to 
  3565. appear. If a message can result from a variety of circumstances or scenarios, 
  3566. the associated explanation should address all possibilities. 
  3567.  
  3568. 1.  Message text includes a timestamp. (See Time Guidelines.) 
  3569.  
  3570. 2.  Message text includes an identifier of intended use (An example convention 
  3571.     for such identifiers is where the first character is I, A, or W to indicate 
  3572.     information, action, or warning, respectively). 
  3573.  
  3574. 3.  Messages are linked to explanations that indicate probable cause(s) and 
  3575.     recommended user action(s). 
  3576.  
  3577. 4.  For unrecoverable messages, message text includes a complete explanation 
  3578.     (linking to an explanation panel is not required). 
  3579.  
  3580. 5.  Message explanations are accessible for reference independent of actual 
  3581.     message occurrence. 
  3582.  
  3583.  
  3584. ΓòÉΓòÉΓòÉ 11.1.8. Examples Guidelines ΓòÉΓòÉΓòÉ
  3585.  
  3586. Online, softcopy, and printed information units should contain examples for 
  3587. illustration of input formats, clarification of concepts, and demonstration of 
  3588. task scenarios. 
  3589.  
  3590. 1.  Include generic examples of input formats 
  3591.  
  3592. 2.  Include appropriate geographic qualifiers (e.g. identify 04/15/2001 as a 
  3593.     date specified in U.S. English format.) 
  3594.  
  3595. 3.  Provide examples to clarify concepts 
  3596.  
  3597. 4.  Provide extended examples to demonstrate task scenarios 
  3598.  
  3599.  
  3600. ΓòÉΓòÉΓòÉ 11.1.9. Consistent Name References Guidelines ΓòÉΓòÉΓòÉ
  3601.  
  3602. References in customer information units to specific names (e.g., application 
  3603. components) should match exactly the names as represented by the user interface 
  3604. and, where applicable, the external product packaging (e.g., CDROM and diskette 
  3605. labels.) Compliance is required to improve the chance of successful completion 
  3606. of user tasks. 
  3607.  
  3608. Name references are identical in all uses: 
  3609.  
  3610. o   Information units 
  3611. o   User interface 
  3612. o   Packaging (including media labels) 
  3613.  
  3614.  
  3615. ΓòÉΓòÉΓòÉ 11.1.10. Text Tools Guidelines ΓòÉΓòÉΓòÉ
  3616.  
  3617. The tool selected for creating (authoring or editing) text determines whether 
  3618. document source can be interchanged with other developers. This can be 
  3619. advantageous for combining information from multiple sources. A tool should be 
  3620. selected that provides good document interchange support. 
  3621.  
  3622. 1.  The text tool is an industry-accepted desktop publishing tool or IBM 
  3623.     BookMaster. 
  3624.  
  3625. 2.  The text tool is capable of producing online files compatible with intended 
  3626.     operating system environment(s). 
  3627.  
  3628. 3.  Text is created with an SGML editor; valid SGML editors include: 
  3629.  
  3630.     o   SoftQuad Author/Editor (runs in Windows, AIX/6000, and Macintosh 
  3631.         development environments, also runs in OS/2's DOS/WIN) 
  3632.     o   ArborText (runs in Sun development environment) 
  3633.  
  3634.  
  3635. ΓòÉΓòÉΓòÉ 11.1.11. Graphics Tools Guidelines ΓòÉΓòÉΓòÉ
  3636.  
  3637. The graphic tool should be selected to optimize document interchange 
  3638. capability. 
  3639.  
  3640. 1.  Graphics are created with any tool compatible with the text tool. 
  3641.  
  3642. 2.  Graphics are created with CorelDraw or a tool that produces files that can 
  3643.     be imported by CorelDraw. 
  3644.  
  3645.  
  3646. ΓòÉΓòÉΓòÉ 11.1.12. View Tools Guidelines ΓòÉΓòÉΓòÉ
  3647.  
  3648. Operating Systems vary in supported methods for viewing online and softcopy 
  3649. information. The tools selected for viewing and building online and softcopy 
  3650. information determine the level of similarity a user experiences across 
  3651. multiple operating systems. 
  3652.  
  3653. 1.  The view tool for messages, help information, and integrated online 
  3654.     information is one of the following: 
  3655.  
  3656.     o   (OS/2) IPF 
  3657.     o   (AIX/6000) IPF/X 
  3658.     o   (Windows) IPF/Win 
  3659.  
  3660. 2.  The view tool for softcopy books is BookManager Read. 
  3661.  
  3662.  
  3663. ΓòÉΓòÉΓòÉ 11.1.13. Build Tools Guidelines ΓòÉΓòÉΓòÉ
  3664.  
  3665. The tool selection for building online or softcopy information is based on the 
  3666. tool for viewing that information. 
  3667.  
  3668. 1.  Files for message information, help information, and integrated online 
  3669.     information are produced with one of the following: 
  3670.  
  3671.     o   (OS/2) IPF 
  3672.     o   (AIX/6000) IPF/X 
  3673.     o   (Windows) IPF/Win 
  3674.  
  3675. 2.  Softcopy book files are produced with BookManager Build. 
  3676.  
  3677.  
  3678. ΓòÉΓòÉΓòÉ 11.1.14. Print Format Tools Guidelines ΓòÉΓòÉΓòÉ
  3679.  
  3680. The following chart identifies options for producing the master files for a 
  3681. printer (publisher).  Format tools control the layout of a printed page, 
  3682. including placement of headings and integration of text and graphics. 
  3683.  
  3684. 1.  Information can be formatted for industry-standard 7x9-inch page size. 
  3685.  
  3686. 2.  The formatting tool produces output acceptable to the print vendor 
  3687.     (publisher). 
  3688.  
  3689. 3.  Information can be formatted for industry-standard 7x9-inch page size. 
  3690.  
  3691. 4.  The formatting tool produces PostScript output with embedded graphics and 
  3692.     encapsulated fonts. 
  3693.  
  3694.  
  3695. ΓòÉΓòÉΓòÉ 12. Usability ΓòÉΓòÉΓòÉ
  3696.  
  3697. Application development organizations should hold as a primary goal providing 
  3698. applications that are usable, both individually and as part of a networked or 
  3699. distributed system. 
  3700.  
  3701. Excellent usability is defined as easy, safe, intuitive use of products by 
  3702. users.  It is achieved by developing user interfaces following the three basic 
  3703. tenets of usability engineering: 
  3704.  
  3705. o   Original designs based on known principles of human factors and perceptual 
  3706.     and cognitive psychology, 
  3707.  
  3708. o   Early and continual user focus, and 
  3709.  
  3710. o   Usability assessments, as part of an iterative design-test-redesign-retest 
  3711.     development cycle. 
  3712.  
  3713. In this document, usability information and guidelines are provided for 
  3714. application installation, configuration, and user interface. 
  3715.  
  3716.  
  3717. ΓòÉΓòÉΓòÉ 12.1. Usability Guidelines ΓòÉΓòÉΓòÉ
  3718.  
  3719. It is difficult to identify absolutes in usability; one design or feature can 
  3720. be usable in one system context and not in another.  Thus, much of what defines 
  3721. usability is the process followed in its pursuit. Such process points may make 
  3722. this section seem more vague than the others in this document.  The following 
  3723. guidelines, if followed, will lead to improved usability of your application. 
  3724. For complete confidence in your application's usability, a complete program of 
  3725. user-centered design, including early and frequent involvement of the users, 
  3726. iterative design, and usability evaluations, should be followed. 
  3727.  
  3728. Installation and Configuration 
  3729.  
  3730. User Interfaces 
  3731.  
  3732.  
  3733. ΓòÉΓòÉΓòÉ 12.1.1. Installation and Configuration Guidelines ΓòÉΓòÉΓòÉ
  3734.  
  3735. 1.  Allow applications to be installed on any drive chosen by the user, and 
  3736.     installed from any drive chosen by the user. 
  3737.  
  3738.     Do not force installation on the C (or any) drive, and do not place files 
  3739.     on the C drive when the user has selected another drive.  It is more usable 
  3740.     to allow the user to select any drive. 
  3741.  
  3742. 2.  Allow for easy back out from installing code (including application code, 
  3743.     patch code, and version updates). 
  3744.  
  3745. 3.  Offer a minimal, guided install and configuration, to facilitate 
  3746.     installation for the first-time, novice user. 
  3747.  
  3748.  
  3749. ΓòÉΓòÉΓòÉ 12.1.2. User Interfaces Guidelines ΓòÉΓòÉΓòÉ
  3750.  
  3751. 1.  Employ user-centered, participatory design. 
  3752.  
  3753.      Do not depend on your own intuitions when it comes to determining the 
  3754.     usability of our applications.  Engage the user in the design by gathering 
  3755.     customer requirements, soliciting customer feedback on early designs, and 
  3756.     incorporating users as part of the design team throughout the design cycle. 
  3757.  
  3758. 2.  Employ a consistent look-and-feel among all user interfaces. 
  3759.  
  3760.     A consistent look-and-feel, or system personality, will lead to positive 
  3761.     transfer of learning; having learned to use one application, the user will 
  3762.     have a head start on knowing how to use the next one. 
  3763.  
  3764.     a.  Understand what other applications within your environment look like. 
  3765.         Be consistent with that. 
  3766.  
  3767.     b.  Understand how the companion applications (applications that work with 
  3768.         yours, or are prerequisites of yours), look and be consistent with that 
  3769.         look. 
  3770.  
  3771. 3.  Select a set of user interface guidelines (for example, use CUA for OS/2 
  3772.     applications), and design your interface accordingly. 
  3773.  
  3774.     Deviate, in the name of increased usability, based only on consistent 
  3775.     documented customer feedback. 
  3776.  
  3777. 4.  Employ intuitive, informational icons. 
  3778.  
  3779. 5.  Do not ask the user to provide information that is already accessible to 
  3780.     the computer system. 
  3781.  
  3782.     It frustrates the users when they must provide information to the computer 
  3783.     more than once. Don't ask your users to: 
  3784.  
  3785.     a.  Provide information they don't have. 
  3786.  
  3787.     b.  Go and find the available disk storage. 
  3788.  
  3789.     c.  Look up what is in system configuration files. 
  3790.  
  3791.     d.  Know which statements within system files come before each other.  Make 
  3792.         the software put the lines into the system files, and make the software 
  3793.         check to insure the lines are placed in the proper order. 
  3794.  
  3795.     e.  Make mathematical calculations when your program can ask for values and 
  3796.         calculate them programmatically. 
  3797.  
  3798.     f.  Start up any product as a prerequisite or for parameter information, do 
  3799.         it programmatically. 
  3800.  
  3801. Make the program do the work, not the customer. 
  3802.  
  3803. 6.  Maximize the ease and accessibility of frequently-done user tasks. 
  3804.  
  3805. 7.  Provide flexibility and efficiency of use. 
  3806.  
  3807.     Accelerators -- unseen by the novice user, perhaps -- may often speed up 
  3808.     the interaction for the expert user to such an extent that the system can 
  3809.     cater to both inexperienced and experienced users. 
  3810.  
  3811. 8.  Provide tailorability within the user interface, to allow the users to 
  3812.     customize the interface to suit their own needs. 
  3813.  
  3814. 9.  Afford command line and API access to all functions. 
  3815.  
  3816. 10. Make system status visible. 
  3817.  
  3818.     The system should always keep users informed about what is going on, 
  3819.     through appropriate feedback within reasonable time. 
  3820.  
  3821. 11. There should be a match between the system and the real world. 
  3822.  
  3823.     The system should speak the users' language, with words, phrases, and 
  3824.     concepts familiar to the user, rather than system-oriented terms. Follow 
  3825.     real-world conventions, making information appear in a natural and logical 
  3826.     order.  (See section on Internationalization for discussion on cultural 
  3827.     differences and their reflection in user interfaces.) 
  3828.  
  3829. 12. Provide a minimalist design; provide all and only the information necessary 
  3830.     for the user to complete a task, at the time when the user needs it. 
  3831.  
  3832.     Dialogues should not contain information that is irrelevant or rarely 
  3833.     needed. Every extra unit of information in a dialogue competes with the 
  3834.     relevant units of information and diminishes their relative visibility. 
  3835.     Extraneous information leads to unnecessary clutter on the screen, taking 
  3836.     up screen real estate and requiring extra work of the user to discern the 
  3837.     important information available. 
  3838.  
  3839.     For example, if seconds are not meaningful, (if, say, the product is only 
  3840.     accurate to the nearest minute), don't have the user input the seconds. 
  3841.  
  3842. 13. Require recognition rather than recall. 
  3843.  
  3844.     Make objects, actions, and options visible.  The user should not have to 
  3845.     remember information from one part of the dialogue to another. Instructions 
  3846.     for use of the system should be visible or easily retrievable whenever 
  3847.     appropriate. 
  3848.  
  3849. 14. Employ color sparingly, meaningfully, and usably. 
  3850.  
  3851.     a.  Use color to code information. 
  3852.  
  3853.     b.  Use some other variable (e.g., brightness) to code information, to 
  3854.         accommodate color-deficient users. 
  3855.  
  3856.     c.  Recognize that some color combinations are better than others. 
  3857.  
  3858.         o   Don't use saturated blues or for text or other thin lines. 
  3859.  
  3860.         o   Be consistent with cultural norms (e.g., red for stop or danger, in 
  3861.             the U.S. and elsewhere). 
  3862.  
  3863. 15. Make no changes to the user's computing environment without asking for 
  3864.     permission/confirmation. 
  3865.  
  3866.     For example, leave all windows exactly where the user left them. 
  3867.  
  3868. 16. Allow no destructive actions (e.g., file deletion) without user 
  3869.     confirmation (unless the user has optionally turned off the confirmation 
  3870.     dialogs). 
  3871.  
  3872. 17. Stay informed of the IBM product line, and related applications. 
  3873.  
  3874.     The applications are establishing the mental models of our users, and so to 
  3875.     better understand our users we must know what programs they are familiar 
  3876.     with. 
  3877.  
  3878. 18. The system should afford the user control and freedom. 
  3879.  
  3880.     Users often choose system functions by mistake and will need a clearly 
  3881.     marked "emergency exit" to leave the unwanted state without having to go 
  3882.     through an extended dialog. Support undo capabilities, particularly during 
  3883.     long processes like installation. People make mistakes.  Expect them. 
  3884.  
  3885.  
  3886. ΓòÉΓòÉΓòÉ 13. References ΓòÉΓòÉΓòÉ
  3887.  
  3888.  
  3889. ΓòÉΓòÉΓòÉ 13.1. How to Get Reference Material ΓòÉΓòÉΓòÉ
  3890.  
  3891. The following list gives the information necessary to obtain the reference 
  3892. material. 
  3893.  
  3894. 1.  IBM Publications and Technical Reports 
  3895.  
  3896.     Order IBM publications and technical reports through your IBM 
  3897.     representative or the IBM branch office serving your locality. 
  3898.  
  3899. 2.  IEEE: POSIX Publications 
  3900.  
  3901.     IEEE publications can be ordered by calling 1-800-678-IEEE (or 
  3902.     908-981-1393). 
  3903.  
  3904. 3.  OMG (Object Management Group) Publications 
  3905.  
  3906.     To order documents from the Object Management Group, Inc. call (508) 
  3907.     820-4300, fax to (508) 820-4303 or send a request to: 
  3908.  
  3909.            Object Management Group, Inc. Headquarters
  3910.            492 Old Connecticut Path
  3911.            Framingham, MA  01701
  3912.  
  3913. 4.  OSF (Open Software Foundation) Publications 
  3914.  
  3915.     These publications are obtained at a bookstore. 
  3916.  
  3917. 5.  RFCs - DCE Documents 
  3918.  
  3919.     DCE RFCs may be obtained through ftp and email. DCE RFC's may be available 
  3920.     through ftp before they are available through email. For more information, 
  3921.     see DCE RFC 0 (rfc0.0.txt). 
  3922.  
  3923.     To access the DCE RFC directory using FTP, use the following commands and 
  3924.     identity information: 
  3925.  
  3926.            ftp grabbag.osf.org  (130.105.100.2)
  3927.            user:dce-rfc
  3928.            password:dce-rfc
  3929.            cd dce-rfc
  3930.            (then issue get commands for files)
  3931.  
  3932.     To get DCE RFCs using email, send an email message to: 
  3933.  
  3934.            dce-rfc-archive@osf.org
  3935.  
  3936.     The message should have a null (empty) subject line.  The body of the 
  3937.     message should consist of two lines in the following format: 
  3938.  
  3939.            path <your-return-email-address>
  3940.            send rfc rfc<M>.<m>."roff|txt|ps"
  3941.  
  3942.     The following message body is an example of how to get an ascii version of 
  3943.     RFC 0.0: 
  3944.  
  3945.            path blakley@vnet.ibm.com
  3946.            send rfc rfc0.0.txt
  3947.  
  3948. 6.  RFCs - IETF (InterNet) Documents 
  3949.  
  3950.     To access the DCE RFC directory using FTP, use the following commands and 
  3951.     identity information: 
  3952.  
  3953.            ftp nic.ddn.mil
  3954.            Name (address):anonymous
  3955.            Password:guest
  3956.            pathname RFC:RFCnnnn.TXT
  3957.             (nnnn refers to the number of the RFC)
  3958.  
  3959.     A list of all RFCs may be obtained by copying the file RFC:RFC-INDEX.TXT. 
  3960.  
  3961.     The NIC also provides a mail service for those that cannot use FTP. Address 
  3962.     the request to SERVICE@NIC.DDN.MIL and indicate the desired filename in the 
  3963.     subject field. For example, 
  3964.  
  3965.            Subject: SEND RFC:RFCnnnn.TXT
  3966.  
  3967. 7.  U.S. DoD Publications 
  3968.  
  3969.     To order documents from the INFOSEC Awareness Division call (301) 688-8742 
  3970.     or send a request to: 
  3971.  
  3972.            DIRECTOR
  3973.            National Security Agency
  3974.            Attn: S33, INFOSEC Awareness Division
  3975.            Ft. George G. Meade, MD 20755-6000
  3976.  
  3977.     To order documents from the Government Printing Office (GPO), call (202) 
  3978.     783-3238 on weekdays from  0800 - 1630 or send a request to: 
  3979.  
  3980.            Superintendent of Documents
  3981.            U.S. Government Printing Office
  3982.            Washington, DC  20402
  3983.  
  3984. 8.  X/Open Company Ltd., U.K. Publications 
  3985.  
  3986.     A full catalogue of X/Open publications, together with an order form may be 
  3987.     obtained by contacting your nearest X/Open office, (see list below) or 
  3988.     directly from: 
  3989.  
  3990.            X/Open Company Limited (Publications)
  3991.            PO Box 109,
  3992.            Penn, High Wycombe,
  3993.            Bucks HP10 8NP,
  3994.            England
  3995.            Tel:  +44  494 813844
  3996.            Fax:  +44  494 814989
  3997.  
  3998.     Additional information relating to X/Open publications is also available by 
  3999.     electronic mail.  Please send your request to: 
  4000.  
  4001.            XoDocs@xopen.co.uk
  4002.            XoSpecs@xopen.co.uk
  4003.  
  4004.     There are 2 X/Open offices in the USA, one in England, and one in Japan: 
  4005.  
  4006.               X/Open Company Ltd.              X/Open Company Ltd.
  4007.               1010 El Camino Real              3141 Fairview Park Drive
  4008.               Suite 380                        Suite 670
  4009.               Menlo Park, CA 94025             Falls Church, VA 22042-4501
  4010.               United States                    United States
  4011.               Tel:  +1 (415) 323 7992          Tel:  +1 (703) 876 0044
  4012.               Fax:  +1 (415) 323 8204          Fax:  +1 (703) 876 0050
  4013.               X/Open Company Ltd.              X/Open Company Ltd.
  4014.               Apex Plaza, Forbury Road         Kurufuru-Kanda Bldg, 9F
  4015.               Reading                          1-2-1, Kanda Suda-cho
  4016.               Berks     RG1 1AX                Chiyoda-Ku, Tokyo 101
  4017.               United Kingdom                   Japan
  4018.               Tel:  +44 734 508311             Tel:  +81 3 3251 8321
  4019.               Fax:  +44 734 500110             Fax:  +81 3 3251 8376
  4020.  
  4021.  
  4022. ΓòÉΓòÉΓòÉ 13.2. Introduction References ΓòÉΓòÉΓòÉ
  4023.  
  4024. 1.  Open Blueprint Technical Overview, IBM publication order number GC23-3808. 
  4025.  
  4026.     Provides a technical overview of the IBM Open Blueprint. The Open Blueprint 
  4027.     is a structure for a distributed systems environment and provides the base 
  4028.     upon which to build, execute, and manage distributed applications. 
  4029.  
  4030.  
  4031. ΓòÉΓòÉΓòÉ 13.3. Base Operating System References ΓòÉΓòÉΓòÉ
  4032.  
  4033.  
  4034. ΓòÉΓòÉΓòÉ 13.3.1. Application Portability References ΓòÉΓòÉΓòÉ
  4035.  
  4036. 1.  POSIX 1003.1, Portable Operating System Interface (POSIX) - Part 1: System 
  4037.     Application Program Interface (API) C Language, available from the 
  4038.     Institute of Electrical and Electronics Engineers (IEEE). Also known as 
  4039.     International Standard ISO/IEC 9945-1, ISBN 1-55937-061-0. 
  4040.  
  4041.     An overview of system services and interfaces, and detailed syntactic and 
  4042.     semantic descriptions of the API calls.  This document is independent of 
  4043.     operating system. 
  4044.  
  4045. 2.  POSIX 1003.4a, Portable Operating System Interface (POSIX - Part 1: System 
  4046.     Application Program Interface (API) - Amendment 2: Threads Extension C 
  4047.     Language, Draft 4, available from the Institute of Electrical and 
  4048.     Electronics Engineers (IEEE). 
  4049.  
  4050.     An overview of threads services and interfaces, and detailed syntactic and 
  4051.     semantic descriptions of the API calls.  This document is independent of 
  4052.     operating system. 
  4053.  
  4054. 3.  X/Open Single UNIX Specification (Spec 1170) - Four Volume Set , available 
  4055.     from X/Open Company Ltd., X/Open Document Number T403. The set is four 
  4056.     documents published solely in electronic form: 
  4057.  
  4058.     o   System Interfaces and Headers, Issue 4 Version 2. Spec 1170 V1 , X/Open 
  4059.         Document Number S418. 
  4060.     o   Commands and Utilities, Issue 4 Version 2. Spec 1170 V2 , X/Open 
  4061.         Document Number S419. 
  4062.     o   System Interface Definitions, Issue 4 Version 2. Spec 1170 V3 , X/Open 
  4063.         Document Number S420. 
  4064.     o   International Terminal Interfaces (XCURSES), I4. Spec 1170 V4 , X/Open 
  4065.         Document Number S422. 
  4066.  
  4067. Detailed syntactic and semantic descriptions for operating system services and 
  4068. interfaces that are in common use across applications and operating systems. 
  4069.  
  4070. 4.  X/Open CAE Specification: System Interfaces and Headers, Issue 4, available 
  4071.     from X/Open Company Ltd., X/Open Document Number C202. 
  4072.  
  4073.     XPG/4 APIs and header files. 
  4074.  
  4075. 5.  (OS/2, Windows) See the programming reference and users guide for the 
  4076.     compiler the application developer chooses. 
  4077.  
  4078.     Detailed syntactic and semantic descriptions of C-library APIs. 
  4079.  
  4080. 6.  AIX Calls and Subroutines Reference for IBM RISC System/6000, IBM 
  4081.     publication order number SC23-2198. 
  4082.  
  4083.     Detailed syntactic and semantics descriptions for AIX/6000 operating system 
  4084.     services and interfaces. 
  4085.  
  4086. 7.  Experiences with SOMobjects: Distributed System Object Model (DSOM), IBM 
  4087.     publication order number GG24-4165. 
  4088.  
  4089.     Provides examples and descriptions of DSOM. 
  4090.  
  4091. 8.  SOMobjects Developer Toolkit Publications, IBM publication order number 
  4092.     S96F-8649. 
  4093.  
  4094.     Provides programming information for SOM. Contains the following 
  4095.     publications: 
  4096.  
  4097.     o   SOMobjects Developer Toolkit Users Guide. 
  4098.  
  4099.         An introductory guide to the System Object Model and its accompanying 
  4100.         frameworks. 
  4101.     o   SOMobjects Developer Toolkit Programmers Reference Manual. 
  4102.  
  4103.         Reference material for the classes, methods, functions, and macros 
  4104.         provided by the System Object Model and its accompanying frameworks. 
  4105.     o   SOMobjects Developer Toolkit Collection Classes Reference Manual. 
  4106.  
  4107.         Reference material for the classes and methods of the Collection 
  4108.         Classes provided with the System Object Model. 
  4109.     o   SOMobjects Developer Toolkit Emitter Framework Guide and Reference. 
  4110.  
  4111.         Information about collection of SOM classes that allows programmers to 
  4112.         write their own emitters. 
  4113.     o   SOMobjects Developer Toolkit Installation/Configuration Guide. 
  4114.  
  4115.         Instructions for installation and configuration of the SOMobjects 
  4116.         Developer Toolkit. 
  4117.  
  4118.  
  4119. ΓòÉΓòÉΓòÉ 13.3.2. Time References ΓòÉΓòÉΓòÉ
  4120.  
  4121. 1.  POSIX 1003.1, Portable Operating System Interface (POSIX) - Part 1: System 
  4122.     Application Program Interface (API) C Language, available from the 
  4123.     Institute of Electrical and Electronics Engineers (IEEE). Also known as 
  4124.     International Standard ISO/IEC 9945-1, ISBN 1-55937-061-0. 
  4125.  
  4126.     Describes the POSIX time interfaces and services. 
  4127.  
  4128. 2.  DCE Application Developer's Guide, Open Software Foundation, version 1.0.3, 
  4129.     available from the Open Software Foundation. 
  4130.  
  4131.     Provides an overview of the DCE time services and interfaces and a detailed 
  4132.     description of the programming model for DCE applications. 
  4133.  
  4134. 3.  X/Open DCE: Time Services Preliminary Specification, January 1994, 
  4135.     available from X/Open Company Ltd., X/Open Document Number P313, ISBN 
  4136.     1-85912-148-8. 
  4137.  
  4138.     An overview of the DCE time services and interfaces, and detailed syntactic 
  4139.     and semantic descriptions of the DCE time API calls. 
  4140.  
  4141. 4.  Year 2000 Clean, Feb. 1993, by M.D. Frawley, IBM Technical Report order 
  4142.     number 93A 02208, location CPD-Raleigh. 
  4143.  
  4144.     This document describes the pitfalls and solutions to dealing correctly 
  4145.     with dates past the end of the twentieth century. 
  4146.  
  4147. 5.  X/Open Single UNIX Specification (Spec 1170) - Four Volume Set , available 
  4148.     from X/Open Company Ltd., X/Open Document Number T403. The set is four 
  4149.     documents published solely in electronic form: 
  4150.  
  4151.     o   System Interfaces and Headers, Issue 4 Version 2. Spec 1170 V1 , X/Open 
  4152.         Document Number S418. 
  4153.     o   Commands and Utilities, Issue 4 Version 2. Spec 1170 V2 , X/Open 
  4154.         Document Number S419. 
  4155.     o   System Interface Definitions, Issue 4 Version 2. Spec 1170 V3 , X/Open 
  4156.         Document Number S420. 
  4157.     o   International Terminal Interfaces (XCURSES), I4. Spec 1170 V4 , X/Open 
  4158.         Document Number S422. 
  4159.  
  4160. Detailed syntactic and semantic descriptions for operating system services and 
  4161. interfaces that are in common use across applications and operating systems. 
  4162.  
  4163. 6.  X/Open CAE Specification: System Interfaces and Headers, Issue 4, available 
  4164.     from X/Open Company Ltd., X/Open Document Number C202. 
  4165.  
  4166.     XPG/4 APIs for time and header files. 
  4167.  
  4168. 7.  AIX Calls and Subroutines Reference for IBM RISC System/6000, IBM 
  4169.     publication order number SC23-2198. 
  4170.  
  4171.     Detailed syntactic and semantics descriptions for AIX operating system 
  4172.     services and interfaces for time. 
  4173.  
  4174. 8.  OS/2 LAN Server 3.0 Application Programmer's Reference, IBM publication 
  4175.     order number S96F-8440. 
  4176.  
  4177.     Detailed syntactic and semantics descriptions for OS/2 LAN Server services 
  4178.     and interfaces for time. 
  4179.  
  4180. 9.  (OS/2, Windows) See the programming reference and users guide for the 
  4181.     compiler the application developer chooses. 
  4182.  
  4183.     Detailed syntactic and semantic descriptions of C-library APIs for time. 
  4184.  
  4185.  
  4186. ΓòÉΓòÉΓòÉ 13.3.3. Internationalization References ΓòÉΓòÉΓòÉ
  4187.  
  4188. 1.  System Interfaces and Headers, Issue 4, X/Open CAE Specification, Document 
  4189.     Number C202, ISBN 1-872630-47-2. 
  4190.  
  4191.     Specification of XPG/4 APIs and header files, including I18N for code-set 
  4192.     independence, culture-sensitive information, messaging, and code-set 
  4193.     conversion. 
  4194.  
  4195. 2.  X/Open CAE Specification: Commands and Utilities, Issue 4, X/Open Document 
  4196.     Number C203. 
  4197.  
  4198.     Specification of XPG/4 commands and utilities, including I18N gencat  to 
  4199.     generate a message catalog and localedef to generate a locale. 
  4200.  
  4201. 3.  XPG4 Internationalization for OS/2, The Developer Connection for OS/2, IBM 
  4202.     publication order number P06H-1971. 
  4203.  
  4204.     Application programmer's guide to using the XPG/4 I18N APIs for OS/2 
  4205.     applications. 
  4206.  
  4207. 4.  Universal Character Set Coexistence Migration (covers Unicode), X/Open 
  4208.     Technical Study, Document Number E401, ISBN 1-872630-78-2. 
  4209.  
  4210.     Describes major issues facing the implementers of X/Open-compliant and 
  4211.     POSIX-compliant systems with regard to ISO/IEC 10646 support. It explains 
  4212.     the implications of adopting any UCS strategy and possible applications for 
  4213.     ISO/IEC 10646 and Unicode. 
  4214.  
  4215.  
  4216. ΓòÉΓòÉΓòÉ 13.4. Security References ΓòÉΓòÉΓòÉ
  4217.  
  4218. 1.  IBM Security Architecture: A model for securing information systems, IBM 
  4219.     publication order number SC28-8135-0. 
  4220.  
  4221.     Describes IBM's overall approach to building secure distributed system. 
  4222.  
  4223. 2.  Department of Defense Trusted Computer System Evaluation Criteria, DoD 
  4224.     5200.28-STD.  Available from US DoD. 
  4225.  
  4226.     Describes the evaluation criteria against which the US Government measures 
  4227.     computer system security. 
  4228.  
  4229. 3.  DCE Application Developer's Guide, Open Software Foundation, version 1.0.3, 
  4230.     available from the Open Software Foundation. 
  4231.  
  4232.     Provides an overview of the DCE security services and interfaces and a 
  4233.     detailed description of the programming model for secure DCE applications. 
  4234.     The chapters relevant to security are 1, 2, and 39-46. 
  4235.  
  4236. 4.  DCE Application Developer's Reference,  Open Software Foundation, version 
  4237.     1.0.3, available from the Open Software Foundation. 
  4238.  
  4239.     Provides detailed syntactic and semantic descriptions of all of the DCE 
  4240.     security API calls. 
  4241.  
  4242. 5.  Generic Security Service API, by John Linn (OpenVision), available as 
  4243.     Internet RFC 1508 from IETF. 
  4244.  
  4245.     Describes the structure and interface of the GSSAPI. 
  4246.  
  4247. 6.  GSS-API Extensions for DCE, by John Wray (DEC), available as DCE RFC 5.2 
  4248.     from OSF. 
  4249.  
  4250.     Describes extensions to the GSSAPI to support DCE security. 
  4251.  
  4252. 7.  GSS-API Security Service API (GSS-API) Base , available from X/Open Company 
  4253.     Ltd., X/Open Document Number P308, ISBN 1-85912-253-3. 
  4254.  
  4255.     Defines an application programming interface that provides security 
  4256.     services to callers in a generic fashion. It is supportable by a range of 
  4257.     underlying mechanisms and technologies, allowing source-level portability 
  4258.     of applications to different environments. This document is based on RFC 
  4259.     1508 and RFC 1509, which specify the Internet standards track protocol. In 
  4260.     addition, it identifies probable future changes. 
  4261.  
  4262. 8.  A Generic Interface for Extended Registry Attributes, by Joe Pato (HP), 
  4263.     available as DCE RFC 6.0 from OSF. 
  4264.  
  4265.     Describes proposed extensions to the DCE Cell Registry Service architecture 
  4266.     and interface which make it easier to support integration of non-UNIX 
  4267.     operating system registries into the DCE cell registry architecture. 
  4268.  
  4269. 9.  DCE ACL Library -- Functional Specification, by Dick Mackey and Rich Salz 
  4270.     (OSF), available as RFC 46.0 from OSF. 
  4271.  
  4272.     Describes the OSF/DCE 1.1 ACL API and library. 
  4273.  
  4274. 10. DCE Server Auditable-Event Identification and a Proposed Audit Logging API, 
  4275.     available from OSF as RFC 28.1. 
  4276.  
  4277.     Describes the DCE Security Auditing Service and API. 
  4278.  
  4279. 11. Extended Services for OS/2 Guide to User Profile Management, IBM 
  4280.     publication order number S04G-1112. 
  4281.  
  4282.     Describes the LAN Server interfaces for logging on, and for managing users 
  4283.     and resource access control lists.  Additional information concerning use 
  4284.     of UPM interfaces in a LAN Server environment can be found in the LAN 
  4285.     Server Application Programmer's Reference. 
  4286.  
  4287.  
  4288. ΓòÉΓòÉΓòÉ 13.5. Communication Services Above Transport Layer References ΓòÉΓòÉΓòÉ
  4289.  
  4290. 1.  Open Blueprint Technical Overview, IBM publication order number GC23-3808. 
  4291.  
  4292.     Provides a technical overview of the IBM Open Blueprint. The Open Blueprint 
  4293.     is a structure for a distributed systems environment and provides the base 
  4294.     upon which to build, execute, and manage distributed applications. 
  4295.  
  4296. 2.  DCE Application Developer's Guide, Open Software Foundation, version 1.0.3, 
  4297.     available from the Open Software Foundation. 
  4298.  
  4299.     Includes an overview of the DCE RPC services and interfaces and a detailed 
  4300.     description of the programming model for DCE applications. 
  4301.  
  4302. 3.  X/Open DCE: Remote Procedure Call Preliminary Specification, January 1994, 
  4303.     available from X/Open Document Number P312, ISBN 1-872630-95-2. 
  4304.  
  4305.     An overview of the DCE remote procedure call services and interfaces, and 
  4306.     detailed syntactic and semantic descriptions of the DCE remote procedure 
  4307.     call API calls. 
  4308.  
  4309. 4.  An Introduction to Messaging and Queuing, IBM publication order number 
  4310.     GC33-0805. 
  4311.  
  4312.     Describes the IBM MQSeries. 
  4313.  
  4314. 5.  X/Open CPI-C, March 1992, available from X/Open Company Ltd., X/Open 
  4315.     Document Number C210. 
  4316.  
  4317.     Describes the Common Programming Interface for Communication interface 
  4318.     specification for accessing the SNA APPC protocol. 
  4319.  
  4320. 6.  AIX Version 3.2 Communication Programming Concepts, IBM publication order 
  4321.     number SC23-2206. 
  4322.  
  4323.     Provides overview and other technical references for sockets. 
  4324.  
  4325.  
  4326. ΓòÉΓòÉΓòÉ 13.6. Inter-Application Collaboration for Compound Documents References ΓòÉΓòÉΓòÉ
  4327.  
  4328. 1.  OpenDoc vs. OLE 2.0, by Scott Handy, is available on The Developer 
  4329.     Connection for OS/2. 
  4330.  
  4331.     Compares OpenDoc/DSOM with OLE 2.0/COM. 
  4332.  
  4333. 2.  Experiences with SOMobjects: Distributed System Object Model (DSOM), IBM 
  4334.     publication order number GG24-4165. 
  4335.  
  4336.     Provides examples and descriptions of DSOM. 
  4337.  
  4338. 3.  SOMobjects Developer Toolkit Publications, IBM publication order number 
  4339.     S96F-8649. 
  4340.  
  4341.     Provides programming information for SOM. Contains the following 
  4342.     publications: 
  4343.  
  4344.     o   SOMobjects Developer Toolkit Users Guide. 
  4345.  
  4346.         An introductory guide to the System Object Model and its accompanying 
  4347.         frameworks. 
  4348.     o   SOMobjects Developer Toolkit Programmers Reference Manual. 
  4349.  
  4350.         Reference material for the classes, methods, functions, and macros 
  4351.         provided by the System Object Model and its accompanying frameworks. 
  4352.     o   SOMobjects Developer Toolkit Collection Classes Reference Manual. 
  4353.  
  4354.         Reference material for the classes and methods of the Collection 
  4355.         Classes provided with the System Object Model. 
  4356.     o   SOMobjects Developer Toolkit Emitter Framework Guide and Reference. 
  4357.  
  4358.         Information about collection of SOM classes that allows programmers to 
  4359.         write their own emitters. 
  4360.     o   SOMobjects Developer Toolkit Installation/Configuration Guide, 
  4361.  
  4362.         Instructions for installation and configuration of the SOMobjects 
  4363.         Developer Toolkit. 
  4364.  
  4365.  
  4366. ΓòÉΓòÉΓòÉ 13.7. Transport References ΓòÉΓòÉΓòÉ
  4367.  
  4368. 1.  X/Open Single UNIX Specification (Spec 1170) - Four Volume Set , available 
  4369.     from X/Open Company Ltd., X/Open Document Number T403. The set is four 
  4370.     documents published solely in electronic form: 
  4371.  
  4372.     o   System Interfaces and Headers, Issue 4 Version 2. Spec 1170 V1 , X/Open 
  4373.         Document Number S418. 
  4374.     o   Commands and Utilities, Issue 4 Version 2. Spec 1170 V2 , X/Open 
  4375.         Document Number S419. 
  4376.     o   System Interface Definitions, Issue 4 Version 2. Spec 1170 V3 , X/Open 
  4377.         Document Number S420. 
  4378.     o   International Terminal Interfaces (XCURSES), I4. Spec 1170 V4 , X/Open 
  4379.         Document Number S422. 
  4380.  
  4381. Detailed syntactic and semantic descriptions for operating system services and 
  4382. interfaces that are in common use across applications and operating systems. 
  4383. Including networking interfaces based on BSD Sockets. 
  4384.  
  4385. 2.  POSIX 1003.12 Draft 4.0 Part XX: Protocol Independent Interfaces (PII), 
  4386.     available from the Institute of Electrical and Electronics Engineers 
  4387.     (IEEE). 
  4388.  
  4389.     Specifies the protocol independent interface semantics with syntax 
  4390.     definitions based on BSD sockets and X-Open XTI. 
  4391.  
  4392. 3.  IBM Anynet/2 Multi-Protocol Transport Services Socket/MPTS Programmer's 
  4393.     Reference, IBM publication order number S96F-8637. 
  4394.  
  4395.     Describes the OS/2 sockets API definitions. 
  4396.  
  4397. 4.  VTAM V3R4.2 Sockets over SNA User Guide, IBM publication order number 
  4398.     SC31-6487. 
  4399.  
  4400.     Describes how to use the Sockets over SNA function to run MVS and OS/2 
  4401.     TCP/IP socket applications. 
  4402.  
  4403. 5.  Multiprotocol Transport Networking (MPTN) Architecture: Technical Overview, 
  4404.     IBM publication order number GC31-7073. 
  4405.  
  4406.     Gives an overview of the MPTN architecture. 
  4407.  
  4408. 6.  X/Open Preliminary Specification, Part 1: MPTN Access Node Overview, 
  4409.     available from X/Open in company review. 
  4410.  
  4411.     Provides the detail specifications for MPTN submitted to X-OPEN. 
  4412.  
  4413. 7.  NetBIOS V1 for TCP/IP for OS/2, IBM publication order number SC31-6122. 
  4414.  
  4415.     Product user guide to the NetBIOS application on TCP/IP for OS/2. 
  4416.  
  4417. 8.  (IETF) RFC 1001, Protocol Standard for NetBIOS Services on a TCP/UDP 
  4418.     Transport, Concepts and Methods, 
  4419.  
  4420.     Describes the architecture for NetBIOS on TCP/IP. 
  4421.  
  4422. 9.  (IETF) RFC 1002, Protocol Standard for NetBIOS Services on a TCP/UDP 
  4423.     Transport, Detailed Specifications 
  4424.  
  4425.     Provides the protocol format specifications for NetBIOS on TCP/IP. 
  4426.  
  4427. 10. AIX Version 3.2 Communication Programming Concepts, IBM publication order 
  4428.     number SC23-2206. 
  4429.  
  4430.     Provides overview and other technical references for sockets. 
  4431.  
  4432.  
  4433. ΓòÉΓòÉΓòÉ 13.8. System Management References ΓòÉΓòÉΓòÉ
  4434.  
  4435.  
  4436. ΓòÉΓòÉΓòÉ 13.8.1. Reliability, Availability and Serviceability Reference ΓòÉΓòÉΓòÉ
  4437.  
  4438. 1.  (OS/2) FFST/2 Administration Guide, IBM publication order number S96F-8593. 
  4439.  
  4440.     How the FFST/2 product is used by an OS/2 administrator. 
  4441.  
  4442. 2.  Writing a Device Driver for AIX Version 3.2, IBM publication order number 
  4443.     GG24-3629. 
  4444.  
  4445.     Examples of how to use the RAS facilities of AIX. 
  4446.  
  4447. 3.  (AIX/6000) InfoExplorer User's Guide and Reference, IBM publication order 
  4448.     number SC23-2455. 
  4449.  
  4450.     Guide on how to view all of the AIX user and programming documentation 
  4451.     using the InfoExplorer program. This can be used to find out about how to 
  4452.     use the AIX RAS facilities, such as error logging, trace and dump. 
  4453.  
  4454. 4.  (AIX) Problem Solving Guide and Reference, SC23-2204. 
  4455.  
  4456.     Customer document for performing PD/PSI for AIX. 
  4457.  
  4458. 5.  (DCE) OSF DCE-RFC 24.1 Serviceability Proposal, available from OSF. 
  4459.  
  4460.     How to use DCE logging facilities. 
  4461.  
  4462. 6.  OS2 LAN Server Problem Determination Guide, IBM publication order number 
  4463.     S96F-8431. 
  4464.  
  4465.     PD/PSI guide for LAN Server environment. 
  4466.  
  4467.  
  4468. ΓòÉΓòÉΓòÉ 13.8.2. Software Management References ΓòÉΓòÉΓòÉ
  4469.  
  4470. 1.  (AIX)  General Programming Concepts, Volume 1: Writing Programs, IBM 
  4471.     publication order number SC23-2533. 
  4472.  
  4473.     Describes how an application developer can use installp to install an 
  4474.     application on AIX/6000 system. Chapter 20 is  Packaging Software for 
  4475.     Installation as Optional Software 
  4476.  
  4477. 2.  CID Enablement Guidelines, IBM publication order number S10H-6666. 
  4478.  
  4479.     Describes how to CID enable an OS/2, DOS, and Windows applications. 
  4480.  
  4481. 3.  CID Enablement of DOS Local Area Networks, IBM publication order number 
  4482.     SC31-6833. 
  4483.  
  4484.     Describes what an application must do to be CID enabled in Appendix D: 
  4485.     Product Enablement. CID enablement is described for both DOS and OS/2 
  4486.     applications. 
  4487.  
  4488. 4.  (OS/2)  Automated Installation for CID Enabled Extended Services, LAN 
  4489.     Server V3.0 and Network Transport Services/2, IBM publication order number 
  4490.     GG24-3781. 
  4491.  
  4492.     Describes how to setup code server and remotely install Local Area 
  4493.     Networks, and NTS/2. 
  4494.  
  4495. 5.  (AIX) NetViewDM/6000 Concepts, IBM publication order number GH19-5001. 
  4496.  
  4497.     Describes the NetViewDM/6000 distribution product. 
  4498.  
  4499. 6.  POSIX, P1378.2 Draft 12, March 1994, Software Administration, available 
  4500.     from the Institute of Electrical and Electronics Engineers (IEEE). 
  4501.  
  4502.     Describes the POSIX proposal for software management commands and software 
  4503.     packaging. 
  4504.  
  4505. 7.  Software Installer for OS/2 , is available on The Developer Connection for 
  4506.     OS/2. 
  4507.  
  4508.     IBM's software install development tool for OS/2 applications. 
  4509.  
  4510. 8.  Software Installer for Windows, is available on The Developer Connection 
  4511.     for OS/2. 
  4512.  
  4513.     IBM's software install development tool for Windows applications. 
  4514.  
  4515.  
  4516. ΓòÉΓòÉΓòÉ 13.8.3. License Management References ΓòÉΓòÉΓòÉ
  4517.  
  4518. 1.  (AIX/6000) NetLS Quick Start Guide, IBM publication order number SC09-1661. 
  4519.  
  4520.     How to install the NetLS runtime and how to get started. 
  4521.  
  4522. 2.  (AIX/6000) Managing Software Development with the Network License System, 
  4523.     IBM publication order number SC09-1660. 
  4524.  
  4525.     The programmer's guide containing the license enablement APIs and 
  4526.     explanations. 
  4527.  
  4528. 3.  (AIX/6000) Managing NCS Software, IBM publication order number SC09-1834. 
  4529.  
  4530.     Explains Network Computing System (NCS), what is required for NCS, and how 
  4531.     to setup NCS on your LAN. 
  4532.  
  4533.  
  4534. ΓòÉΓòÉΓòÉ 13.8.4. Performance Monitoring References ΓòÉΓòÉΓòÉ
  4535.  
  4536. 1.  Memory Debugging for C and C++ Programs, available on the The Developer 
  4537.     Connection for OS/2. 
  4538.  
  4539.     Provides design and programming recommendations, memory debugging tool 
  4540.     information, and detection and solution examples. 
  4541.  
  4542. 2.  Requirements for Performance Instrumentation of DCE RPC and CDS Services, 
  4543.     available as RFC 32.0 from OSF. 
  4544.  
  4545.     Defines the performance instrumentation requirements for DCE, specifically 
  4546.     RPC and CDS. 
  4547.  
  4548. 3.  (OS/2) SPM/2 User's Guide and Reference, included as part of the SPM/2 
  4549.     online product documentation. 
  4550.  
  4551.     Describes the SPM/2 in general with specific sections on using the SPM API, 
  4552.     instrumenting and registering user metrics, and monitoring a network 
  4553.     including instrumenting an agent for user applications. 
  4554.  
  4555. 4.  AIX/6000 Performance Tuning Guide, IBM publication order number SC23-2613. 
  4556.  
  4557.     Description of the AIX/6000 Trace facility, including the MACROS for 
  4558.     instrumenting users code. 
  4559.  
  4560. 5.  AIX Performance Toolbox/6000 User's Guide, IBM publication order number 
  4561.     SC23-2579. 
  4562.  
  4563.     Discussion of the xmperf capability to display and report user metrics. 
  4564.     Also describes the Remote Statistics Interface (RSI) API and the System 
  4565.     Performance Measurement Interface (SPMI) API. 
  4566.  
  4567. 6.  AIX System Performance Measurement Interface (SPMI) Programmer's Guide, IBM 
  4568.     publication order number SC23-2556. 
  4569.  
  4570.     Describes the AIX/6000 SPMI API with which a user can register metrics with 
  4571.     AIX/6000, for subsequent reporting by xmperf. 
  4572.  
  4573. 7.  Writing a Device Driver for AIX Version 3.2, IBM publication order number 
  4574.     GG24-3629. 
  4575.  
  4576.     Describes the use of the AIX/6000 Trace Facility. 
  4577.  
  4578.  
  4579. ΓòÉΓòÉΓòÉ 13.8.5. Remote System Management Access References ΓòÉΓòÉΓòÉ
  4580.  
  4581. 1.  IBM Transmission Control Protocol / Internet Protocol Version 2.0 for OS/2, 
  4582.     IBM publication order number SC31-6077. 
  4583.  
  4584.     Describes how to use the Distributed Program Interface (DPI) on OS/2 to 
  4585.     develop systems management subagents. 
  4586.  
  4587. 2.  Desktop Management Interface Specification Draft 4.4 Desktop Management 
  4588.     Task Force, 1994, available via anonymous ftp from aurora.intel.com or 
  4589.     gatekeeper.dec.com in directory "./pub/dmtf". 
  4590.  
  4591.     Defines the rules for describing and obtaining management information for 
  4592.     the hardware and software components of desktop computers. 
  4593.  
  4594. 3.  RFC 1156 (IETF): The Management Information Base (MIB). 
  4595.  
  4596.     Defines the minimum set of variables, testpoints and controls which  a 
  4597.     complete TCP/IP implementation is expected to support. 
  4598.  
  4599. 4.  RFC 1157 (IETF): Simple Network Management Protocol (SNMP). 
  4600.  
  4601.     Defines the legal interactions which may occur under SNMP and the contents 
  4602.     and structure of SNMP packets. 
  4603.  
  4604.  
  4605. ΓòÉΓòÉΓòÉ 13.9. Extended Operating System References ΓòÉΓòÉΓòÉ
  4606.  
  4607.  
  4608. ΓòÉΓòÉΓòÉ 13.9.1. Naming References ΓòÉΓòÉΓòÉ
  4609.  
  4610. 1.  DCE Application Developer's Guide, Open Software Foundation, version 1.0.3, 
  4611.     available from the Open Software Foundation. 
  4612.  
  4613.     Provides an overview of the DCE directory services and interfaces and a 
  4614.     detailed description of the programming model for DCE applications. 
  4615.  
  4616. 2.  X/Open DCE: Directory Services Preliminary Specification, June 1994, 
  4617.     available from X/Open Document Number P314, ISBN 1-85912-012-1. 
  4618.  
  4619.     An overview of the DCE directory services and interfaces and, detailed 
  4620.     syntactic and semantic descriptions of the DCE directory API calls. 
  4621.  
  4622. 3.  X/Open DCE: Remote Procedure Call Preliminary Specification, January 1994, 
  4623.     available from X/Open Company Ltd., X/Open Document Number P312, ISBN 
  4624.     1-872630-95-2. 
  4625.  
  4626.     An overview of the DCE remote procedure call services and interfaces, and 
  4627.     detailed syntactic and semantic descriptions of the DCE remote procedure 
  4628.     call name service API calls. 
  4629.  
  4630. 4.  OSI-Abstract-Data Manipulation API (XOM), available from X/Open Company 
  4631.     Ltd., X/Open Document Number C180, ISBN 1-872630-17-0. 
  4632.  
  4633.     Describes object management interfaces for use with XDS. 
  4634.  
  4635. 5.  API to Directory Services (XDS)(covers X.500), available from X/Open 
  4636.     Company Ltd., X/Open Document Number C190, ISBN 1-872630-18-9. 
  4637.  
  4638.     An overview of the XDS directory services and interfaces and, detailed 
  4639.     syntactic and semantic descriptions of the XDS directory API calls. 
  4640.  
  4641. 6.  X/Open Federated Naming Preliminary Specification, available from X/Open 
  4642.     Company Ltd., 2H94, currently in company review. 
  4643.  
  4644.     An overview and detailed syntactic and semantic descriptions of the 
  4645.     Federated Naming services, protocols, and interfaces, and a description of 
  4646.     the federated naming policy. 
  4647.  
  4648. 7.  OMG Joint Object Services Specification: Naming, May 1993, available from 
  4649.     OMG Document Number 93.95.2. 
  4650.  
  4651.     An overview and syntactic and semantic descriptions of the OMG object 
  4652.     naming interfaces. 
  4653.  
  4654. 8.  OS/2 LAN Server 3.0 Application Programmer's Reference, IBM publication 
  4655.     order number S96F-8440. 
  4656.  
  4657.     Detailed syntactic and semantics descriptions for OS/2 LAN Server services 
  4658.     and interfaces for Net*. 
  4659.  
  4660. 9.  OSF DCE Administration Guide, Module 1. Planning, Configuring, and Starting 
  4661.     Up DCE, Appendix A: The DCE Cell Namespace, available from OSF. 
  4662.  
  4663.     Layout and description of the DCE namespace. 
  4664.  
  4665. 10. DCE Cell Directory Service Usage Guidelines, available as DCE RFC 44.0 from 
  4666.     OSF. 
  4667.  
  4668.     Guidelines for namespace usage based on OSF DCE Administration Guide and 
  4669.     Hewlett-Packard's experimentation. 
  4670.  
  4671.  
  4672. ΓòÉΓòÉΓòÉ 13.9.2. Printing References ΓòÉΓòÉΓòÉ
  4673.  
  4674. 1.  OS/2 2.0 Technical Library, Programming Guide Volume III, Chapter 18, Print 
  4675.     Job Submission and Manipulation, IBM publication order number S10G-6495. 
  4676.  
  4677.     Provides information and code examples to enable the application developer 
  4678.     to start writing source code using the functions in the application 
  4679.     programming interface of the OS/2 2.0 operating system. 
  4680.  
  4681. 2.  OS/2 2.0 Technical Library, Presentation Manager Programming Reference 
  4682.     Volume I, Chapter 2 and 7, IBM publication order number S10G-6264. 
  4683.  
  4684.     Describes the OS/2 printing APIs. 
  4685.  
  4686. 3.  IBM International Technical Support Centers, OS/2 Version 2.0, Volume 5: 
  4687.     Print Subsystem, IBM publication order number GG24-3775. 
  4688.  
  4689.     Describes the Print Subsystem component of OS/2 Version 2.0. 
  4690.  
  4691. 4.  OS/2 LAN Server 3.0 Application Programmer's Reference, IBM publication 
  4692.     order number S96F-8440. 
  4693.  
  4694.     Describes the DosPrint, Dev, SplQm and Spl APIs supported by IBM's OS/2 LAN 
  4695.     Server. 
  4696.  
  4697. 5.  AIX Version 3.2 Commands Reference, Volume 2, IBM publication order number 
  4698.     GC23-2366. 
  4699.  
  4700.     Describes the AIX printing CLIs. 
  4701.  
  4702. 6.  AIX Version 3.2 Commands Reference, Volume 3, IBM publication order number 
  4703.     GC23-2367. 
  4704.  
  4705.     Describes the AIX printing CLIs. 
  4706.  
  4707. 7.  Printing for Fun and Profit Under AIX V3, IBM publication order number 
  4708.     GC24-3570. 
  4709.  
  4710.     Describes the Print Subsystem component of AIX/6000. 
  4711.  
  4712.  
  4713. ΓòÉΓòÉΓòÉ 13.10. Graphical User Interface References ΓòÉΓòÉΓòÉ
  4714.  
  4715. 1.  Object Technology In Application Development, IBM publication order number 
  4716.     GG24-4290. 
  4717.  
  4718.     Provides an overview of object-oriented programming. 
  4719.  
  4720. 2.  SOMobjects Developer Toolkit Publications, IBM publication order number 
  4721.     S96F-8649. 
  4722.  
  4723.     Provides programming information for SOM. 
  4724.  
  4725. 3.  Experiences with SOMobjects: Distributed System Object Model (DSOM), IBM 
  4726.     publication order number GG24-4165. 
  4727.  
  4728.     Provides information on Distributed SOM. 
  4729.  
  4730. 4.  Object-Oriented Interface Design: IBM Common User Access Guideline,1992, 
  4731.     Que Corporation: Carmel, IN., ISBN 1-56529-170-0 or IBM publication order 
  4732.     number SC34-4399. 
  4733.  
  4734.     Presents the CUA design guide and CUA reference. 
  4735.  
  4736.  
  4737. ΓòÉΓòÉΓòÉ 13.11. Development Tool Delivery References ΓòÉΓòÉΓòÉ
  4738.  
  4739. 1.  The LAN Systems API Roadmap:  An Inventory, available on The Developer 
  4740.     Connection for LAN Systems. 
  4741.  
  4742.     This document describes the API's for the LAN Systems APIs. 
  4743.  
  4744. 2.  Developer Connection Product Submission Guidelines available on the The 
  4745.     Developer Connection for LAN Systems. 
  4746.  
  4747.     This document describes the process for getting tools and applications on 
  4748.     to the The Developer Connection for LAN Systems. 
  4749.  
  4750. 3.  SOMobjects Developer Toolkit Publications, IBM publication order number 
  4751.     S96F-8649. 
  4752.  
  4753.     Provides programming information for SOM. 
  4754.  
  4755.  
  4756. ΓòÉΓòÉΓòÉ 13.12. Customer Information References ΓòÉΓòÉΓòÉ
  4757.  
  4758. 1.  Object-Oriented Interface Design: IBM Common User Access Guideline,1992, 
  4759.     Que Corporation: Carmel, IN., ISBN 1-56529-170-0 or IBM publication order 
  4760.     number SC34-4399. 
  4761.  
  4762.     Provides definitions and guidelines applicable to online information units. 
  4763.  
  4764. 2.  Information Development Guidelines: Online Helps and Messages for Products 
  4765.     Using OS/2 Information Presentation Facility , IBM publication order number 
  4766.     SC26-3391. 
  4767.  
  4768.     Provides style guidelines for online helps and messages produced with IPF. 
  4769.  
  4770. 3.  The Chicago Manual of Style, University of Chicago Press, ISBN 0-226-10390. 
  4771.  
  4772.     Provides style guidelines for written information and is the basis for IBM 
  4773.     style guidelines. 
  4774.  
  4775. 4.  ISO 8879: 1986, Information Processing - Text and Office Systems - Standard 
  4776.     Generalized Markup Language (SGML), International Organization for 
  4777.     Standardization, Geneva/New York. 
  4778.  
  4779.     Describes the official standard definition of SGML. 
  4780.  
  4781. 5.  The SGML Handbook, by Charles F. Goldfarb, 1990, Oxford University Press. 
  4782.  
  4783.     Provides an annotated and cross-referenced presentation of the Standard 
  4784.     Generalized Markup Language (SGML) standard ISO8879. 
  4785.  
  4786. 6.  SGML: The Users' Guide to ISO8879, by Joan M. Smith and Robert Stutely, 
  4787.     1988, Horwood/Halsted, Chichester/New York. 
  4788.  
  4789.     Provides a guide and index to the Standard Generalized Markup Language 
  4790.     (SGML) standard ISO8879. 
  4791.  
  4792. 7.  IBM Dictionary of Computing, McGraw-Hill, Inc. 
  4793.  
  4794.     Provides over 22,000 entries that spans the full range of IBM's hardware 
  4795.     and software products plus entries from industry standards. 
  4796.  
  4797.  
  4798. ΓòÉΓòÉΓòÉ 13.13. Usability References ΓòÉΓòÉΓòÉ
  4799.  
  4800. 1.  IBM Guide to Software Usability, by Kathleen Snyder, IBM publication order 
  4801.     number SC26-3000. 
  4802.  
  4803.     IBM-written summary of usability engineering techniques applied to software 
  4804.     development. 
  4805.  
  4806. 2.  Tog on Interface, by Bruce Tognazzini, 1992, Addison-Wesley Publishing 
  4807.     Company: Reading, MA. 
  4808.  
  4809.     Designing user interfaces, by a software engineer who came to value the 
  4810.     tenets of usability engineering. 
  4811.  
  4812. 3.  Principles and Guidelines in Software User Interface Design, by Deborah J. 
  4813.     Mayhew, 1992, Prentice Hall: Englewood Cliffs, NJ. 
  4814.  
  4815.     Practical, applicable, empirically-based guidelines for designing usable 
  4816.     user interfaces. 
  4817.  
  4818. 4.  Usability Engineering, by Jacob Nielsen, 1993, Academic Press Cambridge, 
  4819.     MA. 
  4820.  
  4821.     Summary of usability engineering methods. 
  4822.  
  4823. 5.  Cost-Justifying Usability, by R.G. Bias and D.J. Mayhew (Eds.), 1994, 
  4824.     Academic Press: Cambridge, MA. 
  4825.  
  4826.     Describes how to apply cost-benefit analysis to usability engineering. 
  4827.  
  4828. 6.  Usability Inspection Methods, by J. Nielsen and R.L. Mack (Eds.), 1994, 
  4829.     Wiley Sons, Inc.: New York. 
  4830.  
  4831.     Provides a summary of a variety of ways to assess the usability of user 
  4832.     interfaces without testing subjects. 
  4833.  
  4834. 7.  Object-Oriented Interface Design: IBM Common User Access Guideline, 1992, 
  4835.     Que Corporation: Carmel, IN., ISBN 1-56529-170-0 or IBM publication order 
  4836.     number SC34-4399. 
  4837.  
  4838.     Presents the CUA design guide and CUA reference. 
  4839.  
  4840. 8.  The Visual Display of Quantitative Information, by E.R. Tufte, 1983, 
  4841.     Graphics Press: Cheshire, Connecticut. 
  4842.  
  4843.     Provides accessible guidelines for the use of color, graphs, tables, and 
  4844.     other visual display of variables.