Presented By: Hector M Lugo-Cordero, MS EEL 6883

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

AgentGroup Agent and Pervasive Computing Group Dipartimento di Ingegneria dell’Informazione Università degli Studi di Modena e Reggio Emilia
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
MicroCast: Cooperative Video Streaming on Smartphones Lorenzo Keller, Anh Le, Blerim Cic, Hulya Seferoglu LIDS, Christina Fragouli, Athina Markopoulou.
Evaluation of a Scalable P2P Lookup Protocol for Internet Applications
Martin Wagner and Gudrun Klinker Augmented Reality Group Institut für Informatik Technische Universität München December 19, 2003.
Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Ch 12 Distributed Systems Architectures
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Polaris Financial Technologies Welcomes the members of Hyderabad chapter for the 2nd event on 4 th July 14 held by PACE (The Testing Practice)
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Ad Hoc Wireless Routing COS 461: Computer Networks
Audumbar Chormale Advisor: Dr. Anupam Joshi M.S. Thesis Defense
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
Word Wide Cache Distributed Caching for the Distributed Enterprise.
1 National Research Council - Pisa - Italy Marco Conti Italian National Research Council (CNR) IIT Institute MobileMAN Architecture and Protocols 2nd MobileMAN.
Mobile Agent Technology for the Management of Distributed Systems - a Case Study Claudia Raibulet& Claudio Demartini Politecnico di Torino, Dipartimento.
Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications Chien-Liang Fok, Gruia-Catalin Roman, Chenyang Lu
Chapter 1 Lecture 2 By :Jigar M Pandya WCMP 1. Architecture of Mobile Computing The three tier architecture contains the user interface or the presentation.
Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications Chien-Liang Fok, Gruia-Catalin Roman, Chenyang Lu
BitTorrent enabled Ad Hoc Group 1  Garvit Singh( )  Nitin Sharma( )  Aashna Goyal( )  Radhika Medury( )
Locating Mobile Agents in Distributed Computing Environment.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Communication Paradigm for Sensor Networks Sensor Networks Sensor Networks Directed Diffusion Directed Diffusion SPIN SPIN Ishan Banerjee
1 Service Sharing with Trust in Pervasive Environment: Now it’s Time to Break the Jinx Sheikh I. Ahamed, Munirul M. Haque and Nilothpal Talukder Ubicomp.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Enabling Components Management and Dynamic Execution Semantic.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Content caching and scheduling in wireless networks with elastic and inelastic traffic Group-VI 09CS CS CS30020 Performance Modelling in Computer.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
1 An infrastructure for context-awareness based on first order logic 송지수 ISI LAB.
Overview of Behavioral Patterns ©SoftMoore ConsultingSlide 1.
Agent Group Università di Modena e Reggio Emilia Theory and Practice of Field- based Motion Coordination in Multi-Agent Systems Marco Mamei, Franco Zambonelli.
DOWeR Detecting Outliers in Web Service Requests Master’s Presentation of Christian Blass.
 Background  Introduction  Purpose  Basic rover services  Physical architecture of Rover System  Server operation  Logical Architecture of A Rover.
Introduction to Mobile-Cloud Computing. What is Mobile Cloud Computing? an infrastructure where both the data storage and processing happen outside of.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
Anirban Mondal (IIS, University of Tokyo, JAPAN)
Ad-hoc Networks.
Introduction to Design Patterns
Behavioral Design Patterns
The Client/Server Database Environment
The Client/Server Database Environment
Chapter 18 MobileApp Design
CMPE419 Mobile Application Development
#01 Client/Server Computing
Chapter 3: Windows7 Part 4.
Replication Middleware for Cloud Based Storage Service
Design and Maintenance of Web Applications in J2EE
ONOS Drake Release September 2015.
Negotiating the value of gas price
An Introduction to Computer Networking
Interpreter Style Examples
AGENT OS.
Model-View-Controller Patterns and Frameworks
Chapter 2: System Structures
Mobile Agents.
Introduction to Databases Transparencies
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
3rd Studierstube Workshop TU Wien
IEEE MEDIA INDEPENDENT HANDOVER DCN:
SOFTWARE DEVELOPMENT LIFE CYCLE
CMPE419 Mobile Application Development
Chapter 2: System models
#01 Client/Server Computing
Presentation transcript:

Presented By: Hector M Lugo-Cordero, MS EEL 6883 Programming Pervasive and Mobile Computing Applications: The TOTA Approach Presented By: Hector M Lugo-Cordero, MS EEL 6883

Full Citation Authors: Marco Mamei and Franco Zambonelli From: Università di Modena e Reggio Emilia Title: Programming pervasive and mobile computing applications: The TOTA approach Published at: ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 18, issue 4, July 2009

Agenda Introduction Essentials Programming Evaluation Conclusions References

Agenda Introduction Essentials Programming Evaluation Conclusions References

The Problem Information processing is incorporated into everyday objects Agents can come and leave at any time Information is context (environment) dependent Need for a simple programming framework

TOTA A tupple oriented middleware Tuples are injected into the network No central common space

Case Study Scenario Imagine a huge museum like Le Louvre on France Many tourists come per day Makes hard for the management of services and information Assume every user has a wireless-enabled computer Museum layout can change over time and people come and go as they want

Current Approaches Direct communication Shared data-space Event base Communicate with other agents is direct (i.e. hardcoded) Not very dynamic Shared data-space Hard coordination Event base Notifications needed These are general (no context awareness)

Agenda Introduction Essentials Programming Evaluation Conclusions References

The TOTA Approach Gathers elements from both tuple-based and event-base models Distributed tuples injected to the network are cloned and propagated across the network A peer-to-peer network, each node running TOTA is the space with limited neighbors Tuples structure: T = (C, P, M) C = content, P = propagation, M = maintenance

TOTA Example (Information) With P = null C remains unchanged With M = null C is volatile

TOTA in Le Louvre Assumption that there is a large wireless network, with a backbone How to provide information and planning to avoid queues ArtPiece C = (description, location, distance) P = Propagate to all peers increasing distance M = update if topology changes

Solutions (Information) Art pieces propagate tuples Tourists query for the one with lower distance value Solution 2 Art pieces do not propagate tuples Users query for information Art pieces reply

TOTA Example (Meeting)

Solution (Meeting) Meeting C = (tourist_name, distance) P = propagate to all peers, increase distance by one M = update the distance tuple upon tourist move Tourist are guided with a GUI to the same place using the highest distance recursive process No coordination is specified by TOTA

TOTA Architecture

Agenda Introduction Essentials Programming Evaluation Conclusions References

TOTA Implementation Java based Using 802.11b broadcast Avoid unicast handshake Deployed emulator to increase network size Only 16 PDAs and some laptops were used The same code of the emulator could be used on devices Emulator ran in mixed modes (real and emulated devices)

TOTA Requirements What are the primitives that interact with the middleware? How to specify tuples T = (C, P, M)? How to code coordinated and context-aware activities?

TotaTuple public class MyTuple extends TotaTuple, implements ReactiveComponent{ //ReactiveComponent exposes the react() method } TotaTuple myTuple = new MyTuple(new Object[]{“Hello”});

Tota API

TOTA Predefined Tuples MessageTuple creates temporary tuples that expire when timeout occurs, ArtTuple HotTuple creates a tuple that reacts to topology changes by overloading the makeSubscriptions, MeetingTuple MetricTuple and SpaceTuple take into account physical location Metric updates each move based on a threshold Space only updates on the source

Programming ArtAgent1

Programming TouristAgent1

Programming ArtAgent2

Programming TouristAgent2

Programming MeetingAgent

Agenda Introduction Essentials Programming Evaluation Conclusions References

Software Engineering Analysis Context information makes TOTA general but more difficult for agents to react Separation of tuples (context) and agents (logic) however simplify this Incorporation of command and template design patterns facilitate tuple programming Command: Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. Template: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.

Tuple Propagation/Deletion Evaluation Highly scalable since only propagate to its immediate neighbors Tu = Trcv + Tprop + Tsend + Ttravel Propagation Time on a WiFi PDA (IPAQ 400 MHz) Tprop 99.7 ms Tsend 67.2 ms Ttravel 0 ms Trcv 21.2 ms Tu 188.1 ms

Tuple Propagation/Deletion Evaluation (cont.) For X hops TXU = X*TU In practice is a little more (10–20% from mean) Only HotTuples/MetricTuples and SpaceTuples were affected by topology

Load and Memory Evaluation Load is accounted to local agent execution and propagation/maintenance rules Storage is small enough for micro-sensors, but requires each one to store it Java implementation leaves TOTA opened for improvements in an optimized C version

Agenda Introduction Essentials Programming Evaluation Conclusions References

Conclusions TOTA support pervasive and mobile applications By using distributed tuples so agents can Extract contextual information Coordinate each other Dynamically adjusts as topology changes TOTA weaknesses Strict structure (hard mapping) Security and privacy issues Complex operations aren’t very supported

My Thoughts Strengths: TOTA seems like a powerful, portable API Weaknesses: Authors claimed that it is context independent but only the museum scenario was used Unclear mapping on how to transform real problems to TOTA tuples Suggestions: Adding flow of traffic by layer to see how to interpret the pool of tuples over the network Demonstrate the application on different domains, and give a clearer mapping Implementation in C for devices that do not posses a JVM Include wired backbone

Agenda Introduction Essentials Programming Evaluation Conclusions References

References http://www.wikipedia.org http://www.agentgroup.unimo.it/wiki/index.php/TOTA http://www.agentgroup.unimo.it/wiki/images/2/21/Tutorial.pdf http://www.agentgroup.unimo.it/wiki/images/8/8b/Tota.zip

Questions