140 likes | 331 Views
NEMO. Lightweight 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
E N D
NEMO Lightweight 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
Advantages & Applications • Advantages • Move computation to data • Asynchronous execution • Dynamic adaptation, fault tolerant • Flexible maintenance • Applications • Service availability, discovery, monitoring • Information retrieval • Network management, security • Dynamic software deployment
General Architecture Applications static Environment N E M O Abstract Network Network NEMO • Agent Language
N N N N Heterogeneous Environment ePlazza valentia Printer ePlazza haro bridge LAN bridge BT ePlazza iuli
Incoming Wave Queue Incoming Wave Queue Incoming Wave Queue Tail Nodal Variables Head . Frontal Variables Detailed Architecture User Application Threads System Call Handler Interpreter Executor System Call Dispatcher Rules Visitor Sectors Visitor Parser Heart Thread Wave (Agent) Communication Thread Network Abstract Net Communicator Bluetooth Communicator LAN Communicator
DEMO: mobile ePlazza 1. Profile Matching Dari Age: 22 Search: 31-35 match ! match ! Rad Age: 34 Search: 20-25 Loba Age: 33 Search: 20-25, 36-40
DEMO: mobile ePlazza 2. Multi-user Chat
N N N N Virtual NEMO Visualization / Development Virtual Host Switch Host iuli Host finite Host vasi Host n55 console console console chat console chat Virtual Net Communicator
DEMO: Virtual NEMO 1. Chat2. Resource Discovery
Language example:Search for printer and return // VARIABLE INIT Ntemp3292=0000. // holds prev node on path, this is base Fp=C. // holds name of node prior to jump // PROCEDURES // pass check- pass only once by each node, record path Fpcheck = ` Ntemp3292 == Nonexistent. Ntemp3292 = Fp. Fp=C. '. // Printer check Fgo=` 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 outwardand find printer Fbranchout=` link#. ^Fpcheck. ^Fgo. '. // recprintinfo- as wave passes hosts on the way back, it stores print info Frecprintinfo = ` (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 path Fhopback = ` (Ntemp3292 == 0000. x?print_scanreturned), (Ntemp3292 /= 0000. T=hoppingback. Fp=C. link#Ntemp3292. ^Frecprintinfo. )'. // LAUNCH ^Fgo.