Requirements
Architecture
Location & Scope
Services as Partitioned Application Components
Prototype Applications
Summary
Future Work
Requirements
2) Remote-Controllable
Devices / Apps 3) Service Discovery 4) Transducers
between objects
and clients clients objects 2 4 3 ? 1) Non-intrusive
Mobile Devices 1
1) Client Devices
Use of small mobile devices
promotes goal of “non-intrusive” usage
allows users to interact with their “usual” device rather a “new” (local) one
Remote Control
This? Or this?
2) Controllable Objects
RS-232 IP computer device control
interfaces
accessible
via IP Define and create specific API for control of apps
Expose control interface over the network while separating/minimizing UI assumptions
Example Devices: UCB CoLab
TV monitor,
Camera, &
Speaker
sets Computers Serial mux LiveBoard A / V switch Mic amp Echo Canceller Scan Converters Not shown: VCR, power control, ON-AIR sign, WaveLAN base station, ... Receiver
3) Service Discovery
? Other
Services . . . . . . Service
Discovery
Service query register clients objects advertise Advertise, register, & query
Scalable management of hierarchy of available services
Scoping, rate-limiting for wide-area
Naming
Scoped Discovery Bootstrap
(header) SIP IP addr port ticket application-specific payload … beacon packets Mobility beaconing is an announce/listen protocol
unify with a service location announce/listen protocol
announced data is location information
Advertisements (push) vs. queries (pull)
push: user anonymity, power, traffic
Contrast announce/listen with lookup-based schemes
adaptive scoping/forwarding (vs. DHCP)
no root servers (vs. DNS)
granularity varies with subnets, not area; no additional hardware required if connectivity assumed (vs. GPS)
Scoping Heuristics
request + ticket (scoped) beacon
with ticket Tickets included in scoped beacons
For local per-service access
Without ticket, services are inaccessible
For local service directory (cache) access
Without a received beacon, contents (and existence) unknown
4) Transducing Interfaces
Application
Proxy Client Device Device
Proxy RS-232 Wired IP Wireless Map between object and client interfaces at application proxy
remap endpoints & data types, aggregate/subset, compose
Exploit:
COM/Java Beans-style introspection to discover objects’ interface definitions or explicit Interface Specifications
exposed indirection between client app and device (control protocol) to vary UI
On-the-fly Transduction
Application
Proxy Client Device Device
Proxy RS-232 Wired IP Wireless Generation
Process Control Interface and/or
Existing UI Code Original or Generated UI Utilize interface specification for on-the-fly UI generation/modification
Still can use existing client-specific UI code
Remapping
0.0 1.0 0.5 on off (enumerated) (real) (boolean) Client UI data type to that expected by control interface
Current interface widget(s) to new servers
Control messages to other control messages
Aggregate or Subset
Aggregate
Interface
Definitions Application
Proxy Client Devices Device
Proxies
Create custom UIs that can use a portion of the functionality from one or more control interfaces
controllable objects/servers remain independent
Comments