A simple software agents framework for building distributed applications.

The development of distributed systems needs to consider multiple factors such as performance, scalability, resource sharing, and fault tolerance. This thesis proposes a simple agent-based framework to address these concerns when building distributed applications. Agents act as interfaces among proc...

Full description

Bibliographic Details
Main Author: Kin, Boon Kwang.
Other Authors: Berzins,Valdis
Published: 2012
Online Access:http://hdl.handle.net/10945/10860
Description
Summary:The development of distributed systems needs to consider multiple factors such as performance, scalability, resource sharing, and fault tolerance. This thesis proposes a simple agent-based framework to address these concerns when building distributed applications. Agents act as interfaces among processes to interact and to cooperate in a distributed environment. These agents encapsulate the implementation details and make the network transparent to running processes. The proposed framework is built on JINI infrastructure. It uses Linda TupleSpace model, a shared network-accessible repository, for different processes to exchange information. Processes are loosely coupled. Under the proposed model, the correspondent language wrappers such as Java, Ada, C++, C and Visual Basic support multiple programming languages. Information exchange among processes is not restricted to data only. Executable components, leveraging on Java code's portability features, can be sent over a heterogeneous environment and executed remotely. This framework can further address several important issues on formal specifications of the communication layer, such as partial failure, synchronization, coordination and heterogeneity, by offering properties in our design for operation timeout, and information and service leasing. This framework is to be used in the Distributed Computer Aided Prototyping System (DCAPS) to provide the inter-process communication layer. It simplifies the tasks of designing, binding and analyzing multiple processes of real-time, distributed prototype systems. The provided interface library shields the developer from working on the underlying dynamic and complex network environment. It supports a wide variety of programming languages and operating platforms. Important issues under distributed environment, such as partial failure, synchronization and coordination, have been taken into consideration.