OSF DCE Application Development Guide--Introduction and Style Guide
Introduction to DCE Application Programming
the appropriate action.
The application may choose to implement more than one type of ACL (reflecting the
different kinds of objects and resources to be protected), thus resulting in several ACL
type managers.
Although it is up to the application to implement its own ACL storage, testing algorithms
and manager types, there are certain DCE-wide design conventions that should be kept in
mind and departed from only for good reason. Among these are the following:
• Standard DCE ACL entry types: the kinds of entry that can occur in an ACL (for
example, user, group, and so on).
• Standard privileges: the kinds of access that a principal can have to a protected
object (for example, read, write, and so on).
• Standard inheritance rules: these rules govern the default characteristics of ACLs
created for newly created objects.
• Standard access algorithm: the order in which a client’s credentials are matched
against the various possible entry types.
Information about these topics for application developers designing their own ACL
model can be found in the , in which all the DCE authorization conventions are described
in detail.
1.7.4 Servicing the RPC Request
If the client’s request is determined to be properly authorized, then the requested
operation can proceed.
Note that this step and steps D3 and D4 (as discussed in Section 1.2) are somewhat
intertwined. Something like the following could occur:
1. The server wakes up in some routine defined in its manager code. For example, if
the client executed the call my_rpc_op( ), then the server will wake up in the
routine that implements this remote call.
2. Execution of the my_rpc_op( ) routine requires the insert privilege for the
application’s database my_database.Somy_rpc_op() begins by checking the
client’s relevant privilege attribute by making an internal call to the application’s
ACL manager.
3. If the client is found to have the requisite privilege, my_rpc_op() proceeds.
The remote procedure executed in this step is written by the application developer.
1.7.5 Returning the Results and Resuming Listening
At the completion of the operation, the RPC thread that was automatically spawned to
execute it is terminated by the RPC runtime. As far as the server is concerned, it is still
124246 Tandem Computers Incorporated 1− 33










