Crowdsourcing and Simulation with Mobile Agents and the JavaScript Agent Machine

Book Cover

Book

Table of Content

    Introduction
        Software Paradigms
        Agents
        Modelling Concepts
        Capabilities of Agents
        JavaScript
    Crowdsourcing
        Overview
        Basics
        Distributed Computing as Crowdsourcing
        Mobile Crowdsensing
        Sensors
        Surveys
        Simulation
        Issues
    Platforms and Agents
        Programming
        Virtual Machines
        Mobile and Web Deployment
        Agent Processing and JavaScript
    The Agent Model
        Activity-Transition Graphs
        Dynamic Activity Transition Graphs
        Composition of Multi-agent Systems
        Interaction of Agents
        Software Implementations
        AgentJS
    JavaScript Agent Machine
        Agent Worlds: Virtual and Physical Nodes
        Agent Communication
        Agent Input-Output System (AIOS)
        Agent Scheduling and Check-pointing
        Scheduling Blocks
        Agent Roles
        Agent Process Mobility and Migration
        JAM Platform Connectivity
        Software Architecture and Workflow
    AgentJS API
        Computation
        Agent Environment
        Agent Management
        Agent Communication
        Agent Mobility
        Machine Learning
    JAM for Users and Programmers
        JAM Library
        JAM Shell
        JAM Web Laboratory
        JAM Mobile App
    Performance
        JavaScript VM
        Agent class compilation and agent creation
        Migration
        Communication
    Simulation with SEJAM
        Concept and Architecture
        Simulation Model and API
        Software
        Example
    Introduction to Augmented Simulation
        Simulation of Socio-Technical Systems
        Augmented Virtuality
        Challenges
    Mobile Crowdsensing with JAM
        Surveys
        Geolocation
        MCS-based Surveys
        Web Crawling
        Augmented Simulation
        MAS for Augmented Simulation
    Conclusion
    Examples
        SEJAM2 Simulation Model
        Simulation World Agent
        Physical Random Walker Agent
        Computational Explorer Agent
        Computational Micro-survey Agent
        Universal Survey Agent
        Chat Moderator Agent
        Web Page with JAM
    References
    Index

Preface

Using Mobile Multi-Agent Systems, this book tackles the problem of unified and distributed computing in robust heterogeneous contexts, spanning from Internet Clouds to Sensor Networks. The operational gap between low-resource data processing units, such as single microchips embedded in materials, mobile devices, and generic computers including servers, should be closed by a unified agent behaviour model, agent processing platform architecture, and programming framework, supporting real-world deployment as well as simulation. Major features include robustness, scalability, self-organization, reconfiguration, adaptivity, and learning. This book provides a straightforward introduction to creating JavaScript agents using the JavaScript Agent Machine (JAM) requiring only a few lines of code. In a short amount of time, even beginners may develop robust multi-agent systems.

There are countless application areas, including sensor data processing, structural health monitoring, load monitoring of technical structures, distributed computing, distributed databases, and search, automated design, cloud-based manufacturing, mobile crowdsensing (MCS), and surveys. This book has a strong practical focus on MCS. MCS is a useful tool for data mining because it views people as sensors. In addition, agent-based simulation is addressed, finally coupled to real worlds using MCS and digital twin concepts.

With distinct objectives in mind, intelligence and smartness can be defined at various operational and processing levels. One component is the capacity to adapt and be reliable in the face of sensor, communication, node, and network failures without letting the accuracy and integrity of the information computed suffer.

Crowdsourcing and crowdsensing are elaborated in detail after a brief introduction to agent-based notions. If you are solely interested in the agent platform and its programming, you can skip this chapter. The platform is described in connection to the agent interaction and behaviour model. AgentsJS, a subset of JavaScript that is described in depth in a separate chapter, is used to program agents. Pre-compiled libraries and programs are added to the core programming interface, including a simulator. The simulator uses JAM and has the ability to connect to other JAM nodes, allowing for augmented simulation that incorporates the real world.

Finally, an extended example chapter shows various aspects of agent programming with AgentJS and JAM. The software is freely avaiable from https://github.com/bslab/jam. A lot of exercises provide a practical elaboration of agent-based methods, crowdsourcing, and mobile or Web-based surveys.

This book is based on recent scientific work as well as on different lectures I have held at the University of Bremen and the University of Koblenz-Landau. The lectures address the design and deployment of multi-agent systems as well as mobile crowdsensing. Bachelor and master students in computer science, production engineering, and social sciences are the intended audience.

Samples

Read Online