Plug-ins use the NexusDB transport system to build completely integrated, custom distributed services. Plug-ins provide a middleware solution to enable remote interface invocation within NexusDB's infrastructure. The mechanics are very similar to an RPC (Remote Procedure Call) system.
There are three components that need to be created to leverage the Plug-in architecture: a Plug-in Engine, a Remote Plug-in Engine and a Plug-in Command Handler. The Plug-in Engine is the actual implementation of the extension or service. The Remote Plug-in Engine is the interface a remote client invokes the methods on directly; it serves as a proxy for the actual implementation (i.e. the Plug-in Engine). The Plug-in Command Handler listens in the server process and dispatches the commands received from the Remote Plug-in to the actual Plug-in Engine implementation.
The Plug-in Engine and the Remote Engine are analogous to NexusDB's Server Engine and Remote Server Engine. The Plug-in Command Handler is analogous to NexusDB's Server Command Handler. These components use the existing transport layer to handle remote invocation of methods on the server.
Plug-ins open up a world of possibilities and can be used for things like Server Administration or Diagnostic information. Plug-ins leverage the existing database connection and transport mechanism to invoke custom methods within the server from the client. The Plug-in model parallels the core server model utilization so its use is very natural. All this adds up to a flexible middleware solution with virtually no additional overhead.
The plug-in framework is a very powerful, low-level message based communication system. You can do almost anything with it, but it requires you to write a bit of code and to take care of some housekeeping yourself.