Title: Spatial Programming using Smart Messages: Design and Implementation
1Spatial Programming using Smart Messages Design
and Implementation
- Cristian Borcea, Chalermek Intanagonwiwat, Porlin
Kang, Ulrich Kremer, and Liviu Iftode - Department of Computer Science
- Rutgers University
2Computers Go Outdoors, Embedded Everywhere in the
Physical World
Distributed object tracking over a
large geographical area
Cars collaborating for a safer and more fluid
traffic
3Traditional (Indoor) Distributed Computing
- Computation is distributed for performance or
fault tolerance - Relatively easy to program
- Nodes are computationally equivalent
- Networking is robust and has acceptable delays
- Configuration is stable
4Outdoor Distributed Computing
- Computation is physically distributed
- Nodes distributed across the physical space
- Location-aware computing
- Hard to program
- Nodes are functionally heterogeneous and
potentially mobile - Ad hoc wireless networks of embedded systems
- Volatile configurations
5Example
Mobile sprinkler with temperature sensor
Left Hill
Right Hill
Hot spot
- Water the hottest spot on the Left Hill
- Number and location of mobile sprinklers are
unknown - Configuration is not stable over time
- Sprinklers move
- Temperature changes
6Traditional Distributed Computing Does Not Work
Well Outdoors
- End-to-end data transfers may hardly 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
abstractions and programming models - How to write outdoor distributed applications?
- How to deploy new applications in existing
networks?
7Outline
- Motivation
- Spatial Programming (SP) Model
- SP Implementation using Smart Messages
- SP Application
- Conclusions
8Traditional (Indoor) Programming
Program
Variable access
- 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
Virtual Address Space
Page Table OS
Physical Memory
9From Indoor to Outdoor Computing
Virtual Address Space
Space Region
Variables
Spatial References
Spatial references mapped to systems embedded in
the physical space
Variables mapped to physical memory
Reference consistency
?
?
Bounded access time
10Spatial 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
11Space Regions
Hill new Space(lat, long, radius)
lat,long
radius
- Virtual representation of a physical space
- Similar to a virtual address space in a
conventional - computer system
- Defined statically or dynamically
12Spatial References
Hillrobot0
Hill
Hillrobot1
r7
r2
Hillmotion0
m5
- Defined as spaceproperty pairs
- Virtual names for embedded systems
- Similar to variables in conventional programming
- Indexes used to distinguish among similar
systems - in the same space region
13Reference 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
unique_address, location
14Reference Consistency Example
Right Hill
Left Hill
Left_Hillrobot0.move ON
Left_Hillrobot0.move OFF
15Space Casting
Right Hill
Left Hill
Left_Hillrobot0
Right_Hill(Left_Hillrobot0)
16Bounding 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 the
spatial reference access
try Hillrobot0, timeout.move
ON catch(TimeoutException e) // the
programmer decides the next action
17Spatial Programming Example
Mobile sprinkler with temperature sensor
Left Hill
Right Hill
Hot spot
- Water the hottest spot on the Left Hill
for(i0 ilt1000 i) try if
(Left_HillHoti, timeout.temp gt
Max_temp) Max_temp Left_HillHoti,
timeout.temp Max_id i
catch(TimeoutException e)
break Left_HillHotMax_id, timeout.water
ON
18Outline
- Motivation
- Spatial Programming (SP) Model
- SP Implementation using Smart Messages
- SP Application
- Conclusions
19Smart Messages at a Glance
- Smart Message (SM)
- User defined distributed application similar to a
mobile agent - Executes on nodes of interest named by properties
- Migrates between nodes of interest using
self-routing - Self-Routing
- Application-level routing executed at every node
- Applications can change routing during execution
- Cooperative Nodes
- Execution environment (Virtual Machine)
- Memory addressable by names (Tag Space)
- Code cache
20Smart Messages Prototype
- Modified version of Suns Java K Virtual Machine
- Small memory footprint (160KB)
- SM and tag space primitives implemented inside
virtual machine as native methods (efficiency) - Implemented I/O tags GPS location, neighbor
discovery, image capture, light sensor, system
status
21Spatial Programming Implementation 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
22SP to SM Translation Example
Left Hill
Right Hill
Max_temp Left_HillHot1, timeout.temp
Spatial Reference Access
Mapping Table
Left_Hill,Hot,1
yU78GH5,location
ret migrate_geo(location, timeout) if (ret
LocationUnreachable) ret
migrate_tag(yU78GH5, timeout) if ((ret OK)
(location Left_Hill)) return
readTag(temp) else throw TimeoutException
Smart Message
Code
23SP Application Intrusion Detection
Ad hoc network HP iPAQs with 802.11 cards and
GPS devices
user node
monitored space
light sensor
camera node
regular node
Code Size breakdown for SM (Application SP
Library)
Code Size breakdown for SP library
24Execution Time Breakdown
25Conclusions
- 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
26Thank you! http//discolab.rutgers.edu/sp/