Resources | developer.brewmp.com Resources | developer.brewmp.com

Developer

resources

Remote invocation of an object

A remote invocation allows a client to invoke an object in a different execution context, such as a process, virtual machine, or CPU. When a client invokes an object within its execution context, it results in a direct invocation or direct function call. However, when the client needs to invoke an object from a different execution context, it results in a remote invocation, as shown in the following illustration:

For a client to be able to remotely invoke an object in a different execution context, the object needs to support interfaces that are remotable. The remotability of an interface relies on the availability of the proxy code associated with the interface to marshal and unmarshall the data and requests going across protection boundaries. Such proxy code in Brew MP consists of stub and skeleton code. If the execution contexts that separate the client and the object are processes or processors, there is also a transport layer that bridges the communications between the stub and the skeleton.

Remote invocations allow the object and its caller to be hosted in different execution contexts. The caller does not need to know where the actual object is created and invoked. For the caller, invoking an object in a different process is no different from invoking an object within the same process. Any invocations across protection boundaries need to be granted; the callers need to have sufficient rights or privileges to access the objects.

Please note that Brew MP does not support any user process. Execution contexts in Brew MP manifest themselves as environments, or Env. For more information, see Environments.