Scavenger - Mobile Remote Execution
This report describes the design and implementation of a mobile, peerto- peer, remote execution system called Scavenger. A peer running Scavenger is capable of automatically discovering available, unused computing resources in its vicinity, and, by means of mobile code, utilising these resources to its own good.
Designing a system such as Scavenger a number of challenges are raised. In this report only the two main challenges are presented: service discovery and mobile code security.
Service discovery in a fixed network is a well-documented process, but mobile service discovery is less so. Scavenger assumes nothing about its operating environment—it may be executing services on stationary as well as mobile peers—and it therefore needs a highly flexible service discovery protocol.
When working with mobile code, security becomes paramount since peers are executing unknown (and thus untrusted) code. Scavenger uses the Python programming language for its mobile code, and Python does not, like for example Java, have any built-in security models that enable the user to sandbox a Python process. When using such an ”insecure” programming language in a mobile code setting, other means of securing the code must be employed. This report describes the development of such a safe execution environment where mobile Python may be executed in a secure manner.
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.