RAD Interface

An interface defines how a RAD client can interact with an object. Put another way, an object implements an interface, providing a concrete behavior to be invoked when a client makes a request.

The primary purpose of RAD is to consistently expose the various pieces of the system for administration. Not all subsystems are alike. However, each subsystem has a data and state model tuned to the problems they are solving. Although the use of a common model across components offers major benefits, uniformity comes with trade-offs. A common model can be inefficient and create client complexity, thereby risking decreased developer adoption.

An interface is a formal definition of how a client may interact with a RAD server object. An interface may be shared amongst several objects. A RAD interface is analogous to an interface or pure abstract class in an object oriented programming language. In the case of RAD, an interface consists of a name, a set of features a client may interact with, a set of derived types that are referenced by the features (optional), and a version. The features that are supported include:

  • Methods, which are procedure calls made in the context of a specific object

  • Properties, which are functionally equivalent to methods but differ semantically

  • Asynchronous event sources