Purpose:
This project requires you to develop the infrastructure for, and demonstrate, a remote execution facility. This facility is based on message-passing communication and the use of application and library wrappers to support a very flexible system for connecting applications.
The purpose of this system is to support the building of applications from parts that may be distributed across processes, machines, or even networks, using message-passing communication based on sockets or web services. Wrappers support the inclusion of legacy code that was not designed for this pluggable architecture. Of course, new application parts can be designed to directly support the message-passing protocol you choose for this system, and would then need no wrapper.
The system you are required to implement is composed of a message-passing communication facility, that client's access through a communicator interface and object factory, local and remote executives that know how to spawn processes and load libraries, and wrappers that derive from a wrapper interface or abstract class [1] . You are required to build a demonstration system that uses one existing application, one existing library, and an application or library you build specifically for this demonstration. The demonstration entails supporting a user interface in one process and its applications and libraries in another process. That process may reside on another machine.
Requirements:
Your RemExec program:
[1] You may wish to use an abstract class instead of an interface so that the class can provide message handling used by all derived classes.
[2] You may use .Net sockets, tcpClient and tcpServer classes, .Net Remoting, or .Net web services for this communication function.
[3] In message-passing, the sender encodes a request in an XML-based message, the receiver decodes the message, acts on its contents, and may send back a reply, also encoded as an XML message.