Title: Overview of Pervasive Computing Systems: Smart Spaces and Operational Issues
1Overview of Pervasive Computing Systems Smart
Spaces and Operational Issues
- Volatile Systems
- Smart Spaces and Context-Awareness
- Association and Directory Services
- Sensing and In-network processing
- How are the functions supported and what are the
system operation problems?
2Pervasive Computing Systems
- You are asked to design a pervasive computing
application, i.e., the aware home system - How to start??
- What are the components?
- What is the system architecture?
- What are the networks?
- What are the devices?
- How to collect and maintain the system status?
- What are the performance objectives in addition
to providing the required functions of the
system? - How to process the sensor data/user queries using
limited resources? - You need to know the characteristics of the
networks, devices, development tools, and the
efficient algorithms and techniques for
processing the data items and information in the
system to the requests and queries from the users
3Development of Pervasive Applications
- Pervasive computing systems are distributed
systems - What make a pervasive application different from
a conventional distributed system? - Application characteristics and requirements
real-time, proactive, dynamic, etc. - Network heterogeneous network, unstable and
varying quality of services, dynamic workload - Devices limited resources, sized, processing
power and energy supply - Backend server is similar to many distributed
systems - Needs to maintain a database for maintaining
system status and location databases - The database may be distributed for maintaining
the information of different locations - Since the database system may need to handle
real-time data, it may be a real-time database
system (main-memory and priority-cognitive
scheduling) - Development Tools
- Depends on client devices (TinyOS, WinCE, J2ME..)
4Volatile Systems
- The set of users, hardware, and software in a
pervasive computing system is highly dynamic and
changes unpredictably - Why volatile? (systems and applications)
- When a user carrying a sensor device enters a
room (smart space), the sensors in the room
should identify the user (a new object) - How to identify the new object? Detection of the
presence of a new object and getting the ID
(universal identifier) carrying by the new
object. Intruder or owner? Then - Forms of volatility (system issues and more than
users) - Failures of devices and communication links
- Connection and topology (1 to 1, 1 to many and
many to many) - The connection may be intermittent (why?)
- Changes in performance of connection such as
bandwidth and connection points - The creation and destruction of an association
(more than network) logical connection
relationships between software components
resident on the devices (i.e., by bluetooth or
infra red)
5A room responding to a user wearing an active
badge
2. Infrared sensor detects users ID
Users ID
1. User enters room wearing
3. Display responds
Hello Roy
an active badge
to user
Infrared
Fr. Dollimore
Active badge is a radio emitting identifier
(emitting a unique ID) What to be displayed?
(Depending on who is the user) What need to be
performed when the user leaves the room?
Note that you may build a smart space in the wild
and open area. How to define the scope of the
space?
6Smart Spaces and Objects
- Smart space
- Dynamic environment and adaptive services
- Smart space is any physical place (environment)
with embedded services (enter -gt detection -gt
services delivery) - Capture of new objects and maintenance of the
space (including the objects) status - Services are provided to the objects in the space
- The objects in space may also provide services to
other objects - Smart objects
- The object is smart (you do not need to submit
commands or instructions) - Spontaneously join the space
- Proactive services
- Understand what you need when you are inside the
smart space - How? Based on some pre-defined rules. Detection
-gt Event occurred -gt generation an action
(response) - Why smart spaces and smart objects are feasible
nowadays? - Small size, processing capability, memory and
energy issues
7Context Awareness of Smart Objects/Services
- The objects have their own functions
- Different contexts generate different actions
(services) - Context of an entity/object is an aspect of its
physical (logical) circumstances (i.e., location,
time, status, temperature, identity, etc.) of
relevance to system behavior - It could be the presence of an entity or complex
conditions - Different actions for different situations
- They may have sensors and talk with others
- Location/situation/context aware
- Can remember pertinent events
- They have a memory and state
- State transition
- Evaluation problem
- Each state change triggers a rule evaluation
8Context Awareness of Smart Objects/Services
- Using sensors for determining contextual values
- Location, velocity orientation navigation, GPS
etc - Ambient conditions light intensity, sound
intensity, etc. - Presence RFID, infra-red, active badge
- Are responsive/proactive
- Communicate with environment
- Networked with other smart objects spontaneously
- What are the main differences and similarities
between a computer and a smart object?
9Adaptations
- Context aware adaptation (services)
- Devices are heterogeneous in a pervasive
computing system, i.e., have different
capabilities and characteristics - Display of web pages/videos
- Transcoding may need to be performed on the fly
(by the proxy or by the source before
transmission) - Adaptation to resource allocation (performance)
- The number of devices and workload in a smart
space could be highly dynamic - To maintain the quality of services (proactive
with real-time responses), it needs to adapt to
the changing workload - How admission control with reservation, and
prioritization (scheduling)
10Smart Christmas Tree
- You are asked to build a smart Christmas tree
- Installed with sensors to detect whether any
object is moving towards it (sound sensor) - Once a new object is detected, the lamps on the
tree will be turned on to show the welcome sign
for 10 seconds - When a loud noise is detected, it will be
disabled for 10 min - If it has been activated continuously for 10
times within 5 min, it will be disabled for 5 min - How to implement the system
- Install multiple Mica Motes on a Christmas tree
and they can communicate with each other using
radio signals - Your application in each Mica Mote captures
sensor data generated from the sound sensor
periodically (every second) - If the sound level (sensor data) is higher than a
threshold value, turn them on - A simple database is maintained at each Mica Mote
to record its current status and also the last
received sensor data - Problems the data from the sensors may contain
errors
11Association (Group Management)
- Multiple objects
- Multiple objects co-exist in the same smart
space. Some of them are service providers and the
others are users - Multiple objects co-exist in the same smart space
for improving the correctness of detected sensor
data (i.e., multiple temperature sensors are
installed in the same room. What is the room
temperature? Do they give the same reading? - Association at least one of a given pair of
components communicates with another within a
smart space (cooperatively perform a task
(provide services)) - After association gt Interoperation the
interaction during association - Association is spontaneous (without user
intervention) - Network bootrapping
- Communication takes place over a local network
within the smart space - The device acquires an address (ID and a name) on
the local network - Who determine the assignment and manage the
network
12Association Problem
Maintenance
N6
N7
N6
N7
N1
N1
N2
N3
N2
N3
N4
N4
N5
N5
time t1
time t2
good link weak link
13Connection and Communication Problem
- Multiple objects within a smart space
- How are they connected?
- What are the communication links?
- A network with dynamic configuration
- Mobile Ad hoc network (MANET)
- Limited bandwidth
- Probability of communication collision
- Limited energy
- Real-time control (communication delay and
response delay)
14Routing Problem
- Highly dynamic network topology
- Device mobility plus varying channel quality
- Separation and merging of networks possible
- Asymmetric connections possible
N6
N7
N1
N6
N3
N7
N2
N1
N2
N3
N4
N5
N4
N5
time t2
time t1
good link weak link
15Association Problems
- Scale and scope
- Scale the number of objects within a space. More
objects higher communication cost - Scope space boundary
- I.e. consider the assignment of mobile stations
to a base station in a cellular network - Physical Vs. logical space
- The object physically locates within a space may
be assigned to another space that is far from its
current location - How are they connected? Using broadcast messages
- Consider the problem of broadcasting a message to
all the members within a group (room) - In a smart space, disconnection is common and the
network bandwidth and quality is varying
16Smart Space 1
Smart Space 2
Smart Space 3
17Physical Vs Logical Smart Space
integration of heterogeneous fixed andmobile
networks with varyingtransmission characteristics
regional
vertical handoff
metropolitan area
Fr. Schiller
horizontal handoff
campus-based
in-car, in-house, personal area
Why do we need to perform a handoff operation for
a mobile (or even a stationary) user?
18Centralized Vs. Distributed Management
- Centralized approach use a powerful server to
manage the space status and connection
information - Distributed approach multiple devices (service
providers) manage the information - Comparisons
- Problems in distributed computing
- Perform operations at device level because of
limited bandwidth - Due to the dynamic properties of the smart space
and objects, a lot of updates are needed to be
generated - A distributed approach can make the management of
objects to be localized and adaptive to the
changing systems status (in networking
processing). But, the communication overhead
could be very heavy - A hierarchical approach multiple levels with
different types of coordinators may be used
19Centralized Approach
20Distributed Approach
Peer-to-peer and clustering problems
21Discovery Services
- When a client enters a smart space,
- The system needs to update its location (and
system status) - The object needs to determine how to join it
(registration) and what are the services provided
in the space - I.e., A client enters a hotel carrying a notebook
and wants to print a document - A discovery service is a directory service in
which services in a smart space are registered
and looked up by their attributes - Types of services device directory and service
directory - Device directory records the names and addresses
of co-present devices - Select one of the devices for connection and to
require for services - Service directory records what are the services
provided in the smart space - Submit a request (query) for a particular type of
service - The smart space will select one of the devices to
provide the service to the requesting client
22Discovery Services
- Directory query operations
- Registration and de-registration of services
- Look-up for services
- Directory discovery problems
- Directory data required by a client are dynamic
and generated at run-time (as a function of the
context of the client) - May be no infrastructure (distributed Vs.
centralized) to hold the directory server - The services registered in a directory are
dynamic too - The new object may be a service provider
- The protocols used for accessing the directory
need to be energy sensitive - Note that a service may disappear spontaneously.
Why? - Using leasing a lease is temporary allocation of
a service by a server to a client. It can be
renewed by a further request (refresh) from the
client before the deadline expires
23The interface to a discovery service
Fr. Dollimore
24Directory Server Vs. Serverless
- For systems with a fixed infrastructure and the
directory server is a powerful robust machine - Directory server maintains a set of description
of services - The client issues a multicast request to locate
the directory server - The directory server responds with its unicast
address - They communicate point-to-point with each other
- If no pre-defined powerful directory server, the
directory server may be elected from the group of
devices within the space - Problems disappear of the elected server
(re-election). The cost for re-election depends
on the degree of volatility of the system
25Directory Server Vs. Serverless
- No fixed infrastructure and no powerful machine
to be acted as a server - The participating devices collaborate with each
other to implement the service directory. How? - Event synchronization problem all changes have
to be propagate to all the member before any
change can be updated (S1-gtS2-gtS3) - Push model services multicast their description
regularly. Clients listen for the multicasts and
run their queries against them - Pull model clients multicast their queries.
Devices providing services run the queries
against their descriptions, and only response
with any description that match. Clients repeat
their queries periodically if there is no
response
26Push Vs. Pull
- Consideration energy and bandwidth consumption
- Every time a device issues a multicast message,
bandwidth is consumed and all listening clients
expend energy receiving the message - In a pure push model, devices need to multicast
their services even there is no client - In a pure pull model, a client can discover
services as soon as it appears. But, the client
may receive multiple responses from different
devices
27Jinis Discovery System
- Java based system for mobile and pervasive
computing systems - Components lookup services (discovery services),
Jini services and Jini clients - A Jini service provides services
- The lookup stores services
- Jini clients request services
- Lookup service allows Jini services to register
the services they offer - A Jini service may be registered with one or more
lookup services - Jini clients request services that match their
requirements - If a match is found, the Jini client downloads an
object that provides access to the service from
the lookup service
28Jinis Discovery System
- When a Jini client or service starts up, it sends
a request to a well-known IP multicast address - Any lookup service that receives the request
sends its address enabling the requester to
perform a remote invocation to look up or
register a service with it - The client requires a lookup service in the
finance group so it multicasts a request with
that group name - Only one lookup is bound to the group name and
that service responds including its address - The client communicates directly using RMI to
locate all services of type printing - Only one printing service has registered with the
lookup service - The client then uses the printing directly
- Problem subnet area Vs. smart space (a room)
- Possible solutions human input space ID, sensors
to read the space ID
29Service discovery in Jini
1. finance lookup service
admin
Printing
service
Client
admin
Client
Lookup
service
Network
2. Here I am .....
4. Use printing
service
admin, finance
Lookup
3. Request printing
service
Printing
Corporate
infoservice
service
finance
Fr. Dollimore
30In-network Processing
- In-network processing process a query inside the
network (close to the place where its required
data are generated - Physically distributed source of data and
distributed processing - Processing within the network (device level),
i.e., close to the source for generating the data
that are required by the request - I.e. You submit a query to ask the traffic
conditions in Nathan Road. It is assumed that we
have traffic sensors on the roads - Multiple data access The query may be divided
into sub-queries to be processed at different
nodes (distributed query processing) if it
requires access to multiple data objects - How to divide the query into sub-queries? Based
on the locations of their required data - It is assumed that the sources for generating the
data are known - A query may be represented as tree structure
31In-network Processing
- If the sources are unknown
- Direct diffusion The query may be specified with
its interests (an attribute-value pair). Then,
the query is diffused into the network to search
for the matching to select the nodes - The sink propagates interests to its neighboring
nodes - Any node that receives an interest store a record
of it along with information that needed to pass
back to the sink node. Then propagate the
interest to its neighboring nodes - A source is the node that match an interest.
There may be several source nodes - Problems redundant propagation and may flood the
whole system - Solution
- Defining a gradient (a direction/value pair) to
control the flow. If the value is below the
threshold, the flow will not follow the direction
(What is the assumption?) - Adding a filter in the intermediate nodes to
eliminate duplication
32Directed diffusion
sink
sink
sink
source
source
source
source
source
source
C. Data delivery
B. Gradients set up
A. Interest propagation
Fr. Schiller
33Sensor Data Collection
34Sensing and Sensor Data Collection
- Multiple levels and integration
- Abstraction of sensor data
- Temperature reading from a sensor is the
temperature of a room? - Different sensors in the room may have different
readings - Presence of an intruder (a new physical and
moving object and unknown ID) - Errors
- Some of the sensors may have a very different
reading from the others - Context is dynamic
- The readings from the sensors may change quickly
- Update and stream data processing problem
35Examples
- Context widget
- Present an abstraction of some type of context
attribute while hiding the complexity of the
actual sensors used - Constructed from distributed components
- Generators acquire raw data from sensors such as
from floor pressure sensors and provide that data
to widgets - Widgets use the services interpreters, which
abstract contextual attributes from the generated
low-level data to high level data such as the
identity of a person - The server provides further levels of
abstractions by collecting, storing and
interpreting contextual attributes from other
widgets - Active Badge Sensors
- For detecting presence of an identity carrying an
active badge (location management system) - Active badge sensors are deployed at fixed
locations throughout the whole building - For a telephone receptionist, when receiving an
incoming call, searching the location management
system, it can identify the location of the
called party -
36A PersonFinder widget constructed using
IdentityPresence widgets
A PersonFinder widget for a building is
constructed from the IndetifyPresence widgets for
each room using footstep interpretation from
floor pressure readings or from face recognition
from vide capture
37Reference
- Distributed Systems Concepts and Design by
Dollimore, Ch16 (except 16.3, 16.5)