PreviousNext

Overview of DCE Application Development Steps

The rest of this topic consists of a step-by-step checklist of every single one of the decisions that a programmer must make in developing a typical DCE application. Each set of decisions or choices is combined into one step. The combination of all these steps takes you from the initial coding stages into and through the normal course of execution of the application itself. The underlying intention of this arrangement is to give you a useful mental model of the overall code development process.

The four basic phases of DCE application development are as follows:

A. CLIENT and SERVER: Define the IDL interface [Steps A1 to A4]

B. SERVER: Set up and listen [Steps B1 to B8]

C. CLIENT: Bind to and invoke the server [Steps C1 to C4]

D. SERVER: Service request(s) [Steps D1 to D5]

Following is an overview list of all 21 steps, separated into the four main phases previously described. Each step's numeral is followed by a / (slash) and the terms Client and/or Server to indicate whether it applies to the application's server or client, or both.

A. CLIENT and SERVER: Define the IDL interface

A1/Client and Server: Generate the interface UUID

A2/Client and Server: Write the .idl file

A3/Client and Server: Write the .acf file (optional)

A4/Client and Server: Process the files with the IDL compiler

B. SERVER: Initialization

B1/Server: Set up for serviceability

B2/Server: Set up the server's objects

B3/Server: Set up security

B4/Server: Define the manager entry point vectors

B5/Server: Register the server

B6/Server: Specify multithreadedness

B7/Server: Listen for incoming service requests

B8/Server: Clean up when server terminates

C. CLIENT: Bind to and invoke the server

C1/Client: Multithreaded client design

C2/Client: Import the binding information from the namespace (CDS)

C3/Client: Annotate the binding handle for security

C4/Client: Invoke an RPC interface operation

D. SERVER: Service the request

D1/Server: Get the client's credentials

D2/Server: Get the object's access control list

D3/Server: Make the authorization decision

D4/Server: Service the request

D5/Server: Return the results to the client and resume listening