The 2 central classes in the MethodInvocationRemoting framework are MethodInvocationRemoteSender and MethodInvocationRemoteReceiver. These are the top level classes in the framework, responsible for overall orchestration of serialization of method invocations and return values, and calling underlying classes to transport the method invocations.
A dependency injection pattern is used when constructing MethodInvocationRemoteSender and MethodInvocationRemoteReceiver objects, to inject objects conforming to the following interfaces...
Objects implementing this interface are used to serialize and deserialize method invocations, and their return values.
Objects implementing this interface are used to send method invocations and return values over a transport mechanism (e.g. TCP/IP network or message queue).
Objects implementing this interface are used to receive method invocations and return values from a transport mechanism (e.g. TCP/IP network or message queue).
Method Invocation Remoting comes with the following included classes which implement these interfaces...
Serializes and deserializes method invocations and return values to and from XML. Supports serializing and deserializing of most C# primitive data types, single dimension arrays of these types, and objects implementing the IXmlSerializable interface. The equivalent Java class supports serializing and deserializing of most objects which wrap primitive data types, and arrays of these objects. (See 'Details of the Main Classes' for further details).
Sends serialized method invocations and return values via an Apache ActiveMQ message queue.
Receives serialized method invocations and return values via an Apache ActiveMQ message queue.
Sends serialized method invocations and return values via the file system.
Receives serialized method invocations and return values via the file system.
Sends serialized method invocations and return values via a TCP network connection.
Receives serialized method invocations and return values via a TCP network connection.
Compresses a serialized method invocation or return value before passing it to another IRemoteSender class for sending.
Decompresses a compressed method invocation or return after receiving it from another IRemoteReceiver class.