Mobile Agent Implementation

MAs can be implemented in Java programming language. Additional features and mechanisms supported and envisioned in Jini programming language allow for implementation of mobile devices in practical systems.

The Jini vision introduced by Edwards allows for devices and software services to work together in a simple, fast, and reliable manner. The requirements for devices and software specify robust software infrastructure developed to support reliable systems. The devices must be easy to use and administer, and should work instantly after being connected. The software systems must be evolvable, and software services and devices should permit their use without reconfiguration of the network. These devices form spontaneous communities within dynamic networking.

Mobile code is used in several structures to support mobile applications. In Java programming language, applets are used for small applications to be installed automatically wherever they are needed and removed when their users do not need them. In the agent paradigm, small, autonomous bits of code travel to search for desired data. The mobile code is used for performance and autonomy. Agents can provide a better performance as the code moves closer to data in the network. Agent autonomy allows the user to log off or shut down the machine, and the agent that left the originator computer can continue to run even if the originator disconnects. Java RMI allows for building various distributed systems and can be used for automatic application installation or for building agent-based systems. Mobile code in RMI is used for object-oriented networked systems and it supports evolvable implementations of remote objects and new implementations of parameter and return types. Jini uses mobile code to achieve maintenance, evolvability, and ease of administration for networked devices and services. Jini is layered atop RMI, allowing all the benefits of mobile code to be used by programs in Jini.

Jini supports spontaneously created self-healing communities of services, and it is based on the concepts of discovery, lookup, leasing, remote events, and transactions.

Jini uses discovery protocols to find the available lookup services. The Multicast Request Protocol is used to find the active lookup services after an application or service becomes initiated. Lookup services announce their existence in the system by using the Multicast Announcement Protocol. An application or service talks to the lookup service by using the Unicast Discovery Protocol.

The lookup service is a process that has semantic information about available services. The service items have proxy objects and attributes describing these services.

Jini concept of leasing allows the resource to be loaned to a customer for a fixed period of time rather than granting access to a resource for an unlimited amount of time. This ensures that the communities of services are stable, self-healing, and resilient to failures, errors, and crashes.

Jini uses remote events to allow services to notify each other about the changes in their state. These are messages sent as asynchronous notifications directly to a software component and handled outside the normal flow of control of the component.

Computations involving multiple services reach safe and known state by using transactions in Jini. Transactions provide atomicity, consistency, isolation, and durability to data manipulations. All the operations under transactions are executed as an atomic operation. Transactions ensure state consistency after completion. Transactions are isolated during execution; they do not affect one another until completion. Transaction durability makes the changes permanent.

Mobile Apps Made Easy

Mobile Apps Made Easy

Quick start guide to skyrocket your offline and online business success with mobile apps. If you know anything about mobile devices, you’ve probably heard that famous phrase coined by one of the mobile device’s most prolific creators proclaiming that there’s an app for pretty much everything.

Get My Free Training Guide

Post a comment