Dynamic loading and class management in a distributed actor system
MetadataShow full item record
The goal of this project was to develop part of an environment that would allow the creation of distributed applications using the actor model in an heterogeneous environment. The actor model is realized by ACT++, a C++ framework for building actor applications. This project is concerned only with the problems of the creation, destruction and the invocations of the methods of a remote server actor. A related project concerns the client activities and the message transfer. Three elements comprised the solution: a run-time loading entity using the facilities of a dynanlic linker called "DId," a query service to identify the classes present in an object file using a tool derived from the source-level debugger "GDB" and a directory service allowing both classes and actors to be located in memory. The solution was tested on several simple examples. The fundamental features of C++ and of the actor model have been retained in the distributed environment. The typing mechanisms used by C++ are preserved, and both polymorphic and overloaded functions are available. Regarding the actor model, the main components, namely actors, behaviors, messages and the replacement behavior are present. However, a choice had to be made concerning the communication model and the argument passing semantics. C++ and the actor model support synchronous and asynchronous communications, respectively. The latter was chosen, as our solution was based on the actor model and its message passing mechanism. C++ allows by reference parameters, while in the distributed environment, only by value parameters are allowed. It appears that the tools derived from GDB and DId could also be used as a software engineering tool, allowing the dynamic linking and unlinking of a class, the creation of objects of that class, and the invocation of its methods for testing purposes.
- Masters Theses