Using Mobile Agents for Network Resource Discovery in P2P

Download Report

Transcript Using Mobile Agents for Network Resource Discovery in P2P

Using Mobile Agents for
Network Resource Discovery in
P2P Network
Zhengzheng Wan
Reference







[1] Shirky, C, What is P2P…And what isn’t . O’Reilly
Network, 24/11/2000
[2]Napster, Inc., http://www.napster.com
[3]SETI@Home, http://setiathome.ssl.berkeley.edu
[4]ICQ, Inc, http://www.icq.com
[5]eMikolo Networks, Inc., http://www.emikolo.com
[6]Groove, Groove Networks Inc., http://www.grove.net
[7]Caglayan, A. and Harrison, C. Agent Sourcebook.
Wiley Computer Publishing, 1997
Reference (Contd.)
[8] Green, S.et al., Software Agents: A review, Department of
Computer Science, Trinity College Dublin, 1997
[9] Danny B.Lange and Mitsuru Oshima, Seven Good
Reasons for Mobile Agents, Communications of the
ACM, vol.42, No.3, March 1999.
[10] Dan Connolly, Mobile Code Systems,
http://www.w3.org/MobileCode/
[11] General Magic, Inc., http://www.genmagic.com/
Background


Peer to Peer network is the movement
away from traditional client server model
to a network where each participating
device is acting as both client and the
server [1]
some of the main advantage of P2P are
greater storage, more computer cycles and
greater bandwidth.
What is a Software Agent?



No consensus definition yet
Since agents can play roles in many
different types of applications and since
current agent research is so varied, there
may never be a consensus
But several key concepts have emerged
Software Agent (Contd.)

Let’s look at some definitions:
An agent is a component of software and/or hardware
which is capable of acting exactingly in order to
accomplish tasks on behalf of its user (Nwana, 1996)
An agent is a computer system, situated in some
environment, that is capable of flexible autonomous
action in order to meet its design objectives (Jennings,
Sycara and Wooldridge, 1998)
Stationary Agent


Executes only on the system where it
begins execution (Software agent)
If it needs information on another system,
or needs to interact with an agent on
another system, it uses a standard clientserver communication mechanism such as
RPC, RMI, DCOM, CORBA
Mobile Agent




Not bound to the system where it begins
execution
Can move from one system to another
within the network
Transports both its code and its state with it
Decide itself where to go, what to do, how
long to exist. (Autonomous)
Why use Mobile Agents?

MA reduce the need for bandwidth.
Peers perform multiple interactions over the
communication channel, this generate the
network traffic. MA allows the interactions
among the peers to be packaged together and
sent as a discrete piece of network traffic. Allows
these interactions take place locally.
Why use MA? (Contd.)

Encapsulate all the required data within
themselves.
Once a MA arrives on a computer with all its data,
and need not to communicate with any other
computers. Compared to conventional search
protocol in which all the raw data travels over the
network to be processed. MA reduce the network
traffic by mo
Why use MA (Contd.)

Mobile agents are asynchronous.
When a mobile agent is dispatched there is no
need to wait for it to return. The original peer
does not need to remain connected to the network
while the mobile agents are out
Why use MA (Contd.)

MA is autonomous.
MA is learning about the network as it
progresses through it. The mobile agent
will visit peers that were unknown when it
was originally dispatched. At each peer it
can make the decisions based on its history
of visited peers and the current peer.
Why use MA (Contd.)



Mobile agents have either new or more
recent information about the resources.
Information is being disseminated at every
peer that the mobile agent visits.
MA maybe easily be cloned and dispatched
in different directions.
MA based solution is very fault tolerant
What is Resource


something that may have a perceived value
to somebody or something.
Source available in each peer
Current research solutions




Napster
Gnutella
KaZaA
Project Juxtaposition
Peer Discovery Algorithm


The algorithm is making a trade-off
between a more detailed network discovery
and a more efficient and practical network
discovery.
The main algorithm is used to decide how
the MA will behave in its search for other
peers
Creator peer
A mobile agent is created on a peer wishing
to participate in the network. This peer is
known as the “creator peer” for that
particular mobile agent and all its future
clones. The mobile agent updates itself
with information about its creator peer.
Two important parameters



A journey-time for the MA. It is set in
terms of the maximum number of peers
that may be visited before it returns to its
creator peer
Branching factor. It is used to determine
how many times the MA maybe cloned at
any peers.
Control the depth and breadth of the search.
Algorithm (1)



The mobile agent is given the address of
some other peers participating in the
network.
The number of addresses provided should
be small and should be less than the
branching factor.
These addresses should come from
different sources.
Algorithm (2)

Mobile agent clones itself enough times to
allow a mobile agent to be sent to each of
these peer.
Algorithm (3)


After arriving at each peer. MA decrements
its journey-time, and updates the peer with
the information about its creator peer.
Updates itself with information on the
current peer.
Algorithm (3) (Contd.)

If two mobile agents from the same creator
peer arrive at the current peer within a
preset time period. The second MA
destroys itself.
It keeps the information up to date and
prevents peers form cycles from having to
deal repeatedly with the MA from the same
creator peer
Algorithm (4)


If the MA’s journey-time has expired, it
returns to its creator peer and updates its
creator peer with all the information in has
collected on its journeys.
MA clones itself enough times to allow a
clone of itself to be sent to each peer that
was known to the current peer.
Implementation

Implementing the mobile agent based
solution using the Aglet Software
Development Kit (ASDK) with the patch
supplied by K.Muniandy[2]
Aglets


Aglets is a Java mobile agent platform and
library.
Aglets has been developed at the IBM
Tokyo Research Laboratory (TRL) from
Mitsuro Oshima and Danny Lange.
Aglets (Contd.)


Aglets includes both a complete Java
mobile agent platform, with a stand-alone
server called Tahiti, and a library that
allows developer to build mobile agents.
Its source is totally opened and is hosted on
sourceforge.net
Architecture
The general architecture of our proposed
solution is built upon the existing Aglets
architecture. The solution developed by us
is an Aglet based protocol to be used as
part of a larger solution rather than a standalone application.
Architecture (Contd.)
DiscoveryAglet
DiscoveryAglet is the MA that travels the
network. It implements the peer discovery
algorithm.
The Aglet takes its state with it by using its
instance variables which can be type of boolean,
int, string or vector. These classes are all part of
the standard Java Virtual Machine. No need to
transmit them with MA, save time and
bandwidth.
AgletContext



AgletContext class is part of ASDK. It is
needed to maintain and manage Aglets
within a secure environment.
Aglet can communicate with other objects
that are within the AgletContext.
Provides methods allowing other objects to
be placed within it.
PeerResource


It is an object that holds the information
about all resources at the current peer.
It is placed within the AgletContext. MA
within AgletContext can access it
PeerApplication



A stand-alone java application that
encapsulates all the software components.
Use Tahiti, the default mobile agent server
that comes with the ASDK.
Use a new EmbeddedAgletServer
containing an embedded mobile agent
server, all the funcitonality needed to use
the discoveryaglets. .
Conclusion





Characters of MA
A MA solution
Advantage of this solution
Aglets
Architecture of the solution and its
implementation using Aglets
Thank you!