Go to main content

Remote Administration Daemon Developer's Guide

Exit Print View

Updated: April 2020

Remote Administration Daemon

RAD provides programmable interfaces that enable developers and administrators to configure and manage Oracle Solaris system components. You can configure and manage system components using C, Java, Python, and REpresentational State Transfer (REST) APIs. RAD also enables developers to create custom interfaces using these APIs to manage the system components.

RAD is designed to provide a remote administrative interface for operating system components or subsystems. The remote interfaces support easy administration of a distributed systems. However, RAD interfaces are not intended to build distributed systems. You can use RPC, RMI, CORBA, MPI, and other technologies to build distributed applications.

A RAD interface defines how a client can interact with a system through a set of methods, attributes, and events using a well-defined namespace.

    Developers and administrators, who previously used $EDITOR can now use one the following approaches to modify system components locally:

  • Using a command-line interface (CLI) or an interactive user interface (UI)

  • Using a browser or a remote client

  • Using a CLI, an interactive UI, and a browser or a client with an enterprise-scale provisioning tool

All of these methods require programmable access to configuration.

RAD uses a client-server design to support different types of clients such as clients written in different languages, clients running without privilege, and clients running remotely. In a client-server design, RAD acts as a server that services remote procedure calls and clients act as consumers.

By providing a procedure call interface, RAD enables non-privileged local consumers to perform actions on behalf of their users that require elevated privilege, without resorting to a CLI-based implementation. By establishing a stream protocol, RAD enables the consumers to perform actions on any system or device over a range of secure transport options.

The rad protocol is efficient and easy to implement, which makes it simple to support all administrative tasks provided by an interface. The protocol used by RAD is efficient and is easy to implement.

    RAD differs from remote procedure call (RPC) in the following ways:

  • Procedure calls in RAD are made against server objects in a browsable, structured namespace. This process permits a more logical progression of program than central allocation of program numbers.

  • Procedure calls can be asynchronous. Depending on the protocol in use, a client might have multiple simultaneous outstanding requests.

  • You can inspect and modify the interfaces exported by the server objects. This inspection facilitates interactive usage, debugging environments, and enables clients to use dynamically-typed languages such as Python.

  • Using RAD interfaces, you can define properties and asynchronous event sources.

Note -  The native RAD protocol supports asynchronous procedure calls after the client is authenticated. The underlying implementation of other protocols, such as XML-RPC, might not support asynchronous calls.