Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies)...
-
Upload
shanon-bennett -
Category
Documents
-
view
213 -
download
0
Transcript of Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies)...
![Page 1: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/1.jpg)
Spatial Approaches to Pervasive Computing
Tutorial at IEEE SASO 2008
•Jacob Beal (BBN Technologies)•[email protected]
Jonathan Bachrach (MIT)[email protected]
Cristian Borcea (NJIT)[email protected]
Marco Mamei (Univ. Modena Reggio Emilia)[email protected]
1
![Page 2: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/2.jpg)
Syllabus
Pervasive Computing, Spatial Computing Example Scenarios
Overview of Spatial Approaches Three spatial programming models:
Spatial Programming / Smart Messages TOTA / Field-based Coordination Proto / Amorphous Medium abstraction
2
![Page 3: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/3.jpg)
Wireless devices are filling our environment...
3
![Page 4: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/4.jpg)
Wireless devices are filling our environment...
4
![Page 5: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/5.jpg)
Wireless-enabled embedded systems
>3.3B cell phones vs. 600M Internet-connected PC’s in 2007
>600M cell phones with Internet capability, rising rapidly
New cars come equipped with navigation systems and will soon have wireless interfaces (WiFi/DSRC, cellular, WiMax)
Sensor deployment just starting, but some estimates ~5-10B units by 2015
Military/emergency response wireless robots, unmanned vehicles, unmanned aircraft
5
![Page 6: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/6.jpg)
Networked wireless devices
6
![Page 7: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/7.jpg)
Pervasive computing vision Computing,
communication, and sensing anytime, anywhere
Wireless embedded
systems cooperate to
achieve global tasks
7
![Page 8: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/8.jpg)
Outdoor distributed applications
Tornadoapproaching!
Highway
Parking Area
Shopping mall
Traffic jam!
Local fog patches!
Free parking spot!
50% discount!
8
![Page 9: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/9.jpg)
Example: intrusion detectionLeft HillLeft Hill Right HillRight Hill
Mobile robotwith camera
Motion Sensor
Intrusion detection across hills using motion sensors and autonomous robots with cameras
Number and location of systems are unknown Configuration is not stable over time
Intrusions can appear randomly Robots can move
9
![Page 10: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/10.jpg)
Example: museum guide
I would like to see the Mona Lisa,
avoiding the queues…
I’ve gotten lost! How can I rejoin
my friends?
10
![Page 11: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/11.jpg)
Example: mobile streaming
I want Alice to be able to listen in
on this great conversation
11
![Page 12: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/12.jpg)
Not Very Close to This Vision Yet
Nomadic computing– Devices: laptops– Internet: intermittent connectivity– Work: typical desktop applications
Mobile communication– Devices: PDAs, mobile phones, Blackberries– Internet: continuous connectivity– Work: read email, potentially web
Experimental sensor networks– Devices: Berkeley/Crossbow motes– Internet: Possible through base station– Work: Monitor environment, wildlife 12
![Page 13: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/13.jpg)
Why?
• Hard to program distributed applications over collections of wireless systems Systems: distributed across physical space,
mobile, heterogeneous hardware and software, resource-constrained (battery, bandwidth, memory)
Networks: large scale volatile (ad hoc topologies, dynamic resources), less secure than wired networks
13
![Page 14: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/14.jpg)
Traditional distributed computing does not work well outdoors
End-to-end data transfers may rarely complete Fixed address naming and routing (e.g., IP) are
too rigid Difficult to deploy new applications in existing
networks
Outdoor distributed computing requires novel programming models and system architectures!
14
![Page 15: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/15.jpg)
Spatial computers
Robot Swarms Biological Computing
Modular Robotics
Sensor Networks
Reconfigurable Computing
Cells during Morphogenesis
15
![Page 16: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/16.jpg)
More formally...
A spatial computer is a collection of computational devices distributed through a physical space in which: the difficulty of moving information between any
two devices is strongly dependent on the distance between them, and
the “functional goals” of the system are generally defined in terms of the system's spatial structure
16
![Page 17: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/17.jpg)
More formally... A spatial computer is a collection of computational
devices distributed through a physical space in which: the difficulty of moving information between any two
devices is strongly dependent on the distance between them, and
the “functional goals” of the system are generally defined in terms of the system's spatial structure
Notice the ambiguities in the definition17
![Page 18: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/18.jpg)
• (w. Dan Yamins)
Graphs
Crystalline(e.g. CAs)
Amorphous/Continuous
Promising Solution:Spatial Computing Approaches
18
![Page 19: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/19.jpg)
• (w. Dan Yamins)
Graphs
Crystalline(e.g. CAs)
Amorphous/Continuous
dens
ity
spac
e co
mpl
exity
jitter
grain size
Promising Solution:Spatial Computing Approaches
19
![Page 20: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/20.jpg)
• (w. Dan Yamins)
Graphs
Crystalline(e.g. CAs)
Amorphous/Continuous
dens
ity
spac
e co
mpl
exity
jitter
grain size
spatial computing
Promising Solution:Spatial Computing Approaches
20
![Page 21: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/21.jpg)
Desiderata for spatial computing approaches
Take advantage of spatial nature of problems Simple, easy to understand code Scalable to potentially vast numbers of
devices Robust to errors, adapt to changing
environment
21
![Page 22: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/22.jpg)
Syllabus
Pervasive Computing, Spatial Computing Example Scenarios
Overview of Spatial Approaches Three spatial programming models:
Spatial Programming / Smart Messages TOTA / Field-based Coordination Proto / Amorphous Medium abstraction
22
![Page 23: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/23.jpg)
A taxonomy of approaches
Spatial
DynamicGeometry
Uniform Viral
Non-Spatial
Non-Composable
23
![Page 24: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/24.jpg)
A taxonomy of approaches
Spatial
DynamicGeometry
Uniform Viral
Non-Spatial
Non-Composable
24
![Page 25: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/25.jpg)
Approaches from local dynamics
• Primitives describe only actions between devices and the neighbors they communicate with.
Advantages: coherent and correct semantics Disadvantages: programmer must figure out
how to marshal local dynamics to produce coherent large-area programs
25
![Page 26: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/26.jpg)
Proto: computing with fieldsPointwise Restriction
Feedback Neighborhood
+restric
t
+
741
delay
48
any-hood
nbr
26
![Page 27: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/27.jpg)
TOTA: viral tuples
• Middleware to create distributed data structures like gradients and fields.
• Data structures made of tuples injected from a node and virally spread across the network.
• T = (C,P,M)
• API to inject/read tuples• API to define (C,P,M)
GradientC = value; P = propagate breadth-first increasing value by 1 at every hop;M = maintain gradient despite network reconfiguration;
GradientC = value; P = propagate breadth-first increasing value by 1 at every hop;M = maintain gradient despite network reconfiguration;
27
![Page 28: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/28.jpg)
Other viral approaches
Smart Messages (Borcea) Execution migration to nodes of interest Nodes of interest discovered using self-routing
Paintable Computing (Butera) Consistent transfer, view of neighbor data Code for install, uninstall, transfer control and update
RGLL (Sutherland) Code for arrival, tick, collision, departure Communication via collision
28
![Page 29: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/29.jpg)
Approaches from geometry
• Primitives describe large-scale geometric regions (e.g. “all devices on the left hill”)
Advantages: coherent, easy to specify large-scale programs
Disadvantages: generally easy to accidentally specify programs that cannot be executed correctly
29
![Page 30: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/30.jpg)
Regiment• Provide a rich set of operators to work with data
distributed over time and space.• Simple Regions, created from geometric or radio
relationships:• K-hop-neighborhood• K-nearest nodes• All nodes within circle (square, etc.)
• Derived Regions, built from other regions• Union, Intersection• Map, Filter
30
![Page 31: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/31.jpg)
Spatial programming
Left HillLeft Hill Right HillRight Hill
Virtual name space over outdoor networks of embedded systems– Systems named by spatial references using their locations and
properties
– Applications are sequential programs that read/write spatial references (similar to regular variables)
– Read/write trigger transparent program migrations on each referenced system
{{Right_Hill:robot[0]}]}
{Right_Hill:robot[1]}
{{Right_Hill:motion[0]}]}
31
![Page 32: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/32.jpg)
Other geometric approaches
EgoSpaces SpatialViews Spidey Abstract Regions
32
![Page 33: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/33.jpg)
Non-composable approaches
• Algorithms and techniques, generally based on geometry, but not part of a system of composable parts
Advantages: powerful spatial ideas for that are good for inclusion in code libraries
Disadvantages: developed as stand-alone ideas, and may have limited composability
33
![Page 34: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/34.jpg)
Field-based coordination• Contextual information is expressed by means of
distributed data-structures (i.e. fields) spread by agents.
• Agent move and act being driven by these fields (feedback cycle)
34
![Page 35: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/35.jpg)
Self-healing gradients
35
![Page 36: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/36.jpg)
Other non-composable approaches
Yamins' locally checkable patterns Family of self-stabilizing CA patterns
hood (Whitehouse, et. al.) nesC library for interacting with neighbors
McLurkin's “Stupid Robot Tricks” Swarm behaviors intended mainly for time-wise
multiplexing. Countless one-shot systems...
36
![Page 37: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/37.jpg)
Significant non-spatial approaches
“roll-your-own” (e.g. C/C++) TinyDB
Distributed database queries for sensor networks Kairos
Distributed graph algorithms WaveScript
Distributed streaming language Follow-on to Regiment w/o the spatial primitives
37
![Page 38: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/38.jpg)
Syllabus
Pervasive Computing, Spatial Computing Example Scenarios
Overview of Spatial Approaches Three spatial programming models:
Spatial Programming / Smart Messages TOTA / Field-based Coordination Proto / Amorphous Medium abstraction
38
![Page 39: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/39.jpg)
39
Outdoor programming example
Left HillLeft Hill Right HillRight Hill
Mobile robotwith camera
Motion Sensor
Intrusion detection across the hills using motion sensors and autonomous mobile robots with cameras
Number and location of systems are unknown Configuration is not stable over time
– Intrusions can appear randomly– Robots can move
![Page 40: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/40.jpg)
40
Traditional (indoor) programming
• Programs access data through variables• Variables mapped to physical memory locations• Page Table and OS guarantee reference consistency • Access time has an (acceptable) upper bound
ProgramProgram
Virtual Address SpaceVirtual Address Space
Page Table + OSPage Table + OS
Physical MemoryPhysical Memory
Variable accessVariable access
![Page 41: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/41.jpg)
41
• Applications access distributed data through shared variables
• Runtime system translates variable accesses into message passing (when necessary)
Software distributed shared memory
Distributed ApplicationDistributed Application
Shared virtual Shared virtual address spaceaddress space
Page Table + Page Table + Message PassingMessage Passing
DistributedDistributedPhysical MemoryPhysical Memory
Variable accesses
![Page 42: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/42.jpg)
42
From indoor to outdoor computing
Virtual Address SpaceVirtual Address Space Space RegionSpace Region
VariablesVariables Spatial ReferencesSpatial References
Variables mapped to Variables mapped to physical memoryphysical memory
Spatial references mappedSpatial references mappedto systems embedded in to systems embedded in the physical spacethe physical space
Reference consistencyReference consistency
Bounded access timeBounded access time
??
??
![Page 43: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/43.jpg)
43
Spatial Programming (SP) at a glance
• Provides a virtual name space over outdoor networks of embedded systems
• Embedded systems named by their locations and properties
• Runtime system takes care of name resolution, reference consistency, and networking aspects
• Implementation on top of Smart Messages: SP applications execute, sequentially, on each system referenced in their code
![Page 44: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/44.jpg)
44
radiusradius
Hill = new Space({lat, long}, radius);Hill = new Space({lat, long}, radius);
{lat,long}{lat,long}
Space regions
Virtual representation of a physical space Similar to a virtual address space in a conventional
computer system Defined statically or dynamically
![Page 45: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/45.jpg)
45
Spatial references
Defined as {space:property} pairs Virtual names for embedded systems Similar to variables in conventional programming Indexes used to distinguish among similar systems
in the same space region
{Hill:robot[0]}{Hill:robot[0]}
{Hill:robot[1]}{Hill:robot[1]}
{Hill:motion[0]}{Hill:motion[0]}
HillHill
r2r2r7r7
m5m5
![Page 46: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/46.jpg)
46
Relative space regions
Left HillLeft Hill Right HillRight Hill
{rangeOf({Left_Hill:robot[0]}, radius):{rangeOf({Left_Hill:robot[0]}, radius):robot[0]}robot[0]}
{Left_Hill:robot[0]}{Left_Hill:robot[0]}
![Page 47: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/47.jpg)
47
From indoor to outdoor computing
Virtual Address SpaceVirtual Address Space Space RegionSpace Region
VariablesVariables Spatial ReferencesSpatial References
Variables mapped to Variables mapped to physical memoryphysical memory
Spatial references mappedSpatial references mappedto systems embedded in to systems embedded in the physical spacethe physical space
Reference consistencyReference consistency
Bounded access timeBounded access time
??
??
![Page 48: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/48.jpg)
48
Reference consistency
• At first access, a spatial reference is mapped to an
embedded system located in the specified space
• Mappings maintained in per-application Mapping
Table (MT) – similar to a page table
• Subsequent accesses to the same spatial reference will reach the same system (using MT) as long as it is located in the same space region
{space, property, index}{space, property, index} {unique_address, location}{unique_address, location}
![Page 49: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/49.jpg)
49
Reference consistency example (1)
Left HillLeft Hill Right HillRight Hill
{Left_Hill:robot[0]}.move = ON;{Left_Hill:robot[0]}.move = ON;
r2r2r7r7r5r5
![Page 50: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/50.jpg)
50
Reference consistency example (2)
Left HillLeft Hill Right HillRight Hill
r2r2r7r7
{Left_Hill:robot[0]}.move = OFF;{Left_Hill:robot[0]}.move = OFF;
![Page 51: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/51.jpg)
51
Space casting (1)
{Left_Hill:robot[0]}{Left_Hill:robot[0]}
Left HillLeft Hill Right HillRight Hill
r7r7
![Page 52: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/52.jpg)
52
Space casting (2)
Left HillLeft Hill Right HillRight Hill
{Right_Hill:(Left_Hill:robot[0])}{Right_Hill:(Left_Hill:robot[0])}
r7r7
![Page 53: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/53.jpg)
53
From indoor to outdoor computing
Virtual Address SpaceVirtual Address Space Space RegionSpace Region
VariablesVariables Spatial ReferencesSpatial References
Variables mapped to Variables mapped to physical memoryphysical memory
Spatial references mappedSpatial references mappedto systems embedded in to systems embedded in the physical spacethe physical space
Reference consistencyReference consistency
Bounded access timeBounded access time
Mapping TableMapping Table
??
![Page 54: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/54.jpg)
54
Bounding the access time
• How to bound the time to access a spatial reference?– Systems may move, go out of space, or disappear
• Solution: associate an explicit timeout with each spatial reference access
try{ {Hill:robot[0], timeout}.move = ON;}catch(TimeoutException e){ // the programmer decides the next action}
![Page 55: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/55.jpg)
55
for(i=0; i<1000; i++) try{ if ({Left_Hill:motion[i], timeout}.detect > Max_motion) Max_motion = {Left_Hill:motion[i], timeout}.detect; Max_id = i; }catch(TimeoutException e) break; intrusionSpace = rangeOf({Left_Hill:motion[Max_id].location}, Range); {intrusionSpace:robot[0]}.camera = ON; {intrusionSpace:robot[0]}.focus = {Left_Hill:motion[Max_id].location};
Spatial programming example- Find the sensor that detectedthe “strongest” motion on Left Hill- Turn on a camera in the proximity of this sensor
Left HillLeft Hill Right HillRight Hill
![Page 56: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/56.jpg)
56
Spatial Programming implemented on top of Smart Messages
• Next
– Overview of Smart Messages
– Few implementation details
![Page 57: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/57.jpg)
57
“Dumb” messages vs. “smart” messages
Data migrationData migration
Lunch:Lunch:
AppetizerAppetizerEntreeEntreeDessertDessert
Execution migrationExecution migration
![Page 58: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/58.jpg)
58
Smart Messages at a glance
• User-defined distributed applications
• Composed of code bricks, data bricks, and
execution control state
• Execute on nodes of interest named by properties
• Migrate between nodes of interest
• Self-route at every node in the path during
migrations
![Page 59: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/59.jpg)
59
Cooperative node architecture
NetworkNetwork
SMSMPlatformPlatform
AdmissionAdmissionManagerManagerAdmissionAdmissionManagerManager
NetworkNetworkSMSM SMSM
Operating System & I/OOperating System & I/O
CodeCodeCacheCacheCodeCodeCacheCache
VirtualVirtualMachineMachine
VirtualVirtualMachineMachine
Tag Tag SpaceSpace
Tag Tag SpaceSpace
SM ReadySM ReadyQueueQueue
AuthorizationAuthorizationAuthorizationAuthorization
![Page 60: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/60.jpg)
60
SM execution at a node
• Takes place over a virtual machine
• Non-preemptive, but time bounded
• Ends with a migration, or terminates
• During execution, SMs can– Spawn new SMs
– Create smaller SMs out of their code and data bricks
– Access the tag space
– Block on a tag to be updated (update-based synchronization)
![Page 61: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/61.jpg)
61
Tag space
• Collection of application tags and I/O tags– Essentially, tags are (name, value) pairs
• Application tags: persistent memory across SM executions
• I/O tags: access to operating system and I/O subsystem
• Tags used for– Content-based naming migrate(tag)
– Inter-SM communication write(tag, data), read(tag)
– Synchronization block(tag, timeout)
– I/O access read(temperature)
![Page 62: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/62.jpg)
62
Protection domains for tag space
• Owner: SM that creates the tag
• Family: all SMs having a common ancestor with the SM that owns the tag
• Origin: all SMs created on the same node as the family originator of the tag owner
• Code: all SMs carrying a specific code brick
• Others: all the other SMs
FamilyFamily
CodeCodeOriginOrigin
Others
OwnerOwner
![Page 63: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/63.jpg)
63
Access control example (code-based protection domain)
Node5
Node3 Node4SM2SM2
SM2
C2 Cr
Node1 Node2
CodeBricks
Tag
Owner = SM1[Hash(Cr), RW]
SM1C1 Cr
SM1 SM1SM3
C3 C4
Access permission granted for SM2Access permission denied for SM3
Cr = Same routing used by SM1 and SM2
![Page 64: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/64.jpg)
64
SM admission
• Ensures progress for all SMs in the network
• Prevents SMs from migrating to nodes that cannot provide enough resources
• SMs specify lower bounds for resource requirements (e.g., memory, bandwidth)
• SMs accepted if the node can satisfy these requirements
• More resources can be granted according to admission policy– If not granted, SMs are allowed to migrate
![Page 65: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/65.jpg)
65
Application example
n=0while (n<NumTaxis) migrate(Taxi); if (readTag(Available)) writeTag(Available, false); writeTag(Location, myLocation); n++;
n=0n=0
Taxi Taxi
n=0n=0 n=0n=0 n=1n=1 n=1n=1 n=2n=2
need2 taxis
data brick
application code brick
routing code brick
SMSM
![Page 66: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/66.jpg)
66
migrate() – migrates application to next node of interest– names nodes by tags– implements routing algorithm
sys_migrate()– one hop migration– used by migrate to implement routing
SM migrationmigrate(Taxi)
sys_migrate(2) sys_migrate(3) sys_migrate(4)
TaxiTaxi
1 2 3 4
![Page 67: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/67.jpg)
67
NetworkNetwork
Routing example
1 2 i
RouteToTaxi = 2 TaxiRouteToTaxi = ?
migrate(Taxi){ while(readTag(Taxi) == null) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
![Page 68: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/68.jpg)
68
NetworkNetwork
Routing example
1 2 i
RouteToTaxi = 2 TaxiRouteToTaxi = ?RouteToTaxi = j
migrate(Taxi){ while(readTag(Taxi) == null) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
![Page 69: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/69.jpg)
69
NetworkNetwork
Routing example
1 2 i
RouteToTaxi = 2 TaxiRouteToTaxi = ?RouteToTaxi = j
migrate(Taxi){ while(readTag(Taxi) == null) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
![Page 70: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/70.jpg)
70
SM self-routing• SMs carry the routing and execute it at each node
• Routing information stored in tag space
• SMs control their routing
– Select routing algorithm (migrate primitive)
• Multiple library implementations
• Implement a new one
– Change routing algorithm during execution in response to
• Adverse network conditions
• Application’s requirements
![Page 71: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/71.jpg)
71
Spatial programming using Smart Messages
• SP application translates into an SM– Spatial reference access translates into an SM
migration to the mapped node
– Embedded system properties: Tags
• SM self-routes using geographical routing and content-based routing
• Reference consistency− Unique addresses (stored in mapping table) are
unique tags created at nodes
− SM carries the mapping table
![Page 72: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/72.jpg)
72
Max_motion = {Left_Hill:motion[1], timeout}.detect;
SP to SM translation: example
Spatial Reference Access
Smart Message
ret = migrate_geo(location, timeout);if (ret == LocationUnreachable) ret = migrate_tag(yU78GH5, timeout);if ((ret == OK) && (location == Left_Hill)) return readTag(detect);else throw TimeoutException
{Left_Hill,motion,1} {yU78GH5,location}MappingTable
CodeBrick
Left HillLeft Hill Right HillRight Hill
![Page 73: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/73.jpg)
73
Prototype implementation• SM implemented over modified version of Sun’s
Java K Virtual Machine– Small memory footprint (160KB)
• SM and tag space primitives implemented inside virtual machine as native methods (efficiency)
• I/O tags: GPS location, neighbor discovery, image capture, light sensor, system status
Ad hoc networks ofHP iPAQ PDAs running Linux
![Page 74: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/74.jpg)
74
Lightweight migration • Traditional process migration difficult
– Strong coupling between execution entity and host
– Needs to take care of operating system state (e.g., open sockets, file descriptors)
• Tag space decouples the SM execution state from the operating system state
• SM migration transfers only– Data bricks explicitly specified by programmer
– Minimal execution control state required to resume the SM at the next instruction (e.g., instruction pointer, operand stack pointer)
![Page 75: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/75.jpg)
75
Summary
• Spatial Programming makes outdoor
distributed computing simple
– Volatility, mobility, configuration dynamics, ad
hoc networking are hidden from programmer
• Implementation on top of Smart Messages
– Easy to deploy new applications in the network
– Quick adaptation to highly dynamic network
configurations
• Acknowledgments: Liviu Iftode, Porlin Kang
![Page 76: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/76.jpg)
Syllabus
Pervasive Computing, Spatial Computing Example Scenarios
Overview of Spatial Approaches Three spatial programming models:
Spatial Programming / Smart Messages TOTA / Field-based Coordination Proto / Amorphous Medium abstraction
76
![Page 77: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/77.jpg)
Museum case study application
I would like to see the
Monna Lisa, avoiding the
queues…I’ve got lost! How
can I rejoin my friends?
77
![Page 78: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/78.jpg)
The meeting task
• A Group a tourist want to meet somewhere within the building.
• The “classic” solution – general context information– Involve rather complex algorithms to decide what to do– If something changes (e.g. a corridor is closed) the solution
has to be recomputed• Our proposal
– Express context by means of a “red carpet” leading to the meeting room.
– How to represent the “red carpet”?
78
![Page 79: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/79.jpg)
The Co-Fields model• Contextual information is expressed by means of distributed data-
structures spread in the environment (i.e. fields). Agent move and act being driven by these fields
• Agents’ combine perceived fields in a, so called, coordination field that encodes their actual application task. Then, they act being driven by the resulting values and gradient.
• The coordination policy is encoded into fields’ waveform, in the way in which agents combine perceived fields and in the way in which they react to the fields.
Agent actions change fields
Fields drive agent actions
Feedback cycle
79
![Page 80: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/80.jpg)
Meeting in Co-Fields
Field generated by each single tourist
Coordination Field obtained by taking the field with the greatest magnitude – farther agent
80
![Page 81: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/81.jpg)
Benefits• Designing the application becomes trivial. Just compute the coordination
field and move following the gradient downhill.
• The solution is adaptive. If a tourist gets trapped somewhere, then the meeting room automatically get closer to the unlucky tourist.
• Supposing that fields distributed data structures are maintained coherent despite environment dynamism, then the application is robust to closed corridors, etc.
j
nij
X
tXXXcoordv
dt
dx
),,...,,( 21
81
![Page 82: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/82.jpg)
Other applications• Avoid queues
Room Generated Field
Building Plan
Crowd Field
Building Plan
82
![Page 83: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/83.jpg)
The TOTA middleware• Distributed tuples injected and spread in
the network implementing the concept of fields.T=(C,P,M)
EVENT INTERFACE
Application
TOTA ENGINE
TOTA API
Operating System
Network
STORED TUPLES
83
![Page 84: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/84.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
84
![Page 85: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/85.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
85
![Page 86: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/86.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
86
![Page 87: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/87.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
0
87
![Page 88: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/88.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
0
1
1
88
![Page 89: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/89.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
0
1
1
2
2
89
![Page 90: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/90.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
0
1
1
2
2
3
90
![Page 91: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/91.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
01
2
2
3
1
91
![Page 92: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/92.jpg)
The TOTA scenarioC = (value = “2”, color = “green”)P = (propagate to all nodes, decrease “value” for the first 2 hops then increase it, change color at every hop)
T=
2
1
1
0
01
2
2
3
2
3
1
92
![Page 93: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/93.jpg)
TOTA main algorithm
• Propagation is easy– Breadth-first, avoiding backward propagation
• Maintenance is difficult– We do not want to periodically re-propagate– We wish maintenance is localized near the
point where the network changes
93
![Page 94: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/94.jpg)
Self-MaintenanceEXAMPLE 1
1
2
33
Given a Hop tuple X, we will call another tuple Y a supporting tuple of X if:1. Y belongs to the same distributed tuple as X2. Y is one-hop distant from X3. the value of Y is equal to the value of X minus one
X is in a safe-state if it has at least a supporting tuple
2 is in a safe-state, since it is supported by 1
![Page 95: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/95.jpg)
Self-MaintenanceEXAMPLE 1
1
2
33
NOT SAFE!
![Page 96: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/96.jpg)
Self-MaintenanceEXAMPLE 1
1
2
33
NOT SAFE!
NOT SAFE!
![Page 97: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/97.jpg)
Self-MaintenanceEXAMPLE 1
1
![Page 98: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/98.jpg)
Self-MaintenanceEXAMPLE 2
1
2
23
![Page 99: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/99.jpg)
Self-MaintenanceEXAMPLE 2
1
2
23
NOT SAFE!
![Page 100: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/100.jpg)
Self-MaintenanceEXAMPLE 2
1
2
23
NOT SAFE!
![Page 101: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/101.jpg)
Self-MaintenanceEXAMPLE 2
1
2THERE’S A
HOLE!
![Page 102: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/102.jpg)
Self-MaintenanceEXAMPLE 2
1
2
3
4
PROPAGATE!
![Page 103: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/103.jpg)
![Page 104: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/104.jpg)
Coding the meeting example 1/4
public class MeetAgent extends AbstractAgent {
private static final int speed = 30;
private PeerInterface_ApplicationSide peer;
private TotaMiddleware tota;
public MeetAgent(PeerInterface_ApplicationSide peer) {
this.peer = peer;
tota = new TotaMiddleware(peer);
}
104
![Page 105: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/105.jpg)
Coding the meeting example 2/4
public void step(int time) {
tota.step(time);
// inject the meeting tuple
if(time == 0) {
TotaTuple t = new GradientTuple();
t.setContent("<content=meet>"); // this notation is mandatory
tota.inject(t);
}
if(time > 0) {
int[] dir = getDirection();
if(dir != null)
move(dir[0],dir[1]);
}
}
105
![Page 106: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/106.jpg)
Coding the meeting example 3/4
private int[] getDirection() {
// read the local tuple space
GradientTuple mt = new GradientTuple();
mt.setContent("<content=meet>");
// read the local tuple space
Vector local = tota.read(mt);
// look in the local tuple space, the meet tuple with the highest hop counter
int maxi = 0;
GradientTuple maxt = (GradientTuple)local.get(0);
for(int i=1; i<local.size(); i++) {
GradientTuple t = (GradientTuple)local.get(i);
if(maxt.hop < t.hop)
maxt = t;
}
106
![Page 107: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/107.jpg)
Coding the meeting example 4/4
// look in the neighbor tuple spaces for neighbor
// having a lower value of the max tuple
GradientTuple tofollow = null;
Vector remote = tota.readOneHop(mt);
for(int i=0; i<remote.size(); i++) {
GradientTuple t = (GradientTuple)remote.get(i);
if(t.id.equals(maxt.id) && t.hop < maxt.hop) {
if(tofollow==null || (tofollow.hop > t.hop))
tofollow = t;
}
}
return getDirection(tofollow.from);
…
}
107
![Page 108: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/108.jpg)
108
![Page 109: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/109.jpg)
Summary
• Field-based data structures are useful to represent context:– in a wide range of scenarios– so that it is easily usable by services
• TOTA tuples are robust to dynamic spatial computer and can be easily programmed
• Download and play with TOTA– http://polaris.ing.unimo.it/tota/download.html
109
![Page 110: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/110.jpg)
Syllabus
Pervasive Computing, Spatial Computing Example Scenarios
Overview of Spatial Approaches Three spatial programming models:
Spatial Programming / Smart Messages TOTA / Field-based Coordination Proto / Amorphous Medium abstraction
110
![Page 111: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/111.jpg)
111
Example: mobile streaming
![Page 112: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/112.jpg)
112
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 113: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/113.jpg)
113
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 114: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/114.jpg)
114
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 115: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/115.jpg)
115
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 116: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/116.jpg)
116
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 117: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/117.jpg)
117
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 118: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/118.jpg)
118
Geometric program: channel
Desti-nation
Source
(cf. Butera)
![Page 119: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/119.jpg)
119
Why use continuous space?
Simplicity Scaling & Portability Robustness
(we'll come back to this in a bit...)
![Page 120: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/120.jpg)
120
Amorphous medium
Continuous space & timeInfinite number of devicesSee neighbors' past state
Approximate with:Discrete network of devicesSignals transmit state
neighborhood
device
![Page 121: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/121.jpg)
121
Computing with fields
sourcedestinatio
n
gradient
distance
gradient
<=
+
dilate
width
![Page 122: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/122.jpg)
122
Computing with fields
sourcedestinatio
n
gradient
distance
gradient
<=
+
dilate
width
37
10
![Page 123: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/123.jpg)
123
Diving into the details
•Let's build this up using the Proto simulator, •one piece at a time...
•(break to work w. simulator)
![Page 124: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/124.jpg)
124
Proto(def gradient (src) ...)(def distance (src dst) ...)(def dilate (src n) (<= (gradient src) n))(def channel (src dst width) (let* ((d (distance src dst)) (trail (<= (+ (gradient src) (gradient dst)) d))) (dilate trail width)))
neighborhood
device
DeviceKernel
evaluation
global to localcompilation
discreteapproximation
platformspecificity &optimization
Global Local D
iscrete
![Page 125: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/125.jpg)
125
Proto's families of primitivesPointwise Restriction
Feedback Neighborhood
+restric
t
+
741
delay
48
any-hood
nbr
![Page 126: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/126.jpg)
126
Modulation by restriction
sourcedestinatio
ncoord
channel
10
gradcast
10
(5, 7
)
![Page 127: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/127.jpg)
127
In simulation...
![Page 128: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/128.jpg)
128
Why use continuous space?
Simplicity Scaling & Portability Robustness
150 devices2000 devices
![Page 129: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/129.jpg)
129
Example: intrusion detectionLeft HillLeft Hill Right HillRight Hill
Mobile robotwith camera
Motion Sensor
Use channel to stream intruder information
![Page 130: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/130.jpg)
130
Example: museum traffic control
![Page 131: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/131.jpg)
131
Weaknesses
Functional programming scares people Programmers can break the abstraction No dynamic allocation of processes No formal proofs available for quality of
approximation in a composed program
(active research on last two)
![Page 132: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/132.jpg)
132
Summary
Amorphous Medium abstraction simplifies programming of space-filling networks
Proto has four families of space and time operations, compiles global descriptions into local actions that approximate the global
Geometric metaphors allow complex spatial computing problems to be solved with very short programs.
![Page 133: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/133.jpg)
Conclusions
• New and exciting research area!• Many pervasive computing scenarios reflect spatial
computers concepts• Many research approaches exist to programming
pervasive application for spatial computing• Still there is a lot of open issues to be addressed:
– More software engineering– More real-world applications– Better definition and management of “emergent” behaviors and
properties
133
![Page 134: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/134.jpg)
Some References
• C. Borcea and D. Iyer and P. Kang and A. Saxena and L. Iftode, Spatial programming using smart messages: Design and implementation, IEEE International Conference on Distributed Computing Systems. Tokio, Japan, 2004.
• O. Riva, T. Nadeem, C. Borcea, L. Iftode, Context-aware Migratory Services in Ad Hoc Networks, IEEE Transactions on Mobile Computing 6(12):34-33, 2007.
• M. Mamei, F. Zambonelli, Programming Pervasive and Mobile Computing Applications: the TOTA Approach, ACM Transaction on Software Engineering and Methodology, 2008, to appear
• M. Mamei, F. Zambonelli, L. Leonardi, Co-Fields: A Physically Inspired Approach to Distributed Motion Coordination, IEEE Pervasive Computing, 3(2):52-61, 2004.
• J. Bachrach, J. Beal, T. Fujiwara, Continuous Space-Time Semantics Allow Adaptive Program Execution. IEEE SASO 2007, Cambridge (MA) , USA, 2007.
• J. Beal, J. Bachrach, D. Vickery, M. Tobenkin, Fast Self-Healing Gradients, ACM Symposium on Applied Computing, Fortaleza, Brazil, 2008.
134
![Page 135: Spatial Approaches to Pervasive Computing Tutorial at IEEE SASO 2008 Jacob Beal (BBN Technologies) jakebeal@bbn.com Jonathan Bachrach (MIT) jrb@csail.mit.edu.](https://reader035.fdocuments.in/reader035/viewer/2022070417/56649e2c5503460f94b1b608/html5/thumbnails/135.jpg)
Thanks for your attention!
135