Content area
Full text
Abstract-A distributed system typically has a set of software components located on different computing machines connected over a network. These components communicate through message passing. In this paper, we are interested in studying the key properties of Distributed Computing by building a prototype of an Actor system using Scala/Akka programming language. Specifically, this paper demonstrates how the actor model can be used in implementing distributed computing across connected heterogeneous computing machines. To achieve this objective, we built a distributed runtime environment to support the deployment and execution of distributed actor-based applications on different computing machines. The distributed run-time environment consists of connected runtime environments, which support the execution of individual application components (actors) and managing their communication. The programmability benefits of our runtime environment are evaluated by developing two distributed applications: (1) A peer-to-peer chat application between two heterogeneous machines over a wireless network implemented using Akka; and (2) A computational-intensive application across three connected heterogeneous devices. Finally, we evaluated the performance of the developed prototype experimentally using different metrics.
Aąywords-Distributed Computing; Heterogeneous Devices; Scala; Akka; Actors.
(ProQuest: ... denotes formulae omitted.)
I. INTRODUCTION
It is becoming increasingly important to support the deployment and execution of parallel and distributed systems across heterogeneous machines. Consider, for example, an IoT system which involves a large number of end-devices (e.g., sensors and actuators) connected to gateways, which act as the aggregation points for a group of sensors and actuators to coordinate the connectivity of these devices to each other and to an external network. In many cases, both end-devices and gateways operate in resource-constrained concurrent environments with limited memory and power, and require real-time capabilities in some scenarios such as in the Agricultural field [1]. To accommodate such requirements, a distributed run-time environment is needed to be in place to manage the entire system efficiently.
One way to support the functional needs of such systems is by implementing them using Actors [2]. The Actor model is a well-established model for formalizing object-oriented concurrent computations in open and distributed systems. There is a growing number of implementations of Actors, including production languages such as Scala [3] which supports actors through its Akka library [4]. Akka can be used to build highly concurrent, distributed and fault-tolerant applications which can...