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 the central point where system developers can expose their components for configuration or administration, and where the various programmatic consumers can go to perform such activities. For more information, see Remote Administration Daemon Client Guide.

A RAD interface defines how a client can interact with a system through a set of methods, attributes, and events using a structured namespace. The interface enables developers and administrators to configure and administer Oracle Solaris. Developers create these interfaces and program the access to them.

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.

RAD offers the following benefits:

  • Procedure calls in RAD are made against server objects in a browsable, structured namespace. This process permits a logical program progression.

  • 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.