PreviousNext

Application Support for Server Management

Applications can support server management at three levels. At a minimum, every server automatically supports the RPC management API (routines the begin with rpc_mgmt_). By attaching an authorization function to the management interface (via a call to rpc_mgmt_set_authorizaton_fn( )), a server can set nondefault access to the generic management functions. Although these routines give a management program some control of the server, some of these routines only work locally, so the controlling client must run on the same host as the server.

At the second level, all servers should permit themselves to be managed from remote hosts via the dced. The requirements in the server's initialization code are minimal:

· The server should establish a security state using the dce_server_sec_begin( ) call. This call establishes the server's identity with the RPC runtime such that clients can make authenticated remote procedure calls to it. The call also establishes with the security service the server's identity so that it can make authenticated remote procedure calls to other servers.
Server writers should also give the dced (which runs with the host's principal identity) permission to control the server. Since the default is to disable remote control, the server must provide a nondefault authorization function that gives the machine principal access. An example of such an authorization function is given in Security.

· The server must register as a DCE server using the dce_server_register( ) call. This call fulfills the majority of the server initialization tasks including creating bindings, registering interfaces with the RPC runtime, registering endpoints with the dced endpoint mapper service, and advertising in the name service.

All servers should take these steps to operate correctly in DCE.

Finally, applications can provide application-specific server management. This would typically be done for a persistent server that provides access to some shared resource such as a database. Such a server can provide a set of privileged management operations - such as database maintenance - as a separate application-specific management interface. Such an interface can be accessed by an application management client that can also call the DCE management interfaces. This type of management client is shown in the previous figure.