Summary of the Main Classes

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

IMethodInvocationSerializer

Objects implementing this interface are used to serialize and deserialize method invocations, and their return values.

IRemoteSender

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

IRemoteReceiver

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

MethodInvocationSerializer

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

ActiveMqRemoteSender

Sends serialized method invocations and return values via an Apache ActiveMQ message queue.

ActiveMqRemoteReceiver

Receives serialized method invocations and return values via an Apache ActiveMQ message queue.

FileRemoteSender

Sends serialized method invocations and return values via the file system.

FileRemoteReceiver

Receives serialized method invocations and return values via the file system.

TcpRemoteSender

Sends serialized method invocations and return values via a TCP network connection.

TcpRemoteReceiver

Receives serialized method invocations and return values via a TCP network connection.

RemoteSenderCompressor

Compresses a serialized method invocation or return value before passing it to another IRemoteSender class for sending.

RemoteReceiverDecompressor

Decompresses a compressed method invocation or return after receiving it from another IRemoteReceiver class.