| Abstract: | With the advent of the modern technological age, a plethora of electronic tools and devices are available in numbers as never before. While beneficial and exceedingly useful, these electronic devices require users to operate them. When designing systems capable of observing and acting upon an environment, the number of devices can become unmanageable. Previously, middleware systems were designed for large-scale computational systems. However, by applying similar concepts and distributing logic to autonomous agents residing on the devices, a new paradigm in distributed systems research on lightweight devices is conceivable. Therefore, this research focuses upon the development of a lightweight middleware that can reside on small devices enabling the capability for these devices to act autonomously. In this research, analyses determined the most advantageous methods for solving this problem. Defining a set of requirements for the necessary middleware as well as assumptions for the environment and system in which it would operate achieved a proper research focus. By utilizing concepts already in existence such as peer-to-peer networking and distributed hash tables, devices in this system could communicate effectively and efficiently. Furthermore, creating custom algorithms for communicating with other devices, and collaborating on task assignments achieved an approach to solving the consensus problem in real time. The resulting middleware solution allowed a demonstration to prove the efficacy. Using three devices capable of observing the environment and acting upon it, two tests highlighted the capabilities of the consensus-finding mechanism as well as the ability of the devices to respond to changes in the environment autonomously. |