Title: Olympus: A HighLevel Programming Model for Pervasive Computing environments
1Olympus A High-Level Programming Model for
Pervasive Computing environments
- Anand Ranganathan, Shiva Chetan, Jalal Al-Muhtadi
- University of Illonois At Urban-Champaign
- Supercomputing Lab.
- Joo-kyoung Park (05. 7. 26)
2Contents
- Introduction
- Active Spaces and Gaia
- The Olympus Programming Model
- Virtual Entities
- High-level Operators
- The Discovery Process
- Ontology hierarchies of entities
- Ontological description of entities
- Developer-specified constraints
- Semantic Matching of classes
- Space-level policies
- Utility function
- High-level Operators
- Example Programs
- Related work
- Conclusion and future works
3Introduction
- Characteristic of Active Space
- Device-rich, Context-aware environment
- Very highly dynamic
- Problem of programming Active Space
- The resource and context can change rapidly
- Developer can not expect to know how various
tasks are performed - Program must be able to adapt the changing
context and resource - Can solve High-level abstraction
- Propose Olympus Programming model
- Abstract entity and operator
4Active Space and Gaia
- Active Space
- A physically-bounded collection such as a room,
devices, objects, users, services and application - Gaia
- Meta-operation system
- Manages resources of an active space
- Contains a set of core service that manages the
resource collection - Provide a programming interface to application
developer
5The Olympus Programming Model
- Programming model
- Defined as an abstract machine
- Provide certain data type and operation to high
level - Require implementation for each these operation
to low level - Virtual Entity
- Abstracted entity
- Olympus allows a user to program and Active Space
in terms of virtual entity - Virtual entity associated with class defined in
an ontology - Eight basic type of entities
- Application, ApplicationComponent, Device,
Service, Person, PhysicalObject, Location,
ActiveSpace - High-level Operator
- Olympus can provide Active Space operator in
their high-level program
6The Discovery Process(1/2)
- Choose appropriate instance for the virtual
entity - There are various type of constraints
- Constraints of the value of variable specified
high-level program - Constraints listed in ontology
- Policies specified by a Space Admin
- User policies for the user using the program
7The Discovery Process(2/2)
- Discovering suitable classes of entities
- Quries ontology server to find semantically
similar to the virtual entity class - Checking class-level constraints on the similar
classes - Filters the list of classes depending on whether
they satisfy class-level constraints (Used Prolog
reason engine) - Discovering entity instances in the current
space - Quries Space Repository to get instances of the
classes that are available in the space - Checking instance-level constraints on the
similar classes - Check if it satisfies instance-level constraints
specified in the program or policies (Used Prolog
reason engine) - Choosing the best among the possible instances
8Ontological hierarchies of entities(1/3)
Discovery process
- ApplicationComponent hierarchy
- Built using an extension of the
Model-view-Controller framework - Model
- Implements the logic of application and export to
access it - Presentation
- Provide output interface
- Adapter
- Map controller input to method call on model
- Controller
- Act as input interface to application
- Coordinator
- Manage the composite of the other components of
the framework
9Ontological hierarchies of entities(2/3)
Discovery process
- ApplicationComponent hierarchy can allow a class
to have multiple parents - Help in identifying how similar any two entity are
10Ontological hierarchies of entities(3/3)
Discovery process
- Device and other Entity type hierarchy
- Similar to the ApplicationComponent hierarchy
11Ontological Description of entity
Discovery process
- Each class is associated with a description in
OWL - OWL describe various semantic property such as
the task it can perform, the class of device that
can host it - All application Component classes have an OWL
description - Define relations between different concept
- Ontologies are initially created by an admin of
space and can extend application developer
12Developer-specified constraints
Discovery process
- Developer can specify constraints that the class
and instance of virtual entity - Take the form of triple (ltentitygtltpropertygtltvaluegt
)
13Semantic Matching of classes(1/2)
Discovery process
- Semantic similarity of entity class
- Based on the principle that entity can be
substituted by another if they are semantically
similar (EX. Powerpoint -gt acrobet) - Matching rule
- C1 is equivalent to C2, with similarity-level 0
- C1 is a sub-concept of C2, with similarity-level
1 - C1 is a sub-concept of C2 or C1 is a sub-concept
of a super-concept of C2 whose intersection with
C2 is satisfiable, with similarity-level i2,
where I is the number of nodes in the path in toe
ontology hiererchy graph from C2 the relevant
super-concept of C2
14Semantic Matching of classes(2/2)
Discovery process
- Example
- similarity-level 0 PowerPointViewer
- similarity-level 1 None
- similarity-level 2 AcrobetReder, GhostScript
- similarity-level 3 WindowsMediaPlayer, Paint
- similarity-level 4 WinAmp, GaiaSpeechEngine
15Space-level Policies
Discovery process
- Written by the administrator of the space
- Policies are written in the form of rules in
Prolog - Specify constraints on the classes and instances
of entities - Class level constraints
- Instance level constraints
16Utility Function
Discovery process
- Employ a multi-dimensional utility function in
order to choose best entity instance - Location of the entity
- Task supported by the entity
- State of the entity
- Context of the space
17High-level Operators(1/2)
- Operators can express many common Active Space
- Operators act on a target entity and can have
zero or more argument - Event operator generate event when the associated
condition become true
18High-level Operators(2/2)
19Example Program
- Consist of two parts
- Virtual entities are declared
- Developer specifies the type of the entity and
its properties of constraints - Use high-level operators on the entity
- Developer can iterate through the list and
perform operations on instance
20Related work
- Task-computing model
- Allows a user to specify a behavior as a set of
task that need to be completed - System determine the way the task are to be
composed - Operator graph model
- Use programming model where service to be
composed are specified as description and
interaction - Other discovery mechanisms
- Jini Lookup, CORBA, UDDI are used for discovering
entity - But specify constraints based on name-value pair
21Conclusion
- Relieves developers from task of discovering
proper entity for performing task - Provide abstraction for common Active Space
- Provide a way of integrating policies and a
utility model into the discovery process