Title: Weave: An architecture for tailoring urban sensing applications across multiple sensor fabrics
1Weave An architecture for tailoring urban
sensing applications across multiple sensor
fabrics
- V. Kulathumani, M. Sridharan, R. Ramnath, A.
Arora - Dept. of Computer Science and Engineering
- The Ohio State University
2Motivating scenario campus surveillance
- Track suspicious persons across campus outdoors
and indoors
- Outdoor surveillance by building mounted
camera network
- Monitors suspicious activity such as stopped car
- Indoor surveillance by motion triggered camera
network
- Should only monitor suspicious persons
- Should be cued to operate by outdoor network
3Motivating scenario locality queries
- Variety of networks deployed to monitor local
environment
Users ask locality specific queries Where is
Anish? Where is elevator?
4Challenges
- Developing applications on already existing
networks - Example programming detector for stopped car
near entrances - Users who write applications may be different
from network designers - Composing applications across independent, varied
networks - Example indoor network cued by outdoor network
- Rapid prototyping despite retrieving semantically
different data - Events of interest not known a priori or change
quickly - Numerous networks, each sensing different data
- Need unified way to retrieve
5Contributions
- Architecture for urban sensing systems (Weave)
- Individual networks viewed as programmable
fabrics - Fabrics are independently managed
- Fabrics need not share data
- Fabrics conform to APIs
- Generic (Standard across fabrics)
- Domain specific
- Domain specific API for class of Search
applications - Illustrating use of Weave in composing
- Campus surveillance application
- Locality query applications
-
6System components
Client
Applications that access fabrics via
services Granted access via access manager
Directory
APIs
Communicate via standardized APIs
APIs
Access Manager
Independent decoupled networks Sense, communicate
physical phenomena Need not share state with
other fabrics
Maintain directory of services offered Grants
access rights for fabric
7System components Specific to Search applications
- Object types
- Defined by predicates on physical phenomenon
- Cooperative / non-cooperative
- Attributes such as location and velocity
- Objects
- Instances of object types
- Detector
- Associated with each object type
- Implemented by
- Fabric designer
- Client
8Generic APIs in Weave
Register
FabricSession Register(Fabric F, Client C)
- Handles authentication
- FabricSession used in future references
- Contains expiration
9Generic APIs in Weave
Instantiate
Boolean Instantiate(FabricSession, Detector,
Shareable)
- Program clients detector on fabric
- User should be aware of internal fabric APIs
- Made available to other Clients using Shareable
- Security
- Run in isolation
- Restrict hardware APIs
10Vertical APIs for Search class
Search
SearchSession Search (FabricSession, ObjectType,
Object, Locations, Parameters, Persistence,
Duration, Periodicity, SearchListener)
- Operates in following modes
- Find if object exists
- Search temporally
- Search spatially
- SearchListener is call back provided by Client
11Locality specific querying
Where is Anish? Search CSE PeopleNet fabric and
Recreation Center fabric
Register with fabrics CSE peopleNet and RPAC
PeopleNet
FabricSession_cse Register(CSE_peopleNet,
Client) FabricSession_rec Register(REC_peopleNet,
Client)
12Locality-specific querying
Search PeopleNet CSE for Anish
Result_cse Search (FabricSession_cse, ADVERTISED,
ANISH, LOCATION_ALL, Parameters, ONCE, NOW, NULL,
SearchListener)
CSE building PeopleNet tracking
13Campus surveillance scenario
Register with fabrics Outdoor camera, Indoor
motion triggered camera
FabricSession_m Register(OutdoorFabric, Client)
FabricSession_ca Register(IndoorCamera, Client)
Instantiate detector for stopped car near
entrance on outdoor fabric
Result_m Instantiate(FabricSession_m, stoppedCar,
YES)
14Campus surveillance scenario
Search for StoppedCar object type
Result_m Search (FabricSession_m, StoppedCar,
NULL, LOCATIONALL, Parameters, PERSISTENT, 0,
FOREVER, SearchListener)
Calls SearchListener whenever new object is
detected
Stopped car detected This will cue indoor fabric
15Campus surveillance scenario
Outdoor fabric cues indoor camera using time and
location
Result_ca Search (FabricSession_ca, ANY, NULL,
LOCATIONS, Parameters, PERSISTENT, 120, 1,
SearchListener)
LOCATIONS set to near entrance of building
ObjectType is ANY Duration - next 120 seconds
Periodicity - return results at 1 second interval
Indoor camera takes picture
16Related work
- Simplifying application design across
heterogeneous networks - Senserweb
- Push based model
- GENI
- All services in or architecture compatible with
GENI user services - We do not force isolation
- Viewing network as database of queryable object
- TinyDB
- Queries on raw data
- We operate on semantic values exposed by fabric
- Focus on optimizing querying in a single network
17Current work
- Implement low level services necessary for fabric
model - Power management
- Secure scheduling services
- Security
- Jamming detection
- Restricted set of hardware APIs accessible to
client