Daemon Daemon Daemon Daemon - · PDF file The idea to com bine high-p erformance computing...

Click here to load reader

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of Daemon Daemon Daemon Daemon - · PDF file The idea to com bine high-p erformance computing...

  • Agent-based Distributed Computing with


    Moritz Gmelin, Jochen Kreuzinger, Matthias Pfe�er, and Theo Ungerer

    Institute of Computer Design and Fault Tolerance,

    University of Karlsruhe, D-76128 Karlsruhe, Germany

    Abstract. JMessengers is a Java-based mobile agent system particu-

    larly designed for distributed computing in heterogeneous computer net-

    works. This paper explains JMessengers programming environment, eval-

    uates JMessengers performance, and compares it to the mobile agent sys-

    tems MESSENGERS-C and Grasshoppers. The evaluation showed that

    JMessengers is an optimal compromise between the two systems. It o�ers

    the same exibility as Grasshoppers and reaches almost the execution

    speed of MESSENGERS-C.

    1 Introduction

    Numerous approaches exist for high-performance distributed computing in com-

    puter networks. Most of these use the message-passing environments PVM or

    MPI or Software DSM (distributed shared memory) systems like Treadmarks [1],

    Shasta [2], or Rthreads [3]. To date only the message-passing environments are

    able to eÆciently execute distributed programs on Internet-connected comput-

    ers, whereas use of Software DSM systems is typically restricted to LAN clusters,

    in particular to cluster computers that support interprocess activities by special

    interconnection hardware.

    Since the Internet has become the most important structure for computers

    networks, autonomous Internet agents have appeared as solutions to handle data

    retrieval and search operations through large numbers of loosely connected en-

    tities. The idea of those agents is to allow programs to navigate freely between

    computers and help the user to manage large quantities of information that

    would be diÆcult to handle without the help of such agent systems.

    Internet agents come in two di�erent avors: stationary agents and mobile

    agents. Only the latter are considered in this paper in more detail. Mobile agent

    systems are characterized by their ability to autonomously migrate code, data,

    and execution state of agent incarnations.

    Mobile agents de�ne a new paradigm for distributed computing. Typically

    mobile agents are designed for electronic commerce and therefore hindered for

    high-performance distributed computing by their inherent security features that

    slow down execution speed. For distributed computing cooperative agents are

    applied, thus security issues may be dropped.

  • The idea to combine high-performance computing with distributed machines

    and mobile software agents to navigate a network, brings us to the MESSEN-

    GERS [4] [12] project at the University of California, Irvine. The goal of the

    MESSENGERS project is to apply mobile agents to utilize the computing power

    of LAN-connected machines.

    In our opinion, the most serious shortcomings of the MESSENGERS-C sys-

    tem are its limitation to 64 machines that must be arranged in a homogeneous

    LAN cluster. Today, most networks consist of machines using a number of di�er-

    ent operating systems. But since all major systems support Java as programming

    language, we decided to take the very exible and stable paradigms of MES-

    SENGERS, re-implement the whole system in Java without the limitations of a

    homogenous network or a maximum of 64 machines, and enhance the original

    MESSENGERS system by new language and powerful synchronization features

    motivated by Java.

    Our goal was to build an easily scalable platform for high-performance, mo-

    bile agent based, distributed computing that can spread programs over Internet,

    use heterogeneous computer platforms, does not restrict the number of comput-

    ers used, and enables object-oriented programming. These design goals are met

    with our Java-based JMessengers system, which is described in the next sec-

    tion. Section 3 explains related mobile agent systems and compares them to the

    JMessengers system. Section 4 gives some performance evaluations of JMessen-

    gers programs and compares JMessengers performance to the MESSENGERS-C

    and the Grasshoppers systems.

    2 JMessengers

    The JMessengers system was created as a exible and fast software platform for

    mobile agents. JMessengers and all its components are written in Java and are

    therefore not limited to any special type of machine. A JMessengers network

    may consist of hundreds of di�erent connected machines. The only requirement

    for the participating machines is an implementation of Sun's JDK 1.2 standard

    with RMI. It was very important not to change any of the standards given by

    Java to be truly system independent.

    To reach maximum speed and to have the least overhead, the JMessengers

    system does not implement any agent veri�cation or authentication. It is there-

    fore not suited for insecure environments, but rather for trusted networks or

    virtual private networks.

    The basic functions of a JMessengers agent|navigation in the network, cre-

    ation of a new virtual network, and communication between agents|are all

    implemented in the basic Agent class that all custom JMessengers agents must

    inherit from. JMessengers does also provide the developer with a variety of ways

    to synchronize agents throughout the network.

  • 2.1 Architecture

    The JMessengers system architecture consists of a three-layer design, which is

    depicted in �gure 1:

    Hardware layer: Machines participating in the network, connected through

    TCP/IP based LAN or WAN structures.

    System layer: A daemon is a program that has to be started on each of the

    participating machines in order to add that machine to the JMessengers network.

    All daemons need one master daemon to serve as central gathering point.

    Logical layer: On top of the daemons, a JMessengers system uses virtual nodes

    and links to overcome the limitations of the underlying physical layer. Each

    JMessengers daemon can host an unlimited number of virtual nodes, connected

    to each other and to nodes on other daemons through virtual links. Those nodes

    are used to host the agents.

    Daemon Daemon Daemon Daemon



    Node Node


    NodeNode Node


    Agent Q

    Agent Z

    1.1 1.2


    2.1 3.1


    4.1 4.2


    wave.ics.uci.edu i80pc1.ira.uka.de

    Logical layer

    Hardware layer

    Network layer

    System layer

    Agent 07 Agent Z Agent XY Agent Z

    Agent N Agent N Agent N

    machine.net.com computer.at.home

    Fig. 1. JMessengers design.

    2.2 Usage of JMessengers

    To build a JMessengers network, the user must �rst start one master daemon

    on any of the machines in the network. This master daemon serves as a central

  • gathering point to all other daemons. It also hosts the initial node of the JMes-

    sengers system. Every other daemon that the user starts needs a reference to

    the master daemon in the system, which must be provided at startup time by

    the user. The master daemon then keeps track of every registered daemon and

    is responsible for the following tasks:

    User interface: On startup of a master daemon, a user interface is shown on

    the machine's desktop. Through this interface, the user can

    { survey the virtual network, { cleanup the created network (delete all virtual nodes except the ever existing

    initial node), { shut down the whole system and stop all working daemons, { inject a new agent onto the initial node of the system.

    Daemon registration: The master daemon keeps track of all other daemons

    in the system and receives new daemons in a network, even at runtime.

    Code distribution: If the code of an agent (Java bytecode) does not exist on

    one of the daemons (nodes) that an agent hops to, the receiving daemon asks

    the master daemon to provide him with that code.

    Node balancing: Upon the creation of a new virtual node, the master daemon

    is responsible for equally distributing the nodes on all available daemons (ma-

    chines). Besides this way of automatic distribution, it is also possible to choose

    a particular daemon on which the node will be created.

    2.3 Functionality

    The JMessengers agent system and its class framework provide methods for most

    applications. All agents must be subclasses of the Agent class. This class already

    implements methods for:

    Network creation: Upon the start of a new JMessengers network, the master

    daemon creates one initial node. This node is the starting point of each agent in

    the system. From there the agent can use the createLink() method to create

    new links and eventually nodes. New nodes are automatically created on the

    next available machine if the link is not directed to an already existing node.

    Each link is identi�ed with a (non unique) name, a weight and a direction. That

    means that links can be created as being uni- or bi-directional. The numerical

    weight and alphabetical name of a link are used to identify it.

    Network navigation: After a network is established, an agent can travel along

    links using the hopLink(Link linkObject, Strin