home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / docs / euvcm000.inf (.txt) < prev    next >
Encoding:
OS/2 Help File  |  1994-02-27  |  460.5 KB  |  6,566 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Version Notice ΓòÉΓòÉΓòÉ
  3.  
  4. 1993 Edition. 
  5.  
  6. Before using this publication in connection with the operation of IBM products, 
  7. consult the latest edition of the applicable IBM system bibliography for 
  8. current information on these products. 
  9.  
  10. Order publications through your IBM representative or the IBM branch office 
  11. serving your locality. Publications are not stocked at the address given below. 
  12.  
  13. Address your comments on this publication to: 
  14.  
  15. IBM Canada Ltd. Laboratory
  16. Information Development
  17. 21/986/844/TOR
  18. 844 Don Mills Road
  19. North York, Ontario, Canada. M3C 1V7
  20.  
  21. You can also send your comments by facsimile to (416) 448-4414 addressed to the 
  22. attention of the RCF Coordinator. If you have access to Internet, you can send 
  23. your comments electronically to torrcf@vnet.ibm.com; IBMLink, to 
  24. toribm(torrcf); IBM/PROFS, to torolab4(torrcf); IBMMAIL, to ibmmail(caibmwt9). 
  25.  
  26. If you choose to respond through Internet, please include either your entire 
  27. Internet network address, or a postal address. 
  28.  
  29. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  30. distribute the information in any way it believes appropriate without incurring 
  31. any obligation to you. 
  32.  
  33. (C) Copyright International Business Machines Corporation 1993. All rights 
  34. reserved. 
  35. Copyright as marked. 
  36.  
  37. Note to U.S. Government Users - Documentation related to restricted rights - 
  38. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  39. Schedule Contract with IBM Corp. 
  40. IBM is a registered trademark of International Business Machines Corporation, 
  41. Armonk, N.Y. 
  42.  
  43. The following statements are provided by the Open Software Foundation. The 
  44. information contained within this document is subject to change without notice. 
  45.  
  46. OSF MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING BUT 
  47. NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
  48. PARTICULAR PURPOSE. 
  49.  
  50. OSF shall not be liable for errors contained herein, or for any direct or 
  51. indirect, incidental, special or consequential damages in connection with the 
  52. furnishing, performance, or use of this material. 
  53.  
  54. Copyright (C) 1993 Open Software Foundation, Inc. 
  55.  
  56. This documentation and the software to which it relates are derived in part 
  57. from materials supplied by the following: 
  58.  
  59.    o  (C) Copyright 1990, 1991 Digital Equipment Corporation 
  60.    o  (C) Copyright 1990, 1991 Hewlett-Packard Company 
  61.    o  (C) Copyright 1989, 1990, 1991 Transarc Corporation 
  62.    o  (C) Copyright 1990, 1991 Siemens Nixdorf Informationssysteme AG 
  63.    o  (C) Copyright 1990, 1991 International Business Machines Corporation 
  64.    o  (C) Copyright 1988, 1989 Massachusetts Institute of Technology 
  65.    o  (C) Copyright 1988, 1989 The Regents of the University of California 
  66.  
  67.  All Rights Reserved. Printed in the U.S.A. 
  68.  
  69.  THIS DOCUMENT AND THE SOFTWARE DESCRIBED HEREIN ARE FURNISHED UNDER A LICENSE, 
  70.  AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE 
  71.  AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  TITLE TO AND OWNERSHIP 
  72.  OF THE DOCUMENT AND SOFTWARE REMAIN WITH OSF OR ITS LICENSORS. 
  73.  
  74.  FOR U.S. GOVERNMENT CUSTOMERS REGARDING THIS DOCUMENTATION AND THE ASSOCIATED 
  75.  SOFTWARE 
  76.  
  77.  These notices shall be marked on any reproduction of this data, in whole or in 
  78.  part. 
  79.  
  80.  NOTICE  Notwithstanding any other lease or license that may pertain to, or 
  81.  accompany the delivery of, this computer software, the rights of the 
  82.  Government regarding its use, reproduction and disclosure are as set forth in 
  83.  Section 52.227-19 of the FARS Computer Software-Restricted Rights clause. 
  84.  
  85.  RESTRICTED RIGHTS NOTICE  Use, duplication, or disclosure by the Government is 
  86.  subject to the restrictions as set forth in subparagraph (c)(1)(ii) of the 
  87.  Rights in Technical Data and Computer Software clause at DFARS 52.227-7013. 
  88.  
  89.  RESTRICTED RIGHTS LEGEND  Use, duplication or disclosure by the Government is 
  90.  subject to restrictions as set forth in paragraph (b)(3)(B) of the rights in 
  91.  Technical Data and Computer Software clause in DAR 7-104.9(a).  This computer 
  92.  software is submitted with "restricted rights."  Use, duplication or 
  93.  disclosure is subject to the restrictions as set forth in NASA FAR SUP 
  94.  18-52.227-79 (April 1985) "Commercial Computer Software-Restricted Rights 
  95.  (April 1985)."  If the contract contains the Clause at 18-52.227-74 "Rights in 
  96.  Data General" then the "Alternate III" clause applies. 
  97.  
  98.  US Government Users Restricted Rights-Use, duplication or disclosure 
  99.  restricted by GSA ADP Schedule Contract. 
  100.  
  101.  Unpublished-All rights reserved under the Copyright Laws of the United States. 
  102.  
  103.  This notice shall be marked on any reproduction of this data, in whole or in 
  104.  part. 
  105.  
  106.  
  107. ΓòÉΓòÉΓòÉ 2. Notices ΓòÉΓòÉΓòÉ
  108.  
  109. References in this publication to IBM products, programs, or services do not 
  110. imply that IBM intends to make these available in all countries in which IBM 
  111. operates. Any reference to an IBM licensed program in this publication is not 
  112. intended to state or imply that only IBM's licensed program may be used. Any 
  113. functionally equivalent product, program or service that does not infringe any 
  114. of IBM's intellectual property rights may be used instead of the IBM product, 
  115. program, or service. Evaluation and verification of operation in conjunction 
  116. with other products, except those expressly designated by IBM, is the user's 
  117. responsibility. 
  118.  
  119. IBM may have patents or pending patent applications covering subject matter in 
  120. this document. The furnishing of this document does not give you any license to 
  121. these patents. You can send license inquiries, in writing, to the IBM 
  122. Corporation, IBM Director of Licensing, 208 Harbor Drive, Stamford, Connecticut 
  123. 06904. 
  124.  
  125. This publication contains examples of data and reports used in daily business 
  126. operations. To illustrate them as completely as possible, the examples include 
  127. the names of individuals, companies, brands, and products. All of these names 
  128. are fictitious and any similarity to the names and addresses used by an actual 
  129. business enterprise is entirely coincidental. 
  130.  
  131.  
  132. ΓòÉΓòÉΓòÉ 2.1. Trademarks and Service Marks ΓòÉΓòÉΓòÉ
  133.  
  134. The following terms, denoted by an asterisk (*), used in this publication, are 
  135. trademarks or service marks of IBM Corporation in the United States or other 
  136. countries: 
  137.  
  138. AIX             IBM
  139.  
  140. The following terms, denoted by a double asterisk (**), used in this 
  141. publication, are trademarks of other companies as follows: 
  142.  
  143.    o  Open Software Foundation, OSF, the OSF logo, OSF/1, OSF/Motif, and Motif 
  144.       are trademarks of the Open Software Foundation, Inc. 
  145.    o  UNIX is a registered trademark of UNIX System Laboratories, Inc. in the 
  146.       U.S. and other countries. 
  147.    o  DEC, DIGITAL, and ULTRIX are registered trademarks of Digital Equipment 
  148.       Corporation. 
  149.    o  Apollo, Domain/OS, HP, Hewlett-Packard, and LaserJet are trademarks of 
  150.       Hewlett-Packard Company. 
  151.    o  Network Computing System and PasswdEtc are registered trademarks of 
  152.       Hewlett-Packard Company. 
  153.    o  AFS and Transarc are registered trademarks of the Transarc Corporation. 
  154.    o  Episode is a trademark of the Transarc Corporation. 
  155.    o  DIR-X is a trademark of Siemens Nixdorf Informationssysteme AG. 
  156.    o  NFS, Network File System, SunOS and Sun Microsystems are trademarks of 
  157.       Sun Microsystems, Inc. 
  158.    o  X/OPEN is a trademark of the X/Open Company Limited in the U.K. and other 
  159.       countries. 
  160.    o  PostScript is a trademark of Adobe Systems Incorporated. 
  161.  
  162.  
  163. ΓòÉΓòÉΓòÉ 3. About This Book ΓòÉΓòÉΓòÉ
  164.  
  165. Distributed Computing Environment:  Understanding the Concepts introduces you 
  166. to the Open Software Foundation** (OSF**) Distributed Computing Environment 
  167. (DCE) offering. It describes the technology components of DCE: from a 
  168. high-level overview to discussion of individual components and their 
  169. interdependencies. 
  170.  
  171. This book is derived in whole from the Introduction to OSF DCE book produced by 
  172. the Open Software Foundation and published by Prentice-Hall. After reading this 
  173. book, you will have a thorough understanding of OSF's Distributed Computing 
  174. Environment. It contains many UNIX(**)-specific examples that may not be 
  175. applicable to your particular operating system. For completeness, all 
  176. components of OSF DCE are described. This does not necessarily mean that IBM 
  177. supports, or intends to support, all of the same DCE components. Refer to the 
  178. product documentation for DCE on your operating system to understand the 
  179. implementation details. 
  180.  
  181.  
  182. ΓòÉΓòÉΓòÉ 3.1. Who Should Use This Book ΓòÉΓòÉΓòÉ
  183.  
  184. The content and intended audience of this book change from less technical to 
  185. more technical as the book progresses. Chapter 1 is written for anyone 
  186. interested in an overview of DCE, including managers, system administrators, 
  187. and application programmers. Chapter 2 is intended for network managers and 
  188. administrators. Chapters 3 and 4 are targeted primarily for administrators and 
  189. programmers. 
  190.  
  191.  
  192. ΓòÉΓòÉΓòÉ 3.2. How This Book Is Organized ΓòÉΓòÉΓòÉ
  193.  
  194.    o  Overview of DCE. 
  195.  
  196.       This overview of DCE describes distributed computing and its uses, and 
  197.       the client/server model of distributed computing, on which DCE is based. 
  198.       It summarizes the DCE architecture, and briefly describes each of the 
  199.       technology components that comprise DCE, and their integration with one 
  200.       another. 
  201.  
  202.    o  DCE Configuration. 
  203.  
  204.       Chapter 2 explains the concept of a DCE cell and describes the DCE 
  205.       software configuration components and the configuration of different 
  206.       types of DCE systems. It then gives examples of different cell 
  207.       configurations, ranging from a simple DCE cell to cells with various 
  208.       combinations of DCE services. 
  209.  
  210.    o  DCE Technology Components. 
  211.  
  212.       Chapter 3 describes each of the technology components that comprise DCE: 
  213.       DCE Threads, Remote Procedure Call, Directory Service, Distributed Time 
  214.       Service, Security Service, Distributed File Service, and Diskless Support 
  215.       Service. An example of a simple distributed application illustrates the 
  216.       use of these services. 
  217.  
  218.    o  Integration of DCE Technology Components. 
  219.  
  220.       The DCE technologies are integrated with one another; that is, they use 
  221.       each other's services wherever appropriate. Chapter 4 describes the ways 
  222.       in which each of the DCE components uses the other technology components 
  223.       of DCE and the implications their integration has for porting, testing, 
  224.       configuring, and starting up DCE systems. 
  225.  
  226.  
  227. ΓòÉΓòÉΓòÉ 4. Overview of DCE ΓòÉΓòÉΓòÉ
  228.  
  229. The OSF Distributed Computing Environment provides services and tools that 
  230. support the creation, use, and maintenance of distributed applications in a 
  231. heterogeneous computing environment. This chapter first describes distributed 
  232. computing and its benefits. It also describes three distributed computing 
  233. models- client/server, remote procedure call (RPC), and data sharing. The final 
  234. section gives an overview of DCE itself, describing its technology components, 
  235. the organization of a DCE environment, and the relationship between DCE and the 
  236. underlying computing system. 
  237.  
  238.  
  239. ΓòÉΓòÉΓòÉ 4.1. Why Distributed Computing? ΓòÉΓòÉΓòÉ
  240.  
  241. Distributed computing means computing that involves the cooperation of two or 
  242. more machines communicating over a network (see A Potential DCE Network). The 
  243. machines participating in the system can range from personal computers to 
  244. supercomputers; the network can connect machines in one building or on 
  245. different continents. 
  246.  
  247. A Potential DCE Network 
  248.  
  249. Why is enabling this type of cooperative computing important? One reason is 
  250. historical: computing resources that used to operate independently now need to 
  251. work together. For example, consider an office that acquired personal 
  252. workstations for individual use. As the number of workstations in the office 
  253. building grew, their users realized they needed to share data and resources 
  254. among the individual computers. By connecting the workstations over a network, 
  255. they accomplished this goal. 
  256.  
  257. A second reason is functional: if there is special-function hardware or 
  258. software available over the network, it does not have to be duplicated on every 
  259. computer system (or node). For example, an organization could make a 
  260. typesetting service available over the network, allowing users throughout the 
  261. organization to submit their jobs to be typeset. 
  262.  
  263. A third reason is economical: it may be more cost-effective to have many small 
  264. computers working together than to have one large computer of equivalent power. 
  265. In addition, having many units (large and small computers) connected to a 
  266. network is the more flexible configuration-if more resources are needed, 
  267. another unit can be added in place, without interference to the whole system. 
  268.  
  269. Finally, a distributed system can be more reliable and available than a 
  270. centralized system. This is a result of the ability to replicate both data and 
  271. functionality. For example, when a given file is copied on two different 
  272. systems, if one machine is unavailable, the file can still be accessed on the 
  273. other machine. Likewise, if several printers are attached to a network, and an 
  274. administrator takes one printer offline for maintenance, users can still print 
  275. their files using an alternative printer. 
  276.  
  277. Along with the advantages of distributed computing come new problems. Examples 
  278. are keeping multiple copies of data consistent, and keeping the clocks on 
  279. different machines in the system synchronized. A system that provides 
  280. distributed computing support must address these new issues. 
  281.  
  282.  
  283. ΓòÉΓòÉΓòÉ 4.1.1. Why DCE? ΓòÉΓòÉΓòÉ
  284.  
  285. Why would an organization with a network such as the one in A Potential DCE 
  286. Network benefit from using DCE to enable distributed computing? DCE's benefits 
  287. can be categorized into its support of distributed applications, the 
  288. integration of its components with each other, DCE's relationship to its 
  289. platforms, its support for data sharing, and DCE's interaction with the world 
  290. outside of DCE: 
  291.  
  292.    o  DCE provides tools and services that support distributed applications. 
  293.  
  294.       DCE provides a high-level, coherent environment for developing and 
  295.       running applications on a distributed system. The DCE components fall 
  296.       into two categories: tools for developing distributed applications and 
  297.       services for running distributed applications. The tools, such as DCE 
  298.       Remote Procedure Call and DCE Threads, assist in the development of an 
  299.       application. The services, like the DCE Directory Service, Security 
  300.       Service, and Distributed Time Service, provide the support required in a 
  301.       distributed system that is analogous to the support an operating system 
  302.       provides in a centralized system. 
  303.  
  304.    o  DCE's set of services is integrated and comprehensive. 
  305.  
  306.       A second benefit is the integration and comprehensiveness of the DCE 
  307.       components. Not only does DCE provide all the tools and services needed 
  308.       for developing and running distributed applications, but the DCE 
  309.       components themselves are well integrated. They use one another's 
  310.       services whenever possible, because many of the DCE components are 
  311.       themselves distributed applications. In addition to supporting the 
  312.       development of distributed applications, DCE includes services that 
  313.       address some of the new problems inherent in the distributed system 
  314.       itself, such as data consistency and clock synchronization. Finally, DCE 
  315.       includes management tools for administering all of the DCE services and 
  316.       many aspects of the distributed environment itself. 
  317.  
  318.    o  DCE provides interoperability and portability across heterogeneous 
  319.       platforms. 
  320.  
  321.       Another benefit of DCE is its orientation toward heterogeneous rather 
  322.       than homogeneous systems. The DCE architecture allows for different 
  323.       operating systems and hardware platforms. Using DCE, a process running on 
  324.       one computer can interoperate with a process on a second computer, even 
  325.       when the two computers have different hardware or operating systems. DCE 
  326.       can accommodate a wide range of networks, especially networks needing 
  327.       distributed computing for the historical reasons previously listed. 
  328.       Applications that are built using DCE are portable to other hardware and 
  329.       operating systems that run DCE. 
  330.  
  331.    o  DCE supports data sharing. 
  332.  
  333.       Another benefit is DCE's support of data sharing through its directory 
  334.       service and distributed file service. A user anywhere in the distributed 
  335.       system can share data by placing it in the namespace or in a file, 
  336.       whichever is appropriate for the application. The data is then accessible 
  337.       by authorized users throughout the system. 
  338.  
  339.    o  DCE participates in a global computing environment. 
  340.  
  341.       One final benefit of DCE is the way it interacts with the outside world. 
  342.       In addition to supporting cooperation within and between themselves, DCE 
  343.       systems can also interoperate with computing environments outside of DCE. 
  344.       In particular, the DCE Directory Service can interoperate with two 
  345.       standard, global directory services-X.500 and Domain Name 
  346.       Service-allowing users from within DCE to access information about the 
  347.       outside world. In this way, DCE participates in a global directory 
  348.       service. One benefit of such participation can be seen in DCE's 
  349.       distributed file system: it looks like one global file system, and users 
  350.       anywhere in the world can address the same file using the same global 
  351.       name. 
  352.  
  353.  
  354. ΓòÉΓòÉΓòÉ 4.1.2. Potential Users of DCE ΓòÉΓòÉΓòÉ
  355.  
  356. In general, any computing organization wanting to take advantage of the 
  357. benefits of a distributed computing environment-data and resource sharing, 
  358. extensibility, availability, interoperability-can benefit from using DCE. For 
  359. example: 
  360.  
  361.    o  An office with isolated computing resources can link the computers 
  362.       together in a network and use DCE for data and resource sharing. 
  363.  
  364.    o  An organization with multiple computing sites that are already 
  365.       interconnected by a network can use DCE to tie together and access 
  366.       resources across the different sites. The different sites can be in 
  367.       different countries or even on different continents. 
  368.  
  369.    o  Any computing organization comprising several cooperating hosts can 
  370.       benefit greatly from the administrative support afforded by a DCE 
  371.       environment. For example, in DCE the database of computer users and their 
  372.       associated information (such as passwords) can be administered centrally, 
  373.       removing the need for an administrator to update information on every 
  374.       single node in the network each time a new user is added. 
  375.  
  376.    o  Organizations that write distributed applications can use DCE as a 
  377.       platform for their software. Applications that are written on DCE can be 
  378.       readily ported to other software and hardware platforms that also support 
  379.       DCE. 
  380.  
  381.    o  Organizations wanting to use applications that run on DCE platforms. 
  382.  
  383.    o  Organizations that want to participate in networked computing on a global 
  384.       basis. Because DCE supports standard directory services that will be used 
  385.       throughout the world, a site that participates in DCE will be able to use 
  386.       that worldwide directory service database. It can access information 
  387.       about other sites around the world; in turn these other sites can access 
  388.       its information. 
  389.  
  390.    o  System vendors whose customers are in any of the preceding categories. 
  391.  
  392.    o  Organizations that would like to make a service available over the 
  393.       network on one system and have it accessible from other kinds of systems. 
  394.  
  395.  
  396. ΓòÉΓòÉΓòÉ 4.2. Models of Distributed Computing ΓòÉΓòÉΓòÉ
  397.  
  398. DCE is based on three distributed computing models: client/server, remote 
  399. procedure call, and data sharing. The client/server model is a way of 
  400. organizing a distributed application. The remote procedure call model is a way 
  401. of communicating between parts of a distributed application. The data sharing 
  402. model is a way of handling data in a distributed system. The following 
  403. subsections briefly describe each model. 
  404.  
  405.  
  406. ΓòÉΓòÉΓòÉ 4.2.1. The Client/Server Model ΓòÉΓòÉΓòÉ
  407.  
  408. A useful model for implementing distributed applications is the client/server 
  409. model. In this model, the distributed application is divided into two parts, 
  410. one part residing on each of the two computers that will be communicating 
  411. during the distributed computation (see The Client/Server Model). 
  412.  
  413. The Client/Server Model 
  414.  
  415. The client side of the application resides on the node that initiates the 
  416. distributed request and receives the benefit of the service (for example, a 
  417. workstation that requests that a file be printed). The server side of the 
  418. application resides on the node that receives and executes the distributed 
  419. request (for example, the node with the printer). Two different sets of code 
  420. are produced: one that runs as a client, the other as a server. 
  421.  
  422. Communication Between the Print Client and Print Server shows a workstation 
  423. running the client side of a distributed print program and a print server 
  424. running the server side of the distributed program. 
  425.  
  426. Communication Between the Print Client and Print Server 
  427.  
  428. The terms client and server can be seen as relative roles rather than as 
  429. absolutes. For example, in executing the print request, the print server may in 
  430. turn become a client in a distributed communication. It may ask the file server 
  431. to send it a copy of the file to be printed as shown in The Print Server Acting 
  432. as a Client of the File Server. 
  433.  
  434. The Print Server Acting as a Client of the File Server 
  435.  
  436. The terms client and server are also used to refer to specific nodes. A given 
  437. node, or even a given process, can act in both the client and server role. It 
  438. is convenient, however, to use the term file server to refer to the node on 
  439. which the server side of a distributed file system is running. The directory 
  440. server is a node that contains a database with names in it, and answers 
  441. requests for access to those names. When clarification is needed, we use the 
  442. term machine to indicate the node rather than the role. For example, in The 
  443. Print Server Acting as a Client of the File Server, the print server, which 
  444. runs on the print server machine, is acting as a client to the file server. 
  445.  
  446. More than one server can run on a given node. For example, both a security 
  447. server and a time server can run on the same node. In this case, it is both the 
  448. security server machine and the time server machine (see Two Servers Running on 
  449. One Node). 
  450.  
  451. Two Servers Running on One Node 
  452.  
  453. In general, the server nodes are specialized. They require software that is 
  454. found only on that particular server (for example, the directory server). 
  455. Client nodes are generalized. Client machines are typically configured to be 
  456. many types of client (for example, a directory, security, and time service 
  457. client). 
  458.  
  459. A Client Is General; Servers Are Specialized 
  460.  
  461. Client nodes are generalized because the client code is usually small compared 
  462. to the code that implements a server. Typically, many nodes need to be able to 
  463. run the client side of an application, whereas only one or two nodes may be 
  464. equipped to run the server side of an application. 
  465.  
  466. One final distinction between client and server: the server is typically 
  467. implemented as a continuous process (daemon), while the client is usually 
  468. implemented as a library. In other words, the client side of an application 
  469. consists of a call to a routine that executes (sending the request over the 
  470. network and receiving the result) and then returns and goes on with whatever 
  471. else it was doing. The server side of an application is a dedicated process 
  472. that runs continuously, waiting for a request, executing it and returning the 
  473. answer, then waiting for the next request, and so on. Client as a Library; 
  474. Server as a Continuous Process illustrates this distinction. 
  475.  
  476. Client as a Library; Server as a Continuous Process 
  477.  
  478. DCE is based on the client/server model. The DCE services are themselves 
  479. examples of distributed programs with a client and server side. The basic 
  480. communications mechanism used in DCE, the remote procedure call (RPC), assumes 
  481. the presence of a client and a server. Since DCE applications are built using 
  482. remote procedure call, they are also based on the client/server model of 
  483. distributed computation. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ 4.2.2. The Remote Procedure Call Model ΓòÉΓòÉΓòÉ
  487.  
  488. One way of implementing communications between the client and server sides of a 
  489. distributed application is to use the procedure call model. In this model, the 
  490. client makes what looks like a procedure call. The procedure call is translated 
  491. into network communications by the underlying RPC mechanism. The server 
  492. receives a request and executes the procedure, returning the results to the 
  493. client. One of the DCE technology components, DCE RPC, is an implementation of 
  494. this model. Most of the other DCE technology components use it for their 
  495. network communications. (See DCE Remote Procedure Call for more information on 
  496. remote procedure calls and DCE RPC.) 
  497.  
  498.  
  499. ΓòÉΓòÉΓòÉ 4.2.3. The Data Sharing Model ΓòÉΓòÉΓòÉ
  500.  
  501. Some of the DCE services are based on the data sharing model, in which data is 
  502. shared by distributing it throughout the system. Like RPC, data sharing assumes 
  503. the existence of clients and servers. Data sharing, however, focuses on 
  504. distributed data rather than distributed execution. The server's data is sent 
  505. to the client. For example, if a client wants to access a file, a copy of it is 
  506. sent from the server to the client. The client then proceeds to access the file 
  507. locally. Data sharing can be built on top of RPC, using RPC as the 
  508. communications mechanism between the client and server, and as the means of 
  509. transferring data. 
  510.  
  511. Data sharing usually entails having multiple copies of the same data; for 
  512. example, a master copy of a file on a file server, and a copy of the file on 
  513. one or more client machines. As a result, copies of data may diverge-a client 
  514. may make changes to its copy making the client's copy inconsistent with the 
  515. copy on the server. Distributed services based on the data sharing model 
  516. usually include mechanisms for keeping copies of data consistent. 
  517.  
  518. In addition, services that implement data sharing must be able to synchronize 
  519. multiple access to data. For example, two clients may each want to modify a 
  520. given record in a database. The server that manages the database must either 
  521. prevent them from making conflicting modifications or decide which modification 
  522. takes precedence. 
  523.  
  524. Two DCE services are based on the data sharing model. The first is the 
  525. Directory Service. Both DCE directory services, CDS and GDS, maintain caches on 
  526. the client. The caches contain copies of data that users on the client have 
  527. recently accessed. Subsequent access to the data can be made locally to the 
  528. cache, rather than over the network to the server. 
  529.  
  530. The DCE Distributed File Service is also based on the data sharing model. A DFS 
  531. client maintains a cache of files that have recently been accessed by a user on 
  532. the system. DFS servers distribute and revoke tokens, which represent a 
  533. client's capability to perform operations on files. Through careful token 
  534. management, the DFS server can ensure that its clients do not perform 
  535. conflicting operations on shared files, and that they do not see inconsistent 
  536. copies of the same file. 
  537.  
  538. Data sharing, like RPC, enables users and programmers to communicate 
  539. transparently in a distributed system. 
  540.  
  541.  
  542. ΓòÉΓòÉΓòÉ 4.3. Architectural Overview of DCE ΓòÉΓòÉΓòÉ
  543.  
  544. OSF's Distributed Computing Environment is a layer between the operating system 
  545. and network, on the one hand, and the distributed application on the other. 
  546. DCE provides the services that allow a distributed application to interact with 
  547. a collection of heterogeneous computers, operating systems, and networks as if 
  548. they were a single system. Layering of DCE and Related Software shows DCE in 
  549. relation to operating systems, network communications software, and 
  550. applications software. 
  551.  
  552. Layering of DCE and Related Software 
  553.  
  554. Several technology components work together to implement the DCE layer. Many of 
  555. these components provide in a distributed environment what an operating system 
  556. provides in a centralized (single-node) environment. 
  557.  
  558. DCE Architecture shows the DCE architecture and its technology components, 
  559. along with their relationship to applications, underlying system support, and 
  560. placeholders for future technologies. 
  561.  
  562. DCE Architecture 
  563.  
  564.  
  565. ΓòÉΓòÉΓòÉ 4.3.1. Overview of DCE Technology Components ΓòÉΓòÉΓòÉ
  566.  
  567. This section gives a short description of each of the DCE technology 
  568. components. Detailed  descriptions of each of these components are given in DCE 
  569. Technology Components. 
  570.  
  571. DCE Threads supports the creation, management, and synchronization of multiple 
  572. threads of control within a single process.  This component is conceptually a 
  573. part of the operating system layer, the layer below DCE. If the host operating 
  574. system already supports threads, DCE can use that software and DCE Threads is 
  575. not necessary.  Because all operating systems do not provide a threads facility 
  576. and DCE components require threads be present, this user-level threads package 
  577. is included in DCE. 
  578.  
  579. The DCE Remote Procedure Call (RPC) facility consists of both a development 
  580. tool and a runtime service.  The development tool consists of a language (and 
  581. its compiler) that supports the development of distributed applications 
  582. following the client/server model.  It automatically generates code that 
  583. transforms procedure calls into network messages.  The runtime service 
  584. implements the network protocols by which the client and server sides of an 
  585. application communicate.  DCE RPC also includes software for generating unique 
  586. identifiers, to identify service interfaces and other resources. 
  587.  
  588. The DCE Directory Service is a central repository for information about 
  589. resources in the distributed system.  Typical resources are users, machines, 
  590. and RPC-based services.  The information consists of the name of the resource 
  591. and its associated attributes.  Typical attributes could include a user's home 
  592. directory, or the location of an RPC-based server. 
  593.  
  594. The DCE Directory Service consists of several parts: the Cell Directory Service 
  595. (CDS), the Global Directory Service (GDS), the Global Directory Agent (GDA), 
  596. and a directory service programming interface. The CDS manages a database of 
  597. information about the resources in a group of machines called a DCE cell. 
  598. (Cells are described in Organization of a Distributed Computing Environment.) 
  599. The Global Directory Service implements an international standard directory 
  600. service and provides a global namespace that connects the local DCE cells into 
  601. one worldwide hierarchy. The (GDA) acts as a go-between for cell and global 
  602. directory services. Both CDS and GDS are accessed using a single directory 
  603. service application programming interface API, the X/OPEN(**) Directory Service 
  604. (XDS). 
  605.  
  606. The DCE Distributed Time Service (DTS) provides synchronized time on the 
  607. computers participating in a Distributed Computing Environment.  DTS 
  608. synchronizes a DCE host's time with Coordinated Universal Time (UTC), an 
  609. international time standard. 
  610.  
  611. The DCE Security Service provides secure communications and controlled access 
  612. to resources in the distributed system.  There are three aspects to DCE 
  613. security: authentication, secure communications, and authorization.  They are 
  614. implemented by several services and facilities that together comprise the DCE 
  615. Security Service, including the Registry Service, the Authentication Service, 
  616. the Privilege Service, the Access Control List (ACL) Facility, and the Login 
  617. Facility. 
  618.  
  619. The identity of a DCE user or service is verified, or authenticated, by the 
  620. Authentication Service. Communications are protected by the integration of DCE 
  621. RPC with the Security Service-communication over the network can be checked for 
  622. tampering or encrypted for privacy. Finally, access to resources is controlled 
  623. by comparing the credentials conferred to a user by the Privilege Service with 
  624. the rights to the resource, which are specified in the resource's Access 
  625. Control List. The Login Facility initializes a user's security environment, and 
  626. the Registry Service manages the information (such as user accounts) in the DCE 
  627. Security database. 
  628.  
  629. The DCE Distributed File Service (DFS) allows users to access and share files 
  630. stored on a File Server anywhere on the network, without having to know the 
  631. physical location of the file. Files are part of a single, global namespace. A 
  632. user anywhere on a network can access any file, just by knowing its name. The 
  633. Distributed File Service achieves high performance, particularly through 
  634. caching of file system data. Many users can access files that are located on a 
  635. given File Server without a large amount of network traffic or delays. 
  636.  
  637. DCE DFS includes a physical file system, the DCE Local File System (LFS), which 
  638. supports special features that are useful in a distributed environment.  They 
  639. include the ability to replicate data; to log file system data, enabling quick 
  640. recovery after a crash; to simplify administration by dividing the file system 
  641. into easily managed units called filesets; and to associate ACLs with files and 
  642. directories. 
  643.  
  644. DCE also offers Diskless Support Service, which provides the tools that allow a 
  645. diskless node to acquire an operating system over the network, obtain 
  646. configuration information, connect to DFS to obtain the diskless node's root 
  647. file system, and perform remote swapping.  When these tools are incorporated 
  648. into the client's operating system and hardware, the diskless node can operate 
  649. in a DCE environment. 
  650.  
  651. The Management block shown in DCE Architecture is not a single component, but a 
  652. cross section of the other components. Each DCE service contains an 
  653. administrative component so it can be managed over the network.  In addition, 
  654. some of the DCE services themselves provide for management of the distributed 
  655. system as a whole.  For example, users are registered in the Security Service, 
  656. and servers' network addresses are registered in the Directory Service. 
  657.  
  658.  
  659. ΓòÉΓòÉΓòÉ 4.3.2. Organization of a Distributed Computing Environment ΓòÉΓòÉΓòÉ
  660.  
  661. This section introduces the concept of a DCE cell, and gives a brief summary of 
  662. how different machines participating in a Distributed Computing Environment are 
  663. organized. 
  664.  
  665. A group of DCE machines that work together and are administered as a unit is 
  666. called a cell. For example, imagine an organization consisting of several 
  667. departments, each in a different building and each operating on its own budget. 
  668. Each department in such an organization could have its own DCE cell. 
  669.  
  670. A Distributed Computing Environment, or DCE environment, is a group of one or 
  671. more DCE cells that can communicate with each other. A cell becomes a part of a 
  672. DCE environment when it obtains access to one or more global directory services 
  673. where the other cells in the environment are registered. 
  674.  
  675. If the different departments' cells are a part of a DCE environment, then a 
  676. user in one department's cell can access resources in another department's 
  677. cell, although this access would typically be less frequent and more restricted 
  678. than access to resources within the user's own cell. 
  679.  
  680. A DCE cell can be configured in many ways, depending on its users' 
  681. requirements.  A cell consists of a network connecting three kinds of nodes: 
  682. DCE User Machines, DCE Administrator Machines, and DCE Server Machines.  DCE 
  683. User Machines are general-purpose, they contain software that enables them to 
  684. act as clients to all of the DCE services.  DCE Administrator Machines contain 
  685. software that enables a DCE administrator to manage DCE system services 
  686. remotely. 
  687.  
  688. The DCE Server Machines are equipped with special software to provide one or 
  689. more of the DCE services.  Every cell must have at least one each of the 
  690. following servers: 
  691.  
  692.    o  Cell Directory Server 
  693.    o  Security Server 
  694.    o  Distributed Time Server. 
  695.  
  696.  Other DCE servers may be present in a given DCE cell to provide additional 
  697.  functions.  A Global Directory Agent may be present to enable the cell's 
  698.  directory server to communicate with other cells' directory servers.  A Global 
  699.  Directory Server may be present to provide X.500 directory service, and 
  700.  Distributed File Servers may be present to provide storage of files, the 
  701.  special functions of the Local File System, and possibly Diskless Support 
  702.  Service. (DCE Configuration describes in detail DCE cell configuration.) 
  703.  
  704.  
  705. ΓòÉΓòÉΓòÉ 4.3.3. Integration of the DCE Technology Components ΓòÉΓòÉΓòÉ
  706.  
  707. One of the benefits of DCE is its coherence: although the components themselves 
  708. are modular with well-defined interfaces, they are also well integrated; the 
  709. various DCE components each make use of the services of the other components 
  710. wherever possible.  For example, the RPC facility uses the Directory Service to 
  711. advertise and look up RPC-based servers and their characteristics; it uses the 
  712. Security Service to ensure message integrity and privacy; and it uses DCE 
  713. Threads to handle concurrent execution of multiple RPCs. The Distributed File 
  714. Service uses Threads, RPC, Directory Service, Distributed Time Service, and 
  715. Security Service in providing its file service. 
  716.  
  717. In general, the DCE components shown higher in the DCE Architecture (DCE 
  718. Architecture) make use of the components shown lower in the architecture. For 
  719. example, DCE Threads is used by most other DCE components, but does not itself 
  720. use other components.  This ordering is not strictly hierarchical; often two 
  721. services depend on the other.  For example, the Directory Service uses the 
  722. Security Service, which in turn uses the Directory Service.  The 
  723. interdependence of DCE components is explained in more detail in Integration of 
  724. DCE Technology Components. 
  725.  
  726.  
  727. ΓòÉΓòÉΓòÉ 4.3.4. Relationship of DCE to Network and System Services ΓòÉΓòÉΓòÉ
  728.  
  729. DCE is layered on top of local operating system and networking software. It 
  730. requires some of the services provided by the underlying network and operating 
  731. systems. 
  732.  
  733.  
  734. ΓòÉΓòÉΓòÉ 4.3.4.1. Network Services ΓòÉΓòÉΓòÉ
  735.  
  736. In general, DCE is layered over a transport level service, such as UDP (User 
  737. Datagram Protocol), TCP (Transmission Control Protocol), or ISO TP0-TP4 
  738. transport protocols, which is accessed through a transport interface, such as 
  739. sockets or XTI (X/Open Transport Interface). All nodes participating in the DCE 
  740. environment are physically connected by a highly available network. The network 
  741. can be a Local Area Network (LAN), a Wide Area Network (WAN), or a combination 
  742. of both. 
  743.  
  744. The DCE architecture supports different types of network protocol families. 
  745. For example, DCE could be ported to run over Open Systems Interconnection (OSI) 
  746. protocols. (The OSF DCE reference implementation runs over the Internet 
  747. Protocol (IP) family.) For DCE systems to communicate with one another they 
  748. must have at least one set of network protocols in common.  For example, DCE is 
  749. not designed to enable a node running only IP protocols to communicate with a 
  750. node running only OSI protocols. 
  751.  
  752. DCE can identify a node with a unique network address and can identify a 
  753. process with a network endpoint address (for example, a port or T-selector). 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 4.3.4.2. Operating System Services ΓòÉΓòÉΓòÉ
  757.  
  758. Certain services must be available through the underlying operating system. 
  759.  
  760.    o  Multitasking 
  761.  
  762.    o  Timers 
  763.  
  764.    o  Local interprocess communications 
  765.  
  766.    o  Basic file system operations (VFS layer) 
  767.  
  768.    o  Memory management 
  769.  
  770.    o  Local security mechanisms (if appropriate) 
  771.  
  772.    o  Threads (or the ability to use DCE Threads) 
  773.  
  774.    o  General system utility functions (ANSI, XPG4, POSIX). 
  775.  
  776.  
  777. ΓòÉΓòÉΓòÉ 5. DCE Configuration ΓòÉΓòÉΓòÉ
  778.  
  779. This chapter gives an overview of DCE configuration. It describes the basic DCE 
  780. software configuration components and their organization on different types of 
  781. DCE machines. It then describes some typical DCE cell configurations. 
  782.  
  783. The DCE configuration description in this chapter is based on technical 
  784. configuration considerations. The packaging of DCE software by OSF and other 
  785. vendors will involve somewhat different configurations. 
  786.  
  787.  
  788. ΓòÉΓòÉΓòÉ 5.1. Introduction to DCE Configuration ΓòÉΓòÉΓòÉ
  789.  
  790. DCE consists of machines that communicate over a network and run DCE software. 
  791. They serve different functions, and they run different configurations of DCE 
  792. software. There are three basic types of machines in a DCE environment: 
  793.  
  794.    o  DCE User Machine 
  795.  
  796.       A DCE User Machine contains DCE software that enables the machine to 
  797.       participate as a client in the DCE environment. A typical example is a 
  798.       user's workstation. 
  799.  
  800.    o  DCE Administrator Machine 
  801.  
  802.       A DCE Administrator Machine contains DCE software that enables an 
  803.       administrator to control servers running in the environment. A typical 
  804.       example is the DCE system administrator's workstation. 
  805.  
  806.    o  DCE Server Machine 
  807.  
  808.       A DCE server machine runs software that implements one or more of the DCE 
  809.       services. There can be different kinds of DCE server machines. Some 
  810.       examples are a DCE File Server machine and a DCE Security Server machine. 
  811.  
  812.  Types of DCE Machines shows an example of a DCE environment containing the 
  813.  three different kinds of DCE machines. 
  814.  
  815.  Types of DCE Machines 
  816.  
  817.  The different types of DCE machines run different parts of the DCE software. 
  818.  The basic software necessary for any machine to participate in a DCE 
  819.  environment is the DCE User software. It runs on all three types of DCE 
  820.  machines. The software necessary for an administrator to control DCE servers 
  821.  remotely is the DCE Administrator software. It runs on DCE Administration 
  822.  Machines, along with DCE User software. 
  823.  
  824.  Finally, some of the DCE software implements a particular DCE service, and is 
  825.  intended to run only on a machine acting as that particular server. For 
  826.  example, the DCE Security Server software only runs on a machine designated as 
  827.  a DCE Security Server machine. There are different kinds of DCE server 
  828.  machines. They run their server-specific software, plus the DCE User software. 
  829.  DCE Machines and Their Software summarizes the DCE software that runs on 
  830.  different kinds of DCE machines. 
  831.  
  832.  DCE Machines and Their Software 
  833.  
  834.  
  835. ΓòÉΓòÉΓòÉ 5.2. Basic Configuration Components ΓòÉΓòÉΓòÉ
  836.  
  837. DCE software can be divided into several configuration components, that is, 
  838. parts of the DCE software that are installed in various combinations on DCE 
  839. machines. Different configuration components are installed on different 
  840. machines in a DCE environment, depending on what the machine's intended use is. 
  841.  
  842. The following description is a model for dividing DCE services into 
  843. configuration components. The way a service's implementation maps to this model 
  844. varies from service to service. 
  845.  
  846. First, each DCE service can be divided into two general categories of 
  847. functionality: user and administration. User functionality is the service 
  848. provided to its users, for example, reading a file or searching a database. The 
  849. administration functionality allows administrators to manage the server; for 
  850. example, stopping and starting server programs or backing up data. 
  851.  
  852. Because the DCE services are based on the client/server model, the user and 
  853. administration functions are divided into two parts, the client and server 
  854. sides. In total, each DCE technology component can be conceptually divided into 
  855. four configuration components: 
  856.  
  857.    o  User Client 
  858.    o  User Server 
  859.    o  Administration Client 
  860.    o  Administration Server. 
  861.  
  862.  As shown in Distributed Service Configuration Components, the User Client 
  863.  communicates over the network with the User Server, and the Administration 
  864.  Client communicates over the network with the Administration Server. 
  865.  
  866.  Distributed Service Configuration Components 
  867.  
  868.  The User Client component is typically installed on DCE users' workstations. 
  869.  The Administration Client might run only on the workstation used by the 
  870.  administrator of the service. Both the User Server and the Administration 
  871.  Server run on the server machine, because they require access to the resource 
  872.  (such as a database) that the server manages. The User Server and 
  873.  Administration Server may actually run in the same process or be implemented 
  874.  by several processes. 
  875.  
  876.  As an example, consider the DCE Security Service. One part of the Security 
  877.  Service software is the Login Facility, which sets up a user's security 
  878.  environment. This is an example of a User Client. It communicates over the 
  879.  network with the Privilege Server, which runs on the Security Server machine. 
  880.  The Privilege Server is an example of a User Server. An example of an 
  881.  Administration Client in the Security Service is the rgy_edit program, which 
  882.  administrators use to modify data in the security database. It communicates 
  883.  over the network with the Registry Server, which runs on the Security Server 
  884.  machine. The Registry Server is an example of an Administration Server. 
  885.  
  886.  The software for each of the DCE services, the Directory Service, the 
  887.  Distributed Time Service, the Security Service, the Distributed File Service, 
  888.  and the Diskless Support Service, can all be divided roughly into the four 
  889.  configuration components. 
  890.  
  891.  DCE Threads and DCE RPC are separate configuration components. Because they 
  892.  help implement the communications between machines, they must be present on 
  893.  every DCE machine, whether it is a client or a server. 
  894.  
  895.  
  896. ΓòÉΓòÉΓòÉ 5.3. DCE Machine Configuration Examples ΓòÉΓòÉΓòÉ
  897.  
  898. DCE machine configurations fall into three general categories: client machines, 
  899. administrator machines, and server machines. 
  900.  
  901.  
  902. ΓòÉΓòÉΓòÉ 5.3.1. DCE User Machine Configuration ΓòÉΓòÉΓòÉ
  903.  
  904. An example of a DCE User Machine is a user's workstation. This machine acts as 
  905. a client to any of the DCE servers, but it does not act as a server itself 
  906. (with one possible exception noted in the next paragraph). A DCE User Machine 
  907. contains DCE Threads and DCE RPC software so it can communicate with other 
  908. machines in the DCE environment. In addition, it contains the User Client 
  909. configuration components of all the DCE services (see DCE User Machine 
  910. Configuration). Part of this software may be present in the form of libraries 
  911. linked with DCE application software. 
  912.  
  913. DCE User Machine Configuration 
  914.  
  915. A DCE User Machine may also contain DFS Server software, although this is not 
  916. required. This enables the machine to access remote files through its DFS 
  917. Client software, and to export its own file system to other machines through 
  918. its DFS Server software. 
  919.  
  920. The software configuration of a typical DCE User Machine is called the DCE User 
  921. software. In summary, it contains 
  922.  
  923.    o  DCE Threads and DCE RPC 
  924.  
  925.    o  User Client configuration components of each DCE service 
  926.  
  927.    o  DFS Server software (optional). 
  928.  
  929.  
  930. ΓòÉΓòÉΓòÉ 5.3.2. DCE Administrator Machine Configuration ΓòÉΓòÉΓòÉ
  931.  
  932. A DCE administrator's workstation is configured with the client sides of DCE 
  933. administration programs to enable the administrator to control servers 
  934. remotely. This configuration contains the Administration Client software for 
  935. each of the DCE services. It also contains the DCE User software, because the 
  936. Administrator Machines act as User Clients as well as Administration Clients 
  937. (see DCE Administrator Machine Configuration). 
  938.  
  939. DCE Administrator Machine Configuration 
  940.  
  941.  
  942. ΓòÉΓòÉΓòÉ 5.3.3. DCE Server Machine Configuration ΓòÉΓòÉΓòÉ
  943.  
  944. Some machines in the DCE environment contain special-purpose server software. 
  945. These are called DCE server machines. 
  946.  
  947. A DCE server machine is configured with the User Server and Administration 
  948. Server components of a DCE service. It also contains the DCE User software. For 
  949. example, a DTS Server machine contains the DCE User plus the DTS User Server 
  950. and DTS Administration Server configuration components. It is not necessary to 
  951. run one server per node; two or more types of servers can run on a single 
  952. machine. DCE Server Machine Configuration Examples shows the configuration of a 
  953. Distributed Time Server machine and the configuration of a second machine 
  954. acting as both a CDS Server and a Security Server. 
  955.  
  956. DCE Server Machine Configuration Examples 
  957.  
  958. From now on, the term ``server'' will mean both the User Server and 
  959. Administration Server software combined; for example, ``Security Server'' means 
  960. the Security User Server and the Security Administration Server together. 
  961.  
  962.  
  963. ΓòÉΓòÉΓòÉ 5.4. DCE Cell Configuration Examples ΓòÉΓòÉΓòÉ
  964.  
  965. DCE cells consist of various combinations of DCE machines connected by a 
  966. network. For DCE applications and the DCE services themselves to run, there 
  967. must be at least one each of the Cell Directory, Security, and Distributed Time 
  968. Servers in every DCE cell. In addition, a DCE cell can contain any combination 
  969. of the remaining DCE servers, GDS, DFS, and Diskless Support Service, depending 
  970. on the needs of the DCE users. 
  971.  
  972. The following subsections describe these typical DCE cell configurations: 
  973.  
  974.    o  Simple DCE Cell 
  975.  
  976.    o  DCE Cell with DFS File Server Machine 
  977.  
  978.    o  Connected DCE Cell 
  979.  
  980.    o  Multicell Configurations. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ 5.4.1. Simple DCE Cell ΓòÉΓòÉΓòÉ
  984.  
  985. Simple DCE Cell Configuration shows an example of a simple DCE cell. It 
  986. contains seven nodes, each of them running the DCE User software. Four of the 
  987. nodes are typical workstations; they are running only the DCE User software. 
  988. One is an administrator's workstation; it runs the DCE Administrator software 
  989. in addition to the DCE User software. The other two nodes are DCE server 
  990. machines. One of the server machines is running a Security Server. The other, 
  991. is running both a Cell Directory Server and a Distributed Time Server. This 
  992. configuration is a complete, basic DCE cell. 
  993.  
  994. Simple DCE Cell Configuration 
  995.  
  996. DCE Application in Simple Cell shows the same simple DCE cell, this time with a 
  997. DCE application running in it. Node C is offering the Bank Service, and Nodes A 
  998. and B have the client code for accessing the Bank Service. The Bank Server has 
  999. registered itself in the Cell Directory Service so the Bank Clients are able to 
  1000. locate it. 
  1001.  
  1002. DCE Application in Simple Cell 
  1003.  
  1004.  
  1005. ΓòÉΓòÉΓòÉ 5.4.2. DCE Cell with DFS File Server Machine ΓòÉΓòÉΓòÉ
  1006.  
  1007. To have full Distributed File Service support, including DCE's Local File 
  1008. System, a DCE cell can contain one or more DFS File Server machines (as shown 
  1009. in Simple Cell Plus Distributed File Server). The DCE User is equipped to act 
  1010. as a DFS client, and may also export the client's local file system to other 
  1011. machines on the network, using the DFS Server software. The DFS File Server 
  1012. machine, however, is specially equipped with DCE LFS, a physical file system 
  1013. that supports distributed file system features such as file replication, online 
  1014. backup, and other advanced administrative support. 
  1015.  
  1016. Simple Cell Plus Distributed File Server 
  1017.  
  1018.  
  1019. ΓòÉΓòÉΓòÉ 5.4.3. Connected DCE Cell ΓòÉΓòÉΓòÉ
  1020.  
  1021. An organization may want to communicate with other DCE cells or with systems 
  1022. outside of DCE. One way is through the DCE Global Directory Service (GDS), an 
  1023. implementation of the X.500 directory service standard. DCE also supports the 
  1024. use of the Domain Name Service (DNS) as a global directory service. The cell's 
  1025. CDS communicates with CDS servers in foreign cells with the help of an 
  1026. intermediary, the Global Directory Agent. When a Global Directory Agent machine 
  1027. is added to a DCE cell, the nodes in the cell can contact other systems using 
  1028. X.500 or DNS. Simple Cell Connected via Global Directory Agent shows the simple 
  1029. DCE cell with a Global Directory Agent added to it. 
  1030.  
  1031. Simple Cell Connected via Global Directory Agent 
  1032.  
  1033. Finally, if a cell contains a Global Directory Server, it can not only access 
  1034. the X.500 namespace through the GDA, but it can also own and administer a 
  1035. portion of that namespace in the GDS. For more information on the Global 
  1036. Directory Service and Cell Directory Service, see DCE Directory Service. 
  1037.  
  1038.  
  1039. ΓòÉΓòÉΓòÉ 5.4.4. Multicell Configurations ΓòÉΓòÉΓòÉ
  1040.  
  1041. An organization may decide to have a DCE configuration that consists of more 
  1042. than one cell. The organization might consist of several departments, each 
  1043. wanting to have administrative control of its resources. Each department in the 
  1044. organization could administer its own cell. This grouping results in slightly 
  1045. more total administrative overhead than a single, large cell, but the local 
  1046. administrative control of each cell may be worth the trade-off. If the cells 
  1047. are connected through a global directory service, then the users of one cell 
  1048. can access the resources in another cell, with the proper authority. 
  1049.  
  1050.  
  1051. ΓòÉΓòÉΓòÉ 6. DCE Technology Components ΓòÉΓòÉΓòÉ
  1052.  
  1053. The OSF Distributed Computing Environment comprises several technology 
  1054. components: 
  1055.  
  1056.    o  DCE Threads 
  1057.  
  1058.    o  DCE Remote Procedure Call 
  1059.  
  1060.    o  DCE Directory Service 
  1061.  
  1062.    o  DCE Distributed Time Service 
  1063.  
  1064.    o  DCE Security Service 
  1065.  
  1066.    o  DCE Distributed File Service 
  1067.  
  1068.    o  DCE Diskless Support Service. 
  1069.  
  1070.  The DCE components fall into two general categories: distributed programming 
  1071.  facilities and distributed services. The DCE Threads and RPC components are 
  1072.  distributed programming facilities, which include libraries that implement 
  1073.  Application Programming Interfaces (APIs) and program development tools. 
  1074.  
  1075.  The remaining DCE components are distributed services. These components 
  1076.  consist in part of a daemon, or server process, that runs continuously on a 
  1077.  machine and responds to requests sent over the network. They are equipped with 
  1078.  administrative subcomponents to manage the service. They also have APIs 
  1079.  through which a programmer can access the server. 
  1080.  
  1081.  In general, application programmers deal mostly with the distributed 
  1082.  programming facilities, DCE Threads, and RPC. Although the distributed 
  1083.  services also have APIs for accessing them, the programmer often uses 
  1084.  distributed services only indirectly through the RPC facility, which in turn, 
  1085.  uses the APIs of the distributed services. System administrators, on the other 
  1086.  hand, deal mostly with the distributed services because they have significant 
  1087.  management requirements. 
  1088.  
  1089.  This chapter describes each of the technology components. Each section starts 
  1090.  with an overview of its technology, and describes the pieces that comprise the 
  1091.  components. The components are described from the perspective of different 
  1092.  types of users: the end user, the programmer, and the administrator. Each 
  1093.  section also explains how the components work and their important benefits or 
  1094.  features. 
  1095.  
  1096.  The last section of this chapter, Two DCE Application Examples, gives an 
  1097.  example of a very simple distributed application, describing the process for 
  1098.  developing, installing, and running it. 
  1099.  
  1100.  
  1101. ΓòÉΓòÉΓòÉ 6.1. DCE Threads ΓòÉΓòÉΓòÉ
  1102.  
  1103. In a traditional computer program, there is only one thread of control. 
  1104. Execution of the program proceeds sequentially, and at any given time, there is 
  1105. only one point in the program that is currently executing.  It is sometimes 
  1106. useful, however, to write a program that contains multiple threads of control. 
  1107. For example, some programs lend themselves to being structured as multiple 
  1108. flows of control, some programs show better performance when they are 
  1109. multithreaded, and multiple threads can be mapped to multiple processors when 
  1110. they are available. 
  1111.  
  1112. A distributed computing environment based on the client/server model and remote 
  1113. procedure call makes good use of the multiple threads of control. For example, 
  1114. when a client makes an RPC call, it is blocked until a response is returned 
  1115. from the server. If there are multiple threads of control in the client, work 
  1116. can continue in another thread while the thread waiting for the RPC response is 
  1117. blocked. On the server side, this same situation applies. In addition, servers 
  1118. often handle the requests of multiple clients.  It is sometimes easier to write 
  1119. a well-structured program when each request can be handled by a separate thread 
  1120. of control. Often servers manage information, requiring input/output operations 
  1121. to a storage device.  While one server thread is waiting for its input or 
  1122. output operation to finish, another server thread can continue working, 
  1123. improving overall performance. 
  1124.  
  1125. Using multiple threads puts new requirements on programmers: they must manage 
  1126. the threads, synchronize their access to global resources, and make choices 
  1127. about thread scheduling and priorities.  A threads implementation must provide 
  1128. facilities for programmers to perform these tasks. 
  1129.  
  1130. Threads can be provided by a programming language, an operating system kernel, 
  1131. or a user-space library. DCE Threads is provided as a user-space library. 
  1132.  
  1133.  
  1134. ΓòÉΓòÉΓòÉ 6.1.1. What Is DCE Threads? ΓòÉΓòÉΓòÉ
  1135.  
  1136. DCE Threads is a user-level (nonkernel) threads library based on the pthreads 
  1137. interface specified by POSIX in their 1003.4a standard (Draft 4).  It consists 
  1138. of an API that gives programmers the ability to create and manipulate threads. 
  1139. The other technology components of OSF's Distributed Computing Environment 
  1140. depend  on the availability of threads. DCE Threads is provided for use on 
  1141. operating systems that do not provide threads already; if a threads package is 
  1142. already available, then DCE Threads may not be needed. DCE Threads can be used 
  1143. as is, as a user-level threading facility, or it can be mapped to an existing 
  1144. threads facility provided by the host operating system. 
  1145.  
  1146. DCE Threads is designed for compatibility with existing operating systems that 
  1147. deal with processes rather than with threads and libraries that are not 
  1148. reentrant (that is, not written to handle multiple threads executing within 
  1149. them at the same time).  This compatibility is provided through the use of 
  1150. jacket routines, which are used in conjunction with existing libraries, and 
  1151. modified operating system calls.  Because messages from outside the cell (such 
  1152. as interrupts and signals) have traditionally been addressed to a process, 
  1153. rather than a specific thread in a process, this interaction must be modified 
  1154. as well. 
  1155.  
  1156.  
  1157. ΓòÉΓòÉΓòÉ 6.1.2. End User's Perspective ΓòÉΓòÉΓòÉ
  1158.  
  1159. An end user is not aware of threads used in an application, except for a 
  1160. possible difference in performance.  An application written with threads may 
  1161. run faster than a single-threaded version of the same application. 
  1162.  
  1163.  
  1164. ΓòÉΓòÉΓòÉ 6.1.3. Programming with DCE Threads ΓòÉΓòÉΓòÉ
  1165.  
  1166. The distributed application programmer can use threads to help structure a 
  1167. program.  Having multiple threads of control can introduce a higher level of 
  1168. complexity than programming with a single thread of control.  Threads must be 
  1169. managed, scheduled, and allowed to communicate with one another in a controlled 
  1170. manner. 
  1171.  
  1172.  
  1173. ΓòÉΓòÉΓòÉ 6.1.3.1. Threads Management ΓòÉΓòÉΓòÉ
  1174.  
  1175. In a traditional process, there is only one thread of control, and it is 
  1176. started and terminated implicitly. When there is more than one thread of 
  1177. control, the threads must be created and destroyed explicitly.  DCE Threads 
  1178. provides the facilities for these tasks. 
  1179.  
  1180.  
  1181. ΓòÉΓòÉΓòÉ 6.1.3.2. Threads Scheduling ΓòÉΓòÉΓòÉ
  1182.  
  1183. With multiple threads, if there are fewer available processors than the number 
  1184. of threads to be run, some decision must be made as to which thread runs first. 
  1185. This is analogous to the scheduling of processes by the operating system on a 
  1186. timesharing system, except that the threads scheduling is visible to and 
  1187. controlled by the application programmer.  (Note that POSIX specifies that 
  1188. scheduling is optional, so systems using their own threads implementations may 
  1189. not include the functionality provided by DCE Threads that is described in this 
  1190. section.) 
  1191.  
  1192. DCE Threads scheduling is built on two basic, interacting mechanisms: 
  1193. scheduling priorities, and scheduling policies. 
  1194.  
  1195. Each thread has a scheduling priority associated with it.  Threads with a 
  1196. higher priority have precedence over threads with a lower priority. The exact 
  1197. treatment of threads of different priorities depends on the scheduling policy 
  1198. under which they are running. 
  1199.  
  1200. DCE Threads offers three scheduling policies: 
  1201.  
  1202.    o  First-In, First-Out (FIFO) 
  1203.  
  1204.       In FIFO scheduling, the thread in the highest priority category that has 
  1205.       been waiting the longest to run is scheduled first.  It runs until it is 
  1206.       blocked, then again the thread that has been waiting the longest runs, 
  1207.       and so on.  Threads in the highest priority level are run in this 
  1208.       first-in, first-out manner, and then the threads in the next highest 
  1209.       priority level are run FIFO, and so on. 
  1210.  
  1211.    o  Round-Robin (RR) 
  1212.  
  1213.       With round-robin scheduling, all of the threads at the highest priority 
  1214.       level are given turns running by timeslicing.  That is, one thread runs 
  1215.       for a period of time, and then it is interrupted and another thread runs 
  1216.       for a period of time, and so on, until all threads have had a chance. 
  1217.       The process is repeated until all threads in that priority are finished 
  1218.       or blocked.  Then the threads in the next highest priority level are also 
  1219.       run round-robin until they are all finished or blocked, and so on. 
  1220.  
  1221.    o  Default 
  1222.  
  1223.       In the default scheduling, each thread is given turns running by 
  1224.       timeslicing.  Higher priority threads are given longer periods of time to 
  1225.       run, but even the lowest priority thread eventually has a chance to run. 
  1226.       This method contrasts with FIFO and round-robin scheduling, in which 
  1227.       higher priority threads may prevent lower priority threads from running 
  1228.       at all. 
  1229.  
  1230.  
  1231. ΓòÉΓòÉΓòÉ 6.1.3.3. Thread Communication and Synchronization ΓòÉΓòÉΓòÉ
  1232.  
  1233. Threads communicate through shared variables: one thread sets a variable that 
  1234. another thread later reads.  If multiple threads are accessing the same 
  1235. variable, incorrect results can occur because of the scheduling of threads and 
  1236. the race conditions.  Therefore, access to shared variables must be 
  1237. synchronized.  DCE Threads provides three facilities for synchronizing threads 
  1238. within a process: 
  1239.  
  1240.    o  Mutual exclusion objects (mutexes) 
  1241.    o  Condition variables 
  1242.    o  The join routine. 
  1243.  
  1244.  The mutex object is used to synchronize access to a given resource, such as a 
  1245.  shared variable, by multiple threads.  Mutexes ensure that only one thread 
  1246.  accesses the resource associated with the mutex at a time-thus the mutual 
  1247.  exclusion or mutex name. 
  1248.  
  1249.  The mutex works as follows.  One mutex object is associated with each shared 
  1250.  resource, for example, a shared variable.  Before reading or writing the 
  1251.  variable, a thread attempts to lock the variable's mutex.  If it succeeds in 
  1252.  locking the mutex, the thread proceeds to access the variable, and then it 
  1253.  unlocks the mutex. 
  1254.  
  1255.  If a second thread tries to access the object while the first thread is 
  1256.  accessing it (the condition that can cause indeterminate results if the shared 
  1257.  variable is not protected), the second thread is blocked when it tries to lock 
  1258.  the mutex.  When the first thread finishes with the variable and unlocks the 
  1259.  mutex, the second thread is unblocked and gains the lock for the mutex. It can 
  1260.  then proceed to access the shared variable. 
  1261.  
  1262.  The mutex is a facility by which threads can ensure that their access to 
  1263.  shared resources is synchronized.  The threads may or may not be communicating 
  1264.  through the shared data.  The second method of thread synchronization, the 
  1265.  condition variable, is used for explicit communications among threads.  This 
  1266.  is done through the use of a shared resource, the condition variable, and as a 
  1267.  result requires the use of a mutex. 
  1268.  
  1269.  For example, using a condition variable, Thread A can wait for Thread B to 
  1270.  accomplish some task.  Thread A waits on the condition variable until Thread B 
  1271.  signals the condition variable, indicating that the particular task has been 
  1272.  accomplished. 
  1273.  
  1274.  Although the condition variable is used for explicit communications among 
  1275.  threads, the communications is anonymous.  For example, Thread B does not know 
  1276.  that Thread A is waiting on the condition variable that Thread B signals, and 
  1277.  Thread A does not know that it was Thread B that woke it up from its wait on 
  1278.  the condition variable. 
  1279.  
  1280.  There is another synchronization method that is not anonymous, the join 
  1281.  routine. It allows a thread to wait for another, specific thread to complete 
  1282.  its execution.  When the second thread has finished, the first is thread 
  1283.  unblocked and continues its execution.  Unlike mutexes and condition 
  1284.  variables, the join routine is not associated with any particular shared data. 
  1285.  
  1286.  
  1287. ΓòÉΓòÉΓòÉ 6.1.3.4. DCE Threads Exceptions ΓòÉΓòÉΓòÉ
  1288.  
  1289. DCE Threads provides two ways to obtain information about the results of a 
  1290. threads call.  One way is specified by the POSIX P1003.4a (pthreads) draft 
  1291. standard: status values are returned to the thread. DCE Threads also gives the 
  1292. programmer an alternative to status values: an exception-returning interface, 
  1293. which is an extension to the basic POSIX functionality.  Exceptions enable 
  1294. routines to ignore status returns when other parts of the program are handling 
  1295. errors. 
  1296.  
  1297.  
  1298. ΓòÉΓòÉΓòÉ 6.1.4. DCE Threads Administration ΓòÉΓòÉΓòÉ
  1299.  
  1300. No administrative tasks are associated with the DCE Threads component. 
  1301.  
  1302.  
  1303. ΓòÉΓòÉΓòÉ 6.2. DCE Remote Procedure Call ΓòÉΓòÉΓòÉ
  1304.  
  1305. A distributed application based on the client/server model consists of two 
  1306. parts: the client side of the application, which runs on one machine and makes 
  1307. a request for service on behalf of a user, and the server side of the 
  1308. application, which runs on another machine on the network and fulfills the 
  1309. service request.  The two pieces of code on two different machines need to be 
  1310. able to communicate across the network. One model for implementing 
  1311. communications between the client and server of an application is the remote 
  1312. procedure call (RPC). 
  1313.  
  1314. RPC gives programmers the ability to express an interaction between the client 
  1315. and server of a distributed application as if it were a procedure call: the 
  1316. programmer defines a calling interface and a procedure that implements it, 
  1317. makes a call to the procedure along with any arguments, and receives a return 
  1318. value through the argument list or as the procedure result. 
  1319.  
  1320. In RPC, control is passed from one code segment to another, and then returns to 
  1321. the original segment.  In a local procedure call, the code segments are in the 
  1322. same address space on the same machine, while in a remote procedure call, the 
  1323. called procedure runs in a different address space, usually on a different 
  1324. machine than the calling procedure.  As a result, arguments and results are 
  1325. passed differently for local and remote procedure calls. In local procedure 
  1326. calls, arguments and return values can be passed on the process's stack. In 
  1327. remote procedure calls, arguments and return values must be packed up into 
  1328. messages and sent to the peer machine over the network.  The underlying RPC 
  1329. mechanism makes this look like a local procedure call to the programmer. 
  1330.  
  1331. An RPC facility shields the application programmer from the details of network 
  1332. communications between client and server nodes, such as: 
  1333.  
  1334.    o  Fragmentation and reassembly of messages 
  1335.  
  1336.    o  Handling different data formats (such as byte ordering) between different 
  1337.       machines 
  1338.  
  1339.    o  Using a directory service to find message recipients 
  1340.  
  1341.    o  Using security services to ensure secure communications. 
  1342.  
  1343.  Programmers using RPC do not need to rewrite applications to port them to 
  1344.  different architectures, operating systems, communications protocols, or 
  1345.  languages.  RPC provides a high-level programming  model to the distributed 
  1346.  application programmer, hiding communications details and removing nonportable 
  1347.  system and hardware dependencies. 
  1348.  
  1349.  
  1350. ΓòÉΓòÉΓòÉ 6.2.1. What is DCE RPC? ΓòÉΓòÉΓòÉ
  1351.  
  1352. DCE RPC is a facility for calling a procedure on a remote machine as if it were 
  1353. a local procedure call. To the application programmer, a remote call looks 
  1354. (almost) like a local call. There are several RPC components that work together 
  1355. to implement this facility, including the Interface Definition Language (IDL) 
  1356. and its compiler, a Universal Unique Identifier (UUID) generator, and the RPC 
  1357. Runtime, which supports two RPC protocol implementations.  One RPC protocol 
  1358. operates over connection-oriented transports such as the Transmission Control 
  1359. Protocol/Internet Protocol (TCP/IP) and the other RPC protocol operates over 
  1360. connectionless transports such as the User Datagram Protocol/Internet Protocol 
  1361. (UDP/IP). 
  1362.  
  1363. An end user does not see RPC at all, and the minimal amount of administration 
  1364. involved in RPC can usually be handled by the server-side application code, 
  1365. such as advertising an application server in the DCE Directory Service.  The 
  1366. application programmer most comes into contact with the RPC component.  Because 
  1367. many of the DCE components are themselves client/server applications, they use 
  1368. RPC as their basis for distributed communications. 
  1369.  
  1370. The components that comprise the DCE RPC are as follows: 
  1371.  
  1372.    o  The Interface Definition Language (IDL) and its Compiler 
  1373.  
  1374.       An RPC interface is described in DCE IDL. The IDL file is compiled into 
  1375.       object code using the IDL compiler. The object code is in two main 
  1376.       parts-one for the client side of the application, and one for the server 
  1377.       side. 
  1378.  
  1379.    o  The RPC Runtime Library 
  1380.  
  1381.       It consists of a set of routines, linked with both the client and server 
  1382.       sides of an application, which implement the communications between them. 
  1383.       This involves the client finding the server in the distributed system, 
  1384.       getting messages back and forth, managing any state that exists between 
  1385.       requests, and processing any errors that occur. 
  1386.  
  1387.    o  Authenticated RPC 
  1388.  
  1389.       DCE RPC is integrated with the DCE Security Service component to provide 
  1390.       secure communications. Levels of security can be controlled by the RPC 
  1391.       application programmer through the Authenticated RPC API. (Programming 
  1392.       with DCE Security for more information on Authenticated RPC.) 
  1393.  
  1394.    o  Name Service Independent (NSI) API 
  1395.  
  1396.       DCE RPC is integrated with the DCE Directory Service component to 
  1397.       facilitate the location of RPC-based servers by their clients. The NSI 
  1398.       routines allow a programmer to control the association, or binding, of a 
  1399.       client to a server during RPC. 
  1400.  
  1401.    o  The RPC Daemon 
  1402.  
  1403.       The RPC daemon (rpcd) is a program that runs on every DCE machine. It is 
  1404.       an RPC-specific name server, which manages a database that maps RPC 
  1405.       servers to the transport endpoints (in IP, the ports) that the server is 
  1406.       listening for requests on. 
  1407.  
  1408.    o  The RPC Control Program 
  1409.  
  1410.       The RPC control program (rpccp) is a tool for administering rpcd. It also 
  1411.       allows an administrator to access RPC data in CDS. 
  1412.  
  1413.    o  UUID Facilities 
  1414.  
  1415.       These are ancillary commands and routines for generating Universal Unique 
  1416.       Identifiers (UUIDs), which uniquely identify an RPC interface or any 
  1417.       other resource. The uuidgen program can optionally generate an IDL 
  1418.       template for a service interface, along with a unique identifier for the 
  1419.       interface. 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 6.2.2. End User's Perspective ΓòÉΓòÉΓòÉ
  1423.  
  1424. The end user does not come in direct contact with DCE RPC, but does see the end 
  1425. result, in the form of 
  1426.  
  1427.    o  the availability of distributed applications built using RPC. 
  1428.  
  1429.    o  the ability to use remote resources accessed via RPC. 
  1430.  
  1431.  
  1432. ΓòÉΓòÉΓòÉ 6.2.3. Programming with DCE RPC ΓòÉΓòÉΓòÉ
  1433.  
  1434. This section provides a brief overview of how a programmer uses DCE RPC to 
  1435. write an application. For an example of how this process applies to a simple 
  1436. application, see Two DCE Application Examples. 
  1437.  
  1438. DCE RPC Programming Process shows an overview of the DCE RPC application 
  1439. development process. The dashed boxes indicate application code written by the 
  1440. DCE programmer. The other boxes indicate compiled code or code generated 
  1441. automatically for the programmer by DCE RPC. 
  1442.  
  1443. DCE RPC Programming Process 
  1444.  
  1445.  
  1446. ΓòÉΓòÉΓòÉ 6.2.3.1. The IDL File ΓòÉΓòÉΓòÉ
  1447.  
  1448. First, the application programmer defines the RPC interface and associated data 
  1449. types, using the DCE Interface Definition Language (IDL). An interface is a 
  1450. group of operations that a server can perform.  This grouping is similar to a 
  1451. module or library in a conventional programming language, a group of operations 
  1452. defined in a single file or unit. For example, a Bank Service might perform 
  1453. operations to debit, credit, or read the balance of an account.  Each of those 
  1454. operations and their parameters must be defined in the IDL file.  The 
  1455. collection of Bank Service operations debit, credit, read balance, together 
  1456. form the Bank Service interface. 
  1457.  
  1458. The process of defining RPC operations is similar to defining the input and 
  1459. output of a local procedure call, except in IDL only the calling interface is 
  1460. defined, not the implementation of the procedure. (An IDL interface definition 
  1461. is similar to an ANSI C prototype definition.) 
  1462.  
  1463. Next, the programmer compiles the IDL file using the IDL compiler. The compiler 
  1464. produces output either in a conventional programming language, which is the C 
  1465. language in the DCE offering, or in object code. The output of the compilation 
  1466. consists of a client stub, a server stub, and a header file. The client and 
  1467. server stubs are routines that make the remoteness of the operation transparent 
  1468. to the caller or callee of the operation. 
  1469.  
  1470.  
  1471. ΓòÉΓòÉΓòÉ 6.2.3.2. The Client Side ΓòÉΓòÉΓòÉ
  1472.  
  1473. For the client side of the application, the programmer writes application code 
  1474. that makes calls to the operations in the IDL file. The client stub code is 
  1475. linked with this application code, and (along with the RPC Runtime code) 
  1476. performs the tasks that turn what looks like a procedure call into network 
  1477. communications with the server side of the application. Usually the client side 
  1478. of the application contains a relatively small amount of RPC code. 
  1479.  
  1480.  
  1481. ΓòÉΓòÉΓòÉ 6.2.3.3. The Server Side ΓòÉΓòÉΓòÉ
  1482.  
  1483. For the server side, the programmer writes application routines that implement 
  1484. the operations defined in the IDL file. For example, in the banking 
  1485. application, a database lookup might implement the operation to read an account 
  1486. balance. The server stub, generated by the IDL compiler, is linked with the 
  1487. server application code. The server stub unpacks the arguments and makes the 
  1488. call to the application routine as if the client program had called it 
  1489. directly. The server side of the application contains the bulk of the RPC code 
  1490. that needs to be written by the distributed application programmer. 
  1491.  
  1492.  
  1493. ΓòÉΓòÉΓòÉ 6.2.3.4. Binding ΓòÉΓòÉΓòÉ
  1494.  
  1495. For the client to send an RPC to the server, it must be able to find the 
  1496. server. This process is called binding. A client may have some direct way of 
  1497. knowing what server it needs to communicate with; for example, it may get this 
  1498. information from a file, a value hardcoded into its program, an environment 
  1499. variable, or a user. A more flexible way for a client to find a server is to 
  1500. take advantage of the way the DCE RPC uses of the DCE Directory Service. 
  1501.  
  1502. A client can find a server by asking the Directory Service for the location of 
  1503. a server that handles the interface in which the client is interested (in our 
  1504. example, a Bank Server). For the Directory Service to be able to give the 
  1505. client this information, a server must first advertise itself in the Directory 
  1506. Service. The server adds itself to the namespace, along with information about 
  1507. what interfaces it implements, what protocols it uses to communicate with, and 
  1508. where it is located. This way, a server can move, or there can be multiple 
  1509. servers implementing a given interface, without affecting the client. The 
  1510. client can still go to the Directory Service, a well-known central source of 
  1511. information, and find out where the server is located. 
  1512.  
  1513. The DCE programmer does not make calls directly to CDS; binding is supported by 
  1514. the Name Service Independent (NSI) API, an RPC-specific name service layer. 
  1515. Calls to this library are made by the client side of an application to look up 
  1516. binding information for a server based on various criteria, such as the type of 
  1517. service, the objects it manages, and the interfaces it supports. The server 
  1518. side of an application calls this library to advertise information about itself 
  1519. to the namespace where clients can find it. 
  1520.  
  1521.  
  1522. ΓòÉΓòÉΓòÉ 6.2.3.5. The RPC Daemon ΓòÉΓòÉΓòÉ
  1523.  
  1524. There are two parts to a server's location: the address of the machine it 
  1525. resides on and the address of the process, which is the network endpoint (for 
  1526. example, a UNIX port). Because the machine location is fairly stable, its 
  1527. address can be entered into the Cell Directory Service. The network endpoint, 
  1528. however, can change each time the server process is started up. Instead of 
  1529. making frequent changes to CDS to update a server's endpoint address, DCE RPC 
  1530. uses a specialized type of directory service, the RPC daemon, or rpcd. When a 
  1531. server starts up, it registers its process address with rpcd. 
  1532.  
  1533. Every machine that runs an RPC server also runs an rpcd. Because the rpcd 
  1534. process always uses the same network endpoint, its process address is well 
  1535. known. Once a client knows what machine a server is running on, it can find the 
  1536. rpcd process running on that same machine. It can then ask the rpcd process for 
  1537. the network endpoint of the server process. This process is shown in Client 
  1538. Finds Server Using CDS and RPC Daemon (read the messages, shown in quotes, in 
  1539. clockwise order). 
  1540.  
  1541. Client Finds Server Using CDS and RPC Daemon 
  1542.  
  1543.  
  1544. ΓòÉΓòÉΓòÉ 6.2.4. DCE RPC Administration ΓòÉΓòÉΓòÉ
  1545.  
  1546. A few administrative tasks must be performed when a distributed application is 
  1547. running using RPC. The application server executes most of these tasks when it 
  1548. first starts up. 
  1549.  
  1550. Nonautomated RPC administration is minimal. The administrator must ensure that 
  1551. each DCE server machine has an RPC daemon running on it. An administrator may 
  1552. be involved in registering servers in the namespace, but this can also be done 
  1553. from server code upon initialization. A management program, rpccp, allows an 
  1554. administrator to control the rpcd and administer RPC information in the 
  1555. namespace. 
  1556.  
  1557. An administrator may be involved in installing a new RPC-based application.  In 
  1558. particular, the server side of the application must be started up before it can 
  1559. begin receiving and servicing requests. The administrator may arrange for the 
  1560. server process to be run each time the machine is started. 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 6.2.5. How It Works ΓòÉΓòÉΓòÉ
  1564.  
  1565. A short walk-through of what happens during an RPC call may help clarify the 
  1566. RPC concept and how it works. This section describes the RPC call shown in RPC 
  1567. Runtime Process. (This description is somewhat simplified. The use of rpcd is 
  1568. not shown.) 
  1569.  
  1570. RPC Runtime Process 
  1571.  
  1572. On the server side, the Bank Server process is started up. Before it begins its 
  1573. continuous cycle of receiving and servicing requests, the server process 
  1574. advertises its location in the Cell Directory Service (see 1 in RPC Runtime 
  1575. Process). In this way, when a client queries the Directory Service for a bank 
  1576. server, it can find it. After initialization, the server listens for a request 
  1577. to come in from a client over the network. This call to wait for client 
  1578. requests is a call to the RPC Runtime, because the Runtime handles network 
  1579. communications. 
  1580.  
  1581. Eventually, a user on the Bank Client machine invokes the bank application. The 
  1582. Bank Client initialization code calls the RPC Runtime to find a server offering 
  1583. the Bank Service (2). The Bank Client application code makes a call to a remote 
  1584. procedure, for example, a call to a procedure that credits a bank account (3). 
  1585. This results in a call to the client stub code.  The stub transforms the 
  1586. arguments of the call into a network message (4). It then calls the client's 
  1587. RPC Runtime library, which sends the message to the server (5). 
  1588.  
  1589. Back on the server side, the RPC request is received by the RPC Runtime, which 
  1590. has been waiting for a client request (6). The Runtime passes control, and the 
  1591. received packet, to the server stub. The stub unpacks the arguments sent by the 
  1592. client (7) and passes them to the appropriate operation by making a procedure 
  1593. call to it. At this point, the server application code that implements the 
  1594. requested operation is called. The operation is performed, and the account is 
  1595. credited (8). 
  1596.  
  1597. The RPC reply (not shown in the figure) returns in the reverse direction. The 
  1598. Bank Server application procedure returns the results of the credit operation 
  1599. to the stub. The stub packs up the return parameters and passes the resulting 
  1600. message to the RPC Runtime to send off to the client over the network. The 
  1601. server then waits for the next client request to come in. 
  1602.  
  1603. The client Runtime receives the server's reply. The client stub then unpacks 
  1604. the received network message, arranging returned parameters so that when the 
  1605. client application call to RPC returns, it looks as if it has just performed a 
  1606. local procedure call. 
  1607.  
  1608. The mechanisms in both the client and server stubs and the Runtime library are 
  1609. transparent to the application programmer. The programmer writes the 
  1610. application calls to the RPC operations on the client side and provides 
  1611. implementations for those operations on the server side, but the network 
  1612. communications code is generated automatically. 
  1613.  
  1614.  
  1615. ΓòÉΓòÉΓòÉ 6.2.6. System Independence ΓòÉΓòÉΓòÉ
  1616.  
  1617. There are several ways in which using DCE RPC frees a programmer from 
  1618. dependence on other parts of a system. It provides portability across 
  1619. programming languages, data transfer syntax mechanisms, transport and network 
  1620. protocols, and operating system and architecture platforms. 
  1621.  
  1622.  
  1623. ΓòÉΓòÉΓòÉ 6.2.6.1. Language Independence ΓòÉΓòÉΓòÉ
  1624.  
  1625. DCE RPC is language independent in the sense that the stubs generated by the 
  1626. IDL compiler can be called by programs written in any traditional programming 
  1627. language, provided that the language follows the calling conventions that the 
  1628. stub expects. The DCE IDL compiler generates stubs that use the C language 
  1629. calling conventions. A client written in FORTRAN, for example, can call an IDL 
  1630. stub in the same way that it calls any local C procedure. It can then make a 
  1631. remote call to a server (possibly written in another language) that contains 
  1632. the server stub generated from the same IDL file as the client stub was 
  1633. generated from. 
  1634.  
  1635.  
  1636. ΓòÉΓòÉΓòÉ 6.2.6.2. Data Representation Independence ΓòÉΓòÉΓòÉ
  1637.  
  1638. The default data representation format is the DCE Transfer Syntax, which is 
  1639. currently the Network Data Representation (NDR). It allows various 
  1640. representations for different types of data, including multiple encodings for 
  1641. characters, integers, and floating-point numbers. It is multi-canonical; that 
  1642. is, there are several canonical formats that can be used. The sender chooses 
  1643. one of these formats (in most cases, it will be the sender's native data 
  1644. representation), with information about what representation it has chosen. The 
  1645. receiver transforms data into its own format, if it is different from the 
  1646. format the data was sent in. This model optimizes for the case when both sender 
  1647. and receiver use the same data representation, a frequent occurrence.  (Note 
  1648. that this data transfer is handled by the RPC software and is not visible to 
  1649. the application programmer.) 
  1650.  
  1651. The DCE RPC architecture allows the use of transfer syntaxes other than DCE 
  1652. Transfer Syntax (although the only transfer syntax currently provided in the 
  1653. OSF implementation is DCE Transfer Syntax).  For example, data could be 
  1654. formatted according to the ISO ASN.1/BER specification and sent over the wire 
  1655. in that way. 
  1656.  
  1657.  
  1658. ΓòÉΓòÉΓòÉ 6.2.6.3. Protocol Independence ΓòÉΓòÉΓòÉ
  1659.  
  1660. Independence of RPC, transport, and network protocols is achieved by two 
  1661. different RPC protocols. The first runs over connection-oriented transport 
  1662. protocols; the second over connectionless (datagram) transport protocols. The 
  1663. programmer can specify the underlying RPC protocol, but the semantics of RPC 
  1664. calls are the same whether the RPC is running over a connectionless or 
  1665. connection-oriented transport. Another RPC protocol could be used in place of 
  1666. these two DCE RPC protocols; for example, when ISO defines an RPC standard, it 
  1667. could be used transparently as a third RPC protocol under the DCE RPC 
  1668. interfaces. 
  1669.  
  1670. Servers identify themselves to the Directory Service according to the interface 
  1671. they support and the protocols they use. In this way, a client can look up a 
  1672. server that uses network protocols that are compatible with those that the 
  1673. client supports. 
  1674.  
  1675.  
  1676. ΓòÉΓòÉΓòÉ 6.2.6.4. Machine Independence ΓòÉΓòÉΓòÉ
  1677.  
  1678. Because DCE RPC uses the DCE Transfer Syntax, distributed applications are 
  1679. machine independent. Machines can transfer data even when their native data 
  1680. representations are not the same. 
  1681.  
  1682.  
  1683. ΓòÉΓòÉΓòÉ 6.2.6.5. Operating System Independence ΓòÉΓòÉΓòÉ
  1684.  
  1685. Finally, DCE RPC offers independence from the local operating system. The 
  1686. application programmer does not directly use the networking system calls 
  1687. provided by the local operating system. By being one level of abstraction up 
  1688. from this layer, the programmer is insulated from networking system calls that 
  1689. are specific to the operating system specific. 
  1690.  
  1691.  
  1692. ΓòÉΓòÉΓòÉ 6.3. DCE Directory Service ΓòÉΓòÉΓòÉ
  1693.  
  1694. A distributed system may contain many users, machines, and other resources, 
  1695. along with large amounts of data, all geographically dispersed. The distributed 
  1696. system's attributes, such as the number of users, location of servers, and 
  1697. contents of data, are continuously changing. It is difficult to keep track of 
  1698. this large, geographically distributed, rapidly changing system. 
  1699.  
  1700. A directory service can help solve this problem. When a directory service is 
  1701. available, it is no longer necessary to maintain local copies of information, 
  1702. such as databases of users, hosts, and server locations, on each system. 
  1703. Instead, an application queries the directory service when it needs 
  1704. information. In a sense, the directory service is the most basic of all 
  1705. distributed system services, because it is used to find the information needed 
  1706. for accessing other services. The Directory Service Interfaces describes the 
  1707. Directory Service application programming interface. 
  1708.  
  1709.  
  1710. ΓòÉΓòÉΓòÉ 6.3.1. DCE Directory Service Architecture ΓòÉΓòÉΓòÉ
  1711.  
  1712. The DCE Directory Service is a distributed, replicated database service. It is 
  1713. distributed because the information that forms the database is stored in 
  1714. different places-information about one group of users and resources might be 
  1715. stored in one directory server, while information about a second group of users 
  1716. and resources is stored in a different directory server. The Directory Service 
  1717. is replicated because information about a given name or group of names can be 
  1718. stored in more than one location, for higher availability. 
  1719.  
  1720. The Directory Service database consists of a hierarchical set of names, the 
  1721. namespace, which have associated attributes. Given a name, its associated 
  1722. attributes can be looked up in the Directory Service. For example, given the 
  1723. name of a print server, the Directory Service can return the printer's 
  1724. location. The Directory Service gives distributed system users a well-known, 
  1725. central place to store information, which can then be retrieved from anywhere 
  1726. in the distributed system. 
  1727.  
  1728.  
  1729. ΓòÉΓòÉΓòÉ 6.3.1.1. Overview of Directory Service Components ΓòÉΓòÉΓòÉ
  1730.  
  1731. There are three components that together comprise the DCE Directory Service: 
  1732.  
  1733.    o  The DCE Cell Directory Service (CDS) 
  1734.  
  1735.    o  The DCE Global Directory Service (GDS) 
  1736.  
  1737.    o  The DCE Global Directory Agent (GDA). 
  1738.  
  1739.  The X/Open Directory Service (XDS) application programming interface is used 
  1740.  to access the Directory Service components. 
  1741.  
  1742.  
  1743. ΓòÉΓòÉΓòÉ 6.3.1.1.1. DCE Cell Directory Service ΓòÉΓòÉΓòÉ
  1744.  
  1745. The Cell Directory Service stores names and attributes of resources located in 
  1746. a DCE cell. It is optimized for local access, because most directory service 
  1747. queries are for information about resources within the same cell as the 
  1748. originator of the query.  CDS replication is important for a local directory 
  1749. service, because the directory service must be highly available. There must be 
  1750. at least one Cell Directory Server in each DCE cell. 
  1751.  
  1752.  
  1753. ΓòÉΓòÉΓòÉ 6.3.1.1.2. DCE Global Directory Service ΓòÉΓòÉΓòÉ
  1754.  
  1755. The DCE Global Directory Service is a distributed, replicated directory service 
  1756. based on the CCITT X.500/ISO 9594 international standard. It is used for 
  1757. looking up a name outside of the local DCE cell. In particular, it acts as the 
  1758. high-level connector that allows independent cells to find out about and 
  1759. interact with one another. GDS interworks with other X.500 implementations, and 
  1760. can therefore participate in the worldwide X.500 directory service. Three 
  1761. One-Celled Organizations shows three organizations, each with its own DCE cell. 
  1762.  
  1763. Three One-Celled Organizations 
  1764.  
  1765. The Global Directory Service can act as a higher level directory service to 
  1766. connect cells, as shown in GDS and DNS Connect DCE Cell Namespaces. DCE 
  1767. supports the use of a second standard directory service, the Domain Name 
  1768. Service (DNS), which is widely used in the Internet community. It, too, can act 
  1769. as a higher level connector of DCE cells. 
  1770.  
  1771. GDS and DNS Connect DCE Cell Namespaces 
  1772.  
  1773.  
  1774. ΓòÉΓòÉΓòÉ 6.3.1.1.3. DCE Global Directory Agent ΓòÉΓòÉΓòÉ
  1775.  
  1776. The Global Directory Agent is the intermediary between a cell's CDS and the 
  1777. rest of the world. It takes a name that cannot be found in the local cell and 
  1778. finds the foreign cell in which the name resides, using GDS or DNS, depending 
  1779. on where the foreign cell is registered. Use of Global Directory Agents gives a 
  1780. functional picture, including the use of GDAs, of the configuration shown in 
  1781. GDS and DNS Connect DCE Cell Namespaces. 
  1782.  
  1783. Use of Global Directory Agents 
  1784.  
  1785.  
  1786. ΓòÉΓòÉΓòÉ 6.3.1.1.4. DCE Directory Service Application Programming Interface ΓòÉΓòÉΓòÉ
  1787.  
  1788. DCE programmers use the X/Open Directory Service (XDS) application programming 
  1789. interface to make all Directory Service calls. The XDS library knows, based on 
  1790. the format of the name to be looked up, whether to direct the calls it receives 
  1791. to GDS or to the CDS (see XDS: Interface to GDS and CDS). XDS uses the X/Open 
  1792. Object Management (XOM) application programming interface to define and manage 
  1793. its information. 
  1794.  
  1795. XDS: Interface to GDS and CDS 
  1796.  
  1797.  
  1798. ΓòÉΓòÉΓòÉ 6.3.1.2. The DCE Namespace ΓòÉΓòÉΓòÉ
  1799.  
  1800. The DCE namespace is the set of names used by the DCE Directory Service. It is 
  1801. hierarchical, similar to the structure of a UNIX file system. Names can be 
  1802. typed or untyped, reflecting the different name formats supported by the two 
  1803. global directory services, GDS and DNS. 
  1804.  
  1805. Four Cells in DCE Global Namespace shows the root of the DCE namespace, 
  1806. indicated by the /... prefix, and four cell entries below it. The two cells on 
  1807. the left, /.../C=US/O=OSF/OU=DCE and /.../C=CA/O=B-College/OU=EE-Department, 
  1808. are in the X.500 namespace, while the two cells on the right, 
  1809. /.../company_b.com and /.../cs.univ.edu, are in the DNS namespace. 
  1810.  
  1811. Four Cells in DCE Global Namespace 
  1812.  
  1813. Top of a Typical DCE Cell Namespace shows the top of a typical DCE cell 
  1814. namespace. It contains an entry for security information, an entry for the 
  1815. cell's DFS file system, an entry for subsystems such as DCE services, an RPC 
  1816. Profile entry, and an entry for host names. 
  1817.  
  1818. Top of a Typical DCE Cell Namespace 
  1819.  
  1820. The following is a list of examples of typed and untyped names. 
  1821.  
  1822.       /.../C=US/O=OSF/OU=DCE/sec/principals/snowpaws 
  1823.       /.../C=US/O=OSF/OU=DCE/fs/usr/snowpaws 
  1824.  
  1825.       /.../cs.univ.edu/sec/principals/ziggy 
  1826.       /.../cs.univ.edu/fs/usr/ziggy 
  1827.  
  1828.  The /... prefix indicates that the name is a global name. The first two names 
  1829.  are typed names using X.500 syntax, and the second two names are untyped names 
  1830.  using DNS syntax. The first name in each set indicates the name of a user in 
  1831.  an authentication database; the second name in each set is the user's home 
  1832.  directory in a file system. 
  1833.  
  1834.  In each of the name examples, there is a global component and a local 
  1835.  component. The global component consists of a cell name, which is registered 
  1836.  in a global directory service. In one case, the cell is an entry in the X.500 
  1837.  namespace: /.../C=US/O=OSF/OU=DCE. In the other case, the cell is an entry in 
  1838.  the DNS namespace: /.../cs.univ.edu. The remainder of the name is an entry in 
  1839.  the cell's namespace; for example, /fs/usr/snowpaws. 
  1840.  
  1841.  The names listed above reside in the DCE cell namespace, but it is also 
  1842.  possible to maintain names in the X.500 namespace by using GDS. An example of 
  1843.  this kind of name is /.../C=US/O=OSF/OU=DCE/CN=SIG-DCE. This name could be 
  1844.  used, for example, for an electronic mail list. 
  1845.  
  1846.  
  1847. ΓòÉΓòÉΓòÉ 6.3.1.3. Viewpoints on the Directory Service ΓòÉΓòÉΓòÉ
  1848.  
  1849. The DCE Directory Service looks very different to the end user, programmer, and 
  1850. administrator. 
  1851.  
  1852.  
  1853. ΓòÉΓòÉΓòÉ 6.3.1.3.1. End User's Perspective ΓòÉΓòÉΓòÉ
  1854.  
  1855. The DCE Directory Service is one of the few DCE technologies that is visible to 
  1856. the end user. An end user can use the CDS Browser to look through the cell's 
  1857. namespace. 
  1858.  
  1859.  
  1860. ΓòÉΓòÉΓòÉ 6.3.1.3.2. Application Programmer's Perspective ΓòÉΓòÉΓòÉ
  1861.  
  1862. DCE application programmers do not necessarily need to work directly with the 
  1863. Directory Service, because a frequent use of the Directory Service to look up 
  1864. the location of a server can be done automatically by DCE RPC. Programmers who 
  1865. do use the Directory Service interact with it through the X/Open Directory 
  1866. Service interface. XDS provides facilities for adding, deleting, modifying, and 
  1867. looking up names and their attributes. 
  1868.  
  1869. Programmers use XDS for accessing both DCE directory services-CDS and GDS. The 
  1870. programmer needs to understand the different types of names used for different 
  1871. namespaces, and be aware of some XDS calls that are not available when CDS is 
  1872. being used. An example is the search query, which is possible in GDS, but not 
  1873. in CDS. 
  1874.  
  1875.  
  1876. ΓòÉΓòÉΓòÉ 6.3.1.3.3. Administrator's Perspective ΓòÉΓòÉΓòÉ
  1877.  
  1878. Unlike the end user and application programmer, the Directory Service 
  1879. administrator is aware of the cell's directory service configuration, because 
  1880. the two directory services are administered separately. The administrator 
  1881. manages the CDS server, the Global Directory Agent, and the GDS server, if the 
  1882. cell has one. 
  1883.  
  1884.  
  1885. ΓòÉΓòÉΓòÉ 6.3.1.4. Related Services: Registration and Lookup Path ΓòÉΓòÉΓòÉ
  1886.  
  1887. There are two services in DCE that are distinct from, but related to, the DCE 
  1888. Directory Service. The first is registration. In naming an object in a 
  1889. distributed system, it is useful to have a unique name for the object. DCE 
  1890. provides a facility for generating Universal Unique Identifiers (UUIDs), which 
  1891. are used to name DCE objects such as RPC interfaces, users, and computing 
  1892. resources. 
  1893.  
  1894. A second service that is related to directory service is the ability to specify 
  1895. a path through the directory service for looking up names. In DCE, this 
  1896. capability is provided by RPC profiles. They can be used, for example, to look 
  1897. up names relative to a certain location. If a user wants to look up a printer 
  1898. based on the printer's proximity to the user, for example, a profile may 
  1899. specify that a directory service lookup for a printer begin in the local cell, 
  1900. then if a printer is not found, look in the two neighboring cells, and so on. 
  1901.  
  1902.  
  1903. ΓòÉΓòÉΓòÉ 6.3.1.5. Specialized Naming Services ΓòÉΓòÉΓòÉ
  1904.  
  1905. The DCE namespace is not contained entirely in the DCE Directory Service. Other 
  1906. system services contain parts of the namespace which supplement the DCE 
  1907. Directory Service. Some of them require their own specialized naming services. 
  1908. These include: 
  1909.  
  1910.    o  The Security Service Database 
  1911.  
  1912.       The Security Service keeps a database of DCE principals (users and 
  1913.       servers) and information related to them such as their passwords. An 
  1914.       example of a name in the security part of the DCE namespace is 
  1915.       /.../cs.univ.edu/sec/principal/ziggy. 
  1916.  
  1917.    o  The DFS Fileset Location Server Database 
  1918.  
  1919.       The Fileset Location Server maintains a database that maps DFS filesets 
  1920.       to the DFS File Server machines they are kept on. An example of a name in 
  1921.       the DFS part of the DCE namespace is /.../cs.univ.edu/fs/usr/ziggy. 
  1922.  
  1923.  
  1924. ΓòÉΓòÉΓòÉ 6.3.2. DCE Cell Directory Service ΓòÉΓòÉΓòÉ
  1925.  
  1926. One of the two directory services underlying the XDS API is the DCE Cell 
  1927. Directory Service (CDS). The following subsections describe CDS in terms of the 
  1928. data elements that it deals with and the components that implement it. They 
  1929. then describe how CDS handles replication, caching, and data consistency. 
  1930. Finally, they describe CDS from the end-user, programmer, and administrator 
  1931. perspectives. 
  1932.  
  1933.  
  1934. ΓòÉΓòÉΓòÉ 6.3.2.1. What Is CDS? ΓòÉΓòÉΓòÉ
  1935.  
  1936. The DCE Cell Directory Service is made up of several components, including the 
  1937. CDS Server, CDS Clerk, and CDS Administration Programs. 
  1938.  
  1939.    o  CDS Server 
  1940.  
  1941.       The CDS Server runs on a node containing a database of directory 
  1942.       information.  It responds to queries from clients by accessing the 
  1943.       database.  (A CDS database is called a clearinghouse.) 
  1944.  
  1945.    o  CDS Clerk 
  1946.  
  1947.       The CDS Clerk runs on the client node and serves as an intermediary 
  1948.       between client applications and CDS Servers.  One of the Clerk's most 
  1949.       important functions is to maintain a cache of information acquired 
  1950.       through directory queries.  The Clerk stores the response to a query in 
  1951.       its cache so that the next time a related query is made, the information 
  1952.       is already available on the client node, and no network communications 
  1953.       with the CDS Server are necessary.  The cache is written to disk 
  1954.       periodically, so it persists even if the Clerk process dies or the client 
  1955.       node is terminated. 
  1956.  
  1957.    o  CDS Administration Programs 
  1958.  
  1959.       Two administrative programs are included in the CDS technology. The CDS 
  1960.       Namespace Browser and the CDS Control Program.  The CDS Namespace 
  1961.       Browser, which is used by CDS administrators as well as end users, is a 
  1962.       CDS client application that allows the user to look at the cell's 
  1963.       namespace. The CDS Control Program, cdscp, enables administrators to 
  1964.       control CDS Servers. 
  1965.  
  1966.  
  1967. ΓòÉΓòÉΓòÉ 6.3.2.2. The CDS Database ΓòÉΓòÉΓòÉ
  1968.  
  1969. CDS information is contained in three types of data elements-directory entries, 
  1970. directories, and clearinghouses. 
  1971.  
  1972.    o  Directory Entries 
  1973.  
  1974.       A directory entry consists of a name and its attributes.  One example is 
  1975.       the name of an application server, whose attributes include the interface 
  1976.       it exports and its location on the network. 
  1977.  
  1978.    o  Directories 
  1979.  
  1980.       A CDS directory is a logical grouping of CDS information. It is a 
  1981.       collection of directory entries.  The directory is the administrative 
  1982.       unit for replication.  There can be one or more copies, or replicas, of a 
  1983.       given directory.  CDS directories are in a hierarchical relationship to 
  1984.       one another; each directory has a parent directory and may also have 
  1985.       child directories. 
  1986.  
  1987.    o  Clearinghouses 
  1988.  
  1989.       A clearinghouse is a physical CDS database it is a collection of 
  1990.       directory replicas. The clearinghouse is the database on a CDS Server 
  1991.       machine that the CDS Server accesses in order to respond to its requests. 
  1992.  
  1993.  As an example of how the different types of CDS data elements relate to one 
  1994.  another, imagine a directory P, which contains all the information about the 
  1995.  printers in a given cell.  This directory contains one directory entry per 
  1996.  printer.  The administrator of the cell may decide that the information 
  1997.  contained in the P directory is important enough that it needs to be 
  1998.  replicated on more than one CDS Server, so if one server goes down, the P 
  1999.  information can still be found on the other server. To that end, replicas of 
  2000.  the P directory might be kept in two clearinghouses: one replica in 
  2001.  Clearinghouse A; the other in Clearinghouse B. 
  2002.  
  2003.  
  2004. ΓòÉΓòÉΓòÉ 6.3.2.3. Replication and Data Consistency in CDS ΓòÉΓòÉΓòÉ
  2005.  
  2006. A directory service must be highly available, because other services depend on 
  2007. it.  It must also be fast.  CDS achieves these two goals through the 
  2008. replication of directories and caching of directory entries. It also provides 
  2009. mechanisms for keeping various degrees of consistency among copies of data. 
  2010.  
  2011. There are two types of directory replicas in CDS: Master Replica and Read-Only 
  2012. Replica. 
  2013.  
  2014. There is exactly one master replica of a given directory, and any kind of 
  2015. operation can be performed on it.  The only operations that can be performed on 
  2016. a read-only replica are those limited to read access to the directory; no 
  2017. updates can be made to this type of directory replica. There can be zero or 
  2018. more read-only replicas. 
  2019.  
  2020. CDS provides two methods for maintaining data consistency among replicas of a 
  2021. directory: Immediate Propagation and Skulking. 
  2022.  
  2023. In immediate propagation, a change made to one copy is immediately made to 
  2024. other copies of the same data.  Immediate propagation is used when it is 
  2025. important for all copies of a directory to be consistent at all times. 
  2026.  
  2027. In some cases, copies do not have to be updated immediately.  Sometimes it is 
  2028. not even possible, because a server holding a copy may be unavailable to 
  2029. receive updates.  In these cases, the other consistency mechanism, skulking, 
  2030. can be used.  A skulk happens periodically (for example, every 24 hours), and 
  2031. is done on a per-directory basis.  All changes made to the given directory are 
  2032. collected and propagated in bulk to all clearinghouses that contain replicas of 
  2033. the directory.  If a skulk cannot complete, that is, if one or more of the 
  2034. nodes containing a replica to be updated is down, then an administrator is 
  2035. notified and the skulk is attempted again later. 
  2036.  
  2037. Caching is also a form of replication, and therefore leads to the problem of 
  2038. keeping multiple copies of information consistent (or in this case, dealing 
  2039. with the fact that cached information may be out of date). CDS allows the 
  2040. client application to bypass the Clerk's cache and go directly to the CDS 
  2041. Server for information, when the application wants to make sure it has the 
  2042. latest information. 
  2043.  
  2044.  
  2045. ΓòÉΓòÉΓòÉ 6.3.2.4. End User's Perspective ΓòÉΓòÉΓòÉ
  2046.  
  2047. An end user may be interested in looking at the cell namespace to look for 
  2048. information contained in CDS. This can be done using the CDS Namespace Browser. 
  2049.  
  2050.  
  2051. ΓòÉΓòÉΓòÉ 6.3.2.5. Programming with CDS ΓòÉΓòÉΓòÉ
  2052.  
  2053. Programmers can access CDS through XDS. (See The Directory Service Interfaces). 
  2054. They also use CDS indirectly when they use the Name Service routines of the RPC 
  2055. API. 
  2056.  
  2057.  
  2058. ΓòÉΓòÉΓòÉ 6.3.2.6. CDS Administration ΓòÉΓòÉΓòÉ
  2059.  
  2060. CDS administrators use the CDS Control Program to administer CDS and the CDS 
  2061. Namespace Browser to inspect its data.  Some administrative tasks include 
  2062. determining the number of CDS Servers in the cell and specifying replication 
  2063. and update of CDS data. 
  2064.  
  2065.  
  2066. ΓòÉΓòÉΓòÉ 6.3.3. DCE Global Directory Service ΓòÉΓòÉΓòÉ
  2067.  
  2068. The DCE Global Directory Service (GDS) is a directory service implementation 
  2069. based on the international standard CCITT X.500/ISO 9594. When present in a DCE 
  2070. cell, the GDS can serve two basic functions. First, it can participate in a 
  2071. high level, possibly worldwide directory service tying together independent DCE 
  2072. cells. Second, it can be used as an additional directory service to CDS for 
  2073. storing object names and attributes in a central place. 
  2074.  
  2075. Like the Cell Directory Service, GDS is a replicated, distributed database. The 
  2076. GDS database contains information that can be distributed over several GDS 
  2077. servers. In addition, copies of information can be stored in multiple GDS 
  2078. servers, and the information can also be cached. The unit of replication in GDS 
  2079. is the directory entry (whole subtrees can also be specified). 
  2080.  
  2081. The GDS directory is structured differently from CDS, and names are also 
  2082. different in that they are typed, as described later. Programmers can access 
  2083. both DCE Directory Services, however, using the X/Open Directory Service API 
  2084. (see The Directory Service Interfaces for a description of XDS). 
  2085.  
  2086.  
  2087. ΓòÉΓòÉΓòÉ 6.3.3.1. What Is GDS? ΓòÉΓòÉΓòÉ
  2088.  
  2089. Several components work together to provide the DCE Global Directory Service: 
  2090.  
  2091.    o  The Directory System Agent (DSA) 
  2092.  
  2093.       This process runs on the GDS Server machine and manages the GDS database. 
  2094.       It is the server side of GDS. To handle simultaneous requests from 
  2095.       different users, the GDS Server machine can run several DSA processes. 
  2096.  
  2097.    o  The Directory User Agent (DUA) 
  2098.  
  2099.       The DUA is a library that implements the GDS client; this library is 
  2100.       present on all GDS client machines. 
  2101.  
  2102.    o  The Directory User Agent Cache 
  2103.  
  2104.       This process keeps a cache of information obtained from DSAs. One DUA 
  2105.       Cache runs on each client machine and is used by all the users on that 
  2106.       machine.  The DUA Cache contains copies of recently accessed object 
  2107.       entries and information about DSAs. The programmer specifies which 
  2108.       information should be cached, and the DUA Cache can be bypassed to obtain 
  2109.       information directly from a DSA. This is desirable, for example, when the 
  2110.       user wants to make sure the information obtained is up-to-date. 
  2111.  
  2112.    o  The C-Stub and S-Stub 
  2113.  
  2114.       The C-Stub process runs on each client machine and manages communications 
  2115.       with DSAs. It implements the upper layers of the ISO protocol stack. (See 
  2116.       GDS Relation to Standards.) Its function is similar to the RPC Runtime. 
  2117.       (GDS uses OSI protocols instead of DCE RPC.) The S-Stub is similar to the 
  2118.       C-Stub, except it runs on the server machine and manages its 
  2119.       communications with DUAs and other DSAs. 
  2120.  
  2121.    o  The Shadow Update and Cache Update Processes 
  2122.  
  2123.       Unlike the processes listed previously, which run continuously, the 
  2124.       processes for updating replicas in DSAs and DUA Caches run as needed and 
  2125.       then are terminated. The shadow update process runs on the GDS server 
  2126.       machine; the cache update process runs on GDS client machines. 
  2127.  
  2128.    o  The GDS Administration Programs 
  2129.  
  2130.       DCE GDS provides programs for administering its service.  One, gdssysadm, 
  2131.       supports administration of the local GDS installation, such as 
  2132.       configuration, server activation, and backup. The gdsditadm program 
  2133.       supports remote administration of the contents of a GDS database. 
  2134.       Finally, the gdscacheadm program supports the administration of the 
  2135.       contents of the local DUA cache. 
  2136.  
  2137.  GDS Components shows the interaction between the Directory Service 
  2138.  application, the XDS interface, and the GDS client and server. The GDS client 
  2139.  and server use the Directory Access Protocol (DAP) to communicate. The GDS 
  2140.  servers use the Directory System Protocol (DSP) to communicate with one 
  2141.  another.  DAP and DSP perform functions similar to the function that the DCE 
  2142.  RPC protocols perform in other DCE services.  The DAP and DSP protocols are 
  2143.  defined in the X.500 standard, enabling worldwide interoperability among 
  2144.  directory services. 
  2145.  
  2146.  GDS Components 
  2147.  
  2148.  
  2149. ΓòÉΓòÉΓòÉ 6.3.3.2. GDS Configurations ΓòÉΓòÉΓòÉ
  2150.  
  2151. A GDS machine can be configured in two ways: 
  2152.  
  2153.    o  Client Only 
  2154.  
  2155.       A node can contain only the client side of GDS. This node can access 
  2156.       remote DSAs and cache some information in the DUA cache. 
  2157.  
  2158.    o  Client/Server 
  2159.  
  2160.       A machine can be configured with both the GDS client and server.  This is 
  2161.       the typical configuration for a machine acting as a GDS server.  This 
  2162.       configuration can be useful even if a node acts mainly as a client 
  2163.       because the DSA can be used as a larger, more permanent cache of 
  2164.       information contained in remote DSAs. 
  2165.  
  2166.  
  2167. ΓòÉΓòÉΓòÉ 6.3.3.3. The GDS Database ΓòÉΓòÉΓòÉ
  2168.  
  2169. The GDS database is a hierarchical, object-oriented database. The OSF DCE 
  2170. reference implementation of GDS uses the C-ISAM database software. The 
  2171. information comprising the Global Directory Service takes the following forms: 
  2172.  
  2173.    o  Object Entry 
  2174.  
  2175.       An object entry is an entry in the database that names and describes an 
  2176.       object, such as a person, machine, or server.  It consists of one or more 
  2177.       attributes, and each of the attributes has a type and a value.  For 
  2178.       example, an attribute type might be COMMON NAME (or CN) and the value 
  2179.       might be snowpaws; another attribute might be type MACHINE ADDRESS and 
  2180.       the value might be 100.100.1.177.  Some attributes may have more than one 
  2181.       value.  Each object entry has an attribute of type OBJECT CLASS, and its 
  2182.       value specifies what the object's class is, which determines what other 
  2183.       attributes the object entry has.  The name of an entry consists of one or 
  2184.       more of its attributes. (See GDS Object Entry.) 
  2185.  
  2186.       GDS Object Entry 
  2187.  
  2188.    o  Relative Distinguished Name (RDN) 
  2189.  
  2190.       The name attribute of an object contains the object's Relative 
  2191.       Distinguished Name (RDN). An RDN contains both the type and value of the 
  2192.       naming attribute; for example, ``CN = snowpaws'' or ``MACHINE NAME = 
  2193.       MachineA.'' (In DCE Directory Service notation, the type and value of an 
  2194.       attribute are separated by an equal sign.) 
  2195.  
  2196.    o  Distinguished Name (DN) 
  2197.  
  2198.       The Distinguished Name is the concatenation of the object's RDN and the 
  2199.       RDNs of all its ancestors in the GDS naming hierarchy, like a full 
  2200.       pathname for a file in a UNIX file system. An example of a DN might be 
  2201.       /.../C=US/O=OSF/OU=DCE/CN=snowpaws. (In DCE Directory Service notation, 
  2202.       the RDNs are separated by slashes.) 
  2203.  
  2204.    o  Directory Information Base (DIB) 
  2205.  
  2206.       The Directory Information Base consists of all the object entries in all 
  2207.       the Directory Service Agents in GDS. 
  2208.  
  2209.    o  Directory Information Tree (DIT) 
  2210.  
  2211.       The Directory Information Tree is the structure of the GDS namespace; it 
  2212.       determines the hierarchy of GDS names.  For example, the DIT might 
  2213.       specify that the only entries that can come directly under the DIT root 
  2214.       are entries describing countries, such as /.../C=US or /.../C=JP. 
  2215.  
  2216.    o  Directory Schema 
  2217.  
  2218.       The Directory Schema contains structuring rules for the GDS information. 
  2219.       This includes object classes, their attributes, and their syntax. 
  2220.  
  2221.    o  GDS Access Control Lists 
  2222.  
  2223.       Security in GDS is not integrated with the DCE Security Service.  It is 
  2224.       based on Access Control Lists, but GDS ACLs are different from other DCE 
  2225.       ACLs. Each object entry has an ACL associated with it. It specifies 
  2226.       permission to access the object's attributes.  The attributes can be 
  2227.       classified as PUBLIC, STANDARD, or SENSITIVE.  The object's ACL grants a 
  2228.       user or group of users five different types of permission: modify PUBLIC 
  2229.       attributes, read or modify STANDARD attributes, read or modify SENSITIVE 
  2230.       attributes. When a new object entry is created in the GDS directory, it 
  2231.       inherits the security characteristics of its parent entry by default. An 
  2232.       object entry's ACLs are attributes of the object entry. 
  2233.  
  2234.  
  2235. ΓòÉΓòÉΓòÉ 6.3.3.4. How GDS Works ΓòÉΓòÉΓòÉ
  2236.  
  2237. When an application program makes a Global Directory Service call using the XDS 
  2238. API, the call is handed to the DUA library. The DUA first looks in the DUA 
  2239. Cache (if specified) to see if the requested information is already available 
  2240. on the local node.  If it is not, the DUA queries a Directory Service Agent. 
  2241. The DSA may have the requested information, and if it does, it returns the 
  2242. results to the DUA. If it does not, the query can proceed in one of two ways. 
  2243. Either the DSA can query a different DSA on behalf of the DUA, or the DSA can 
  2244. return information that the DUA can query a second DSA itself.  The first 
  2245. method is called chaining, and the second method is called referral. In either 
  2246. case, different DSAs are queried until the information is found.  It is cached 
  2247. (if specified) in the DUA Cache, and the results are returned to the GDS 
  2248. application program. 
  2249.  
  2250.  
  2251. ΓòÉΓòÉΓòÉ 6.3.3.5. GDS and Network Services ΓòÉΓòÉΓòÉ
  2252.  
  2253. The X.500 Directory Service standard was written to run on top of the Open 
  2254. Systems Interconnection (OSI) communications protocols. The OSI protocols are 
  2255. divided into seven layers: the Physical, Data Link, Network, Transport, 
  2256. Session, Presentation, and Application Layers (see The OSI Protocol Layers.) 
  2257. The upper three layers are usually implemented as libraries that are linked 
  2258. together with the application process.  The lower layers are part of the 
  2259. operating system, and their services are made available to the upper layers 
  2260. through a transport interface.  The transport interface is the double line in 
  2261. The OSI Protocol Layers. 
  2262.  
  2263. The OSI Protocol Layers 
  2264.  
  2265. The Directory Service is an Application Layer protocol.  Its specification 
  2266. requires the use of two other application layer service elements: ACSE 
  2267. (Association Control Service Element) and ROSE (Remote Operation Service 
  2268. Element), and of the underlying layers. ROSE and ACSE of Layer 7, and the 
  2269. Presentation Service of Layer 6, are implemented in GDS by the Remote Operation 
  2270. Service (ROS) library. The OSI Session Service (Layer 5) is implemented in GDS 
  2271. by the OSI Session Service (OSS) library. These layers are equivalent to the 
  2272. communications support supplied by the DCE RPC Runtime system, which also fills 
  2273. in the gap between an application and the underlying transport communications. 
  2274. Although GDS supplies support for these upper OSI layers, they are used only 
  2275. for the Directory Service and are not made available for application 
  2276. programmers. 
  2277.  
  2278. DCE requires that the system it runs on provide support for transport layer 
  2279. communications (either OSI transport or IP transport). The OSI protocols 
  2280. running above the transport layer were originally designed to run over OSI 
  2281. transport protocols. Many DCE systems run TCP/IP, so GDS provides the 
  2282. capability for running over the TCP/IP transport protocol as specified in RFC 
  2283. 1006. 
  2284.  
  2285. The GDS software includes a compiler and a runtime library called MAVROS. The 
  2286. compiler takes specifications written in the Abstract Syntax Notation (ASN.1) 
  2287. and compiles them into C language code for header files and encoding/decoding 
  2288. routines, much as the RPC IDL compiler takes an IDL specification and compiles 
  2289. it into a header file and client and server stubs.  MAVROS is used to encode 
  2290. and decode the DAP and DSP protocols and their data values. 
  2291.  
  2292.  
  2293. ΓòÉΓòÉΓòÉ 6.3.3.6. GDS Relation to Standards ΓòÉΓòÉΓòÉ
  2294.  
  2295. The OSI software provided in DCE is based on the following ISO standards: 
  2296.  
  2297.    o  X.500/ISO 9594 
  2298.  
  2299.       The CCITT 1988 version (Blue Book), which shares the same text as ISO 
  2300.       Directory Standard 9594 (v1) published in 1990. 
  2301.  
  2302.    o  ROSE/ACSE/Presentation/Session 
  2303.  
  2304.       ISO 9072 (v1:1989), 8650 (v1:1988), 8649, 8823 (v1:1988), and 8327 
  2305.       (v2:1988) Protocol International Standards. The implementation follows 
  2306.       EWOS agreements. 
  2307.  
  2308.    o  ASN.1/BER 
  2309.  
  2310.       The ASN.1 compiler accepts ASN.1 syntax conformant to ISO 8824 and 
  2311.       generates routines to encode/decode data conformant to ISO 8825 Basic 
  2312.       Encoding Rules. 
  2313.  
  2314.  The GDS software provides functional extensions to the standards in the 
  2315.  following areas: 
  2316.  
  2317.    o  Replication 
  2318.  
  2319.    o  Knowledge Information Modelling and Administration 
  2320.  
  2321.    o  Schema Modelling and Administration 
  2322.  
  2323.    o  Subtree Administration 
  2324.  
  2325.    o  Caching 
  2326.  
  2327.    o  Remote Administration 
  2328.  
  2329.    o  Security (Access Control). 
  2330.  
  2331.  
  2332. ΓòÉΓòÉΓòÉ 6.3.4. DCE Global Directory Agent ΓòÉΓòÉΓòÉ
  2333.  
  2334. The DCE Global Directory Agent (GDA) is the third major component of the DCE 
  2335. Directory Service.  It acts as an intermediary between the local cell's 
  2336. directory service and the global directory services.  In particular, the GDA 
  2337. handles CDS calls that are directed to foreign cells. The foreign cells must be 
  2338. registered with one of the two global directory services that DCE supports-the 
  2339. X.500 Directory Service or the Domain Name Service. 
  2340.  
  2341.  
  2342. ΓòÉΓòÉΓòÉ 6.3.4.1. What Is GDA? ΓòÉΓòÉΓòÉ
  2343.  
  2344. The DCE Global Directory Agent is a process that acts as an interface between 
  2345. CDS and GDS or the Domain Name Service.  The GDA is not visible to the end 
  2346. user.  Programmers access the GDA indirectly through the XDS API. GDA 
  2347. administration consists simply of starting and stopping the GDA process. 
  2348.  
  2349. At least one GDA must be present in a DCE cell for that cell to acquire 
  2350. directory service information from other DCE cells. 
  2351.  
  2352.  
  2353. ΓòÉΓòÉΓòÉ 6.3.4.2. GDA and Other Directory Service Components ΓòÉΓòÉΓòÉ
  2354.  
  2355. GDA and Other Directory Service Components shows how the GDA relates to other 
  2356. Directory Service components. 
  2357.  
  2358. GDA and Other Directory Service Components 
  2359.  
  2360. The application uses XDS to make a Directory Service call. If the name to be 
  2361. accessed is a typed name, such as /.../C=US/O=OSF/OU=DCE/CN=SIG-DCE, then the 
  2362. query is passed to the Global Directory Service. If the name to be accessed is 
  2363. an untyped name, such as /.../cs.univ.edu/fs/usr/ziggy, or a partially typed 
  2364. name, such as /.../C=US/O=OSF/OU=DCE/fs/usr/snowpaws, then the query is passed 
  2365. to the Cell Directory Service. If the name is a local name, contained in the 
  2366. local CDS, then the query is handled by the local CDS server.  If it is a name 
  2367. that resides in a foreign cell, it is passed to the GDA. 
  2368.  
  2369. The GDA determines whether the foreign cell is registered in X.500 or DNS, 
  2370. based on the format of the name. It then contacts a GDS server or DNS server to 
  2371. find the foreign cell.  Once the foreign cell is found, information about that 
  2372. cell is cached so that subsequent lookups of names in that cell do not require 
  2373. the involvement of a global directory server. Finally, the CDS server in the 
  2374. foreign cell is contacted to handle the query about the name. 
  2375.  
  2376.  
  2377. ΓòÉΓòÉΓòÉ 6.3.5. The Directory Service Interfaces ΓòÉΓòÉΓòÉ
  2378.  
  2379. The X/Open Directory Service (XDS) and X/Open Object Management (XOM) APIs 
  2380. provided by the DCE Directory Service are based on X/Open specifications. APIs 
  2381. are not really separate components (every DCE component includes APIs to access 
  2382. it), but we call them out separately in this case because programmers use the 
  2383. Directory Service APIs to access both DCE directory services-CDS and GDS. 
  2384.  
  2385.  
  2386. ΓòÉΓòÉΓòÉ 6.3.5.1. The XOM Application Programming Interface ΓòÉΓòÉΓòÉ
  2387.  
  2388. XOM is an interface for creating, deleting, and accessing objects containing 
  2389. information.  It is an object-oriented architecture: each object belongs to a 
  2390. particular class, and classes can be derived from other classes, inheriting the 
  2391. characteristics of the original class.  The representation of the object is 
  2392. transparent to the programmer; the object can only be manipulated through the 
  2393. XOM interface, not directly.  XOM is used to create the objects that make up 
  2394. the Directory Service. 
  2395.  
  2396. XOM defines basic data types, such as Boolean, string, object, and so on. It 
  2397. defines an information architecture, including concepts such as objects, their 
  2398. attributes, and their classes. It also provides definitions of routines for 
  2399. manipulating objects. 
  2400.  
  2401.  
  2402. ΓòÉΓòÉΓòÉ 6.3.5.2. The XDS Interface ΓòÉΓòÉΓòÉ
  2403.  
  2404. The X/Open Directory Service (XDS) API is used by DCE programmers for accessing 
  2405. information in the DCE Directory Service, whether the information is managed by 
  2406. CDS or GDS. It uses the XOM interface for defining and handling the information 
  2407. objects that comprise the directory. These objects are passed as parameters and 
  2408. as return values to the XDS routines.  The XDS API contains routines for 
  2409. managing connections with a Directory Server: reading, comparing, adding, 
  2410. removing, and modifying entries; listing directories; and searching for 
  2411. entries.  Some extensions to the X/Open standard that the DCE XDS API provides 
  2412. include provisions for security and cache management. 
  2413.  
  2414.  
  2415. ΓòÉΓòÉΓòÉ 6.4. DCE Distributed Time Service ΓòÉΓòÉΓòÉ
  2416.  
  2417. A distributed computing system has many advantages, but also brings with it new 
  2418. problems. One of them is keeping the clocks on different nodes synchronized. In 
  2419. a single system, one clock provides the time of day to all applications. 
  2420. Computer hardware clocks are not completely accurate, but there is always one 
  2421. consistent idea of what time it is for all processes running on the system. 
  2422.  
  2423. In a distributed system, however, each node has its own clock. Even if it were 
  2424. possible to set all of the clocks in the distributed system to one consistent 
  2425. time at some point, those clocks would drift away from that time at different 
  2426. rates. As a result, the different nodes of a distributed system have different 
  2427. ideas of what time it is. This is a problem, for example, for distributed 
  2428. applications that care about the ordering of events. It is difficult to 
  2429. determine whether Event A on Node X occurred before Event B on Node Y because 
  2430. different nodes have different notions of the current time. 
  2431.  
  2432. The DCE Distributed Time Service (DTS) addresses this problem in two ways: 
  2433.  
  2434.    1. DTS provides a way to periodically synchronize the clocks on the 
  2435.       different hosts in a distributed system. 
  2436.  
  2437.    2. DTS also provides a way of keeping that synchronized notion of time 
  2438.       reasonably close to the correct time. (In DTS, correct time is considered 
  2439.       to be Coordinated Universal Time (UTC), an international standard.) 
  2440.  
  2441.  These services together allow cooperating nodes to have the same notion of 
  2442.  what time it is, and to also have that time be meaningful in the rest of the 
  2443.  world. 
  2444.  
  2445.  Distributed time is inherently more complex than time originating from a 
  2446.  single source. Because clocks cannot be continuously synchronizing, there is 
  2447.  always some discrepancy in their ideas of the current time as they drift 
  2448.  between synchronizations. In addition, indeterminacy is introduced in the 
  2449.  communications necessary for synchronization. Clocks synchronize by sending 
  2450.  messages about the time back and forth, but that message passing itself takes 
  2451.  a certain (unpredictable) amount of time. In addition to being able to express 
  2452.  the time of day, a distributed notion of time must also include an inaccuracy 
  2453.  factor. How close the timestamp is to the real time. As a result, keeping time 
  2454.  in a distributed environment requires not only new synchronization mechanisms, 
  2455.  but also a new form of expression of time, one that includes the inaccuracy of 
  2456.  the given time. In DTS, distributed time is expressed as a range, or interval, 
  2457.  rather than as a single point. 
  2458.  
  2459.  
  2460. ΓòÉΓòÉΓòÉ 6.4.1. What Is DTS? ΓòÉΓòÉΓòÉ
  2461.  
  2462. There are several different components that comprise the DCE Distributed Time 
  2463. Service: 
  2464.  
  2465.    o  Time Clerk 
  2466.  
  2467.    o  Time Servers 
  2468.  
  2469.         -  Local Time Server 
  2470.  
  2471.         -  Global Time Server 
  2472.  
  2473.         -  Courier Time Server 
  2474.  
  2475.         -  Backup Courier Time Server 
  2476.  
  2477.    o  DTS Application Programming Interface 
  2478.  
  2479.    o  Time Provider Interface (TPI) 
  2480.  
  2481.    o  Time format, which includes inaccuracy. 
  2482.  
  2483.  The active components are the Time Clerk and different kinds of Time Servers. 
  2484.  There are two interfaces: a programming interface (DTS API) and an interface 
  2485.  (TPI) to an External Time Provider. Finally, DTS defines a new format for 
  2486.  expressing time. 
  2487.  
  2488.  
  2489. ΓòÉΓòÉΓòÉ 6.4.1.1. Time Clerk ΓòÉΓòÉΓòÉ
  2490.  
  2491. The Time Clerk is the client side of DTS. It runs on a client machine, such as 
  2492. a workstation, and keeps the machine's local time synchronized by asking Time 
  2493. Servers for the correct time and adjusting the local time accordingly. 
  2494.  
  2495. The Time Clerk is configured to know the limit of the local system's hardware 
  2496. clock. When enough time has passed that the system's time is above a certain 
  2497. inaccuracy threshold (that is, the clock may have drifted far enough away from 
  2498. the correct time), the Time Clerk issues a synchronization. It queries various 
  2499. Time Servers for their opinion of the correct time of day, calculates the 
  2500. probable correct time and its inaccuracy based on the answers it receives, and 
  2501. updates the local system's time. 
  2502.  
  2503. The update can be gradual or abrupt. If an abrupt update is made, the software 
  2504. register holding the current time is modified to reflect the new time. Usually, 
  2505. however, it is desirable to update the clock gradually, and in this case the 
  2506. tick increment is modified until the correct time is reached. In other words, 
  2507. if a clock is normally incremented 10 milliseconds at each clock interrupt, and 
  2508. the clock is behind, then the clock register will instead be incremented 11 
  2509. milliseconds at each clock tick until it catches up. 
  2510.  
  2511. DTS Time Clerks and Servers shows a LAN with two Time Clerks (C) and three Time 
  2512. Servers (S). Each of the Time Clerks queries two of the Time Servers when 
  2513. synchronizing. The Time Servers all query each other. 
  2514.  
  2515. DTS Time Clerks and Servers 
  2516.  
  2517.  
  2518. ΓòÉΓòÉΓòÉ 6.4.1.2. Time Server ΓòÉΓòÉΓòÉ
  2519.  
  2520. The Time Server is a node that is designated to answer queries about the time. 
  2521. The number of Time Servers in a DCE cell is configurable; three per LAN is the 
  2522. minimum number. Time Clerks query these Time Servers for the time, and the Time 
  2523. Servers query one another, computing the new system time and adjusting their 
  2524. own clocks as appropriate. One or more of the Time Servers can be attached to 
  2525. an External Time Provider. 
  2526.  
  2527. A distinction is made between Local Time Servers (Time Servers on a given LAN) 
  2528. and Global Time Servers. They are located differently by their clients. A 
  2529. client may need to contact a Global Time Server if, for example, the client 
  2530. wants to get time from three servers, but only two servers are available on the 
  2531. LAN. In addition, it may be desirable to configure a DTS system to have two LAN 
  2532. servers and one Global Time Server synchronizing with each other, rather than 
  2533. just having time servers within the LAN synchronizing with each other. This 
  2534. condition requires Couriers. 
  2535.  
  2536. A Courier Time Server is a Time Server that synchronizes with a Global Time 
  2537. Server. That is, a Time Server outside the Courier's LAN.  It thus imports an 
  2538. outside time to the LAN by synchronizing with the outside Time Server. Other 
  2539. Time Servers in the LAN can be designated as Backup Courier Time Servers. If 
  2540. the Courier is not available, then one of the Backup Couriers serves in its 
  2541. place. 
  2542.  
  2543. Local, Courier, and Global Time Servers shows two LANs (LAN A and LAN B) and 
  2544. their Time Servers (S). In each LAN, one of the Time Servers acts as a Courier 
  2545. Time Server (Co) by querying a Global Time Server (G) (that is, a Time Server 
  2546. outside of either LAN) for the current time. 
  2547.  
  2548. Local, Courier, and Global Time Servers 
  2549.  
  2550.  
  2551. ΓòÉΓòÉΓòÉ 6.4.1.3. DTS Application Programming Interface ΓòÉΓòÉΓòÉ
  2552.  
  2553. DTS provides an API library that allows programmers to manipulate timestamps. 
  2554. For example, programmers can obtain a timestamp representing the current time, 
  2555. translate timestamps to different formats, and compare two timestamps. 
  2556.  
  2557.  
  2558. ΓòÉΓòÉΓòÉ 6.4.1.4. Time Provider Interface ΓòÉΓòÉΓòÉ
  2559.  
  2560. So far, all the components described are those supporting the synchronization 
  2561. of a distributed system's clocks. There must also be a way to ensure they are 
  2562. synchronized to the correct time. The notion of the correct time must come from 
  2563. an outside source, the External Time Provider. This may be a hardware device 
  2564. such as one that receives time from radio or telephone sources. This external 
  2565. time is given to a Time Server, which then communicates it to other servers. 
  2566. Such an External Time Provider can be very accurate. If no such device is 
  2567. available, the external time source can be the system administrator, who 
  2568. consults a trustworthy time source and enters it into the system. This method 
  2569. cannot, of course, be as accurate as an automatic time source, but it may be 
  2570. sufficient in some cases. 
  2571.  
  2572. DTS supports the ability to work with an External Time Provider through the 
  2573. Time Provider Interface. The External Time Provider itself, however, is a 
  2574. hardware device (or a person), and is therefore outside the scope of DCE. 
  2575.  
  2576.  
  2577. ΓòÉΓòÉΓòÉ 6.4.1.5. DTS Time Format ΓòÉΓòÉΓòÉ
  2578.  
  2579. The time format used in DTS is a standard one: UTC, which notes the time since 
  2580. October 15, 1582, the beginning of the Gregorian calendar. This time is 
  2581. interpreted using the Time Differential Factor (TDF) for use in different time 
  2582. zones. For example, the TDF in New York City is -5 hours. The TDF for 
  2583. Greenwich, England is 0. 
  2584.  
  2585.  
  2586. ΓòÉΓòÉΓòÉ 6.4.2. End User's Perspective ΓòÉΓòÉΓòÉ
  2587.  
  2588. From a user's point of view, the advantage of having a distributed time service 
  2589. is that more applications work as expected in a distributed environment. For 
  2590. example, the UNIX make program compiles new binary files if it discovers that 
  2591. the source file has been changed since the last time the binary was compiled. 
  2592. In a distributed system, this change may not work properly if the source is on 
  2593. one machine and the binary is on another, and the two machines have different 
  2594. ideas of what time it is (and of what time it was when their files were 
  2595. updated). Having DTS means that the nodes have roughly the same notion of time, 
  2596. and the make program works as expected. 
  2597.  
  2598.  
  2599. ΓòÉΓòÉΓòÉ 6.4.3. Programming with DTS ΓòÉΓòÉΓòÉ
  2600.  
  2601. There are two ways a programmer can be affected by the presence of DTS in a 
  2602. system. An application can retrieve the time from the system in the same way as 
  2603. before DTS was introduced. But with DTS, the system's time is more correct, and 
  2604. is synchronized with the clocks of other nodes in the distributed system. 
  2605.  
  2606. The programmer can also use the DTS API to directly deal with distributed time. 
  2607. Because  DTS time is represented differently than single-node time-it includes 
  2608. inaccuracy-new routines are provided for comparing times and for converting 
  2609. from DTS time format to the native system's time format. The API also includes 
  2610. routines for retrieving the current time, performing calculations on times, and 
  2611. handling time zone information. 
  2612.  
  2613. If programmers choose to use DTS directly, they must handle a new contingency 
  2614. when comparing times. When asking the question "Which time is earlier, Time A 
  2615. or Time B?", it is possible to get the answer "We do not know.". When the two 
  2616. time intervals overlap, there is no way of determining which occurred first. 
  2617. Programmers can handle this problem in two ways: they can ignore the inaccuracy 
  2618. and compare the two median times; or (the safer alternative) they can 
  2619. acknowledge that either time could have been first, and take the more 
  2620. conservative action. For example, if it cannot be determined, when the make 
  2621. program is running, whether the source or the executable was modified last, the 
  2622. compilation can be rerun, just in case the source was modified after the 
  2623. executable was generated. 
  2624.  
  2625.  
  2626. ΓòÉΓòÉΓòÉ 6.4.4. DTS Administration ΓòÉΓòÉΓòÉ
  2627.  
  2628. Administering a distributed time service is more involved than administering 
  2629. the time in a single node.  In a single node, time administration typically 
  2630. consists of setting the time and date when a system is first started up, and 
  2631. then updating the time occasionally to compensate for clock drift. 
  2632.  
  2633. DTS requires more setup and configuration work for the administrator, although 
  2634. once it is up and running, the administrative maintenance tasks are infrequent. 
  2635.  
  2636.  
  2637. ΓòÉΓòÉΓòÉ 6.4.5. Interaction with the Network Time Protocol ΓòÉΓòÉΓòÉ
  2638.  
  2639. The Network Time Protocol (NTP), an Internet recommended standard that is 
  2640. widely used in the Internet, is another method of synchronizing time in a 
  2641. distributed environment. It is possible for NTP servers to provide time to a 
  2642. DTS system, and for DTS servers to provide time to an NTP system. 
  2643.  
  2644.  
  2645. ΓòÉΓòÉΓòÉ 6.5. DCE Security Service ΓòÉΓòÉΓòÉ
  2646.  
  2647. A distributed computing environment brings with it new security requirements 
  2648. beyond those found in a nondistributed system. In a nondistributed system, the 
  2649. operating system can be trusted to protect resources from unauthorized access. 
  2650. This is not the case in open distributed systems, however. Communications take 
  2651. place over an accessible network, where messages between machines can be 
  2652. observed or forged. A new security system is required to control access to 
  2653. resources in a distributed environment. In DCE, resource protection is provided 
  2654. by the DCE Security Service. 
  2655.  
  2656.  
  2657. ΓòÉΓòÉΓòÉ 6.5.1. What Is the DCE Security Service? ΓòÉΓòÉΓòÉ
  2658.  
  2659. The DCE Security Service consists of several parts, including the 
  2660. Authentication Service, the Privilege Service, the Registry Service, the Access 
  2661. Control List Facility, and the Login Facility. 
  2662.  
  2663.    o  The Authentication Service 
  2664.  
  2665.       The Authentication Service enables two processes on different machines to 
  2666.       be certain of one another's identity, or to be authenticated. On a 
  2667.       timesharing system, this is provided in part by the operating system 
  2668.       kernel. Because a local host's operating system cannot necessarily be 
  2669.       trusted in a distributed system, an authentication service is necessary 
  2670.       in a distributed computing environment. 
  2671.  
  2672.    o  The Privilege Service 
  2673.  
  2674.       Once a server has verified the identity of the user who is making a 
  2675.       request, it still needs to determine whether the user should be 
  2676.       authorized, or granted the requested access to a resource that the server 
  2677.       controls. This function is provided by the DCE authorization service, 
  2678.       called the Privilege Service. It forwards in a secure way the information 
  2679.       that a server needs to know to determine what permissions it should grant 
  2680.       to the user. 
  2681.  
  2682.       Both the DCE Authentication Service and the DCE Privilege Service are 
  2683.       used in conjunction with DCE RPC and the Login Facility. The typical 
  2684.       application programmer does not interact with them directly, but instead 
  2685.       uses Authenticated RPC. 
  2686.  
  2687.    o  The Registry Service 
  2688.  
  2689.       The DCE Registry Service is a replicated service that manages the cell's 
  2690.       Security database. The Security database contains entries for security 
  2691.       entities, which are called principals. A principal can be a user or a 
  2692.       server, for example. The database also contains information associated 
  2693.       with each principal, for example, encryption keys, which are used in 
  2694.       authentication, authorization, and encryption of messages. The Registry 
  2695.       Service enables administrators to access and modify the database of DCE 
  2696.       users. 
  2697.  
  2698.    o  The Access Control List Facility 
  2699.  
  2700.       DCE Access Control Lists (ACLs) are lists of users who are authorized to 
  2701.       access a given resource. For example, a user can put a colleague on an 
  2702.       ACL for a certain file, thereby granting the colleague permission to read 
  2703.       and write the file. DCE ACLs are associated with many DCE resources: 
  2704.       files, entries in the Directory Service, and entries in the Security 
  2705.       Service. DCE ACLs are based on the POSIX 1003.6/Draft 3 specification. An 
  2706.       ACL API allows programmers to manipulate ACLs, and the acl_edit command 
  2707.       allows users to modify ACLs associated with resources they own. 
  2708.  
  2709.    o  The Login Facility 
  2710.  
  2711.       The DCE Login Facility initializes a user's DCE security environment. It 
  2712.       authenticates the user to the Security Service by means of the user's 
  2713.       password. The Security Service returns security credentials, which are 
  2714.       then used to authenticate the user to distributed services that are 
  2715.       accessed during the user's session, such as the Distributed File Service 
  2716.       or other applications. 
  2717.  
  2718.  
  2719. ΓòÉΓòÉΓòÉ 6.5.2. How DCE Security Works ΓòÉΓòÉΓòÉ
  2720.  
  2721. The DCE security services and facilities interact to provide a secure 
  2722. distributed computing environment. DCE Security Interactions shows this 
  2723. process. The presentation in this section is a simplified view of the 
  2724. transactions that actually take place. 
  2725.  
  2726. DCE Security Interactions 
  2727.  
  2728. When a DCE cell is first created, the DCE security administrator runs a program 
  2729. to create an initial DCE security database. The administrator then starts up a 
  2730. DCE Security Server, called secd, on the same machine as the database. Using 
  2731. the rgy_edit command, the administrator creates user accounts in the security 
  2732. database. 
  2733.  
  2734. After the administrator has created an account for a user, the user can 
  2735. participate in a secure DCE system. Typically, a user logs in at the beginning 
  2736. of a session. The Login Facility interacts with the Privilege Server to send a 
  2737. request for authentication credentials to the Authentication Server. The 
  2738. Authentication Server sends back the authentication credentials, called a 
  2739. Ticket. The reply is encrypted using the user's password, so if the user can 
  2740. supply the right password, the reply can be decrypted and the Ticket can be 
  2741. accessed. Tickets are used by clients to authenticate themselves to servers; 
  2742. that is, to prove that clients are really who they say they are. 
  2743.  
  2744. Next, the Login Facility sends the Ticket to the Privilege Server. It returns 
  2745. authorization credentials, called a Privilege Attribute Certificate (PAC). It 
  2746. contains authorization information specific to the user, such as the groups to 
  2747. which the user belongs. PACs are used to authorize users; that is, to help a 
  2748. server decide whether users should be granted access to resources that the 
  2749. server manages. When the Login Facility has finished running, the user has a 
  2750. security environment and can communicate in a secure way with application 
  2751. servers. 
  2752.  
  2753. For example, if the user runs an application client, the application client can 
  2754. use Authenticated RPC to communicate with the application server. The 
  2755. application server receives the RPC-based request, which includes the user's 
  2756. PAC. The server inspects the user's authorization credentials and compares them 
  2757. with the information in the Access Control List associated with the resource 
  2758. the user wants to access. If, for example, the ACL says that any user in the 
  2759. group friends can access the resource, and the user's PAC shows that the user 
  2760. is in the friends group, then the server will give the user access to the 
  2761. resource. 
  2762.  
  2763. The authentication and authorization information that is sent over the network 
  2764. is encrypted so that only the intended recipients can decrypt and read the 
  2765. messages. The application data can be encrypted as well to prevent any 
  2766. unauthorized user from reading the data that is sent over the network. 
  2767.  
  2768. The encryption used in DCE is secret key encryption, in which two parties share 
  2769. a secret: the encryption key. Using that key, they can encrypt and decrypt each 
  2770. other's messages. 
  2771.  
  2772.  
  2773. ΓòÉΓòÉΓòÉ 6.5.3. End User's Perspective ΓòÉΓòÉΓòÉ
  2774.  
  2775. Much of the DCE Security mechanism occurs without the knowledge of users; for 
  2776. example, secure communications take place without the user's intervention. 
  2777. There are several ways, however, in which users do come in contact with DCE 
  2778. Security. One instance is users typing in their passwords to authenticate 
  2779. themselves to DCE, usually at login time. Another case is changing access to 
  2780. resources they own. Finally, a user notices the Security Service in action when 
  2781. he or she is denied unauthorized access to resources. 
  2782.  
  2783.  
  2784. ΓòÉΓòÉΓòÉ 6.5.4. Programming with DCE Security ΓòÉΓòÉΓòÉ
  2785.  
  2786. Typically, a DCE programmer uses DCE RPC to implement a distributed 
  2787. application. Because DCE Security is integrated with RPC, in some cases the 
  2788. programmer does not need to access security services directly. Programming 
  2789. interfaces to the Security Service are available to the programmer who needs 
  2790. them. They include the ACL, Login, and Registry APIs, along with the API for 
  2791. Authenticated RPC. 
  2792.  
  2793.  
  2794. ΓòÉΓòÉΓòÉ 6.5.4.1. Authenticated RPC ΓòÉΓòÉΓòÉ
  2795.  
  2796. DCE RPC and DCE Security cooperate to provide authentication, authorization, 
  2797. and secure communications. To use Authenticated RPC, the client must already 
  2798. have a security environment, such as that set up by the Login Facility. The 
  2799. server side of the application registers its name and the type of 
  2800. authentication service it supports. In DCE, two types of authentication service 
  2801. are supported-secret key authentication, which is based on Kerberos or no 
  2802. authentication. 
  2803.  
  2804. The client makes a call to indicate the authentication service, protection 
  2805. level, and authorization service it wants to use for RPC communications with a 
  2806. given server. The authentication service can be either secret key 
  2807. authentication or no authentication. The protection level ranges from 
  2808. authentication at the beginning of an RPC session, to authenticating each 
  2809. message or packet, to ensuring that a packet has not been modified in transit, 
  2810. to encrypting all user data. In general, the more secure the protection level, 
  2811. the higher the price paid in terms of performance, because the security 
  2812. mechanisms involve encrypting and decrypting data, which take up processor 
  2813. time. 
  2814.  
  2815. The authorization service chosen by the client can be either uncertified or 
  2816. certified. In uncertified authorization, the authorization information sent to 
  2817. a server consists only of the client's name. In certified authorization, the 
  2818. authorization information consists of the UUIDs of the client's name and 
  2819. groups. The certified authorization information is in a PAC. In both the 
  2820. certified and uncertified authorization service, the authorization information 
  2821. is sent securely. 
  2822.  
  2823. The server uses the authentication and authorization information about the 
  2824. client to determine whether it should be granted the access to the resource 
  2825. that it has requested. The server knows the identity of the client and the 
  2826. authorization groups the client belongs to. The server compares the client's 
  2827. credentials against information in the ACLs to determine whether a client 
  2828. should be given the access it is requesting. 
  2829.  
  2830.  
  2831. ΓòÉΓòÉΓòÉ 6.5.4.2. Access Control Lists ΓòÉΓòÉΓòÉ
  2832.  
  2833. If a distributed application uses ACLs to control access to its resources, the 
  2834. distributed application programmer needs to write an ACL Manager to handle 
  2835. access to the resources. The ACL Manager is part of the server side of the 
  2836. application. Typically, one Access Control List is associated with each 
  2837. resource that the server manages. The ACL contains one or more entries 
  2838. specifying a user or group and the operations the user or group is permitted to 
  2839. perform on the resource (for example, read, write, or execute permission). The 
  2840. ACL Manager takes the authorization information supplied by the application 
  2841. client during an RPC, and compares it to the ACL for the requested resource. 
  2842. The ACL Manager indicates whether the client is or is not allowed the requested 
  2843. access to the resource. 
  2844.  
  2845. DCE ACL Example shows a simple DCE ACL. Every DCE ACL contains a field 
  2846. indicating its type. The ACL type in this case is sp_data_acl. Each DCE ACL 
  2847. also contains a field indicating what the default for the entries in the ACL. 
  2848. In the example, the default cell is /.../C=US/O=OSF/OU=DCE. The rest of the ACL 
  2849. consists of ACL entries. 
  2850.  
  2851. DCE ACL Example 
  2852.  
  2853. ACL entries can be of several types. The example shows three types of ACL 
  2854. entries: user, group, and foreign_user. The cell to which the user and group 
  2855. entries belongs is the default cell listed in the ACL. The cell to which the 
  2856. foreign_user entry belongs is specified in the entry. 
  2857.  
  2858. Each entry includes a list of permissions. The different possible permissions 
  2859. are determined by the ACL type (in this example, sp_data_acl). There are two 
  2860. types of permissions in the ACL example: r for read permission, and w for write 
  2861. permission. 
  2862.  
  2863. Based on this ACL, the sp_data_acl ACL Manager will give the principal 
  2864. snowpawsin the cell /.../C=US/O=OSF/OU=DCE read and write permission to the 
  2865. object, the members of the friends group in the /.../C=US/O=OSF/OU=DCE cell 
  2866. read permission to the object, and the principal ziggy in the foreign cell 
  2867. /.../cs.univ.edu read permission. 
  2868.  
  2869.  
  2870. ΓòÉΓòÉΓòÉ 6.5.5. DCE Security Service Administration ΓòÉΓòÉΓòÉ
  2871.  
  2872. There are two types of DCE Security administration: local and cellwide. The 
  2873. administrator of a DCE machine controls the local passwd_override file. This 
  2874. file determines some security aspects that are specific to the local machine, 
  2875. such as which principals may use the machine and the password for a local 
  2876. account (such as root). The local security administrator also controls the 
  2877. local file that contains user and password information, if it exists. (This 
  2878. file may contain a copy of information from the security database to be used in 
  2879. case the security server cannot be reached or for already existing applications 
  2880. that expect such a local file.) 
  2881.  
  2882. The cell-wide security administrator manages the cell's Security Servers. This 
  2883. task includes managing the secd process, which provides security services on 
  2884. the security server machine, creating and editing the security database, and 
  2885. controlling replication of security data. 
  2886.  
  2887. The cell-wide security administrator is also involved in cross-cell 
  2888. authentication because clients in one cell read to communicate securely with 
  2889. servers in another cell. The security administrators in the two cells must 
  2890. register each other's Authentication Service in their Registry. Clients in one 
  2891. cell can then authenticate servers in another cell, and authorized clients in 
  2892. one cell can access services in a foreign cell. 
  2893.  
  2894.  
  2895. ΓòÉΓòÉΓòÉ 6.5.6. DCE Security and Kerberos ΓòÉΓòÉΓòÉ
  2896.  
  2897. The DCE Authentication Service is based on MIT Project Athena's Kerberos 
  2898. Network Authentication Service, Version 5. The Kerberos Key Distribution Center 
  2899. (KDC) server is a part of the DCE Security server, secd. The Kerberos API is 
  2900. used internally by DCE Security, but is not exposed for use by the application 
  2901. programmer. Instead, DCE application programmers use the Authenticated RPC API. 
  2902.  
  2903.  
  2904. ΓòÉΓòÉΓòÉ 6.6. DCE Distributed File Service ΓòÉΓòÉΓòÉ
  2905.  
  2906. Distributed systems can provide many advantages over centralized systems, such 
  2907. as higher availability of data and resources, the ability to share information 
  2908. throughout a very large (even worldwide) system, and efficient use of special 
  2909. computing functionality. 
  2910.  
  2911. A distributed file system is an example of an application that can take 
  2912. advantage of all of these aspects of a distributed system. It can make files 
  2913. highly available through replication, making it possible to access a copy of a 
  2914. file even if one of the machines on which the file is not available. A 
  2915. distributed file system can provide access to files from anywhere in the world, 
  2916. allowing cooperation among geographically dispersed users. The distributed file 
  2917. system can also give users on machines with little storage space the ability to 
  2918. access and store data on machines with much more disk space available. 
  2919.  
  2920. The DCE Distributed File Service (DFS) is a distributed client/server 
  2921. application, built on the underlying DCE services. It takes full advantage of 
  2922. both the lower-level DCE services (such as RPC, Security, and Directory) and 
  2923. the distributed computing system itself. 
  2924.  
  2925.  
  2926. ΓòÉΓòÉΓòÉ 6.6.1. What Is DFS? ΓòÉΓòÉΓòÉ
  2927.  
  2928. DFS is a distributed application that manages information in the form of a file 
  2929. system. 
  2930.  
  2931.  
  2932. ΓòÉΓòÉΓòÉ 6.6.1.1. DFS Data Organization ΓòÉΓòÉΓòÉ
  2933.  
  2934. DFS data is organized at three levels as shown in (see Files, Directories, 
  2935. Filesets, and Aggregates). 
  2936.  
  2937. Files, Directories, Filesets, and Aggregates 
  2938.  
  2939. The three levels of DFS data are, from smallest to largest: 
  2940.  
  2941.    o  Files and Directories 
  2942.  
  2943.       The file is the unit of user data. Directories organize files (and other 
  2944.       directories) into a hierarchical tree structure. 
  2945.  
  2946.    o  Filesets 
  2947.  
  2948.       The fileset is the unit of administration.  A fileset is a subtree of 
  2949.       files and directories, no larger than a disk or partition (or logical 
  2950.       volume if supported).  The fileset is a convenient grouping of files for 
  2951.       administrative purposes; for example, the subtree of files pertaining to 
  2952.       a particular project can be grouped on the same fileset. 
  2953.  
  2954.    o  Aggregates 
  2955.  
  2956.       The aggregate is the unit of disk storage, similar to a disk partition. 
  2957.       It is also the unit of fileset exporting. It can contain one or more 
  2958.       filesets. 
  2959.  
  2960.  
  2961. ΓòÉΓòÉΓòÉ 6.6.1.2. DFS Components ΓòÉΓòÉΓòÉ
  2962.  
  2963. DFS is implemented by several components; this section briefly describes each 
  2964. of them. 
  2965.  
  2966.  
  2967. ΓòÉΓòÉΓòÉ 6.6.1.2.1. Cache Manager ΓòÉΓòÉΓòÉ
  2968.  
  2969. The Cache Manager is the client side of DFS, which runs on any machine acting 
  2970. as a DFS client. It takes a user's file system request and looks in a cache to 
  2971. see if a copy of the data is already on the local system. If not, the Cache 
  2972. Manager sends a request to the File Server machine for the data and caches it 
  2973. locally. Because files are cached on the client, a local copy of the file can 
  2974. subsequently be accessed instead of the remote copy on the File Server machine. 
  2975. As a result, network traffic to the File Server machine, as well as File Server 
  2976. machine load, is much lighter than if the client has to go to the server each 
  2977. time it need to access the file. 
  2978.  
  2979.  
  2980. ΓòÉΓòÉΓòÉ 6.6.1.2.2. File Exporter ΓòÉΓòÉΓòÉ
  2981.  
  2982. The File Exporter is the server side of DFS. It runs on a DFS File Server 
  2983. machine, where it handles requests from remote clients for the files that it 
  2984. manages. The File Exporter receives an RPC call and accesses its own local file 
  2985. system, which can be the DCE Local File System or another file system such as a 
  2986. UNIX File System (UFS), to service the request. Using the Token Manager, it 
  2987. handles the synchronization of different clients, which may be concurrently 
  2988. accessing the same file, and returns the requested information to the client. 
  2989.  
  2990.  
  2991. ΓòÉΓòÉΓòÉ 6.6.1.2.3. DCE Local File System ΓòÉΓòÉΓòÉ
  2992.  
  2993. The DCE Local File System (DCE LFS) is the physical file system provided with 
  2994. DCE. It manages the storage of files on a disk. The scope of DCE LFS is a 
  2995. single computer, and LFS is analogous to a UNIX file system. However, LFS is 
  2996. more powerful than most UNIX local file systems. It includes more features than 
  2997. a distributed file service based on a traditional UNIX file system. They 
  2998. include the ability to use more flexible authorization in the form of DCE 
  2999. Access Control Lists (ACLs); the ability to replicate, back up, and even move 
  3000. different parts of the file system without interruption in service; and fast 
  3001. recovery after a crash, made possible through logging (in contrast to UNIX file 
  3002. systems, which must execute the time-consuming fsck command). DCE LFS includes 
  3003. support for DCE cells; for example, the owner of a file or name in an Access 
  3004. Control List can be a name in a foreign cell. 
  3005.  
  3006. A UNIX File System (UFS) can be used as the File Server machine's physical file 
  3007. system as an alternative to LFS. DFS can export UFS, issue synchronization 
  3008. tokens for files in UFS, and perform fileset operations such as dump and 
  3009. restore on UFS. There is only one fileset UFS partition, resulting in large 
  3010. filesets that are not convenient to move. Also, UFS filesets cannot be 
  3011. replicated. A File Server machine using LFS will have more function than a File 
  3012. Server machine using UFS, although UFS systems can be supported in DFS. 
  3013.  
  3014.  
  3015. ΓòÉΓòÉΓòÉ 6.6.1.2.4. Token Manager ΓòÉΓòÉΓòÉ
  3016.  
  3017. The Token Manager runs on the File Server machine and synchronizes access to 
  3018. files by multiple clients. It issues tokens, to DFS clients carry various 
  3019. access rights, usually read or write. There are four different kinds of tokens: 
  3020. data tokens for access to file and directory data, status tokens for access to 
  3021. file and directory status, lock tokens for locking a portion of a file, and 
  3022. open tokens for opening a file. 
  3023.  
  3024. The Token Manager on the server side cooperates with the Token Management Layer 
  3025. in the Cache Manager (on the client side) to manage tokens. If a client 
  3026. requests an operation that conflicts with a token that another client holds, 
  3027. the conflicting token is revoked before the requested operation can proceed. 
  3028.  
  3029.  
  3030. ΓòÉΓòÉΓòÉ 6.6.1.2.5. Fileset Server ΓòÉΓòÉΓòÉ
  3031.  
  3032. The Fileset Server allows administrators to create, delete, move, and perform 
  3033. other operations on filesets. For example, an administrator can use the Fileset 
  3034. Server to move a fileset from one File Server machine to another for load 
  3035. balancing.  (If DCE LFS is not being used as the physical file system, then an 
  3036. entire partition is treated as a single fileset, and some fileset operations 
  3037. may not be supported.) 
  3038.  
  3039.  
  3040. ΓòÉΓòÉΓòÉ 6.6.1.2.6. Basic OverSeer Server ΓòÉΓòÉΓòÉ
  3041.  
  3042. The Basic OverSeer Server, (BOS Server), monitors the DFS processes that run on 
  3043. a server and restarts them when needed. It maintains information about those 
  3044. processes and responds to administrative requests for that information. 
  3045.  
  3046.  
  3047. ΓòÉΓòÉΓòÉ 6.6.1.2.7. Replication Server ΓòÉΓòÉΓòÉ
  3048.  
  3049. The Replication Server is an administrative server that replicates filesets. 
  3050. For example, an administrator can create a copy of a fileset on a second File 
  3051. Server machine. The Replication Server will update the replica at a specified 
  3052. interval (every 30 minutes, for example). Even if the file's master File Server 
  3053. machine is unavailable, a copy of the file is still available online through 
  3054. the secondary copy on the alternative File Server machine. 
  3055.  
  3056.  
  3057. ΓòÉΓòÉΓòÉ 6.6.1.2.8. Update Server ΓòÉΓòÉΓòÉ
  3058.  
  3059. The Update Server distributes binary files or administration information to 
  3060. nodes in the DFS system. The Update Server consists of an upclient and an 
  3061. upserver. The upclient software runs on a machine that receives new versions of 
  3062. the binary files or administration information. The upserver program runs on a 
  3063. master machine and automatically propagates any changes to binaries or 
  3064. administration information to the machines running the upclient software. 
  3065.  
  3066.  
  3067. ΓòÉΓòÉΓòÉ 6.6.1.2.9. Scout ΓòÉΓòÉΓòÉ
  3068.  
  3069. The Scout administrative tool collects and displays information about the File 
  3070. Exporters running on File Server machines, so a system administrator to monitor 
  3071. the DFS system. 
  3072.  
  3073.  
  3074. ΓòÉΓòÉΓòÉ 6.6.1.2.10. Backup Server ΓòÉΓòÉΓòÉ
  3075.  
  3076. The Backup Server is a facility for backing up File Server data. It maintains 
  3077. backup records in the Backup Database. It schedules file system backups and 
  3078. makes incremental dumps. The unit for backup is the fileset. 
  3079.  
  3080.  
  3081. ΓòÉΓòÉΓòÉ 6.6.1.2.11. Fileset Location Server ΓòÉΓòÉΓòÉ
  3082.  
  3083. The Fileset Location Server is a replicated directory service, which keeps 
  3084. track of the filesets and where they can be found on File Server machines. It 
  3085. provides lookup service analogous to the service CDS provides, except the 
  3086. Fileset Location Server is specialized for DFS. The location of the fileset is 
  3087. hidden; it can be accessed simply by its name. As a result, a fileset can be 
  3088. moved and its location updated in the Fileset Location Database without users 
  3089. and applications having to know about the move. 
  3090.  
  3091. Some DFS components run in the host machine's kernel. These are the Cache 
  3092. Manager and Token Management Layer on DFS client machines; the File Exporter, 
  3093. Token Manager, and DCE Local File System on File Server machines; and parts of 
  3094. the Fileset Location Server. 
  3095.  
  3096.  
  3097. ΓòÉΓòÉΓòÉ 6.6.1.3. Features of DCE DFS ΓòÉΓòÉΓòÉ
  3098.  
  3099. The DCE Distributed File Service has the following features: 
  3100.  
  3101.    o  Uniform File Access 
  3102.  
  3103.       DFS is based on a global namespace. A DFS file is accessed by the same 
  3104.       name no matter where in the distributed system it is accessed from. Users 
  3105.       do not need to know the network address or name of the File Server 
  3106.       machines where a file is located to name and access the file. 
  3107.  
  3108.    o  Intracell Location Transparency 
  3109.  
  3110.       Data can move from one location to another within a cell without 
  3111.       affecting a user or programmer. An administrator can move a fileset from 
  3112.       one File Server machine to another for load balancing, for example, 
  3113.       without disturbing users. 
  3114.  
  3115.    o  Performance 
  3116.  
  3117.       DFS is a high-performance file service. Fast response is achieved in part 
  3118.       through the caching of file and directory data on the DFS client machine. 
  3119.       This reduces the time it takes for a user to access a file, and it also 
  3120.       reduces traffic on the network and the load on the File Server machine. 
  3121.       The first time a user on a machine accesses a file, the Cache Manager 
  3122.       gets a copy of the file from the File Server machine, and caches it on 
  3123.       the client machine. Subsequent accesses to the file are then made to the 
  3124.       copy on the client machine rather than to the File Server machine. 
  3125.  
  3126.    o  Availability 
  3127.  
  3128.       DFS makes its service and data highly available in several ways. One way 
  3129.       is through replication: a copy of a file can be stored on more than one 
  3130.       File Server machine. If the file's main File Server machine is 
  3131.       unavailable,  a copy of the file may still be available (although 
  3132.       possibly not up-to-date) on another File Server machine. This replication 
  3133.       is especially useful for files that are accessed by many users and change 
  3134.       infrequently (for example, binary files). 
  3135.  
  3136.       Another way DFS achieves high availability is through caching. Copies of 
  3137.       files are cached on DFS clients. If a client is temporarily disconnected 
  3138.       from the network a user may be able to access a file since a copy may 
  3139.       reside in the local cache. 
  3140.  
  3141.       DFS administration can occur while users continue to access DFS files, 
  3142.       another means of providing high availability. Both backups and relocation 
  3143.       of DFS files can be done without making the files unavailable to users. 
  3144.  
  3145.       The physical file system portion of DFS, called the DCE Local File 
  3146.       System, is designed for fast recovery (yielding higher availability) 
  3147.       after failures. This is possible because DCE LFS is a log-based file 
  3148.       system; that is, LFS keeps a record of actions taken that affect the file 
  3149.       system structure. In the case of a system crash, the record can be 
  3150.       replayed to bring the file system to a consistent state. 
  3151.  
  3152.    o  Support for Distributed Application Programming 
  3153.  
  3154.       DFS is itself a distributed application; but it in turn, supports the 
  3155.       development of other distributed applications. Programmers can use DFS to 
  3156.       share data or to communicate in a distributed application. DFS takes care 
  3157.       of the network communications and movement, synchronization, and storage 
  3158.       of shared data. 
  3159.  
  3160.    o  Ease of Administration and Scalability 
  3161.  
  3162.       DFS files are grouped into units called filesets, which are convenient to 
  3163.       administer. The processes that implement DFS, such as the File Exporter 
  3164.       and backup processes, are monitored and maintained automatically by the 
  3165.       BOS, resulting in less work for a DFS administrator and a more scalable 
  3166.       system. Because of the high performance mentioned previously, DFS has a 
  3167.       high client-to-server ratio. This leads to a scalable system: clients can 
  3168.       be added with little effect on other clients and the rest of the system. 
  3169.       Finally, DFS includes tools such as the Backup Server and Update Server, 
  3170.       that automate time-consuming administrative tasks. 
  3171.  
  3172.    o  Integration 
  3173.  
  3174.       DFS is fully integrated with other DCE components, including RPC, 
  3175.       Security, Directory Service, and Threads. 
  3176.  
  3177.    o  Interoperation 
  3178.  
  3179.       DFS interoperates with other file systems; for example, a UFS file system 
  3180.       can be exported using DFS. 
  3181.  
  3182.    o  Standards 
  3183.  
  3184.       DFS maintains POSIX single-site read/write semantics. The DCE Local File 
  3185.       System is POSIX 1003.1 conformant. 
  3186.  
  3187.  
  3188. ΓòÉΓòÉΓòÉ 6.6.2. DFS Configuration ΓòÉΓòÉΓòÉ
  3189.  
  3190. This section describes those DFS components that run on the different types of 
  3191. DFS machines: DFS client machines, DFS File Server machines, and other DFS 
  3192. server machines. 
  3193.  
  3194. The Cache Manager runs on every machine that acts as a DFS client. It 
  3195. communicates with File Server machines to provide DFS service (see DFS Client 
  3196. and File Server Machines). 
  3197.  
  3198. DFS Client and File Server Machines 
  3199.  
  3200. Several processes run on DFS File Server machines: the File Exporter (which 
  3201. includes a Token Manager), the BOS, the Replication Server, the Fileset Server, 
  3202. and the client side of the Update Server. Also present on the File Server 
  3203. machine is a physical file system, either DCE LFS or UFS. 
  3204.  
  3205. Finally, some processes must run on a machine that contains the database they 
  3206. access (usually the DFS File Server machine). See Other DFS Servers. 
  3207.  
  3208. Other DFS Servers 
  3209.  
  3210. These processes are the server side of the Update Server (which runs both on 
  3211. machines containing master copies of configuration files and machines 
  3212. containing master copies of binary files), the Fileset Location Server (which 
  3213. runs on the machine where the Fileset Location Database is located), and the 
  3214. Backup Server (co-located with the Backup Database). 
  3215.  
  3216.  
  3217. ΓòÉΓòÉΓòÉ 6.6.3. End User's Perspective ΓòÉΓòÉΓòÉ
  3218.  
  3219. Users are usually not aware that some of the files that they access are stored 
  3220. on their local computer, some on their cell's File Server, and some in another 
  3221. cell. To a user, there is one large, worldwide file system. Users will notice a 
  3222. few differences between working on a distributed file system and working on a 
  3223. local file system. For example, DFS users are issued quotas for file storage 
  3224. and can run commands for information about these quotas. There are also 
  3225. commands for determining the location of a file, and other information that is 
  3226. specific to a distributed file system. 
  3227.  
  3228.  
  3229. ΓòÉΓòÉΓòÉ 6.6.4. Programming with DFS ΓòÉΓòÉΓòÉ
  3230.  
  3231. Application programmers typically use DFS transparently by making POSIX 1003.1 
  3232. file system calls. Additional DFS interfaces provide administrative 
  3233. capabilities, such as calls for administering filesets. 
  3234.  
  3235. The fact that programmers can use a distributed file system through a familiar 
  3236. interface means that DFS enables distributed applications programming without 
  3237. special programming expertise. Through the use of the Distributed File Service, 
  3238. programmers can write distributed applications without the use of RPC and the 
  3239. client/server model, if the DFS data sharing model is appropriate to the 
  3240. application. 
  3241.  
  3242.  
  3243. ΓòÉΓòÉΓòÉ 6.6.5. DFS Administration ΓòÉΓòÉΓòÉ
  3244.  
  3245. Administration of DFS is a significant task, because several processes that 
  3246. implement DFS need to be set up and maintained. Administrative tools are 
  3247. provided to aid in this task.  DFS configuration is varied and flexible. A DFS 
  3248. administrator has the additional task of designing and evolving a configuration 
  3249. of DFS servers and clients that best suits the needs of the system's users. 
  3250.  
  3251. DFS day-to-day administration includes fileset administration, such as making 
  3252. filesets available, backing them up, and moving them. 
  3253.  
  3254.  
  3255. ΓòÉΓòÉΓòÉ 6.7. DCE Diskless Support Service ΓòÉΓòÉΓòÉ
  3256.  
  3257. The DCE Diskless Support Service enables nodes without disks to participate in 
  3258. a DCE environment. A diskless node has no disk on which to store a local file 
  3259. system. Diskless support means providing facilities over the network to replace 
  3260. the facilities that would usually be on the local disk. The four areas that 
  3261. must be supported are as follows: 
  3262.  
  3263.    o  Starting a kernel 
  3264.  
  3265.    o  Obtaining configuration information 
  3266.  
  3267.    o  Remote file system support 
  3268.  
  3269.    o  Remote swapping support. 
  3270.  
  3271.  At start up, a traditional machine looks for a binary image of its operating 
  3272.  system in a well-known file on its local disk (such as /vmunix on many UNIX 
  3273.  machines). A diskless system, because it has no local disk on which to store 
  3274.  its kernel, must be able to start  by some other method. In DCE, a kernel is 
  3275.  obtained over the network. 
  3276.  
  3277.  Once a diskless client is started, it needs some information before it can be 
  3278.  fully operational. Because it cannot read that information from the root file 
  3279.  system (it does not have one yet), it has to get it from another source. The 
  3280.  diskless node obtains this information from a Diskless Configuration (DLC) 
  3281.  Server. 
  3282.  
  3283.  One of the main functions of a local disk is the permanent storage of user and 
  3284.  system files. A diskless system needs a place to store its files, because it 
  3285.  cannot store them locally. Diskless machines can use a remote file server to 
  3286.  store and retrieve their files. 
  3287.  
  3288.  Another typical use of local disks on traditional machines is for swapping. 
  3289.  When a process is blocked and the CPU needs more space in main memory to run 
  3290.  the next process, the disk can be used to temporarily store the blocked 
  3291.  process. When it is time for the blocked process to run again, it is brought 
  3292.  back into main memory from the disk. A diskless node needs another way to swap 
  3293.  processes in and out of its memory. It uses a remote swap server; that is, the 
  3294.  disk on another machine on the network is used for the diskless machine's swap 
  3295.  space. (Depending on the diskless machine's operating system, this facility 
  3296.  may be used for paging as well as swapping.) For diskless machines using DFS, 
  3297.  paging can be done to files instead of through the Swap Server. 
  3298.  
  3299.  
  3300. ΓòÉΓòÉΓòÉ 6.7.1. What Is DCE Diskless Support Service? ΓòÉΓòÉΓòÉ
  3301.  
  3302. DCE diskless configurations involve four types of machines (see Diskless Client 
  3303. and Related Servers): 
  3304.  
  3305.    o  Diskless Client (BOOTP and TFTP clients) 
  3306.  
  3307.    o  Boot Server (bootpd and tftpd) 
  3308.  
  3309.    o  Configuration Server 
  3310.  
  3311.    o  Swap Server (optional) 
  3312.  
  3313.    o  DFS File Server. 
  3314.  
  3315.  Some of these servers can be located together; for example, the Boot Server 
  3316.  and Configuration Server can run on a Distributed File Server machine. (The 
  3317.  Boot Server and Configuration Server must run on the same machine.) 
  3318.  
  3319.  Diskless Client and Related Servers 
  3320.  
  3321.  
  3322. ΓòÉΓòÉΓòÉ 6.7.2. Booting Support for Diskless Operation ΓòÉΓòÉΓòÉ
  3323.  
  3324. Booting support consists of code that resides in the Read-Only Memory (ROM) in 
  3325. the diskless client machine because that is the only place on a diskless node 
  3326. that is available for permanent storage. The code contains the client sides of 
  3327. the BOOTP and Trivial File Transfer Protocol (TFTP) protocols. Because DCE is 
  3328. limited to offering software, not hardware, the actual supplied code runs in 
  3329. user mode and demonstrates the ability to get a kernel over the network using 
  3330. these two protocols. 
  3331.  
  3332. During the boot process, the diskless client uses BOOTP to obtain its own 
  3333. network address and the address of its Boot Server. It then uses TFTP to obtain 
  3334. the kernel file to be booted. 
  3335.  
  3336.  
  3337. ΓòÉΓòÉΓòÉ 6.7.3. The Diskless Configuration Process ΓòÉΓòÉΓòÉ
  3338.  
  3339. A diskless node needs configuration information before the root file system is 
  3340. available; it is obtained from the Diskless Configuration Server. This server 
  3341. supplies the diskless node with information about: 
  3342.  
  3343.    o  The Client's Swap Server (if needed) 
  3344.    o  The Client's root file system location and server 
  3345.    o  DFS Cache Manager configuration parameters. 
  3346.  
  3347.  Using these configuration values, the diskless node starts the DFS Cache 
  3348.  Manager and mounts the appropriate root file system from the DFS File Server 
  3349.  machine. 
  3350.  
  3351.  
  3352. ΓòÉΓòÉΓòÉ 6.7.4. File Service Support for Diskless Operation ΓòÉΓòÉΓòÉ
  3353.  
  3354. DCE Diskless Support Service provides the ability for a diskless machine to use 
  3355. a remote file service. This facility is based on the DCE Distributed File 
  3356. Service (see DCE Distributed File Service). It has several aspects: 
  3357.  
  3358.    o  Diskless Cache Manager 
  3359.    o  Machine-Specific Files 
  3360.    o  Device Files. 
  3361.  
  3362.  When DFS is used on a machine with a local disk, the DFS Cache Manager (the 
  3363.  client side of DFS) uses storage on the disk to keep a cache of recently 
  3364.  accessed files. This greatly reduces network traffic to the File Server 
  3365.  machine, and increases performance. On a diskless machine the Cache Manager 
  3366.  uses an in-memory cache. 
  3367.  
  3368.  Because DCE supports interoperation among heterogeneous systems, a File Server 
  3369.  machine may have clients with different kinds of systems. A mechanism is 
  3370.  needed to distinguish between, for example, binary files intended for one 
  3371.  platform, and binaries for a second platform. When a diskless client needs to 
  3372.  execute the binary file, it gets the right version for its system.  DFS 
  3373.  provides a mechanism for making this distinction in the file system. 
  3374.  
  3375.  The machine-specific file mechanism consists of two special filenames: @host 
  3376.  and @sys. 
  3377.  
  3378.  The @host file name is replaced with the host name of the client. This special 
  3379.  file name is used for files that are specific to the individual client 
  3380.  machine, for example, an /etc/rc file or equivalent. 
  3381.  
  3382.  The @sys file name is replaced with the client's system name. For example, the 
  3383.  diskless server may have copies of executable files for various platforms. The 
  3384.  file name is replaced with the specific client's platform, so the client can 
  3385.  access the appropriate executables for its operating system/hardware 
  3386.  configuration. 
  3387.  
  3388.  Finally, some of the files in a DCE file system are actually devices (that is, 
  3389.  /dev files). They are interpreted as devices on the client machine, but not on 
  3390.  the server machine. 
  3391.  
  3392.  
  3393. ΓòÉΓòÉΓòÉ 6.7.5. Swapping Support for Diskless Operation ΓòÉΓòÉΓòÉ
  3394.  
  3395. DCE provides diskless swapping support for systems that swap or page to 
  3396. devices; systems that page to files do not need this support. The diskless 
  3397. swapping support has the following components: 
  3398.  
  3399.    o  Swap Server 
  3400.  
  3401.       On the Swap Server machine, the diskless swap server daemon, runs in user 
  3402.       mode. It maintains a database of information about its clients, swap 
  3403.       files, and swap devices, and accepts administrative requests to modify 
  3404.       that information. It also accepts requests from users to access swap 
  3405.       space, which it keeps on disk. 
  3406.  
  3407.    o  Client Swap Driver 
  3408.  
  3409.       On the diskless node, the Swap Client runs in kernel mode. It looks like 
  3410.       a device driver to the diskless node's operating system. It takes swap 
  3411.       requests from the client's kernel and forwards them across the network to 
  3412.       the Swap Server. 
  3413.  
  3414.    o  Swap Administration Program 
  3415.  
  3416.       The diskless swap administration program, allows an administrator to 
  3417.       control the Swap Server remotely. It makes requests to the Swap Server to 
  3418.       modify the Swap Server's database. Requests modify client information and 
  3419.       information about files and devices to be used for swapping. 
  3420.  
  3421.  Swap Process From Application To Server shows the interaction among an 
  3422.  application on the diskless machine, its operating system and swap driver, and 
  3423.  the Swap Server and swap store on the Swap Server machine. 
  3424.  
  3425.  Swap Process From Application To Server 
  3426.  
  3427.  
  3428. ΓòÉΓòÉΓòÉ 6.8. Two DCE Application Examples ΓòÉΓòÉΓòÉ
  3429.  
  3430. This section presents two implementations of a very simple distributed 
  3431. application, called greet. You should have some familiarity with UNIX systems 
  3432. and the C programming language. The greet application is implemented in two 
  3433. different ways: one using DCE RPC, the other using DCE DFS. 
  3434.  
  3435.  
  3436. ΓòÉΓòÉΓòÉ 6.8.1. The greet Application: An Implementation Using DCE RPC ΓòÉΓòÉΓòÉ
  3437.  
  3438. This first implementation of the greet application is an example of a simple 
  3439. DCE RPC-based application. The client side of the application sends a greeting 
  3440. to the server side of the application. The server prints the client's greeting 
  3441. and sends a return greeting back to the client. The client prints the server's 
  3442. reply and terminates. 
  3443.  
  3444.  
  3445. ΓòÉΓòÉΓòÉ 6.8.1.1. Steps in Developing a DCE RPC Application ΓòÉΓòÉΓòÉ
  3446.  
  3447. This section provides a step-by-step description of the development of the 
  3448. greet application. 
  3449.  
  3450.    1. Generate an IDL template. 
  3451.  
  3452.       The first step is to run the uuidgen program, which creates a Unique 
  3453.       Universal Identifier for uniquely labelling the application's interface. 
  3454.       It also creates a template for an IDL file. The following command: 
  3455.  
  3456.             uuidgen -i > greet.idl
  3457.       creates the file greet.idl. It contains the following: 
  3458.  
  3459.             [
  3460.             uuid(3d6ead56-06e3-11ca-8dd1-826901beabcd),
  3461.             version(1.0)
  3462.             ]
  3463.             interface INTERFACENAME
  3464.             {
  3465.  
  3466.             }
  3467.  
  3468.    2. Name the interface. 
  3469.  
  3470.       Replace the string INTERFACENAME in the IDL file with the name of the 
  3471.       application interface, in this case, greetif. 
  3472.  
  3473.             [
  3474.             uuid(3d6ead56-06e3-11ca-8dd1-826901beabcd),
  3475.             version(1.0)
  3476.             ]
  3477.             interface greetif
  3478.             {
  3479.  
  3480.             }
  3481.  
  3482.    3. Define the interface operations. 
  3483.  
  3484.       Within the braces, write definitions of the operations comprising the 
  3485.       interface. In this example, there is only one operation, called greet. 
  3486.  
  3487.             /*
  3488.              * greet.idl
  3489.              *
  3490.              * The "greet" interface.
  3491.              */
  3492.  
  3493.             [uuid(3d6ead56-06e3-11ca-8dd1-826901beabcd),
  3494.             version(1.0)]
  3495.  
  3496.             interface greetif
  3497.             {
  3498.                 const long int REPLY_SIZE = 100;
  3499.  
  3500.                 void greet(
  3501.                     [in]            handle_t h,
  3502.                     [in, string]    char client_greeting[],
  3503.                     [out, string]   char server_reply[REPLY_SIZE]
  3504.                 );
  3505.             }
  3506.  
  3507.       The first line of the operation definition gives the name of the 
  3508.       operation, greet, and indicates by the void declaration that it has no 
  3509.       meaningful return value. The next three lines specify the arguments to 
  3510.       the operation, namely h, client_greeting, and server_reply. The first 
  3511.       argument is a handle containing binding information for the server. The 
  3512.       second is a string that is passed from the client to the server (the 
  3513.       client's greeting). The third argument is a string returned from the 
  3514.       server back to the client (the server's reply). 
  3515.  
  3516.    4. Run the IDL compiler. 
  3517.  
  3518.       The following command runs the IDL compiler: 
  3519.  
  3520.             idl greet.idl
  3521.       (Some of the commands in this section are somewhat simplified. See 
  3522.       Makefile for greet Application for the complete command.) Three new files 
  3523.       are created automatically as a result of this command: 
  3524.  
  3525.         o  greet.h 
  3526.  
  3527.         o  greet_cstub.o 
  3528.  
  3529.         o  greet_sstub.o 
  3530.  
  3531.    5. Write the client application code greet_client.c. 
  3532.  
  3533.       In general, the DCE RPC application programmer writes three application 
  3534.       code files: 
  3535.  
  3536.         o  The Client code 
  3537.  
  3538.         o  The Server initialization code 
  3539.  
  3540.         o  The Server operation code. 
  3541.  
  3542.           The following is the client code for the greet application, a file 
  3543.           called greet_client.c. 
  3544.  
  3545.                     /*
  3546.                      * greet_client.c
  3547.                      *
  3548.                      * Client of "greet" interface.
  3549.                      */
  3550.  
  3551.                     #include <stdio.h>
  3552.                     #include <dce/nbase.h>
  3553.                     #include <dce/rpc.h>
  3554.  
  3555.                     #include "greet.h"
  3556.                     #include "util.h"
  3557.  
  3558.                     int
  3559.                     main(
  3560.                         int argc,
  3561.                         char *argv[]
  3562.                     )
  3563.                     {
  3564.                         rpc_ns_handle_t import_context;
  3565.                         handle_t binding_h;
  3566.                         error_status_t status;
  3567.                         idl_char reply[REPLY_SIZE];
  3568.  
  3569.                         if (argc < 2) {
  3570.                             fprintf(stderr, "usage: greet_client <CDS pathname>\n");
  3571.                             exit(1);
  3572.                         }
  3573.  
  3574.                         /*
  3575.                          * Start importing servers using the name specified
  3576.                          * on the command line.
  3577.                          */
  3578.                         rpc_ns_binding_import_begin(
  3579.                             rpc_c_ns_syntax_default, (unsigned_char_p_t) argv[1],
  3580.                                 greetif_v1_0_c_ifspec, NULL, &import_context, &status);
  3581.                         ERROR_CHECK(status, "Can't begin import");
  3582.  
  3583.                         /*
  3584.                          * Import the first server (we could interate here,
  3585.                          * but we'll just take the first one).
  3586.                          */
  3587.                         rpc_ns_binding_import_next(import_context, &binding_h, &status);
  3588.                         ERROR_CHECK(status, "Can't import");
  3589.  
  3590.                         /*
  3591.                          * Make the remote call.
  3592.                          */
  3593.                         greet(binding_h, (idl_char *) "hello, server", reply);
  3594.  
  3595.                         printf("The Greet Server said: %s\n", reply);
  3596.                     }
  3597.  
  3598.           In this routine, the client makes two calls to the RPC runtime to 
  3599.           acquire binding information needed to communicate with the server. 
  3600.           The client then calls the greet remote procedure, supplying a 
  3601.           greeting to be sent to the server. The client prints the reply 
  3602.           received by the server. 
  3603.  
  3604.    6. Write the server initialization code greet_server.c. 
  3605.  
  3606.       The second file that the DCE RPC application programmer must write is the 
  3607.       server initialization code. This is boilerplate code; that is, it is 
  3608.       largely the same for any RPC application. The greet_server.c file 
  3609.       contains the server initialization code for the greet application. 
  3610.  
  3611.             /*
  3612.              * greet_server.c
  3613.              *
  3614.              * Main program (initialization) for "greet" server.
  3615.              */
  3616.  
  3617.             #include <stdio.h>
  3618.             #include <dce/dce_error.h>
  3619.             #include <dce/rpc.h>
  3620.  
  3621.             #include "greet.h"
  3622.             #include "util.h"
  3623.  
  3624.             int
  3625.             main(
  3626.                 int argc,
  3627.                 char *argv[]
  3628.             )
  3629.             {
  3630.                 unsigned32 status;
  3631.                 rpc_binding_vector_t *binding_vector;
  3632.  
  3633.                 if (argc < 2) {
  3634.                     fprintf(stderr, "usage: greet_server <CDS pathname>\n");
  3635.                     exit(1);
  3636.                 }
  3637.  
  3638.                 /*
  3639.                  * Register interface with RPC runtime.
  3640.                  */
  3641.                 rpc_server_register_if(greetif_v1_0_s_ifspec,  NULL, NULL,
  3642.                    &status);
  3643.                 ERROR_CHECK(status, "Can't register interface");
  3644.  
  3645.                 /*
  3646.                  * Use all protocol sequences that are available.
  3647.                  */
  3648.  
  3649.                 rpc_server_use_all_protseqs(rpc_c_protseq_max_reqs_default,
  3650.                     &status);
  3651.                 ERROR_CHECK(status, "Can't use protocol sequences");
  3652.  
  3653.                 /*
  3654.                  * Get the binding handles generated by the runtime.
  3655.                  */
  3656.                 rpc_server_inq_bindings(&binding_vector, &status);
  3657.                 ERROR_CHECK(status, "Can't get bindings for server");
  3658.  
  3659.                 /*
  3660.                  * Register assigned endpoints with endpoint mapper (RPCD).
  3661.                  */
  3662.                 rpc_ep_register(
  3663.                     greetif_v1_0_s_ifspec, binding_vector, NULL,
  3664.                     (unsigned_char_p_t) "greet server version 1.0", &status);
  3665.                 ERROR_CHECK(status, "Can't register with endpoint map");
  3666.  
  3667.                 /*
  3668.                  * Export ourselves into the CDS namespace.
  3669.                  */
  3670.                 rpc_ns_binding_export(
  3671.                     rpc_c_ns_syntax_default, (unsigned_char_p_t) argv[1],
  3672.                     greetif_v1_0_s_ifspec, binding_vector, NULL, &status);
  3673.                 ERROR_CHECK(status, "Can't export into CDS namespace");
  3674.  
  3675.                 /*
  3676.                  * Start listening for calls.
  3677.                  */
  3678.                 printf("Listening...\n");
  3679.  
  3680.                 rpc_server_listen(rpc_c_listen_max_calls_default, &status);
  3681.                 ERROR_CHECK(status, "Can't start listening for calls");
  3682.  
  3683.                 /*
  3684.                  * Unregister from endpoint mapper.
  3685.                  */
  3686.                 rpc_ep_unregister(
  3687.                     greetif_v1_0_s_ifspec, binding_vector, NULL, &status);
  3688.                 ERROR_CHECK(status, "Can't unregister from endpoint map");
  3689.             }
  3690.  
  3691.       In this file, the server registers its interface with the RPC runtime. It 
  3692.       then retrieves the binding information assigned to it by the runtime. It 
  3693.       registers its binding information with the RPC endpoint mapper, and then 
  3694.       with the Cell Directory Service. It then is ready to service requests. 
  3695.       Before exiting, the server unregisters its information in the endpoint 
  3696.       map. 
  3697.  
  3698.    7. Write the server operation code greet_manager.c. 
  3699.  
  3700.       The third file that an RPC programmer writes is the code that implements 
  3701.       the operations defined in the IDL file. In this case, there is only one 
  3702.       operation, greet. The greet_manager.c file implements this operation. 
  3703.  
  3704.             /*
  3705.              * greet_manager.c
  3706.              *
  3707.              * Implementation of "greet" interface.
  3708.              */
  3709.  
  3710.             #include <stdio.h>
  3711.             #include "greet.h"
  3712.  
  3713.             void
  3714.             greet(
  3715.                 handle_t h,
  3716.                 idl_char *client_greeting,
  3717.                 idl_char *server_reply
  3718.             )
  3719.             {
  3720.                 printf("The client says: %s\n", client_greeting);
  3721.  
  3722.                 strcpy(server_reply, "Hi, client!");
  3723.             }
  3724.  
  3725.       The server prints the message it received from the client, then puts its 
  3726.       own message in the reply parameter to be sent back to the client. 
  3727.  
  3728.    8. Write any utility code. 
  3729.  
  3730.       In addition to the three standard RPC application code files, 
  3731.       greet_client.c, greet_server.c, and greet_manager.c, the greet 
  3732.       application contains a utility file for handling errors. This file is 
  3733.       called util.c. 
  3734.  
  3735.             /*
  3736.              * util.c
  3737.              *
  3738.              * Utility routine(s) shared by "greet" client and server programs.
  3739.              */
  3740.  
  3741.             #include <stdio.h>
  3742.             #include <dce/nbase.h>
  3743.             #include <dce/dce_error.h>
  3744.  
  3745.             void
  3746.             error_exit(
  3747.                 error_status_t status,
  3748.                 char *text
  3749.             )
  3750.             {
  3751.                 unsigned char error_text[100];
  3752.                 int dummy;
  3753.  
  3754.                 dce_error_inq_text(status, error_text, &dummy);
  3755.                 fprintf(stderr, "Error: %s - %s\n", text, error_text);
  3756.                 exit(1);
  3757.             }
  3758.  
  3759.       The util.c file comes with a header file called util.h. 
  3760.  
  3761.             /*
  3762.              * util.h
  3763.              *
  3764.              * Declarations of utility routine(s) shared by "greet" client
  3765.              * and server programs.
  3766.              */
  3767.  
  3768.             #define ERROR_CHECK(status, text) \
  3769.                 if (status != error_status_ok) error_exit(status, text)
  3770.  
  3771.             void
  3772.             error_exit(
  3773.                 error_status_t status,
  3774.                 char *text
  3775.             );
  3776.  
  3777.    9. Compile the client and server programs. 
  3778.  
  3779.       The greet_client and greet_server programs can now be compiled. The 
  3780.       client side of the application is compiled using the following command 
  3781.       (again, somewhat simplified): 
  3782.  
  3783.             cc -o greet_client greet_client.c greet_cstub.o util.o -ldce
  3784.  
  3785.       The server side of the application is compiled as follows: 
  3786.  
  3787.             cc -o greet_server greet_server.c greet_manager.c greet_sstub.o util.o -ldce
  3788.  
  3789.  
  3790. ΓòÉΓòÉΓòÉ 6.8.1.2. Installing and Running the greet Application ΓòÉΓòÉΓòÉ
  3791.  
  3792. This section describes the process for an administrator who is installing and 
  3793. starting up the greet application, and a user who is running it. 
  3794.  
  3795.    o  Installing the Client and Server Programs 
  3796.  
  3797.       An administrator installs the greet_client program on machines on which 
  3798.       users will run the greet application. The administrator also installs the 
  3799.       greet_server program on one or more machines that will execute the server 
  3800.       part of the greet application. 
  3801.  
  3802.    o  Starting the Greet Server 
  3803.  
  3804.       To start up the Greet Server, the administrator enters the following 
  3805.       command on a machine that has the Greet Server installed: 
  3806.  
  3807.             greet_server /.../my_cell/subsys/my_company/greet_server
  3808.  
  3809.    o  Running the greet Application 
  3810.  
  3811.       To run the greet application, a user types the following command on any 
  3812.       Greet Client machine: 
  3813.  
  3814.             greet_client /.../my_cell/subsys/my_company/greet_server
  3815.  
  3816.       The Greet Server will print the message it received from the Greet 
  3817.       Client.  Then the Greet Client prints the reply that the Greet Server 
  3818.       sent back to it. 
  3819.  
  3820.  
  3821. ΓòÉΓòÉΓòÉ 6.8.1.3. Makefile for greet Application ΓòÉΓòÉΓòÉ
  3822.  
  3823. The commands given in the preceding description for building the greet 
  3824. application have been simplified. Following is the actual Makefile, containing 
  3825. the complete commands for generating the application. 
  3826.  
  3827. DCEROOT         = /opt/dcelocal
  3828. CC              = /bin/cc
  3829. IDL             = idl
  3830. LIBDIRS         = -L${DCEROOT}/usr/lib
  3831. LIBS            = -ldce
  3832. LIBALL          = ${LIBDIRS} ${LIBS}
  3833. INCDIRS         = -I. -I${DCEROOT}/usr/include
  3834. CFLAGS          = -g ${INCDIRS}
  3835. IDLFLAGS        = -v ${INCDIRS} -cc_cmd "${CC} ${CFLAGS} -c"
  3836.  
  3837. all:    greet_client greet_server
  3838.  
  3839. greet.h greet_cstub.o greet_sstub.o: greet.idl
  3840.         ${IDL} ${IDLFLAGS} greet.idl
  3841.  
  3842. greet_client:   greet.h greet_client.o util.o greet_cstub.o
  3843.         ${CC} -o greet_client greet_client.o greet_cstub.o \
  3844.                 util.o ${LIBALL}
  3845.  
  3846. greet_server:   greet.h greet_server.o greet_manager.o util.o \
  3847.                 greet_sstub.o
  3848.         ${CC} -o greet_server greet_server.o greet_manager.o \
  3849.                 greet_sstub.o util.o ${LIBALL}
  3850.  
  3851. greet_client.c greet_server.c util.c: util.h
  3852. greet_manager.c greet_client.c greet_server.c: greet.h
  3853.  
  3854.  
  3855. ΓòÉΓòÉΓòÉ 6.8.2. The greet Application: An Implementation Using DCE DFS ΓòÉΓòÉΓòÉ
  3856.  
  3857. This section describes an implementation of the greet application using the DCE 
  3858. Distributed File Service. In this version, the client and server use well-known 
  3859. files in the DCE filespace to communicate with each other. 
  3860.  
  3861. This application looks just like an application using a local file system, 
  3862. except for the names of the files in the DCE filespace. The communication 
  3863. (using RPC) is done by DFS, and is not visible to the programmer. 
  3864.  
  3865. (Please note that this example is intended to be simple, not necessarily to 
  3866. model good programming. For example, a real application would check return 
  3867. values for errors, and would be likely to use the lock system call to 
  3868. synchronize client and server access to files, rather than waking up every few 
  3869. seconds to check if a file had been created.) 
  3870.  
  3871. The application contains three files: dfs_greet.h, dfs_greet_client.c, and 
  3872. dfs_greet_server.c. 
  3873.  
  3874.    1. The dfs_greet.h File 
  3875.  
  3876.       This file gives the well-known filenames that the client and server 
  3877.       communicate through. 
  3878.  
  3879.             /*
  3880.              * DCE Program Example Using DFS
  3881.              *
  3882.              * dfs_greet.h
  3883.              */
  3884.  
  3885.             #define C_GREET_FILE "/...my_cell/fs/opt/my_company/greet/client"
  3886.             #define S_GREET_FILE "/...my_cell/fs/opt/my_company/greet/server"
  3887.  
  3888.    2. The dfs_greet_client.c File 
  3889.  
  3890.       This is the client side of the application. 
  3891.  
  3892.             /*
  3893.              * DCE Program Example Using DFS
  3894.              * dfs_greet_client.c
  3895.              *
  3896.              * The client writes a message for the server into
  3897.              * a well-known file.  It waits until the server has
  3898.              * created its own well-known file, then reads the
  3899.              * server's message from the file, prints it, and
  3900.              * deletes the file.
  3901.              */
  3902.  
  3903.             #include <stdio.h>
  3904.             #include "dfs_greet.h"
  3905.  
  3906.             #define C_GREET_TEXT "Hi, server!"
  3907.  
  3908.             main()
  3909.             {
  3910.                     FILE *f;
  3911.                     size_t ret;
  3912.                     char s[BUFSIZ];
  3913.  
  3914.                     f = fopen(C_GREET_FILE, "w");
  3915.                     ret = fwrite(C_GREET_TEXT, sizeof(C_GREET_TEXT), 1, f);
  3916.                     fclose(f);
  3917.                     while ((f = fopen(S_GREET_FILE, "r")) == NULL)
  3918.                             sleep(3);
  3919.                     ret = fread(s, sizeof(char), BUFSIZ, f);
  3920.                     fclose(f);
  3921.                     printf("Server says: %s", s);
  3922.                     unlink(S_GREET_FILE);
  3923.             }
  3924.  
  3925.    3. The dfs_greet_server.c File 
  3926.  
  3927.       This file contains the server side of the greet application. 
  3928.  
  3929.             /*
  3930.              * DCE Example Program Using DFS
  3931.              * dfs_greet_server.c
  3932.              *
  3933.              * The server waits until the client has created a
  3934.              * well-known file, then reads the client's message
  3935.              * from the file, prints the message, and removed the
  3936.              * file.  The server then writes a message for the
  3937.              * client into another well-known file.
  3938.              */
  3939.  
  3940.             #include <stdio.h>
  3941.             #include "dfs_greet.h"
  3942.  
  3943.             #define S_GREET_TEXT "Hi, client!"
  3944.  
  3945.             main()
  3946.             {
  3947.                     FILE *f;
  3948.                     size_t ret;
  3949.                     char s[BUFSIZ];
  3950.  
  3951.                     while ((f = fopen(C_GREET_FILE, "r")) == NULL)
  3952.                             sleep(3);
  3953.                     ret = fread(s, sizeof(char), BUFSIZ, f);
  3954.                     fclose(f);
  3955.                     printf("Client says: %s", s);
  3956.                     unlink(C_GREET_FILE);
  3957.  
  3958.                     f = fopen(S_GREET_FILE, "w");
  3959.                     ret = fwrite(S_GREET_TEXT, sizeof(S_GREET_TEXT), 1, f);
  3960.                     fclose(f);
  3961.             }
  3962.  
  3963.  The Makefile for creating the client and server programs is as follows: 
  3964.  
  3965.   # Makefile for DCE Program Example Using DFS
  3966.  
  3967.  
  3968.   all:    dfs_greet_client dfs_greet_server
  3969.  
  3970.   dfs_greet_client:       dfs_greet.h dfs_greet_client.c
  3971.           cc -o dfs_greet_client dfs_greet_client.c
  3972.  
  3973.   dfs_greet_server:       dfs_greet.h dfs_greet_server.c
  3974.           cc -o dfs_greet_server dfs_greet_server.c
  3975.  
  3976.  The Greet Client and Server are installed as in the RPC application. They are 
  3977.  run in the same way, except they do not take a <servername> argument. 
  3978.  
  3979.  
  3980. ΓòÉΓòÉΓòÉ 7. Integration of DCE Technology Components ΓòÉΓòÉΓòÉ
  3981.  
  3982. One of the advantages of the OSF Distributed Computing Environment is the 
  3983. integration of its component technologies with one another. Wherever 
  3984. appropriate, DCE technologies make use of other DCE technologies to accomplish 
  3985. their tasks. For example, the Cell Directory Service uses many of the other DCE 
  3986. components, such as Threads, RPC, DTS, and Security, in providing its service. 
  3987.  
  3988. Because the DCE technologies are well integrated, they also depend on one 
  3989. another for correct functioning. For example, CDS needs a running DCE Security 
  3990. Server to provide its directory service in a secure manner. These dependencies 
  3991. among technology components have implications for DCE activities such as 
  3992. porting, planning, and bringing up a DCE cell. 
  3993.  
  3994. This chapter describes how DCE components are integrated and the implications 
  3995. of their resulting interdependencies. 
  3996.  
  3997.  
  3998. ΓòÉΓòÉΓòÉ 7.1. Integration Matrix ΓòÉΓòÉΓòÉ
  3999.  
  4000. DCE Component Integration shows which DCE components are used by each of the 
  4001. other DCE components. The components listed in the leftmost column are the 
  4002. technology consumers. The components listed in the top row are the technology 
  4003. providers. For example, in the box (row RPC, column Threads), the X indicates 
  4004. that RPC makes use of the Threads technology. The abbreviation NA (for Not 
  4005. Applicable) in a box shows the intersection of a technology with itself. A 
  4006. blank box indicates that the consuming technology does not use the providing 
  4007. technology. The following sections include discussions of technology 
  4008. integration, including reasons why certain technologies do not use other 
  4009. technologies. 
  4010.  
  4011.  ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4012.  Γöé      DCE Component Integration                    Γöé
  4013.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4014.  Γöé      Γöé THREADS Γöé RPC Γöé CDS Γöé DTS Γöé SECURITY Γöé GDS Γöé DFS Γöé  DISKLESS Γöé
  4015.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4016.  Γöé THREADS  Γöé   NA  Γöé   Γöé   Γöé   Γöé      Γöé   Γöé   Γöé      Γöé
  4017.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4018.  Γöé RPC    Γöé   X   Γöé  NA Γöé  X  Γöé   Γöé   X   Γöé   Γöé   Γöé      Γöé
  4019.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4020.  Γöé CDS    Γöé   X   Γöé  X  Γöé  NA Γöé  X  Γöé   X   Γöé  X  Γöé   Γöé      Γöé
  4021.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4022.  Γöé DTS    Γöé   X   Γöé  X  Γöé  X  Γöé  NA Γöé   X   Γöé   Γöé   Γöé      Γöé
  4023.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4024.  Γöé SECURITY  Γöé   X   Γöé  X  Γöé  X  Γöé  X  Γöé   NA   Γöé   Γöé   Γöé      Γöé
  4025.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4026.  Γöé GDS    Γöé     Γöé   Γöé   Γöé   Γöé      Γöé  NA Γöé   Γöé      Γöé
  4027.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4028.  Γöé DFS    Γöé   X   Γöé  X  Γöé  X  Γöé  X  Γöé   X   Γöé   Γöé  NA Γöé      Γöé
  4029.  Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4030.  Γöé DISKLESS  Γöé   X   Γöé  X  Γöé  X  Γöé   Γöé      Γöé   Γöé  X  Γöé   NA   Γöé
  4031.  ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4032.  
  4033. The DCE components support distributed applications, and in accomplishing that 
  4034. task, they also use each other's services, as shown in the matrix. The use of a 
  4035. given DCE component by another DCE component can provide an example for the 
  4036. application programmer. 
  4037.  
  4038. Note that many of the boxes are filled in, especially those representing the 
  4039. five most basic components (Threads, RPC, CDS, DTS, and Security). As a result, 
  4040. some pairs of components have mutual dependencies, for example, the Security 
  4041. and CDS components. The Security Service uses information from the Cell 
  4042. Directory Service, while CDS uses the Security Service to control access to its 
  4043. information. The implications of these mutual dependencies are discussed in 
  4044. Implications of Mutual Dependencies. 
  4045.  
  4046.  
  4047. ΓòÉΓòÉΓòÉ 7.2. Integration by Technology Component ΓòÉΓòÉΓòÉ
  4048.  
  4049. This section takes each of the DCE technology components in turn and describes 
  4050. its use of other technology components. 
  4051.  
  4052.    o  DCE Threads Integration 
  4053.  
  4054.       The DCE Threads component does not involve distribution across nodes and 
  4055.       therefore does not use any other DCE component. 
  4056.  
  4057.    o  DCE RPC Integration 
  4058.  
  4059.       RPC uses Threads, CDS, and the Security Service. Threads are used to 
  4060.       allow clients and servers to deal with multiple simultaneous RPCs. As a 
  4061.       result of the use of threads by RPC, any component that uses DCE RPC also 
  4062.       uses threads. 
  4063.  
  4064.       RPC uses CDS to look up servers that support a given interface or object 
  4065.       to discover the locations of those servers and the protocols that they 
  4066.       use. GDS can be used indirectly by RPC. If an RPC server is located in a 
  4067.       foreign cell that is registered in the X.500 namespace, GDS is accessed 
  4068.       via CDS to find the given RPC server. 
  4069.  
  4070.       RPC uses a notion of time, for example, how long to wait for a reply to a 
  4071.       message. This involves only the time on the local node, such as comparing 
  4072.       the time when a message was sent with the current time to see if a 
  4073.       time-out has expired. As a result, RPC does not use DTS timestamps 
  4074.       directly. RPC does, however, depend on DTS to help ensure that clocks on 
  4075.       different machines run at approximately the same rate. 
  4076.  
  4077.       The DCE Security Service is used to authenticate the RPC client and 
  4078.       server to one another, and to pass authorization information about the 
  4079.       client for the server to check against its ACLs. 
  4080.  
  4081.    o  DCE CDS Integration 
  4082.  
  4083.       CDS makes use of several DCE technology components. It uses DCE Threads 
  4084.       to allow the CDS server and the CDS clerk to handle multiple requests 
  4085.       concurrently. It uses RPC in communications between CDS clerks and CDS 
  4086.       servers, as well as in communications between CDS servers, such as for 
  4087.       keeping replicated information consistent. 
  4088.  
  4089.       CDS relies on DTS to maintain synchronized clocks in the network for use 
  4090.       in the sequencing of updates to the namespace and for use in replication. 
  4091.       CDS uses GDS (via the GDA) to find foreign cells registered in GDS. And 
  4092.       finally, CDS uses DCE Security's Access Control Lists and authenticated 
  4093.       RPC to ensure authorized access to directory data and administrative 
  4094.       functions. 
  4095.  
  4096.    o  DCE DTS Integration 
  4097.  
  4098.       DTS uses RPC in the communications between DTS clients and DTS servers. 
  4099.       It also uses RPC in the protocol between a Time Server and a Time 
  4100.       Provider. Because DTS is based on DCE RPC, which uses DCE Threads, DTS 
  4101.       also uses Threads. 
  4102.  
  4103.       DTS depends on CDS to find Time Servers and their locations. GDS may be 
  4104.       used indirectly if a Global Time Server is registered in a foreign cell 
  4105.       that is registered in the X.500 namespace. DTS uses the DCE Security 
  4106.       Service to authenticate its interactions. 
  4107.  
  4108.    o  DCE Security Service Integration 
  4109.  
  4110.       The DCE Security Server, like all DCE RPC-based applications, uses DCE 
  4111.       Threads. The Security Server communicates with its clients using DCE RPC. 
  4112.       CDS is used to find Security Servers. GDS may be used indirectly in 
  4113.       accessing a Security Server that is in a foreign cell registered in the 
  4114.       X.500 namespace. 
  4115.  
  4116.       The Security Service uses a notion of time for the expiration of 
  4117.       credentials and for detecting replays of authentication information. It 
  4118.       assumes reasonable synchronization of the clocks in the network, which is 
  4119.       accomplished in DCE by the Distributed Time Service. The Security Service 
  4120.       does not use DTS timestamps in this version of DCE. 
  4121.  
  4122.    o  DCE GDS Integration 
  4123.  
  4124.       The GDS server does not use DCE Threads; instead, it uses multiple 
  4125.       processes to handle multiple requests. Because GDS is based on the X.500 
  4126.       standard, which is specified to run over ISO protocols, GDS does not use 
  4127.       DCE RPC. 
  4128.  
  4129.       GDS does not use CDS. Because GDS is at a higher level in the global 
  4130.       namespace hierarchy, CDS refers to GDS but GDS does not refer to CDS. GDS 
  4131.       has a separate security mechanism and ACLs from the DCE Security Service. 
  4132.       Again, this is in order for GDS to comply with the international 
  4133.       directory service standard. 
  4134.  
  4135.    o  DCE DFS Integration 
  4136.  
  4137.       The DFS servers that run in user space (for example, the Backup, Fileset 
  4138.       Location, and Fileset Servers) all use DCE Threads to handle multiple 
  4139.       requests. Because the DFS File Exporter and Cache Manager run in the 
  4140.       kernel, they do not use DCE Threads. DCE Threads is a user-space, not 
  4141.       kernel, threads implementation. 
  4142.  
  4143.       DFS uses DCE RPC for all remote interaction between the DFS clients (for 
  4144.       example, the Cache Manager and Scout) and servers (for example, the File 
  4145.       Exporter, Fileset Location Server, and Backup Server). Because the Cache 
  4146.       Manager and File Exporter run in the kernel, they use a kernel version of 
  4147.       RPC. DFS uses CDS to locate Fileset Location Servers. DFS may use GDS 
  4148.       indirectly (via CDS) to locate Fileset Location Servers in foreign cells 
  4149.       registered in the X.500 namespace. DFS uses authenticated RPC and DCE 
  4150.       ACLs to protect its resources. DFS relies on DTS to maintain clock 
  4151.       synchronization in the network. 
  4152.  
  4153.    o  DCE Diskless Support Service Integration 
  4154.  
  4155.       The Swap Server component of the Diskless Support Service uses DCE 
  4156.       Threads for concurrency. The Diskless Support Service uses RPC for its 
  4157.       interactions with CDS and between the Swap Client and Server. The 
  4158.       Diskless Cache Manager also uses RPC to communicate with the DFS File 
  4159.       Exporter. It does not use RPC for startup, however, because it requires 
  4160.       very small, simple network services. Diskless Support uses CDS to find 
  4161.       its configuration information. Diskless Support Service includes 
  4162.       instructions on how to modify the diskless node's kernel to use the DFS 
  4163.       Cache Manager (DFS client) to mount the client's root file system. 
  4164.  
  4165.       For diskless operation to be secure, it would require hardware support, 
  4166.       which is outside the scope of DCE. 
  4167.  
  4168.  
  4169. ΓòÉΓòÉΓòÉ 7.3. Implications of Mutual Dependencies ΓòÉΓòÉΓòÉ
  4170.  
  4171. Mutual dependencies among DCE technology components result in restrictions in 
  4172. areas such as the startup of a cell. For example, because the Security Service 
  4173. depends on CDS to find the location of a Security Server, and CDS depends on 
  4174. the Security Service to verify the authenticity of a CDS server, how can a DCE 
  4175. system ever get started? This section identifies the implications of mutual 
  4176. dependencies in the areas of DCE system startup, porting and testing of DCE, 
  4177. and planning for DCE configuration. 
  4178.  
  4179.    o  Implications for Startup 
  4180.  
  4181.       Mutual dependencies in DCE technologies dictate the order in which some 
  4182.       steps must be taken in bringing up a DCE client machine, a DCE server 
  4183.       machine, and a DCE cell. In particular, a DCE cell's servers must be 
  4184.       started up in a particular order. The Security Server is started first, 
  4185.       because its dependency on CDS can be circumvented through the use of a 
  4186.       local file to find Security Servers. Then the CDS Server is started. 
  4187.  
  4188.    o  Implications for Porting and Testing 
  4189.  
  4190.       The interdependencies among DCE technologies constrain the order in which 
  4191.       technologies can be ported.  DCE Threads can be ported first, because 
  4192.       other technologies use it, and it has no dependencies. Many of the other 
  4193.       technologies have mutual dependencies, however. A porting effort can 
  4194.       proceed by first porting the libraries of all the components, and then 
  4195.       going on to port and test the servers. GDS can be ported independently, 
  4196.       because it has no dependencies on other DCE components. 
  4197.  
  4198.    o  Implications for Configuration 
  4199.  
  4200.       DCE technology interdependencies also have implications for 
  4201.       configuration. The servers that other servers depend on are the servers 
  4202.       that are the highest priority for replication, in environments where high 
  4203.       availability is important. CDS and Security Servers should be replicated, 
  4204.       because other DCE servers depend on them in order to operate. Among the 
  4205.       various DFS servers, the Fileset Location Server is the highest priority 
  4206.       for replication. 
  4207.  
  4208.    o  Implications for Application Programmers 
  4209.  
  4210.       Because DCE RPC is integrated with DCE Threads, programmers writing 
  4211.       RPC-based applications need to be aware of the implications of using 
  4212.       multiple threads of control. 
  4213.  
  4214.  
  4215. ΓòÉΓòÉΓòÉ 8. List of Abbreviations ΓòÉΓòÉΓòÉ
  4216.  
  4217.  ACF          Attribute Configuration File 
  4218.  ACL          Access Control List 
  4219.  ACSE         Association Control Service Element 
  4220.  AES          Application Environment Specification 
  4221.  API          Application Program Interface 
  4222.  ASN.1        Abstract Syntax Notation-1 
  4223.  AVA          Attribute Value Assertion 
  4224.  BER          Basic Encoding Rules 
  4225.  BOS          Basic Overseer Server 
  4226.  C            Country 
  4227.  C-ISAM       C-language Indexed Sequential Access Method 
  4228.  CCITT        International Telegraph & Telephone Consultative Committee 
  4229.  CDS          Cell Directory Service 
  4230.  CDSPI        Cell Directory Service Portable Interface 
  4231.  CPU          Central Processing Unit 
  4232.  DAP          Directory Access Protocol 
  4233.  DB           Database 
  4234.  DCE          Distributed Computing Environment 
  4235.  DFS          Distributed File Service 
  4236.  DIB          Directory Information Base 
  4237.  DIT          Directory Information Tree 
  4238.  DLC          Diskless Configuration Service 
  4239.  DN           Distinguished Name 
  4240.  DNS          Domain Name Service 
  4241.  DSA          Directory System Agent 
  4242.  DSP          Directory System Protocol 
  4243.  DTS          Distributed Time Service 
  4244.  DUA          Directory User Agent 
  4245.  FIFO         First In, First Out 
  4246.  GDA          Global Directory Agent 
  4247.  GDS          Global Directory Service 
  4248.  IDL          Interface Definition Language 
  4249.  IP           Internet Protocol 
  4250.  ISO          International Organization for Standardization 
  4251.  LAN          Local Area Network 
  4252.  LFS          Local File System 
  4253.  LRU          Least Recently Used 
  4254.  MS-DOS       Microsoft Disk Operating System 
  4255.  NA           Not Applicable 
  4256.  NetBIOS      Network Version of Basic Input/Output System 
  4257.  NSI          Name Service Independent 
  4258.  NTP          Network Time Protocol 
  4259.  O            Organization 
  4260.  OS           Operating System 
  4261.  OS/2         Operating System/2 
  4262.  OSF          Open Software Foundation 
  4263.  OSI          Open Systems Interconnection 
  4264.  OSS          OSI Session Service 
  4265.  OU           Organizational Unit 
  4266.  RDN          Relative Distinguished Name 
  4267.  ROM          Read-Only Memory 
  4268.  ROS          Remote Operation Service 
  4269.  ROSE         Remote Operation Service Elements 
  4270.  RPC          Remote Procedure Call 
  4271.  RR           Resource Record (DNS) 
  4272.  RR           Round Robin (scheduling) 
  4273.  TCP/IP       Transmission Control Protocol/Internet Protocol 
  4274.  TDF          Time Differential Factor 
  4275.  TFTP         Trivial File Transfer Protocol 
  4276.  TLI          Transport Layer Interface 
  4277.  TPI          Time Provider Interface 
  4278.  UDP/IP       User Datagram Protocol/Internet Protocol 
  4279.  UFS          UNIX File System 
  4280.  UTC          Coordinated Universal Time 
  4281.  UUID         Universal Unique Identifier 
  4282.  VFS          Virtual File System 
  4283.  WAN          Wide Area Network 
  4284.  XOM          X/Open Object Management 
  4285.  XDS          X/Open Directory Service 
  4286.  XTI          X/Open Transport Interface 
  4287.  
  4288.  
  4289. ΓòÉΓòÉΓòÉ 9. Glossary of Terms and Abbreviations ΓòÉΓòÉΓòÉ
  4290.  
  4291. This glossary defines all DCE terms and abbreviations used in this book. If you 
  4292. do not find the term you are looking for, refer to the Index or to the 
  4293. Dictionary of Computing, SC20-1699. 
  4294.  
  4295.  
  4296. ΓòÉΓòÉΓòÉ 9.1. References ΓòÉΓòÉΓòÉ
  4297.  
  4298. The following cross references are used in this glossary: 
  4299.  
  4300.  
  4301. ΓòÉΓòÉΓòÉ 9.1.1. Contrast with ΓòÉΓòÉΓòÉ
  4302.  
  4303. This refers to a term that has an opposed or substantively different meaning. 
  4304.  
  4305.  
  4306. ΓòÉΓòÉΓòÉ 9.1.2. Synonym for ΓòÉΓòÉΓòÉ
  4307.  
  4308. This indicates that the term has the same meaning as a preferred term, which is 
  4309. defined in its proper place in the dictionary. 
  4310.  
  4311.  
  4312. ΓòÉΓòÉΓòÉ 9.1.3. Synonymous with ΓòÉΓòÉΓòÉ
  4313.  
  4314. This is a backward reference from a defined term to all other terms that have 
  4315. the same meaning. 
  4316.  
  4317.  
  4318. ΓòÉΓòÉΓòÉ 9.1.4. See ΓòÉΓòÉΓòÉ
  4319.  
  4320. This refers the reader to multiple-word terms that have the same last word. 
  4321.  
  4322.  
  4323. ΓòÉΓòÉΓòÉ 9.1.5. See also ΓòÉΓòÉΓòÉ
  4324.  
  4325. This refers the reader to related terms that have a related, but not 
  4326. synonymous, meaning. 
  4327.  
  4328.  
  4329. ΓòÉΓòÉΓòÉ 9.2. Prefixes ΓòÉΓòÉΓòÉ
  4330.  
  4331. The following prefixes are provided in this glossary as references to the 
  4332. related DCE services: 
  4333.  
  4334.  CDS       Cell Directory Service 
  4335.  DTS       Distributed Time Service 
  4336.  GDS       Global Directory Service 
  4337.  RPC       Remote Procedure Call 
  4338.  Security  Security Service 
  4339.  Threads   Threads Service 
  4340.  XDS       X/Open Directory Service 
  4341.  XOM       X/Open Object Management 
  4342.  
  4343.  
  4344. ΓòÉΓòÉΓòÉ 9.3. A ΓòÉΓòÉΓòÉ
  4345.  
  4346.  
  4347. ΓòÉΓòÉΓòÉ 9.3.1. abstract syntax notation one (ASN.1) ΓòÉΓòÉΓòÉ
  4348.  
  4349. abstract syntax notation one (ASN.1) 
  4350.  
  4351. See ASN.1. 
  4352.  
  4353.  
  4354. ΓòÉΓòÉΓòÉ 9.3.2. access control list (ACL) ΓòÉΓòÉΓòÉ
  4355.  
  4356. access control list (ACL) 
  4357.  
  4358.    1. Security: Data that controls access to a protected object. An access 
  4359.       control list specifies the privilege attributes needed to access the 
  4360.       object and the permissions that may be granted, with respect to the 
  4361.       protected object, to principals that possess such privilege attributes. 
  4362.  
  4363.    2. GDS: Specifies the users with their access rights to an object. 
  4364.  
  4365.  
  4366. ΓòÉΓòÉΓòÉ 9.3.3. access control list facility ΓòÉΓòÉΓòÉ
  4367.  
  4368. access control list facility 
  4369.  
  4370. A Security Service feature that checks a principal's access to an object. This 
  4371. facility determines access rights by comparing the principal's privileges to 
  4372. entries in an access control list (ACL) of an object. 
  4373.  
  4374.  
  4375. ΓòÉΓòÉΓòÉ 9.3.4. access right ΓòÉΓòÉΓòÉ
  4376.  
  4377. access right 
  4378.  
  4379. Synonym for permission. 
  4380.  
  4381.  
  4382. ΓòÉΓòÉΓòÉ 9.3.5. accessible ΓòÉΓòÉΓòÉ
  4383.  
  4384. accessible 
  4385.  
  4386. Pertaining to an object whose client possesses a valid designator or handle. 
  4387.  
  4388.  
  4389. ΓòÉΓòÉΓòÉ 9.3.6. account ΓòÉΓòÉΓòÉ
  4390.  
  4391. account 
  4392.  
  4393. Data in the Registry database that allows a principal to log in. It is a 
  4394. registry object that relates to a principal. 
  4395.  
  4396.  
  4397. ΓòÉΓòÉΓòÉ 9.3.7. ACL ΓòÉΓòÉΓòÉ
  4398.  
  4399. ACL 
  4400.  
  4401. See access control list. 
  4402.  
  4403.  
  4404. ΓòÉΓòÉΓòÉ 9.3.8. address ΓòÉΓòÉΓòÉ
  4405.  
  4406. address 
  4407.  
  4408. An unambiguous name, label, or number that identifies the location of a 
  4409. particular entity or service. See presentation address. 
  4410.  
  4411.  
  4412. ΓòÉΓòÉΓòÉ 9.3.9. address family ΓòÉΓòÉΓòÉ
  4413.  
  4414. address family 
  4415.  
  4416. A set of related communications protocols that use a common addressing 
  4417. mechanism to identify end points; for example, the U.S. Department of Defense 
  4418. Internet Protocols. Synonymous with protocol family. 
  4419.  
  4420.  
  4421. ΓòÉΓòÉΓòÉ 9.3.10. API ΓòÉΓòÉΓòÉ
  4422.  
  4423. API 
  4424.  
  4425. See application program interface. 
  4426.  
  4427.  
  4428. ΓòÉΓòÉΓòÉ 9.3.11. application program interface (API) ΓòÉΓòÉΓòÉ
  4429.  
  4430. application program interface (API) 
  4431.  
  4432. A functional interface supplied by the operating system or by a separately 
  4433. orderable licensed program that allows an application program written in a 
  4434. high-level language to use specific data or functions of the operating system 
  4435. or the licensed program. 
  4436.  
  4437.  
  4438. ΓòÉΓòÉΓòÉ 9.3.12. architecture ΓòÉΓòÉΓòÉ
  4439.  
  4440. architecture 
  4441.  
  4442.    1. The organizational structure of a computer system, including the 
  4443.       interrelationships among its hardware and software. 
  4444.  
  4445.    2. The logical structure and operating principles of a computer network. The 
  4446.       operating principles of a network include those of services, functions, 
  4447.       and protocols. 
  4448.  
  4449.  
  4450. ΓòÉΓòÉΓòÉ 9.3.13. ASN.1 ΓòÉΓòÉΓòÉ
  4451.  
  4452. ASN.1 
  4453.  
  4454. Abstract syntax notation one. A data representation scheme that enables 
  4455. complicated types to be defined and enables values of these types to be 
  4456. specified. 
  4457.  
  4458.  
  4459. ΓòÉΓòÉΓòÉ 9.3.14. attribute ΓòÉΓòÉΓòÉ
  4460.  
  4461. attribute 
  4462.  
  4463.    1. RPC: An interface definition language (IDL) or attribute configuration 
  4464.       file (ACF) that conveys information about an interface, type, field, 
  4465.       parameter, or operation. 
  4466.  
  4467.    2. DTS: A qualifier used with DTS commands. DTS has four attribute 
  4468.       categories: characteristics, counters, identifiers, and status. 
  4469.  
  4470.    3. XDS: Information of a particular type concerning an object and appearing 
  4471.       in an entry that describes the object in the directory information base 
  4472.       (DIB). It denotes the attribute's type and a sequence of one or more 
  4473.       attribute values, each accompanied by an integer denoting the value's 
  4474.       syntax. 
  4475.  
  4476.  
  4477. ΓòÉΓòÉΓòÉ 9.3.15. attribute configuration file (ACF) ΓòÉΓòÉΓòÉ
  4478.  
  4479. attribute configuration file (ACF) 
  4480.  
  4481. RPC: An optional companion to an interface definition file that modifies how 
  4482. the Interface Definition Language (IDL) compiler locally interprets the 
  4483. interface definition. See also interface definition and Interface Definition 
  4484. Language. 
  4485.  
  4486.  
  4487. ΓòÉΓòÉΓòÉ 9.3.16. attribute syntax ΓòÉΓòÉΓòÉ
  4488.  
  4489. attribute syntax 
  4490.  
  4491. GDS: A definition of the set of values that an attribute may assume. It 
  4492. includes the data type, in ASN.1, and usually one or more matching rules by 
  4493. which values may be compared. 
  4494.  
  4495.  
  4496. ΓòÉΓòÉΓòÉ 9.3.17. attribute type ΓòÉΓòÉΓòÉ
  4497.  
  4498. attribute type 
  4499.  
  4500.    1. XDS: The component of an attribute that indicates the type of information 
  4501.       given by that attribute. Because it is an object identifier, it is unique 
  4502.       among other attribute types. 
  4503.  
  4504.    2. XOM: Any of various categories into which the client dynamically groups 
  4505.       values on the basis of their semantics. It is an integer unique only 
  4506.       within the package. 
  4507.  
  4508.  
  4509. ΓòÉΓòÉΓòÉ 9.3.18. attribute value ΓòÉΓòÉΓòÉ
  4510.  
  4511. attribute value 
  4512.  
  4513. XDS, XOM: A particular instance of the type of information indicated by an 
  4514. attribute type. 
  4515.  
  4516.  
  4517. ΓòÉΓòÉΓòÉ 9.3.19. attribute value assertion (AVA) ΓòÉΓòÉΓòÉ
  4518.  
  4519. attribute value assertion (AVA) 
  4520.  
  4521. GDS: An attribute type and attribute value pair. A relative distinguished name 
  4522. is comprised of one or more AVAs. 
  4523.  
  4524.  
  4525. ΓòÉΓòÉΓòÉ 9.3.20. authentication ΓòÉΓòÉΓòÉ
  4526.  
  4527. authentication 
  4528.  
  4529. In computer security, a method used to verify the identity of a principal. 
  4530.  
  4531.  
  4532. ΓòÉΓòÉΓòÉ 9.3.21. authentication level ΓòÉΓòÉΓòÉ
  4533.  
  4534. authentication level 
  4535.  
  4536. Synonym for protection level. 
  4537.  
  4538.  
  4539. ΓòÉΓòÉΓòÉ 9.3.22. Authentication Service ΓòÉΓòÉΓòÉ
  4540.  
  4541. Authentication Service 
  4542.  
  4543. One of three services provided by the Security Service: it verifies principals 
  4544. according to a specified authentication protocol. The other Security services 
  4545. are the Privilege Service and the Registry Service. 
  4546.  
  4547.  
  4548. ΓòÉΓòÉΓòÉ 9.3.23. authorization ΓòÉΓòÉΓòÉ
  4549.  
  4550. authorization 
  4551.  
  4552.    1. The determination of a principal's permissions with respect to a 
  4553.       protected object. 
  4554.  
  4555.    2. The approval of a permission sought by a principal with respect to a 
  4556.       protected object. 
  4557.  
  4558.  
  4559. ΓòÉΓòÉΓòÉ 9.3.24. authorization service ΓòÉΓòÉΓòÉ
  4560.  
  4561. authorization service 
  4562.  
  4563. RPC: An implementation of an authorization protocol. 
  4564.  
  4565.  
  4566. ΓòÉΓòÉΓòÉ 9.4. B ΓòÉΓòÉΓòÉ
  4567.  
  4568.  
  4569. ΓòÉΓòÉΓòÉ 9.4.1. Basic Encoding Rules (BER) ΓòÉΓòÉΓòÉ
  4570.  
  4571. Basic Encoding Rules (BER) 
  4572.  
  4573. A set of rules used to encode ASN.1 values as strings of octets. 
  4574.  
  4575.  
  4576. ΓòÉΓòÉΓòÉ 9.4.2. BER ΓòÉΓòÉΓòÉ
  4577.  
  4578. BER 
  4579.  
  4580. See Basic Encoding Rules. 
  4581.  
  4582.  
  4583. ΓòÉΓòÉΓòÉ 9.4.3. binding ΓòÉΓòÉΓòÉ
  4584.  
  4585. binding 
  4586.  
  4587. RPC: A relationship between a client and a server involved in a remote 
  4588. procedure call. 
  4589.  
  4590.  
  4591. ΓòÉΓòÉΓòÉ 9.4.4. binding handle ΓòÉΓòÉΓòÉ
  4592.  
  4593. binding handle 
  4594.  
  4595. RPC: A reference to a binding. See binding information. 
  4596.  
  4597.  
  4598. ΓòÉΓòÉΓòÉ 9.4.5. binding information ΓòÉΓòÉΓòÉ
  4599.  
  4600. binding information 
  4601.  
  4602. RPC: Information about one or more potential bindings, including an RPC 
  4603. protocol sequence, a network address, an endpoint, at least one transfer 
  4604. syntax, and an RPC protocol version number. See binding. See also endpoint, 
  4605. network address, RPC protocol, RPC protocol sequence, and transfer syntax. 
  4606.  
  4607.  
  4608. ΓòÉΓòÉΓòÉ 9.4.6. Browser ΓòÉΓòÉΓòÉ
  4609.  
  4610. Browser 
  4611.  
  4612. CDS: A Motif-based program that lets users view the contents and structure of a 
  4613. cell namespace. 
  4614.  
  4615.  
  4616. ΓòÉΓòÉΓòÉ 9.5. C ΓòÉΓòÉΓòÉ
  4617.  
  4618.  
  4619. ΓòÉΓòÉΓòÉ 9.5.1. cache ΓòÉΓòÉΓòÉ
  4620.  
  4621. cache 
  4622.  
  4623.    1. CDS: The information that a CDS clerk stores locally to optimize name 
  4624.       lookups. The cache contains attribute values resulting from previous 
  4625.       lookups, as well as information about other clearinghouses and 
  4626.       namespaces. 
  4627.  
  4628.    2. Security: Contains the credentials of a principal after the DCE login. 
  4629.  
  4630.    3. GDS: See DUA cache. 
  4631.  
  4632.  
  4633. ΓòÉΓòÉΓòÉ 9.5.2. CDS ΓòÉΓòÉΓòÉ
  4634.  
  4635. CDS 
  4636.  
  4637. See Cell Directory Service. 
  4638.  
  4639.  
  4640. ΓòÉΓòÉΓòÉ 9.5.3. CDS control program (CDSCP) ΓòÉΓòÉΓòÉ
  4641.  
  4642. CDS control program (CDSCP) 
  4643.  
  4644. A command interface that CDS administrators use to control CDS servers and 
  4645. clerks and manage the namespace and its contents. See also manager. 
  4646.  
  4647.  
  4648. ΓòÉΓòÉΓòÉ 9.5.4. CDSCP ΓòÉΓòÉΓòÉ
  4649.  
  4650. CDSCP 
  4651.  
  4652. See CDS control program. 
  4653.  
  4654.  
  4655. ΓòÉΓòÉΓòÉ 9.5.5. cell ΓòÉΓòÉΓòÉ
  4656.  
  4657. cell 
  4658.  
  4659. The basic unit of operation in the distributed computing environment. A cell is 
  4660. a group of users, systems, and resources that are grouped around a common 
  4661. purpose and that share common DCE services. 
  4662.  
  4663.  
  4664. ΓòÉΓòÉΓòÉ 9.5.6. Cell Directory Service (CDS) ΓòÉΓòÉΓòÉ
  4665.  
  4666. Cell Directory Service (CDS) 
  4667.  
  4668. A DCE component. It manages a database of information about the resources 
  4669. within a cell. 
  4670.  
  4671.  
  4672. ΓòÉΓòÉΓòÉ 9.5.7. cell-relative name ΓòÉΓòÉΓòÉ
  4673.  
  4674. cell-relative name 
  4675.  
  4676. Synonym for local name. 
  4677.  
  4678.  
  4679. ΓòÉΓòÉΓòÉ 9.5.8. chaining ΓòÉΓòÉΓòÉ
  4680.  
  4681. chaining 
  4682.  
  4683. GDS, XDS: A mode of interaction optionally used by a directory system agent 
  4684. (DSA) that cannot perform an operation itself. The DSA chains by invoking the 
  4685. operation in another DSA and then relaying the outcome to the original 
  4686. requester. 
  4687.  
  4688.  
  4689. ΓòÉΓòÉΓòÉ 9.5.9. child pointer ΓòÉΓòÉΓòÉ
  4690.  
  4691. child pointer 
  4692.  
  4693. CDS: A pointer that connects a directory to a directory immediately below it in 
  4694. a namespace. You do not explicitly create child pointers; CDS creates them for 
  4695. you when you create a new directory. CDS stores the child pointer in the 
  4696. directory that is the parent of the new directory. 
  4697.  
  4698.  
  4699. ΓòÉΓòÉΓòÉ 9.5.10. class ΓòÉΓòÉΓòÉ
  4700.  
  4701. class 
  4702.  
  4703. A category into which objects are placed on the basis of their purpose and 
  4704. internal structure. 
  4705.  
  4706.  
  4707. ΓòÉΓòÉΓòÉ 9.5.11. clearinghouse ΓòÉΓòÉΓòÉ
  4708.  
  4709. clearinghouse 
  4710.  
  4711. CDS: A collection of directory replicas on one CDS server. A clearinghouse 
  4712. takes the form of a database file. It can exist only on a CDS server node; it 
  4713. cannot exist on a node running only CDS clerk software. Usually only one 
  4714. clearinghouse exists on a server node. 
  4715.  
  4716.  
  4717. ΓòÉΓòÉΓòÉ 9.5.12. clerk ΓòÉΓòÉΓòÉ
  4718.  
  4719. clerk 
  4720.  
  4721.    1. DTS: A software component that synchronizes the clock for its client 
  4722.       system by requesting time values from servers, computing a new time from 
  4723.       the values, and supplying the computed time to client applications. 
  4724.  
  4725.    2. CDS: A software component that receives CDS requests from a client 
  4726.       application, ascertains an appropriate CDS server to process the 
  4727.       requests, and returns the results of the requests to the client 
  4728.       application. 
  4729.  
  4730.  
  4731. ΓòÉΓòÉΓòÉ 9.5.13. client ΓòÉΓòÉΓòÉ
  4732.  
  4733. client 
  4734.  
  4735. A computer or process that accesses the data, services, or resources of another 
  4736. computer or process on the network. Contrast with server. 
  4737.  
  4738.  
  4739. ΓòÉΓòÉΓòÉ 9.5.14. client context ΓòÉΓòÉΓòÉ
  4740.  
  4741. client context 
  4742.  
  4743. RPC: The state within an RPC server generated by a set of remote procedures and 
  4744. maintained across a series of calls for a particular client. See context 
  4745. handle. See also manager. 
  4746.  
  4747.  
  4748. ΓòÉΓòÉΓòÉ 9.5.15. client stub ΓòÉΓòÉΓòÉ
  4749.  
  4750. client stub 
  4751.  
  4752. RPC: The surrogate code for an RPC interface that is linked with and called by 
  4753. the client application code. In addition to general operations such as 
  4754. marshalling data, a client stub calls the RPC runtime to perform remote 
  4755. procedure calls and, optionally, to manage bindings. See server stub. 
  4756.  
  4757.  
  4758. ΓòÉΓòÉΓòÉ 9.5.16. client/server model ΓòÉΓòÉΓòÉ
  4759.  
  4760. client/server model 
  4761.  
  4762. A form of computing where one system, the client, requests something, and 
  4763. another system, the server, responds. 
  4764.  
  4765.  
  4766. ΓòÉΓòÉΓòÉ 9.5.17. clock ΓòÉΓòÉΓòÉ
  4767.  
  4768. clock 
  4769.  
  4770. The combined hardware interrupt timer and software register that maintains the 
  4771. system time. 
  4772.  
  4773.  
  4774. ΓòÉΓòÉΓòÉ 9.5.18. condition variable ΓòÉΓòÉΓòÉ
  4775.  
  4776. condition variable 
  4777.  
  4778. Threads: A synchronization object used in conjunction with a mutex. It allows a 
  4779. thread to suspend its execution until some condition is true. 
  4780.  
  4781.  
  4782. ΓòÉΓòÉΓòÉ 9.5.19. context handle ΓòÉΓòÉΓòÉ
  4783.  
  4784. context handle 
  4785.  
  4786. RPC: A reference to state (client context) maintained across remote procedure 
  4787. calls by a server on behalf of a client. See client context. 
  4788.  
  4789.  
  4790. ΓòÉΓòÉΓòÉ 9.5.20. control access ΓòÉΓòÉΓòÉ
  4791.  
  4792. control access 
  4793.  
  4794. CDS: An access right that grants users the ability to change the access control 
  4795. on a name and to perform other powerful management tasks, such as replicate a 
  4796. directory or move a clearinghouse. 
  4797.  
  4798.  
  4799. ΓòÉΓòÉΓòÉ 9.5.21. Coordinated Universal Time (UTC) ΓòÉΓòÉΓòÉ
  4800.  
  4801. Coordinated Universal Time (UTC) 
  4802.  
  4803. An international time standard that DTS uses. The zero hour of Coordinated 
  4804. Universal Time is based on the zero hour of Greenwich (England) Mean Time. 
  4805.  
  4806.  
  4807. ΓòÉΓòÉΓòÉ 9.5.22. copy ΓòÉΓòÉΓòÉ
  4808.  
  4809. copy 
  4810.  
  4811. GDS, XDS: Either a copy of an entry stored in other DSAs through bilateral 
  4812. agreement or a locally and dynamically stored copy of an entry resulting from a 
  4813. request (a cache copy). 
  4814.  
  4815.  
  4816. ΓòÉΓòÉΓòÉ 9.5.23. courier ΓòÉΓòÉΓòÉ
  4817.  
  4818. courier 
  4819.  
  4820. DTS: A local server that requests a time value from a randomly selected global 
  4821. server each time the courier synchronizes. 
  4822.  
  4823.  
  4824. ΓòÉΓòÉΓòÉ 9.5.24. C-stub ΓòÉΓòÉΓòÉ
  4825.  
  4826. C-stub 
  4827.  
  4828. The part of the directory user agent (DUA) that implements the connection with 
  4829. the communications network. 
  4830.  
  4831.  
  4832. ΓòÉΓòÉΓòÉ 9.6. D ΓòÉΓòÉΓòÉ
  4833.  
  4834.  
  4835. ΓòÉΓòÉΓòÉ 9.6.1. daemon ΓòÉΓòÉΓòÉ
  4836.  
  4837. daemon 
  4838.  
  4839. A DCE server process. 
  4840.  
  4841.  
  4842. ΓòÉΓòÉΓòÉ 9.6.2. datagram ΓòÉΓòÉΓòÉ
  4843.  
  4844. datagram 
  4845.  
  4846. RPC: A network data packet that is independent of all other packets and does 
  4847. not guarantee delivery or sequentiality. 
  4848.  
  4849.  
  4850. ΓòÉΓòÉΓòÉ 9.6.3. datagram protocol ΓòÉΓòÉΓòÉ
  4851.  
  4852. datagram protocol 
  4853.  
  4854. RPC: A datagram-based transport protocol, such as User Datagram Protocol (UDP), 
  4855. that runs over a connectionless transport protocol. 
  4856.  
  4857.  
  4858. ΓòÉΓòÉΓòÉ 9.6.4. DCE ΓòÉΓòÉΓòÉ
  4859.  
  4860. DCE 
  4861.  
  4862. See Distributed Computing Environment. 
  4863.  
  4864.  
  4865. ΓòÉΓòÉΓòÉ 9.6.5. decrypt ΓòÉΓòÉΓòÉ
  4866.  
  4867. decrypt 
  4868.  
  4869. Security: To decipher data. 
  4870.  
  4871.  
  4872. ΓòÉΓòÉΓòÉ 9.6.6. DFS ΓòÉΓòÉΓòÉ
  4873.  
  4874. DFS 
  4875.  
  4876. See Distributed File Service. 
  4877.  
  4878.  
  4879. ΓòÉΓòÉΓòÉ 9.6.7. directory ΓòÉΓòÉΓòÉ
  4880.  
  4881. directory 
  4882.  
  4883.    1. A logical unit for storing entries under one name in a namespace. You can 
  4884.       copy, delete, and control access to a directory. Each physical instance 
  4885.       of a directory is called a replica. 
  4886.  
  4887.    2. A collection of open systems that cooperates to hold a logical database 
  4888.       of information about a set of objects in the real world. 
  4889.  
  4890.  
  4891. ΓòÉΓòÉΓòÉ 9.6.8. directory access protocol (DAP) ΓòÉΓòÉΓòÉ
  4892.  
  4893. directory access protocol (DAP) 
  4894.  
  4895. GDS: The protocol used by a DUA to access a DSA. 
  4896.  
  4897.  
  4898. ΓòÉΓòÉΓòÉ 9.6.9. directory information base (DIB) ΓòÉΓòÉΓòÉ
  4899.  
  4900. directory information base (DIB) 
  4901.  
  4902. GDS: The complete set of information to which the directory provides access, 
  4903. which includes all of the pieces of information that can be read or manipulated 
  4904. using the operations of the directory. 
  4905.  
  4906.  
  4907. ΓòÉΓòÉΓòÉ 9.6.10. directory information tree (DIT) ΓòÉΓòÉΓòÉ
  4908.  
  4909. directory information tree (DIT) 
  4910.  
  4911. GDS: The directory information base (DIB) considered as a tree, whose vertices 
  4912. (other than the root) are the directory entries. 
  4913.  
  4914.  
  4915. ΓòÉΓòÉΓòÉ 9.6.11. directory schema ΓòÉΓòÉΓòÉ
  4916.  
  4917. directory schema 
  4918.  
  4919. GDS: The set of rules and constraints concerning directory information tree 
  4920. (DIT) structure, object class definitions, attribute types, and syntaxes that 
  4921. characterize the directory information base (DIB). 
  4922.  
  4923.  
  4924. ΓòÉΓòÉΓòÉ 9.6.12. Directory Service ΓòÉΓòÉΓòÉ
  4925.  
  4926. Directory Service 
  4927.  
  4928. A DCE component. The Directory Service is a central repository for information 
  4929. about resources in a distributed system. See Cell Directory Service and Global 
  4930. Directory Service. 
  4931.  
  4932.  
  4933. ΓòÉΓòÉΓòÉ 9.6.13. directory system ΓòÉΓòÉΓòÉ
  4934.  
  4935. directory system 
  4936.  
  4937. GDS: A system for managing a directory, consisting of one or more DSAs. Each 
  4938. DSA manages part of the DIB. 
  4939.  
  4940.  
  4941. ΓòÉΓòÉΓòÉ 9.6.14. directory system agent (DSA) ΓòÉΓòÉΓòÉ
  4942.  
  4943. directory system agent (DSA) 
  4944.  
  4945. GDS: An open systems interconnect (OSI) application process that is part of the 
  4946. directory. 
  4947.  
  4948.  
  4949. ΓòÉΓòÉΓòÉ 9.6.15. directory system protocol (DSP) ΓòÉΓòÉΓòÉ
  4950.  
  4951. directory system protocol (DSP) 
  4952.  
  4953. GDS: The protocol used by a directory system agent (DSA) to access another DSA. 
  4954.  
  4955.  
  4956. ΓòÉΓòÉΓòÉ 9.6.16. directory user agent (DUA) ΓòÉΓòÉΓòÉ
  4957.  
  4958. directory user agent (DUA) 
  4959.  
  4960. GDS: An open systems interconnect (OSI) application process that represents a 
  4961. user accessing the directory. 
  4962.  
  4963.  
  4964. ΓòÉΓòÉΓòÉ 9.6.17. distinguished name ΓòÉΓòÉΓòÉ
  4965.  
  4966. distinguished name 
  4967.  
  4968. GDS: One of the names of an object, formed from the sequence of RDNs of its 
  4969. object entry and each of its superior entries. 
  4970.  
  4971.  
  4972. ΓòÉΓòÉΓòÉ 9.6.18. distributed computing ΓòÉΓòÉΓòÉ
  4973.  
  4974. distributed computing 
  4975.  
  4976. A type of computing that allows computers with different hardware and software 
  4977. to be combined on a network to function as a single computer to share the task 
  4978. of processing application programs. 
  4979.  
  4980.  
  4981. ΓòÉΓòÉΓòÉ 9.6.19. Distributed Computing Environment (DCE) ΓòÉΓòÉΓòÉ
  4982.  
  4983. Distributed Computing Environment (DCE) 
  4984.  
  4985. The emerging industry standard for implementing distributed computing. 
  4986.  
  4987.  
  4988. ΓòÉΓòÉΓòÉ 9.6.20. Distributed File Service (DFS) ΓòÉΓòÉΓòÉ
  4989.  
  4990. Distributed File Service (DFS) 
  4991.  
  4992. A DCE component. It provides a file service that joins the local file systems 
  4993. of several File Server machines, making the files equally available to all DFS 
  4994. client machines. 
  4995.  
  4996.  
  4997. ΓòÉΓòÉΓòÉ 9.6.21. distributed service ΓòÉΓòÉΓòÉ
  4998.  
  4999. distributed service 
  5000.  
  5001. A DCE service that is used mainly by administrators to manage a distributed 
  5002. environment. These services include DTS, Security, and Directory. 
  5003.  
  5004.  
  5005. ΓòÉΓòÉΓòÉ 9.6.22. Distributed Time Service (DTS) ΓòÉΓòÉΓòÉ
  5006.  
  5007. Distributed Time Service (DTS) 
  5008.  
  5009. A DCE component. It provides a way to synchronize the times on different hosts 
  5010. in a distributed system. 
  5011.  
  5012.  
  5013. ΓòÉΓòÉΓòÉ 9.6.23. drift ΓòÉΓòÉΓòÉ
  5014.  
  5015. drift 
  5016.  
  5017. DTS: The change in a clock's error rate over a specified period of time. 
  5018.  
  5019.  
  5020. ΓòÉΓòÉΓòÉ 9.6.24. DTS ΓòÉΓòÉΓòÉ
  5021.  
  5022. DTS 
  5023.  
  5024. See Distributed Time Service. 
  5025.  
  5026.  
  5027. ΓòÉΓòÉΓòÉ 9.6.25. DUA cache ΓòÉΓòÉΓòÉ
  5028.  
  5029. DUA cache 
  5030.  
  5031. GDS: The part of the DUA that stores information to optimize name lookups. The 
  5032. cache contains objects from previous lookups as well as information about DSAs 
  5033. in the directory. 
  5034.  
  5035.  
  5036. ΓòÉΓòÉΓòÉ 9.7. E ΓòÉΓòÉΓòÉ
  5037.  
  5038.  
  5039. ΓòÉΓòÉΓòÉ 9.7.1. element ΓòÉΓòÉΓòÉ
  5040.  
  5041. element 
  5042.  
  5043. RPC: Any of the bits of a bit string, the octets of an octet string, or the 
  5044. octets by means of which the characters of a character string are represented. 
  5045.  
  5046.  
  5047. ΓòÉΓòÉΓòÉ 9.7.2. encrypt ΓòÉΓòÉΓòÉ
  5048.  
  5049. encrypt 
  5050.  
  5051. To encipher data. 
  5052.  
  5053.  
  5054. ΓòÉΓòÉΓòÉ 9.7.3. encryption key ΓòÉΓòÉΓòÉ
  5055.  
  5056. encryption key 
  5057.  
  5058. A value used to encrypt data so that only possessors of the encryption key can 
  5059. decipher it. 
  5060.  
  5061.  
  5062. ΓòÉΓòÉΓòÉ 9.7.4. endpoint ΓòÉΓòÉΓòÉ
  5063.  
  5064. endpoint 
  5065.  
  5066. RPC: An address of a specific server instance on a host. 
  5067.  
  5068.  
  5069. ΓòÉΓòÉΓòÉ 9.7.5. endpoint map ΓòÉΓòÉΓòÉ
  5070.  
  5071. endpoint map 
  5072.  
  5073. RPC: A database local to a node where local RPC servers register binding 
  5074. information associated with their interface identifiers and object identifiers. 
  5075. The endpoint map is maintained by the endpoint map service of the RPC daemon. 
  5076. See endpoint map service. See also RPC daemon. 
  5077.  
  5078.  
  5079. ΓòÉΓòÉΓòÉ 9.7.6. endpoint map service ΓòÉΓòÉΓòÉ
  5080.  
  5081. endpoint map service 
  5082.  
  5083. RPC: A service provided by the RPC daemon that maintains a system's endpoint 
  5084. map for local RPC servers. When an RPC client makes a remote procedure call 
  5085. using a partially bound binding handle, the endpoint map service looks up the 
  5086. endpoint of a compatible local server. See endpoint map. See also partially 
  5087. bound binding handle and RPC daemon. 
  5088.  
  5089.  
  5090. ΓòÉΓòÉΓòÉ 9.7.7. entry ΓòÉΓòÉΓòÉ
  5091.  
  5092. entry 
  5093.  
  5094. GDS, XDS: The part of the DIB that contains information relating to a single 
  5095. directory object. Each entry consists of directory attributes. 
  5096.  
  5097.  
  5098. ΓòÉΓòÉΓòÉ 9.7.8. export ΓòÉΓòÉΓòÉ
  5099.  
  5100. export 
  5101.  
  5102.    1. RPC: To place the server binding information associated with an RPC 
  5103.       interface or a list of object UUIDs or both into an entry in a name 
  5104.       service database. 
  5105.  
  5106.    2. To provide access information for an RPC interface. Contrast with 
  5107.       unexport. 
  5108.  
  5109.  
  5110. ΓòÉΓòÉΓòÉ 9.8. F ΓòÉΓòÉΓòÉ
  5111.  
  5112.  
  5113. ΓòÉΓòÉΓòÉ 9.8.1. foreign cell ΓòÉΓòÉΓòÉ
  5114.  
  5115. foreign cell 
  5116.  
  5117. A cell other than the one to which the local machine belongs. A foreign cell 
  5118. and its binding information are stored in either GDS or the Domain Name System 
  5119. (DNS). The act of contacting a foreign cell is called intercell. Contrast with 
  5120. local cell. 
  5121.  
  5122.  
  5123. ΓòÉΓòÉΓòÉ 9.8.2. fully bound binding handle ΓòÉΓòÉΓòÉ
  5124.  
  5125. fully bound binding handle 
  5126.  
  5127. RPC: A server binding handle that contains a complete server address including 
  5128. an endpoint. Contrast with partially bound binding handle. 
  5129.  
  5130.  
  5131. ΓòÉΓòÉΓòÉ 9.9. G ΓòÉΓòÉΓòÉ
  5132.  
  5133.  
  5134. ΓòÉΓòÉΓòÉ 9.9.1. GDA ΓòÉΓòÉΓòÉ
  5135.  
  5136. GDA 
  5137.  
  5138. See global directory agent. 
  5139.  
  5140.  
  5141. ΓòÉΓòÉΓòÉ 9.9.2. GDS ΓòÉΓòÉΓòÉ
  5142.  
  5143. GDS 
  5144.  
  5145. See Global Directory Service. 
  5146.  
  5147.  
  5148. ΓòÉΓòÉΓòÉ 9.9.3. global directory agent (GDA) ΓòÉΓòÉΓòÉ
  5149.  
  5150. global directory agent (GDA) 
  5151.  
  5152. A DCE component that makes it possible for the local CDS to access names in 
  5153. foreign cells. The GDA helps CDS find binding information to foreign cells 
  5154. through either the GDS or the Domain Name System (DNS). 
  5155.  
  5156.  
  5157. ΓòÉΓòÉΓòÉ 9.9.4. Global Directory Service (GDS) ΓòÉΓòÉΓòÉ
  5158.  
  5159. Global Directory Service (GDS) 
  5160.  
  5161. A DCE component. It provides a global namespace that connects DCE cells in a 
  5162. worldwide hierarchy. It is an implementation of the X.500 directory standard. 
  5163.  
  5164.  
  5165. ΓòÉΓòÉΓòÉ 9.9.5. global name ΓòÉΓòÉΓòÉ
  5166.  
  5167. global name 
  5168.  
  5169. A name that is universally meaningful and usable from anywhere in the DCE 
  5170. naming environment. The prefix /... indicates that a name is global. 
  5171.  
  5172.  
  5173. ΓòÉΓòÉΓòÉ 9.9.6. group ΓòÉΓòÉΓòÉ
  5174.  
  5175. group 
  5176.  
  5177.    1. RPC: A name service entry that corresponds to one or more RPC servers 
  5178.       that offer common RPC interfaces, RPC objects, or both. A group contains 
  5179.       the names of the server entries, other groups, or both that are members 
  5180.       of the group. See NSI group attribute. 
  5181.  
  5182.    2. Security: Data that associates a named set of principals that can be 
  5183.       granted common access rights. See subject identifier. 
  5184.  
  5185.  
  5186. ΓòÉΓòÉΓòÉ 9.10. H ΓòÉΓòÉΓòÉ
  5187.  
  5188.  
  5189. ΓòÉΓòÉΓòÉ 9.10.1. handle ΓòÉΓòÉΓòÉ
  5190.  
  5191. handle 
  5192.  
  5193. RPC: An opaque reference to information. See binding handle, context handle, 
  5194. interface handle, name service handle, and thread handle. 
  5195.  
  5196.  
  5197. ΓòÉΓòÉΓòÉ 9.10.2. heterogeneous ΓòÉΓòÉΓòÉ
  5198.  
  5199. heterogeneous 
  5200.  
  5201. A collection of dissimilar host computers such as those from different 
  5202. manufacturers. Contrast with homogeneous. 
  5203.  
  5204.  
  5205. ΓòÉΓòÉΓòÉ 9.10.3. home cell ΓòÉΓòÉΓòÉ
  5206.  
  5207. home cell 
  5208.  
  5209. Synonym for local cell. 
  5210.  
  5211.  
  5212. ΓòÉΓòÉΓòÉ 9.10.4. homogeneous ΓòÉΓòÉΓòÉ
  5213.  
  5214. homogeneous 
  5215.  
  5216. A collection of similar host computers such as those of one model of one 
  5217. manufacturer. Contrast with heterogeneous. 
  5218.  
  5219.  
  5220. ΓòÉΓòÉΓòÉ 9.10.5. host ID ΓòÉΓòÉΓòÉ
  5221.  
  5222. host ID 
  5223.  
  5224. Synonym for network address. 
  5225.  
  5226.  
  5227. ΓòÉΓòÉΓòÉ 9.11. I ΓòÉΓòÉΓòÉ
  5228.  
  5229.  
  5230. ΓòÉΓòÉΓòÉ 9.11.1. IDL ΓòÉΓòÉΓòÉ
  5231.  
  5232. IDL 
  5233.  
  5234. See Interface Definition Language. 
  5235.  
  5236.  
  5237. ΓòÉΓòÉΓòÉ 9.11.2. IDL compiler ΓòÉΓòÉΓòÉ
  5238.  
  5239. IDL compiler 
  5240.  
  5241. RPC: A compiler that processes an RPC interface definition and an optional 
  5242. attribute configuration file (ACF) to generate client and server stubs, header 
  5243. files, and auxiliary files. See Interface Definition Language. 
  5244.  
  5245.  
  5246. ΓòÉΓòÉΓòÉ 9.11.3. import ΓòÉΓòÉΓòÉ
  5247.  
  5248. import 
  5249.  
  5250.    1. RPC: To obtain binding information from a name service database about a 
  5251.       server that offers a given RPC interface by calling the RPC NSI import 
  5252.       operation. 
  5253.  
  5254.    2. RPC: To incorporate constant, type, and import declarations from one RPC 
  5255.       interface definition into another RPC interface definition by means of 
  5256.       the IDL import statement. 
  5257.  
  5258.  
  5259. ΓòÉΓòÉΓòÉ 9.11.4. inaccuracy ΓòÉΓòÉΓòÉ
  5260.  
  5261. inaccuracy 
  5262.  
  5263. DTS: The bounded uncertainty of a clock value as compared to a standard 
  5264. reference. 
  5265.  
  5266.  
  5267. ΓòÉΓòÉΓòÉ 9.11.5. information architecture ΓòÉΓòÉΓòÉ
  5268.  
  5269. information architecture 
  5270.  
  5271. GDS: The representation of the information stored in object management (OM) 
  5272. objects and the hierarchical relationships between different classes of OM 
  5273. objects. 
  5274.  
  5275.  
  5276. ΓòÉΓòÉΓòÉ 9.11.6. instance ΓòÉΓòÉΓòÉ
  5277.  
  5278. instance 
  5279.  
  5280. XOM: An object in the category represented by a class. 
  5281.  
  5282.  
  5283. ΓòÉΓòÉΓòÉ 9.11.7. integrity ΓòÉΓòÉΓòÉ
  5284.  
  5285. integrity 
  5286.  
  5287. RPC: A protection level that may be specified in secure RPC communications that 
  5288. ensures that data transferred between two principals has not been modified in 
  5289. transit. 
  5290.  
  5291.  
  5292. ΓòÉΓòÉΓòÉ 9.11.8. interface ΓòÉΓòÉΓòÉ
  5293.  
  5294. interface 
  5295.  
  5296. RPC: A shared boundary between two or more functional units, defined by 
  5297. functional characteristics, signal characteristics, or other characteristics, 
  5298. as appropriate. The concept includes the specification of the connection of two 
  5299. devices having different functions. See RPC interface. 
  5300.  
  5301.  
  5302. ΓòÉΓòÉΓòÉ 9.11.9. interface definition ΓòÉΓòÉΓòÉ
  5303.  
  5304. interface definition 
  5305.  
  5306. RPC: A description of an RPC interface written in the DCE Interface Definition 
  5307. Language (IDL). See RPC interface. 
  5308.  
  5309.  
  5310. ΓòÉΓòÉΓòÉ 9.11.10. Interface Definition Language (IDL) ΓòÉΓòÉΓòÉ
  5311.  
  5312. Interface Definition Language (IDL) 
  5313.  
  5314. A high-level declarative language that provides syntax for interface 
  5315. definitions. 
  5316.  
  5317.  
  5318. ΓòÉΓòÉΓòÉ 9.11.11. interface handle ΓòÉΓòÉΓòÉ
  5319.  
  5320. interface handle 
  5321.  
  5322. RPC: A reference in code to an interface specification. See binding handle and 
  5323. interface specification. 
  5324.  
  5325.  
  5326. ΓòÉΓòÉΓòÉ 9.11.12. interface identifier ΓòÉΓòÉΓòÉ
  5327.  
  5328. interface identifier 
  5329.  
  5330. RPC: A string containing the interface universal unique identifier (UUID) and 
  5331. major and minor version numbers of a given RPC interface. See RPC interface. 
  5332.  
  5333.  
  5334. ΓòÉΓòÉΓòÉ 9.11.13. interface specification ΓòÉΓòÉΓòÉ
  5335.  
  5336. interface specification 
  5337.  
  5338. RPC: An opaque data structure that is generated by the DCE IDL compiler from an 
  5339. interface definition. It contains identifying and descriptive information about 
  5340. an RPC interface. See interface definition, interface handle, and RPC 
  5341. interface. 
  5342.  
  5343.  
  5344. ΓòÉΓòÉΓòÉ 9.11.14. interface UUID ΓòÉΓòÉΓòÉ
  5345.  
  5346. interface UUID 
  5347.  
  5348. RPC: The universal unique identifier generated for an RPC interface definition 
  5349. using the UUID generator (uuidgen). See interface definition and RPC interface. 
  5350.  
  5351.  
  5352. ΓòÉΓòÉΓòÉ 9.11.15. interval ΓòÉΓòÉΓòÉ
  5353.  
  5354. interval 
  5355.  
  5356. DTS: The combination of a time value and the inaccuracy associated with it; the 
  5357. range of values represented by a combined time and inaccuracy notation. As an 
  5358. example, the interval 08:00.00I00:00 (eight o'clock, plus or minus five 
  5359. minutes) contains the time 07:57.00. 
  5360.  
  5361.  
  5362. ΓòÉΓòÉΓòÉ 9.12. K ΓòÉΓòÉΓòÉ
  5363.  
  5364.  
  5365. ΓòÉΓòÉΓòÉ 9.12.1. Kerberos ΓòÉΓòÉΓòÉ
  5366.  
  5367. Kerberos 
  5368.  
  5369. The authentication protocol used to implement DCE private key authentication. 
  5370. Kerberos was developed at the Massachusetts Institute of Technology. 
  5371.  
  5372.  
  5373. ΓòÉΓòÉΓòÉ 9.12.2. key ΓòÉΓòÉΓòÉ
  5374.  
  5375. key 
  5376.  
  5377. A value used to encrypt and decrypt data. 
  5378.  
  5379.  
  5380. ΓòÉΓòÉΓòÉ 9.12.3. Key Management Facility ΓòÉΓòÉΓòÉ
  5381.  
  5382. Key Management Facility 
  5383.  
  5384. A Security Service facility that enables noninteractive principals to manage 
  5385. their secret keys. 
  5386.  
  5387.  
  5388. ΓòÉΓòÉΓòÉ 9.13. L ΓòÉΓòÉΓòÉ
  5389.  
  5390.  
  5391. ΓòÉΓòÉΓòÉ 9.13.1. LAN ΓòÉΓòÉΓòÉ
  5392.  
  5393. LAN 
  5394.  
  5395. Local area network. A data network located on the user's premises in which 
  5396. serial transmission is used for direct data communication among data stations. 
  5397.  
  5398.  
  5399. ΓòÉΓòÉΓòÉ 9.13.2. layer ΓòÉΓòÉΓòÉ
  5400.  
  5401. layer 
  5402.  
  5403. In network architecture, a group of services, functions, and protocols that is 
  5404. complete from a conceptual point of view, that is one out of a set of 
  5405. hierarchically arranged groups, and that extends across all systems that 
  5406. conform to the network architecture. 
  5407.  
  5408.  
  5409. ΓòÉΓòÉΓòÉ 9.13.3. local ΓòÉΓòÉΓòÉ
  5410.  
  5411. local 
  5412.  
  5413.    1. Pertaining to a device directly connected to your system without the use 
  5414.       of a communication line. 
  5415.  
  5416.    2. Pertaining to devices that have a direct, physical connection. Contrast 
  5417.       with remote. 
  5418.  
  5419.  
  5420. ΓòÉΓòÉΓòÉ 9.13.4. local area network ΓòÉΓòÉΓòÉ
  5421.  
  5422. local area network 
  5423.  
  5424. See LAN. 
  5425.  
  5426.  
  5427. ΓòÉΓòÉΓòÉ 9.13.5. local cell ΓòÉΓòÉΓòÉ
  5428.  
  5429. local cell 
  5430.  
  5431. The cell to which the local machine belongs. Synonymous with home cell. 
  5432. Contrast with foreign cell. 
  5433.  
  5434.  
  5435. ΓòÉΓòÉΓòÉ 9.13.6. local name ΓòÉΓòÉΓòÉ
  5436.  
  5437. local name 
  5438.  
  5439. A name that is meaningful and usable only within the cell where an entry 
  5440. exists. The local name is a shortened form of a global name. Local names begin 
  5441. with the prefix /.: and do not contain a cell name. Synonymous with 
  5442. cell-relative name. 
  5443.  
  5444.  
  5445. ΓòÉΓòÉΓòÉ 9.13.7. local server ΓòÉΓòÉΓòÉ
  5446.  
  5447. local server 
  5448.  
  5449. DTS: A server that synchronizes with its peers and provides its clock value to 
  5450. other servers and clerks in the same network. 
  5451.  
  5452.  
  5453. ΓòÉΓòÉΓòÉ 9.13.8. Login Facility ΓòÉΓòÉΓòÉ
  5454.  
  5455. Login Facility 
  5456.  
  5457. A Security Service facility that enables a principal to establish its identity. 
  5458.  
  5459.  
  5460. ΓòÉΓòÉΓòÉ 9.14. M ΓòÉΓòÉΓòÉ
  5461.  
  5462.  
  5463. ΓòÉΓòÉΓòÉ 9.14.1. manager ΓòÉΓòÉΓòÉ
  5464.  
  5465. manager 
  5466.  
  5467. RPC: A set of remote procedures that implement the operations of an RPC 
  5468. interface and that can be dedicated to a given type of object. See also object 
  5469. and RPC interface. 
  5470.  
  5471.  
  5472. ΓòÉΓòÉΓòÉ 9.14.2. master replica ΓòÉΓòÉΓòÉ
  5473.  
  5474. master replica 
  5475.  
  5476. CDS: The first instance of a specific directory in the namespace. Once copies 
  5477. of the directory have been made, a different replica can be designated as the 
  5478. master, but only one master replica of a directory can exist at a time. CDS can 
  5479. create, update, and delete object entries and soft links in a master replica. 
  5480.  
  5481.  
  5482. ΓòÉΓòÉΓòÉ 9.14.3. mutex ΓòÉΓòÉΓòÉ
  5483.  
  5484. mutex 
  5485.  
  5486. A synchronization object that is used to allow multiple threads to serialize 
  5487. their access to shared data. The name is derived from the capability it 
  5488. provides, namely, mutual exclusion. 
  5489.  
  5490.  
  5491. ΓòÉΓòÉΓòÉ 9.15. N ΓòÉΓòÉΓòÉ
  5492.  
  5493.  
  5494. ΓòÉΓòÉΓòÉ 9.15.1. name ΓòÉΓòÉΓòÉ
  5495.  
  5496. name 
  5497.  
  5498. GDS, CDS: A construct that singles out a particular (directory) object from all 
  5499. other objects. A name must be unambiguous (that is, denote just one object); 
  5500. however, it need not be unique (that is, be the only name that unambiguously 
  5501. denotes the object). 
  5502.  
  5503.  
  5504. ΓòÉΓòÉΓòÉ 9.15.2. name service handle ΓòÉΓòÉΓòÉ
  5505.  
  5506. name service handle 
  5507.  
  5508. RPC: An opaque reference to the context used by the series of next operations 
  5509. called during a specific name service interface (NSI) search or inquiry. 
  5510.  
  5511.  
  5512. ΓòÉΓòÉΓòÉ 9.15.3. name service interface (NSI) ΓòÉΓòÉΓòÉ
  5513.  
  5514. name service interface (NSI) 
  5515.  
  5516. RPC: A part of the application program interface (API) of the RPC runtime. NSI 
  5517. routines access a name service, such as CDS, for RPC applications. 
  5518.  
  5519.  
  5520. ΓòÉΓòÉΓòÉ 9.15.4. namespace ΓòÉΓòÉΓòÉ
  5521.  
  5522. namespace 
  5523.  
  5524. CDS: A complete set of CDS names that one or more CDS servers look up, manage, 
  5525. and share. These names can include directories, object entries, and soft links. 
  5526.  
  5527.  
  5528. ΓòÉΓòÉΓòÉ 9.15.5. naming attribute ΓòÉΓòÉΓòÉ
  5529.  
  5530. naming attribute 
  5531.  
  5532. GDS: An attribute used to form the relative distinguished name (RDN) of an 
  5533. entry. 
  5534.  
  5535.  
  5536. ΓòÉΓòÉΓòÉ 9.15.6. network ΓòÉΓòÉΓòÉ
  5537.  
  5538. network 
  5539.  
  5540. A configuration of data processing devices and software connected for 
  5541. information interchange. 
  5542.  
  5543.  
  5544. ΓòÉΓòÉΓòÉ 9.15.7. network address ΓòÉΓòÉΓòÉ
  5545.  
  5546. network address 
  5547.  
  5548. An address that identifies a specific host on a network. Synonymous with host 
  5549. ID. 
  5550.  
  5551.  
  5552. ΓòÉΓòÉΓòÉ 9.15.8. network data ΓòÉΓòÉΓòÉ
  5553.  
  5554. network data 
  5555.  
  5556. RPC: Data represented in a format defined by a transfer syntax. See also 
  5557. transfer syntax. 
  5558.  
  5559.  
  5560. ΓòÉΓòÉΓòÉ 9.15.9. Network Data Representation (NDR) ΓòÉΓòÉΓòÉ
  5561.  
  5562. Network Data Representation (NDR) 
  5563.  
  5564. RPC: The transfer syntax defined by the Network Computing Architecture. See 
  5565. transfer syntax. 
  5566.  
  5567.  
  5568. ΓòÉΓòÉΓòÉ 9.15.10. network protocol ΓòÉΓòÉΓòÉ
  5569.  
  5570. network protocol 
  5571.  
  5572. A communications protocol from the Network Layer of the Open systems 
  5573. interconnect (OSI) network architecture, such as the Internet Protocol (IP). 
  5574.  
  5575.  
  5576. ΓòÉΓòÉΓòÉ 9.15.11. Network Time Protocol (NTP) ΓòÉΓòÉΓòÉ
  5577.  
  5578. Network Time Protocol (NTP) 
  5579.  
  5580. A clock synchronization protocol commonly used on an internet. 
  5581.  
  5582.  
  5583. ΓòÉΓòÉΓòÉ 9.15.12. node ΓòÉΓòÉΓòÉ
  5584.  
  5585. node 
  5586.  
  5587. In network topology, the point at an end of a branch. It is usually a physical 
  5588. machine. 
  5589.  
  5590.  
  5591. ΓòÉΓòÉΓòÉ 9.15.13. NSI ΓòÉΓòÉΓòÉ
  5592.  
  5593. NSI 
  5594.  
  5595. See name service interface. 
  5596.  
  5597.  
  5598. ΓòÉΓòÉΓòÉ 9.15.14. NSI binding attribute ΓòÉΓòÉΓòÉ
  5599.  
  5600. NSI binding attribute 
  5601.  
  5602. RPC: An RPC-defined attribute (NSI attribute) of a name service entry; the 
  5603. binding attribute stores binding information for one or more interface 
  5604. identifiers offered by an RPC server and identifies the entry as an RPC server 
  5605. entry. See binding information and NSI object attribute. See also server entry. 
  5606.  
  5607.  
  5608. ΓòÉΓòÉΓòÉ 9.15.15. NSI group attribute ΓòÉΓòÉΓòÉ
  5609.  
  5610. NSI group attribute 
  5611.  
  5612. RPC: An RPC-defined attribute (NSI attribute) of a name service entry that 
  5613. stores the entry names of the members of an RPC group and identifies the entry 
  5614. as an RPC group. See group. 
  5615.  
  5616.  
  5617. ΓòÉΓòÉΓòÉ 9.15.16. NSI object attribute ΓòÉΓòÉΓòÉ
  5618.  
  5619. NSI object attribute 
  5620.  
  5621. RPC: An RPC-defined attribute (NSI attribute) of a name service entry that 
  5622. stores the object UUIDs of a set of RPC objects. See object. 
  5623.  
  5624.  
  5625. ΓòÉΓòÉΓòÉ 9.15.17. NSI profile attribute ΓòÉΓòÉΓòÉ
  5626.  
  5627. NSI profile attribute 
  5628.  
  5629. RPC: An RPC-defined attribute (NSI attribute) of a name service entry that 
  5630. stores a collection of RPC profile elements and identifies the entry as an RPC 
  5631. profile. See profile. 
  5632.  
  5633.  
  5634. ΓòÉΓòÉΓòÉ 9.15.18. NTP ΓòÉΓòÉΓòÉ
  5635.  
  5636. NTP 
  5637.  
  5638. See Network Time Protocol. 
  5639.  
  5640.  
  5641. ΓòÉΓòÉΓòÉ 9.15.19. NULL ΓòÉΓòÉΓòÉ
  5642.  
  5643. NULL 
  5644.  
  5645. The value of a pointer that indicates that the pointer does not point to data. 
  5646.  
  5647.  
  5648. ΓòÉΓòÉΓòÉ 9.16. O ΓòÉΓòÉΓòÉ
  5649.  
  5650.  
  5651. ΓòÉΓòÉΓòÉ 9.16.1. object ΓòÉΓòÉΓòÉ
  5652.  
  5653. object 
  5654.  
  5655.    1. A data structure that implements some feature and has an associated set 
  5656.       of operations. 
  5657.  
  5658.    2. RPC: For RPC applications, an object can be anything that an RPC server 
  5659.       defines and identifies to its clients using an object universal unique 
  5660.       identifier (UUID). An RPC object is often a physical computing resource 
  5661.       such as a database, directory, device, or processor. Alternatively, an 
  5662.       RPC object can be an abstraction that is meaningful to an application, 
  5663.       such as a service or the location of a server. See object UUID. 
  5664.  
  5665.    3. XDS: Anything in the world of telecommunications and information 
  5666.       processing that can be named and for which the directory information base 
  5667.       (DIB) contains information. 
  5668.  
  5669.    4. XOM: Any of the complex information objects created, examined, modified, 
  5670.       or destroyed by means of the interface. 
  5671.  
  5672.  
  5673. ΓòÉΓòÉΓòÉ 9.16.2. object class ΓòÉΓòÉΓòÉ
  5674.  
  5675. object class 
  5676.  
  5677. CDS, GDS: An identified family of objects that share certain characteristics. 
  5678. An object class can be specific to one application or shared among a group of 
  5679. applications. An application interprets and uses an entry's class-specific 
  5680. attributes based on the class of the object that the entry describes. 
  5681.  
  5682.  
  5683. ΓòÉΓòÉΓòÉ 9.16.3. object entry ΓòÉΓòÉΓòÉ
  5684.  
  5685. object entry 
  5686.  
  5687. CDS: The name of a resource (such as a node, disk, or application) and its 
  5688. associated attributes, as stored by CDS. CDS administrators, client application 
  5689. users, or the client applications themselves can give a resource an object 
  5690. name. CDS supplies some attribute information (such as a creation timestamp) to 
  5691. become part of the object, and the client application may supply more 
  5692. information for CDS to store as other attributes. See entry. 
  5693.  
  5694.  
  5695. ΓòÉΓòÉΓòÉ 9.16.4. object management (OM) ΓòÉΓòÉΓòÉ
  5696.  
  5697. object management (OM) 
  5698.  
  5699. The creation, examination, modification, and deletion of potentially complex 
  5700. information objects. 
  5701.  
  5702.  
  5703. ΓòÉΓòÉΓòÉ 9.16.5. object UUID ΓòÉΓòÉΓòÉ
  5704.  
  5705. object UUID 
  5706.  
  5707. RPC: The universal unique identifier (UUID) that identifies a particular RPC 
  5708. object. A server specifies a distinct object UUID for each of its RPC objects. 
  5709. To access a particular RPC object, a client uses the object UUID to find the 
  5710. server that offers the object. See object. 
  5711.  
  5712.  
  5713. ΓòÉΓòÉΓòÉ 9.16.6. Open Software Foundation (OSF) ΓòÉΓòÉΓòÉ
  5714.  
  5715. Open Software Foundation (OSF) 
  5716.  
  5717. Pertaining to a nonprofit research and development organization set up to 
  5718. encourage the development of solutions that allow computers from different 
  5719. vendors to work together in a true, open system, computing environment. 
  5720.  
  5721.  
  5722. ΓòÉΓòÉΓòÉ 9.16.7. operation ΓòÉΓòÉΓòÉ
  5723.  
  5724. operation 
  5725.  
  5726.    1. RPC: The task performed by a routine or procedure that is requested by a 
  5727.       remote procedure call. 
  5728.  
  5729.    2. GDS: Processing performed within the directory to provide a service, such 
  5730.       as a read operation. 
  5731.  
  5732.  
  5733. ΓòÉΓòÉΓòÉ 9.16.8. organization ΓòÉΓòÉΓòÉ
  5734.  
  5735. organization 
  5736.  
  5737. Security: Data that associates a named set of users that is associated with a 
  5738. common administrative policy. 
  5739.  
  5740.  
  5741. ΓòÉΓòÉΓòÉ 9.16.9. OSF ΓòÉΓòÉΓòÉ
  5742.  
  5743. OSF 
  5744.  
  5745. See Open Software Foundation. 
  5746.  
  5747.  
  5748. ΓòÉΓòÉΓòÉ 9.17. P ΓòÉΓòÉΓòÉ
  5749.  
  5750.  
  5751. ΓòÉΓòÉΓòÉ 9.17.1. package ΓòÉΓòÉΓòÉ
  5752.  
  5753. package 
  5754.  
  5755. XOM: A specified group of related object management (OM) classes, denoted by an 
  5756. object identifier. 
  5757.  
  5758.  
  5759. ΓòÉΓòÉΓòÉ 9.17.2. parent directory ΓòÉΓòÉΓòÉ
  5760.  
  5761. parent directory 
  5762.  
  5763. CDS: Any directory that has one or more levels of directories beneath it in a 
  5764. cell namespace. A directory is the parent of any directory immediately beneath 
  5765. it in the hierarchy. 
  5766.  
  5767.  
  5768. ΓòÉΓòÉΓòÉ 9.17.3. partially bound binding handle ΓòÉΓòÉΓòÉ
  5769.  
  5770. partially bound binding handle 
  5771.  
  5772. RPC: A server binding handle that contains an incomplete server address lacking 
  5773. an endpoint. Contrast with fully bound binding handle. 
  5774.  
  5775.  
  5776. ΓòÉΓòÉΓòÉ 9.17.4. password ΓòÉΓòÉΓòÉ
  5777.  
  5778. password 
  5779.  
  5780. A secret string of characters shared between a computer system and a user. The 
  5781. user must specify the character string to gain access to the system. 
  5782.  
  5783.  
  5784. ΓòÉΓòÉΓòÉ 9.17.5. permission ΓòÉΓòÉΓòÉ
  5785.  
  5786. permission 
  5787.  
  5788.    1. The modes of access to a protected object. The number and meaning of 
  5789.       permissions with respect to an object are defined by the access control 
  5790.       list (ACL) Manager of the object. 
  5791.  
  5792.    2. GDS: One of five groups that assigns modes of access to users: MODIFY 
  5793.       PUBLIC, READ STANDARD, MODIFY STANDARD, READ SENSITIVE, or MODIFY 
  5794.       SENSITIVE. Synonymous with access right. See also access control list. 
  5795.  
  5796.  
  5797. ΓòÉΓòÉΓòÉ 9.17.6. person ΓòÉΓòÉΓòÉ
  5798.  
  5799. person 
  5800.  
  5801. See principal. 
  5802.  
  5803.  
  5804. ΓòÉΓòÉΓòÉ 9.17.7. platform ΓòÉΓòÉΓòÉ
  5805.  
  5806. platform 
  5807.  
  5808. The operating system environment in which a program runs. 
  5809.  
  5810.  
  5811. ΓòÉΓòÉΓòÉ 9.17.8. port ΓòÉΓòÉΓòÉ
  5812.  
  5813. port 
  5814.  
  5815.    1. Part of an IP address specifying an endpoint. 
  5816.  
  5817.    2. To make the programming changes necessary to allow a program that runs on 
  5818.       one type of computer to run on another type of computer. 
  5819.  
  5820.  
  5821. ΓòÉΓòÉΓòÉ 9.17.9. position (within a string) ΓòÉΓòÉΓòÉ
  5822.  
  5823. position (within a string) 
  5824.  
  5825. XOM: The ordinal position of one element of a string relative to another. 
  5826.  
  5827.  
  5828. ΓòÉΓòÉΓòÉ 9.17.10. position (within an attribute) ΓòÉΓòÉΓòÉ
  5829.  
  5830. position (within an attribute) 
  5831.  
  5832. XOM: The ordinal position of one value relative to another. 
  5833.  
  5834.  
  5835. ΓòÉΓòÉΓòÉ 9.17.11. presentation address ΓòÉΓòÉΓòÉ
  5836.  
  5837. presentation address 
  5838.  
  5839. An unambiguous name that is used to identify a set of presentation service 
  5840. access points. Loosely, it is the network address of an open systems 
  5841. interconnect (OSI) service. 
  5842.  
  5843.  
  5844. ΓòÉΓòÉΓòÉ 9.17.12. principal ΓòÉΓòÉΓòÉ
  5845.  
  5846. principal 
  5847.  
  5848. Security: An entity that can communicate securely with another entity. In the 
  5849. DCE, principals are represented as entries in the Registry database and include 
  5850. users, servers, computers, and authentication surrogates. 
  5851.  
  5852.  
  5853. ΓòÉΓòÉΓòÉ 9.17.13. privacy ΓòÉΓòÉΓòÉ
  5854.  
  5855. privacy 
  5856.  
  5857. RPC: A protection level that may be specified in secure RPC communications and 
  5858. that encrypts RPC argument values. 
  5859.  
  5860.  
  5861. ΓòÉΓòÉΓòÉ 9.17.14. private key ΓòÉΓòÉΓòÉ
  5862.  
  5863. private key 
  5864.  
  5865. See secret key. 
  5866.  
  5867.  
  5868. ΓòÉΓòÉΓòÉ 9.17.15. privilege attribute ΓòÉΓòÉΓòÉ
  5869.  
  5870. privilege attribute 
  5871.  
  5872. Security: An attribute of a principal that may be associated with a set of 
  5873. permissions. DCE privilege attributes are identity-based and include the 
  5874. principal's name, group memberships, and native cell. 
  5875.  
  5876.  
  5877. ΓòÉΓòÉΓòÉ 9.17.16. privilege attribute certificate (PAC) ΓòÉΓòÉΓòÉ
  5878.  
  5879. privilege attribute certificate (PAC) 
  5880.  
  5881. Security: Data describing a principal's privilege attributes that has been 
  5882. certified by an authority. In the DCE, the Privilege Service is the certifying 
  5883. authority; it seals the privilege attribute data in a ticket. The authorization 
  5884. protocol, DCE Authorization, determines the permissions granted to principals 
  5885. by comparing the privilege attributes in PACs with entries in an access control 
  5886. list. 
  5887.  
  5888.  
  5889. ΓòÉΓòÉΓòÉ 9.17.17. Privilege Service ΓòÉΓòÉΓòÉ
  5890.  
  5891. Privilege Service 
  5892.  
  5893. Security: One of three services provided by the Security Service; the Privilege 
  5894. Service certifies a principal's privileges. The other services are the Registry 
  5895. Service and the Authentication Service. 
  5896.  
  5897.  
  5898. ΓòÉΓòÉΓòÉ 9.17.18. profile ΓòÉΓòÉΓòÉ
  5899.  
  5900. profile 
  5901.  
  5902. RPC: An entry in a name service database that contains a collection of elements 
  5903. from which name service interface (NSI) search operations construct search 
  5904. paths for the database. Each search path is composed of one or more elements 
  5905. that refer to name service entries corresponding to a given RPC interface and, 
  5906. optionally, to an object. See NSI profile attribute and profile element. 
  5907.  
  5908.  
  5909. ΓòÉΓòÉΓòÉ 9.17.19. profile element ΓòÉΓòÉΓòÉ
  5910.  
  5911. profile element 
  5912.  
  5913. RPC: A record in an RPC profile that maps an RPC interface identifier to a 
  5914. profile member (a server entry, group, or profile in a name service database). 
  5915. See profile. See also group, interface identifier and server entry. 
  5916.  
  5917.  
  5918. ΓòÉΓòÉΓòÉ 9.17.20. protection level ΓòÉΓòÉΓòÉ
  5919.  
  5920. protection level 
  5921.  
  5922. The degree to which secure network communications are protected. Synonymous 
  5923. with authentication level. 
  5924.  
  5925.  
  5926. ΓòÉΓòÉΓòÉ 9.17.21. protocol ΓòÉΓòÉΓòÉ
  5927.  
  5928. protocol 
  5929.  
  5930. A set of semantic and syntactic rules that determines the behavior of 
  5931. functional units in achieving communication. 
  5932.  
  5933.  
  5934. ΓòÉΓòÉΓòÉ 9.17.22. protocol family ΓòÉΓòÉΓòÉ
  5935.  
  5936. protocol family 
  5937.  
  5938. Synonym for address family. 
  5939.  
  5940.  
  5941. ΓòÉΓòÉΓòÉ 9.17.23. protocol sequence ΓòÉΓòÉΓòÉ
  5942.  
  5943. protocol sequence 
  5944.  
  5945. Synonym for RPC protocol sequence. 
  5946.  
  5947.  
  5948. ΓòÉΓòÉΓòÉ 9.18. R ΓòÉΓòÉΓòÉ
  5949.  
  5950.  
  5951. ΓòÉΓòÉΓòÉ 9.18.1. read access ΓòÉΓòÉΓòÉ
  5952.  
  5953. read access 
  5954.  
  5955. CDS: An access right that grants the ability to view data. 
  5956.  
  5957.  
  5958. ΓòÉΓòÉΓòÉ 9.18.2. read-only replica ΓòÉΓòÉΓòÉ
  5959.  
  5960. read-only replica 
  5961.  
  5962.    1. CDS: A copy of a CDS directory in which applications cannot make changes. 
  5963.       Although applications can look up information (read) from it, they cannot 
  5964.       create, modify, or delete entries in a read-only replica. Read-only 
  5965.       replicas become consistent with other, modifiable replicas of the same 
  5966.       directory during skulks and routine propagation of updates. 
  5967.  
  5968.    2. Security: A slave Registry server. 
  5969.  
  5970.  
  5971. ΓòÉΓòÉΓòÉ 9.18.3. realm ΓòÉΓòÉΓòÉ
  5972.  
  5973. realm 
  5974.  
  5975. Security: A cell, considered exclusively from the point of view of Security; 
  5976. this term is used in Kerberos specifications. The term cell designates the 
  5977. basic unit of DCE configuration and administration and incorporates the notion 
  5978. of a realm. 
  5979.  
  5980.  
  5981. ΓòÉΓòÉΓòÉ 9.18.4. referral ΓòÉΓòÉΓòÉ
  5982.  
  5983. referral 
  5984.  
  5985. GDS: An outcome that can be returned by a DSA that cannot perform an operation 
  5986. itself. The referral identifies one or more other DSAs more able to perform the 
  5987. operation. 
  5988.  
  5989.  
  5990. ΓòÉΓòÉΓòÉ 9.18.5. register ΓòÉΓòÉΓòÉ
  5991.  
  5992. register 
  5993.  
  5994.    1. RPC: To list an RPC interface with the RPC runtime. 
  5995.  
  5996.    2. To place server-addressing information into the local endpoint map. 
  5997.  
  5998.    3. To insert authorization and authentication information into binding 
  5999.       information. See endpoint map and RPC interface. 
  6000.  
  6001.  
  6002. ΓòÉΓòÉΓòÉ 9.18.6. Registry Service ΓòÉΓòÉΓòÉ
  6003.  
  6004. Registry Service 
  6005.  
  6006. Security: One of three services provided by the Security Service; the Registry 
  6007. Service manages information about principals, accounts, and security policies. 
  6008. The other services are the Privilege Service and the Authentication Service. 
  6009.  
  6010.  
  6011. ΓòÉΓòÉΓòÉ 9.18.7. relative distinguished name (RDN) ΓòÉΓòÉΓòÉ
  6012.  
  6013. relative distinguished name (RDN) 
  6014.  
  6015. GDS, XDS: A set of Attribute Value Assertions (AVAs). 
  6016.  
  6017.  
  6018. ΓòÉΓòÉΓòÉ 9.18.8. remote ΓòÉΓòÉΓòÉ
  6019.  
  6020. remote 
  6021.  
  6022. Pertaining to a device, file or system that is accessed by your system through 
  6023. a communications line. Contrast with local. 
  6024.  
  6025.  
  6026. ΓòÉΓòÉΓòÉ 9.18.9. remote procedure ΓòÉΓòÉΓòÉ
  6027.  
  6028. remote procedure 
  6029.  
  6030. RPC: An application procedure located in a separate address space from calling 
  6031. code. See remote procedure call. 
  6032.  
  6033.  
  6034. ΓòÉΓòÉΓòÉ 9.18.10. remote procedure call ΓòÉΓòÉΓòÉ
  6035.  
  6036. remote procedure call 
  6037.  
  6038. RPC: A client request to a service provider located anywhere in the network. 
  6039.  
  6040.  
  6041. ΓòÉΓòÉΓòÉ 9.18.11. Remote Procedure Call (RPC) ΓòÉΓòÉΓòÉ
  6042.  
  6043. Remote Procedure Call (RPC) 
  6044.  
  6045. A DCE component. It allows requests from a client program to access a procedure 
  6046. located anywhere in the network. 
  6047.  
  6048.  
  6049. ΓòÉΓòÉΓòÉ 9.18.12. replica ΓòÉΓòÉΓòÉ
  6050.  
  6051. replica 
  6052.  
  6053. CDS: A directory in the CDS namespace. The first instance of a directory in the 
  6054. namespace is the master replica. When CDS managers make copies of the master 
  6055. replica to store in other clearinghouses, all of the copies, including the 
  6056. master replica, become part of the directory's replica set. 
  6057.  
  6058.  
  6059. ΓòÉΓòÉΓòÉ 9.18.13. replication ΓòÉΓòÉΓòÉ
  6060.  
  6061. replication 
  6062.  
  6063. The making of a shadow of a database to be used by another node. Replication 
  6064. can improve availability and load-sharing. 
  6065.  
  6066.  
  6067. ΓòÉΓòÉΓòÉ 9.18.14. request ΓòÉΓòÉΓòÉ
  6068.  
  6069. request 
  6070.  
  6071. A command sent to a server over a connection. 
  6072.  
  6073.  
  6074. ΓòÉΓòÉΓòÉ 9.18.15. resource ΓòÉΓòÉΓòÉ
  6075.  
  6076. resource 
  6077.  
  6078. Items such as printers, plotters, data storage, or a computer service. Each has 
  6079. a unique identifier associated with it for naming purposes. 
  6080.  
  6081.  
  6082. ΓòÉΓòÉΓòÉ 9.18.16. return value ΓòÉΓòÉΓòÉ
  6083.  
  6084. return value 
  6085.  
  6086. A function result that is returned in addition to the values of any output or 
  6087. input/output arguments. 
  6088.  
  6089.  
  6090. ΓòÉΓòÉΓòÉ 9.18.17. RPC ΓòÉΓòÉΓòÉ
  6091.  
  6092. RPC 
  6093.  
  6094. See Remote Procedure Call. 
  6095.  
  6096.  
  6097. ΓòÉΓòÉΓòÉ 9.18.18. RPC daemon (RPCD) ΓòÉΓòÉΓòÉ
  6098.  
  6099. RPC daemon (RPCD) 
  6100.  
  6101. The process that provides the endpoint map service for a system. See also 
  6102. endpoint map and endpoint map service. 
  6103.  
  6104.  
  6105. ΓòÉΓòÉΓòÉ 9.18.19. RPC interface ΓòÉΓòÉΓòÉ
  6106.  
  6107. RPC interface 
  6108.  
  6109. A logical group of operations, data types, and constant declarations that 
  6110. serves as a network contract for a client to request a procedure in a server. 
  6111. See also interface definition and operation. 
  6112.  
  6113.  
  6114. ΓòÉΓòÉΓòÉ 9.18.20. RPC protocol ΓòÉΓòÉΓòÉ
  6115.  
  6116. RPC protocol 
  6117.  
  6118. An RPC-specific communications protocol that supports the semantics of the DCE 
  6119. RPC API and runs over either connectionless or connection-oriented 
  6120. communications protocols. 
  6121.  
  6122.  
  6123. ΓòÉΓòÉΓòÉ 9.18.21. RPC protocol sequence ΓòÉΓòÉΓòÉ
  6124.  
  6125. RPC protocol sequence 
  6126.  
  6127. A valid combination of communications protocols represented by a character 
  6128. string. Each RPC protocol sequence typically includes three protocols: a 
  6129. network protocol, a transport protocol, and an RPC protocol that works with 
  6130. those network and transport protocols. See network protocol, RPC protocol. 
  6131. Synonymous with protocol sequence. 
  6132.  
  6133.  
  6134. ΓòÉΓòÉΓòÉ 9.18.22. RPC runtime ΓòÉΓòÉΓòÉ
  6135.  
  6136. RPC runtime 
  6137.  
  6138. A set of operations that manages communications, provides access to the name 
  6139. service database, and performs other tasks, such as managing servers and 
  6140. accessing security information, for RPC applications. See RPC runtime library. 
  6141.  
  6142.  
  6143. ΓòÉΓòÉΓòÉ 9.18.23. RPCD ΓòÉΓòÉΓòÉ
  6144.  
  6145. RPCD 
  6146.  
  6147. See RPC daemon. 
  6148.  
  6149.  
  6150. ΓòÉΓòÉΓòÉ 9.19. S ΓòÉΓòÉΓòÉ
  6151.  
  6152.  
  6153. ΓòÉΓòÉΓòÉ 9.19.1. scalability ΓòÉΓòÉΓòÉ
  6154.  
  6155. scalability 
  6156.  
  6157. The ability of a distributed system to expand in size without changes to the 
  6158. system structure, to applications, or to the way users deal with the system. 
  6159.  
  6160.  
  6161. ΓòÉΓòÉΓòÉ 9.19.2. schema ΓòÉΓòÉΓòÉ
  6162.  
  6163. schema 
  6164.  
  6165. See directory schema. 
  6166.  
  6167.  
  6168. ΓòÉΓòÉΓòÉ 9.19.3. secret key ΓòÉΓòÉΓòÉ
  6169.  
  6170. secret key 
  6171.  
  6172. Security: A long-lived encryption key shared between a principal and the 
  6173. Authentication Service. 
  6174.  
  6175.  
  6176. ΓòÉΓòÉΓòÉ 9.19.4. Security Service ΓòÉΓòÉΓòÉ
  6177.  
  6178. Security Service 
  6179.  
  6180. A DCE component. It provides trustworthy identification of users, secure 
  6181. communications, and controlled access to resources in a distributed system. 
  6182.  
  6183.  
  6184. ΓòÉΓòÉΓòÉ 9.19.5. segment ΓòÉΓòÉΓòÉ
  6185.  
  6186. segment 
  6187.  
  6188. One or more contiguous elements of a string. 
  6189.  
  6190.  
  6191. ΓòÉΓòÉΓòÉ 9.19.6. server ΓòÉΓòÉΓòÉ
  6192.  
  6193. server 
  6194.  
  6195.    1. On a network, the computer that contains programs, data, or provides the 
  6196.       facilities that other computers on the network can access. 
  6197.  
  6198.    2. The party that receives remote procedure calls. Contrast with client. 
  6199.  
  6200.  
  6201. ΓòÉΓòÉΓòÉ 9.19.7. server entry ΓòÉΓòÉΓòÉ
  6202.  
  6203. server entry 
  6204.  
  6205. RPC: A name service entry that stores the binding information associated with 
  6206. the RPC interfaces of a particular RPC server and object universal unique 
  6207. identifiers (UUIDs) for any objects offered by the server. See also binding 
  6208. information, NSI binding attribute, NSI object attribute, object and RPC 
  6209. interface. 
  6210.  
  6211.  
  6212. ΓòÉΓòÉΓòÉ 9.19.8. server stub ΓòÉΓòÉΓòÉ
  6213.  
  6214. server stub 
  6215.  
  6216. RPC: The surrogate calling code for an RPC interface that is linked with server 
  6217. application code containing one or more sets of remote procedures (managers) 
  6218. that implement the interface. See client stub. See also manager. 
  6219.  
  6220.  
  6221. ΓòÉΓòÉΓòÉ 9.19.9. service ΓòÉΓòÉΓòÉ
  6222.  
  6223. service 
  6224.  
  6225. In network architecture, the capabilities that the layers closer to the 
  6226. physical media provide to the layers closer to the end user. 
  6227.  
  6228.  
  6229. ΓòÉΓòÉΓòÉ 9.19.10. session ΓòÉΓòÉΓòÉ
  6230.  
  6231. session 
  6232.  
  6233. GDS: A sequence of directory operations requested by a particular user of a 
  6234. particular directory user agent (DUA) using the same session object management 
  6235. (OM) object. 
  6236.  
  6237.  
  6238. ΓòÉΓòÉΓòÉ 9.19.11. skulk ΓòÉΓòÉΓòÉ
  6239.  
  6240. skulk 
  6241.  
  6242. CDS: A process by which CDS makes the data consistent in all replicas of a 
  6243. particular directory. CDS collects all changes made to the master replica since 
  6244. the last skulk was completed, and disseminates the changes from the up-to-date 
  6245. replica to all other existing replicas of the directory. All replicas of a 
  6246. directory must be available for a skulk to be considered successful. If a skulk 
  6247. fails, CDS reports the replicas that it could not reach. 
  6248.  
  6249.  
  6250. ΓòÉΓòÉΓòÉ 9.19.12. soft link ΓòÉΓòÉΓòÉ
  6251.  
  6252. soft link 
  6253.  
  6254. CDS: A pointer that provides an alternative name for an object entry, 
  6255. directory, or other soft link in the namespace. A soft link can be permanent or 
  6256. it can expire after a specific period of time. The CDS server also can delete 
  6257. it automatically after the name that the link points to is deleted. 
  6258.  
  6259.  
  6260. ΓòÉΓòÉΓòÉ 9.19.13. specific ΓòÉΓòÉΓòÉ
  6261.  
  6262. specific 
  6263.  
  6264. XOM: The attribute types that can appear in an instance of a given class, but 
  6265. not in an instance of its superclasses. 
  6266.  
  6267.  
  6268. ΓòÉΓòÉΓòÉ 9.19.14. S-stub ΓòÉΓòÉΓòÉ
  6269.  
  6270. S-stub 
  6271.  
  6272. GDS: The part of the directory system agent (DSA) that establishes the 
  6273. connection to the communications network. 
  6274.  
  6275.  
  6276. ΓòÉΓòÉΓòÉ 9.19.15. standard ΓòÉΓòÉΓòÉ
  6277.  
  6278. standard 
  6279.  
  6280. A model that is established and widely used. 
  6281.  
  6282.  
  6283. ΓòÉΓòÉΓòÉ 9.19.16. string ΓòÉΓòÉΓòÉ
  6284.  
  6285. string 
  6286.  
  6287. An ordered sequence of bits, octets, or characters, accompanied by the string's 
  6288. length. 
  6289.  
  6290.  
  6291. ΓòÉΓòÉΓòÉ 9.19.17. stub ΓòÉΓòÉΓòÉ
  6292.  
  6293. stub 
  6294.  
  6295. RPC: A code module specific to an RPC interface that is generated by the 
  6296. Network Interface Definition Language (NIDL) compiler to support remote 
  6297. procedure calls for the interface. RPC stubs are linked with client and server 
  6298. applications and hide the intricacies of remote procedure calls from the 
  6299. application code. See client stub, server stub, and extended server stub. 
  6300.  
  6301.  
  6302. ΓòÉΓòÉΓòÉ 9.19.18. subject identifier (SID) ΓòÉΓòÉΓòÉ
  6303.  
  6304. subject identifier (SID) 
  6305.  
  6306. A string that identifies a user or set of users. Each SID consists of three 
  6307. fields in the form person.group.organization. In an account, each field must 
  6308. have a specific value; in an access control list (ACL) entry, one or more 
  6309. fields may use a wildcard. 
  6310.  
  6311.  
  6312. ΓòÉΓòÉΓòÉ 9.19.19. synchronization ΓòÉΓòÉΓòÉ
  6313.  
  6314. synchronization 
  6315.  
  6316. DTS: The process by which a Distributed Time Service entity requests clock 
  6317. values from other systems, computes a new time from the values, and adjusts its 
  6318. system clock to the new time. 
  6319.  
  6320.  
  6321. ΓòÉΓòÉΓòÉ 9.19.20. syntax ΓòÉΓòÉΓòÉ
  6322.  
  6323. syntax 
  6324.  
  6325.    1. XOM: An object management (OM) syntax is any of the various categories 
  6326.       into which the OM specification statically groups values on the basis of 
  6327.       their form. These categories are additional to the OM type of the value. 
  6328.  
  6329.    2. A category into which an attribute value is placed on the basis of its 
  6330.       form. See attribute syntax. 
  6331.  
  6332.  
  6333. ΓòÉΓòÉΓòÉ 9.19.21. system time ΓòÉΓòÉΓòÉ
  6334.  
  6335. system time 
  6336.  
  6337. The time value maintained and used by the operating system. 
  6338.  
  6339.  
  6340. ΓòÉΓòÉΓòÉ 9.20. T ΓòÉΓòÉΓòÉ
  6341.  
  6342.  
  6343. ΓòÉΓòÉΓòÉ 9.20.1. thread ΓòÉΓòÉΓòÉ
  6344.  
  6345. thread 
  6346.  
  6347. A single sequential flow of control within a process. 
  6348.  
  6349.  
  6350. ΓòÉΓòÉΓòÉ 9.20.2. thread handle ΓòÉΓòÉΓòÉ
  6351.  
  6352. thread handle 
  6353.  
  6354. RPC: A data item that enables threads to share a memory management environment. 
  6355.  
  6356.  
  6357. ΓòÉΓòÉΓòÉ 9.20.3. ticket ΓòÉΓòÉΓòÉ
  6358.  
  6359. ticket 
  6360.  
  6361. Security: An application-transparent mechanism that transmits the identity of 
  6362. an initiating principal to its target. A simple ticket contains the principal's 
  6363. identity, a session key, a timestamp and other information, sealed using the 
  6364. target's secret key. A privilege ticket contains the same information as a 
  6365. simple ticket, and also includes a privilege attribute certificate. A 
  6366. ticket-granting ticket is a ticket to the ticket-granting service. A service 
  6367. ticket is a ticket for a specified service other than the ticket-granting 
  6368. service. 
  6369.  
  6370.  
  6371. ΓòÉΓòÉΓòÉ 9.20.4. time differential factor (TDF) ΓòÉΓòÉΓòÉ
  6372.  
  6373. time differential factor (TDF) 
  6374.  
  6375. DTS: The difference between coordinated universal time (UTC) and the time in a 
  6376. particular time zone. 
  6377.  
  6378.  
  6379. ΓòÉΓòÉΓòÉ 9.20.5. time provider (TP) ΓòÉΓòÉΓòÉ
  6380.  
  6381. time provider (TP) 
  6382.  
  6383. DTS: A process that queries coordinated universal time (UTC) from a hardware 
  6384. device and provides it to the server. 
  6385.  
  6386.  
  6387. ΓòÉΓòÉΓòÉ 9.20.6. time provider interface (TPI) ΓòÉΓòÉΓòÉ
  6388.  
  6389. time provider interface (TPI) 
  6390.  
  6391. An interface between the DTS server and external time provider process. The DTS 
  6392. server uses the interface to communicate with the time provider and to obtain 
  6393. timestamps from an external time source. 
  6394.  
  6395.  
  6396. ΓòÉΓòÉΓòÉ 9.20.7. timeslicing ΓòÉΓòÉΓòÉ
  6397.  
  6398. timeslicing 
  6399.  
  6400. A mechanism by which running threads are preempted at fixed intervals. This 
  6401. ensures that every thread is allowed time to be executed. 
  6402.  
  6403.  
  6404. ΓòÉΓòÉΓòÉ 9.20.8. transfer syntax ΓòÉΓòÉΓòÉ
  6405.  
  6406. transfer syntax 
  6407.  
  6408. RPC: A set of encoding rules used for transmitting data over a network and for 
  6409. converting application data to and from different local data representations. 
  6410. See also Network Data Representation. 
  6411.  
  6412.  
  6413. ΓòÉΓòÉΓòÉ 9.20.9. Transmission Control Protocol ΓòÉΓòÉΓòÉ
  6414.  
  6415. Transmission Control Protocol 
  6416.  
  6417. A transport protocol of the Internet Protocol (IP) family for 
  6418. connection-oriented communication. 
  6419.  
  6420.  
  6421. ΓòÉΓòÉΓòÉ 9.20.10. Transmission Control Protocol/Internet Protocol (TCP/IP) ΓòÉΓòÉΓòÉ
  6422.  
  6423. Transmission Control Protocol/Internet Protocol (TCP/IP) 
  6424.  
  6425. A network protocol that connects to other systems that support TCP/IP. It 
  6426. allows a user to send and receive mail, transfer files across a network, print 
  6427. files, run commands on remote systems, and log in to remote systems. 
  6428.  
  6429.  
  6430. ΓòÉΓòÉΓòÉ 9.20.11. transport layer ΓòÉΓòÉΓòÉ
  6431.  
  6432. transport layer 
  6433.  
  6434. A network service that provides end-to-end communications between two parties, 
  6435. while hiding the details of the communications network. The Transmission 
  6436. Control Protocol (TCP) and International Organization for Standardization (ISO) 
  6437. TP4 transport protocols provide full-duplex virtual circuits on which delivery 
  6438. is reliable, error free, sequenced, and duplicate free. User Datagram Protocol 
  6439. (UDP) provides no guarantees. The connectionless RPC protocol provides some 
  6440. guarantees on top of UDP. 
  6441.  
  6442.  
  6443. ΓòÉΓòÉΓòÉ 9.20.12. transport protocol ΓòÉΓòÉΓòÉ
  6444.  
  6445. transport protocol 
  6446.  
  6447. A communications protocol, such as the Transmission Control Protocol (TCP) or 
  6448. the User Datagram Protocol (UDP). 
  6449.  
  6450.  
  6451. ΓòÉΓòÉΓòÉ 9.20.13. type ΓòÉΓòÉΓòÉ
  6452.  
  6453. type 
  6454.  
  6455. XOM: A category into which attribute values are placed on the basis of their 
  6456. purpose. See attribute type. 
  6457.  
  6458.  
  6459. ΓòÉΓòÉΓòÉ 9.20.14. type UUID ΓòÉΓòÉΓòÉ
  6460.  
  6461. type UUID 
  6462.  
  6463. RPC: The universal unique identifier (UUID) that identifies a particular type 
  6464. of object and an associated manager. See also manager and object. 
  6465.  
  6466.  
  6467. ΓòÉΓòÉΓòÉ 9.21. U ΓòÉΓòÉΓòÉ
  6468.  
  6469.  
  6470. ΓòÉΓòÉΓòÉ 9.21.1. unexport ΓòÉΓòÉΓòÉ
  6471.  
  6472. unexport 
  6473.  
  6474. RPC: To remove binding information from a server entry in a name service 
  6475. database. Contrast with export. 
  6476.  
  6477.  
  6478. ΓòÉΓòÉΓòÉ 9.21.2. universal unique identifier (UUID) ΓòÉΓòÉΓòÉ
  6479.  
  6480. universal unique identifier (UUID) 
  6481.  
  6482. RPC: An identifier that is immutable and unique across time and space. A UUID 
  6483. can uniquely identify an entity such as an object or an RPC interface. See 
  6484. interface UUID, object UUID, and type UUID. 
  6485.  
  6486.  
  6487. ΓòÉΓòÉΓòÉ 9.21.3. user ΓòÉΓòÉΓòÉ
  6488.  
  6489. user 
  6490.  
  6491. A person who requires the services of a computing system. 
  6492.  
  6493.  
  6494. ΓòÉΓòÉΓòÉ 9.21.4. User Datagram Protocol (UDP) ΓòÉΓòÉΓòÉ
  6495.  
  6496. User Datagram Protocol (UDP) 
  6497.  
  6498. A protocol of the Internet Protocol (IP) family. 
  6499.  
  6500.  
  6501. ΓòÉΓòÉΓòÉ 9.21.5. UTC ΓòÉΓòÉΓòÉ
  6502.  
  6503. UTC 
  6504.  
  6505. See Coordinated Universal Time. 
  6506.  
  6507.  
  6508. ΓòÉΓòÉΓòÉ 9.22. V ΓòÉΓòÉΓòÉ
  6509.  
  6510.  
  6511. ΓòÉΓòÉΓòÉ 9.22.1. value ΓòÉΓòÉΓòÉ
  6512.  
  6513. value 
  6514.  
  6515. XOM: An arbitrary and complex information item that can be viewed as a 
  6516. characteristic or property of an object. See attribute value. 
  6517.  
  6518.  
  6519. ΓòÉΓòÉΓòÉ 9.22.2. vector ΓòÉΓòÉΓòÉ
  6520.  
  6521. vector 
  6522.  
  6523. RPC: An array of references to other structures. 
  6524.  
  6525.  
  6526. ΓòÉΓòÉΓòÉ 9.23. W ΓòÉΓòÉΓòÉ
  6527.  
  6528.  
  6529. ΓòÉΓòÉΓòÉ 9.23.1. WAN ΓòÉΓòÉΓòÉ
  6530.  
  6531. WAN 
  6532.  
  6533. Wide area network. A network that provides communication services to a 
  6534. geographic area larger than that served by a local area network (LAN). 
  6535.  
  6536.  
  6537. ΓòÉΓòÉΓòÉ 9.23.2. wide area network ΓòÉΓòÉΓòÉ
  6538.  
  6539. wide area network 
  6540.  
  6541. See WAN. 
  6542.  
  6543.  
  6544. ΓòÉΓòÉΓòÉ 9.23.3. workstation ΓòÉΓòÉΓòÉ
  6545.  
  6546. workstation 
  6547.  
  6548. A terminal or microcomputer, usually one that is connected to a host or to a 
  6549. network, at which a user can execute applications. 
  6550.  
  6551.  
  6552. ΓòÉΓòÉΓòÉ 9.24. X ΓòÉΓòÉΓòÉ
  6553.  
  6554.  
  6555. ΓòÉΓòÉΓòÉ 9.24.1. XDS ΓòÉΓòÉΓòÉ
  6556.  
  6557. XDS 
  6558.  
  6559. The X/Open Directory Service application program interface (API). 
  6560.  
  6561.  
  6562. ΓòÉΓòÉΓòÉ 9.24.2. XOM ΓòÉΓòÉΓòÉ
  6563.  
  6564. XOM 
  6565.  
  6566. The X/Open Object Management application program interface (API).