Post on 06-Jan-2018
description
NEMOLightweight Mobile Agent Technology
Outline Mobile Agents
What are they ? Advantages and Applications
NEMO Architecture Details
Demo: Mobile ePlazza Demo: Virtual NEMO
What are Mobile Agents Agent: an entity which performs a task on
behalf of someone
Mobile agent: program & data moving between heterogeneous hosts performing specific tasks
Visualization Example
Advantages & Applications Advantages
Move computation to data Asynchronous execution Dynamic adaptation, fault tolerant Flexible maintenance
ApplicationsService availability, discovery, monitoringInformation retrievalNetwork management, securityDynamic software deployment
NEMO Agent Language
Variables (Agent, Node)MovementForking
ConditionalsFunction callsSystem calls
General ArchitectureApplications
Network
N E M O
Abstract Network
static
Environment
N
N
Heterogeneous Environment
valentia
ePlazza
Printer
Nharo
ePlazza
bridge LAN
bridge BT
Niuli
ePlazza
TailFrontal Variables
User Application Threads
Interpreter
Detailed Architecture
Incoming Wave QueueIncoming
Wave QueueIncoming
Wave Queue
Communication Thread
Abstract Net Communicator
Bluetooth Communicator LAN Communicator
Sectors Visitor
Rules Visitor
Executor
Network
System Call Dispatcher
System Call Handler
Parser Heart Thread
Wave (Agent)
Nodal Variables
Head .
DEMO: mobile ePlazza
match ! match !
1. Profile Matching
Dari
Age: 22
Search: 31-35
Rad
Age: 34
Search: 20-25
Loba
Age: 33
Search: 20-25, 36-40
DEMO: mobile ePlazza2. Multi-user Chat
Visualization /
Development
Virtual NEMO
N
Virtual Net Communicator
console
N
console
N
console
N
console
Host iuli
chat chat
Host finite Host vasi Host n55
Virtual Host Switch
DEMO: Virtual NEMO1. Chat
2. Resource Discovery
Questions
Language example:Search for printer and return
// VARIABLE INIT
Ntemp3292=0000. // holds prev node on path, this is baseFp=C. // holds name of node prior to jump
// PROCEDURES
// pass check - pass only once by each node, record pathFpcheck = `
Ntemp3292 == Nonexistent. Ntemp3292 = Fp. Fp=C. '.
// Printer checkFgo=`
IF( Nprinter==Nonexistent, ^Fbranchout, // if no known printer then look onward
FprinterData=NprinterData. ^Fhopback.). '. // we are path to printer, take data back to sender // branch outward and find printerFbranchout=`
link#. ^Fpcheck. ^Fgo. '. // recprintinfo - as wave passes hosts on the way back, it stores print infoFrecprintinfo = `
(Nprinter/=Nonexistent. T=rknown. ), // already know about printer, stop. (Nprinter==Nonexistent. Nprinter=Fp. NprinterData=FprinterData. ^Fhopback). // store way to printer & data in node'.
// hop back - either stop or hop back and record pathFhopback = `
(Ntemp3292 == 0000. x?print_scanreturned), (Ntemp3292 /= 0000. T=hoppingback. Fp=C. link#Ntemp3292. ^Frecprintinfo. )'.
// LAUNCH
^Fgo.