MIT Project Oxygen

advertisement
The Buddies
CS551 – Project Proposal
Project Group
Sushil Puradkar
Uday Joshi
Swapnil Deshmukh
Preeti Naik
Madhura Maideo
Neeta Prasad
Saurabh Pathak
Date of Submission: September 29, 2003
The Buddies – Project Proposal
Table of Contents
1.
Introduction _______________________________________________________ 3
2.
Project Goal and Objectives ___________________________________________ 4
Overall Goal ________________________________________________________ 4
Specific Objective ____________________________________________________ 4
Significance _________________________________________________________ 5
3.
Project Background _________________________________________________ 6
Work done by others _________________________________________________ 6
Relation of our project to current research _______________________________ 7
4.
General plan of work ________________________________________________ 8
Proposed Solution ____________________________________________________ 8
Proposed System _____________________________________________________ 8
5. Reference __________________________________________________________ 11
2
The Buddies – Project Proposal
1. Introduction
Imagine a scenario where you enter in your office. You stand in front of a coffee machine. Coffee
machine recognizes you, greets you and prepares your favorite coffee for you. Then it asks you
whether you would like to listen to your favorite song or would like to listen to your emails while
you are sipping in your coffee! Then it will tell you that you are late for you job and your boss is
waiting for you!
You meet your boss and both of you go to the conference room where you are supposed to give a
presentation in five minutes. Well, you are kind of a person who likes to work at home too. You
have stored your presentation on your desktop computer at home. The conference room is
intelligent. As you walk into the conference room, it will recognize you. It will know that your
presentation will start in next five minutes so it will fetch your presentation from your home
desktop pc and when you are about to start your presentation it will dim all the lights and will
project your presentation on the screen! It seems like we are talking about something impossible,
like some science fiction. But the way we see it, it’s possible. It’s possible in tomorrow’s
pervasive computing world, the world that we dream.
Pervasive computing is all about computers. They will pervade in your life. They will act as your
friend, subordinate, guide and trainer. Pervasive computing world will be erected on
collaboratively working and intelligent environments. We call such intelligent environments as
‘Autonomous System’ (AS). To achieve such intelligent environment, we need all devices talk to
communicate with each other; know each other’s capabilities and work collaboratively to execute
any task. We need these environments to know humans, understand their feeling and provide
service that would be most preferred by them. After all, they are made intelligent to assist humans.
There are many hurdles in developing such intelligent environment. We need to tackle many
issues like device communications, user profiling, decision-making intelligence and security. In
this project we will try to address some of these issues and will try to come up with a framework
that could become as a backbone to develop pervasive computing environment.
Another quite unexplored area is semantic web. It is all about making information globally
accessible, classifying information and searching web intelligently to gather relative and accurate
information. There are many research groups that are working in this field and have developed
different standards to describe information. Again there are different issues, like information
description, information discovery and information gathering, associated with this field. Surely
this technology has a great potential to be useful for pervasive computing, as one of the
requirements of pervasive computing is to make information globally accessible, yet maintaining
privacy of the information. So we are also looking into different ways of incorporating this
technology in our pervasive computing framework. Using semantic web will certainly strengthen
our framework and will make it more flexible and useful. We will also try to figure out what
other technologies we can use to strengthen our framework.
Very few groups are currently exploring this area. Although they are working with their own
ideas, eventually all are working towards developing their dream world of pervasive computing.
Even we are looking forward to contributing our efforts for the same cause, just a small brick in
the foundation of tomorrow’s pervasive computing world!
3
The Buddies – Project Proposal
During the process of exploring the end-less pervasive computing world, we plan to achieve some
generic and some specific milestones. These will help us identify and measure our work done so
far. The generic approach will make it easy for other researchers to build upon our concept.
Lets now move ahead and have a look at our goals.
2. Project Goal and Objectives
Overall Goal
The ‘Buddy – Everywhere’ project essentially gives the look and feel of the pervasive computing
environment. We are planning to define a general script and framework which can act as the base
for deploying any type of pervasive service. As an example, we will give a small demo of how a
buddy system works.
We plan to achieve following goals.
 Creating or defining a general scripting language in which the pervasive-aware users can
write their specific scripts.
 We will allow use of simple English words instead of machine-understandable
commands.
 This will give a better user friendly interface.
 All the machines and devices in the system will be identified by the URI.
 Using web services to information associated with particular URI
 This will help us in making intelligent choice between the devices depending on the task
to be performed.

Then we need to define an intelligent framework which understands this script and translates
these simple English words into machine-executable commands.
 The URI will map to the device ontology to gain more knowledge about that particular
device. The ontology plays a very important part as it is the base on which the entire
framework will take its decision from time to time.
 Thus, the framework will choose the best or preferred device based on various
preferences like configuration, user intent, nature of task, time to complete the desired
task, other available compatible devices, web-service specifications etc and will
implement work-flow.

All the internal modules and operations will be seen as wrapped under a web service to rest of
the world. This will include database services, ontology derivation, interface for creating and
handling various events during entire life cycle of Buddy-system. Generating and
implementing intelligent atomic functions.
 As an example of above pervasive computing, we will implement Buddy System.
Specific Objective
Although we are going to develop a generic framework and script, we do plan to show an
example of such pervasive environment by implementing the basics of the Buddy system. It may
include registration, preferences (Configuration options) and receiving and sending out
messages/notification. This includes implementation of numerous sub-tasks.
4
The Buddies – Project Proposal
 The service will use ‘Buddy’ script that can be downloaded onto local or central machine of
any organization.
 First time, the user can go in and register with the system and eventually define his/her
specific options/ preferences, which will be stored as configuration options.
 The user can add other users by either their email address, cell phone number or login name
or all
 Whenever his buddy arrives online into the system, the user will be notified on the device that
he is currently online. (This can be PDA, Cell-phone, computer or e-mail)
 Example:
 Lets say that a very large organization (maybe UMKC, Microsoft etc) having many
distinct offices over a small area (This may or may not be the case) has deployed this
system.
 Whenever a professor or employee walks in, he / she will swap his ID card and will be
entered into the central database of that organization.
 This will trigger the Buddy system and all the people related to this person will get
notified on their respective computers, PDA, cell phone about his/ her arrival.
 Such other people could be his boss, other fellow teachers, students who have taken his
course etc
 Thus, the system will keep track and give timely notifications.
Significance







System will be highly modularized and hence new components can be added or existing
components can be changed easily.
Since we are focusing on developing a general framework and scripting interface, it can be
looked at as a ready to use component which can be deployed in type of service.
The organizations can define its own service for its own purpose and use these off-the-shelf
components to cater to their needs.
Also, these systems will have in-built intelligence residing in the framework, which makes a
smart choice out of given options.
These systems over the time can adapt to changing environments and behave accordingly.
Thus, such framework is flexible.
The Buddy – System in particular can be useful to acknowledge the presence and absence of
selected people who may not be directly contactable. Thus, you can always be in touch even
if you are out of town or out of state.
The Buddy-system will roam around with the user. It will be a ‘pervasive’
module/component which will travel with the user everywhere and all the time.
5
The Buddies – Project Proposal
3. Project Background
Work done by others
Pervasive Computing is evolving from the already existing technologies like distributed
computing and mobile computing. The vision of Pervasive computing is to create an environment
such that all the devices in it should be able to compute and easily communicate with each other
in the environment [4]. Due to inadequate resources (like hardware) and technologies
development of pervasive computing environment were a big hindrance, but today there is
availability of many sophisticated devices and technologies which makes the development of
pervasive computing environment possible. There are lots of researches issues involved in this
field. The four main research issues in pervasive computing involve; Effective use of smart spaces:
Pervasive computing infrastructure is to be embedded in a small area like building or an office,
which will create a pervasive computing environment. Invisibility: User should not be aware of
existence of such kind of environment. Localized Scalability: The environment should be able to
grow locally rather then globally. Masking uneven Conditioning: the amount of variation visible
to user is to be reduced in the pervasive computing environment. Pervasive computing is just on
the early stages of development, there is lot more to do and it is very difficult to predict the future
of such kind of system at this time.
The next step in Pervasive computing is to create an infrastructure such that it should minimize
the attention of humans with such an environment [5]. The project Aura is currently being
developed in order to achieve this goal. It works around the concepts of proactivity and selftuning. Proactivity is ability of a lower layer to interact and process requests with upper layer and
Self-tuning is about adjusting performances and resource usage of layers depending on the
demand made on them. Thus idea is to create system layer behavior more dynamic and lower
demand for human attention. The Aura project is being deployed in CMU campus and several
applications are being developed that can be used across the campus. Different services were
developed during this project like cyber-foraging, wireless bandwidth advisor and the WaveLANbased people locator. The main features of Aura were it supported user mobility and shielding
user from resource availability. Aura attempts to adapt the environment to the changing
requirements of the user. Another aspect of Project Aura was to develop applications that use this
infrastructure. Two applications were designed based on this portable Help-desk and Idealink.
Portable Help-desk is built on two fundamental services (a) Spatial awareness: for user relative
and absolute position and orientation (b) Temporal awareness: for scheduled time of public and
private events. Idealink is an application, which facilitates planned and ad-hoc collaboration
among mobile users.
One of the successful implementation of pervasive computing system is Oxygen [1], developed
by MIT. This project enables pervasive, human-centric computing through a combination of
specific user and system technologies. Oxygen’s device, network, and software technologies
dramatically extend our range by delivering user technologies to us at home, at work or on the go.
Collection of embedded devices, called E21s, create intelligent spaces inside offices, buildings,
homes, and vehicles. Handheld devices, called H21s, provide mobile access points for users both
within and without these spaces. Networks, called N21s, connect dynamically changing
configurations of self-identifying mobile and stationary devices to form collaborative regions.
The Oxygen software environment is built to support change to provide adaptable system.
Speech and vision provide the main modes of interaction in Oxygen. Oxygen’s user technologies
like automation, collaboration and knowledge access harness its massive computational,
communication and system resources.
6
The Buddies – Project Proposal
Research group at UMBC is working on concept to express ontology in Web Ontology Language
for supporting agent based context-aware systems in a pervasive computing environment [2].
The design is aimed to create a set of ontological vocabularies with basic semantics that are
pragmatic for building these systems in the near future. The group working on this is developing
a new pervasive context-aware computing infrastructure called Context Broker Architecture
(CoBrA), to support ubiquitous agents, services and devices to behave intelligently in according
to their situational contexts. Their work is closely related to other research such as Intelligent
Room, Context Toolkit and Cooltown, One.World and Centaurus. But it is also trying to develop
explicit ontology representations of contexts, supporting context reasoning and maintenance
through logic inferences and providing user privacy protection using policies. They plan to
prototype an intelligent context broker and integrate it with the Centaurus system. Their aim is to
create and deploy a pervasive context-aware meeting room in UMBC main campus.
A context oriented-programming (COP) approach is proposed for pervasive computation [3]. The
resulting programming method relives programmers from explicitly specifying and managing
context awareness and the associated adaptation mechanisms. COP uses a special construct called
open terms to express pervasive applications. Formalizing and defining new types of interactions
(e.g. Linda, Ambient) has received a strong boost from the research community. Today’s research
does not address the problem of how to program pervasive systems and how the ever-changing apriori unknown heterogeneous contexts can be taken into account in order to program adopted
interactions. They lack the support for concise description, manipulation and formal models for
reasoning about contexts. This programming paradigm addresses such problems. Their future
work will explore ways to define formal semantics of COP, an extension of ambient calculus.
They plan to define transition and reduction rules, a polymorphic type system and type inference
algorithm which support their notion of context.
Even though there are lots of sophisticated devices available to be used in pervasive computing
environment, but lack of suitable application infrastructure is the main hindrance in its
development [6]. There is a research going in Carnegie-Mellon University to build the
middleware for such kind of applications. Some scenarios such as devices with completely autocentric user interfaces, applications which determine the user physical locations and multi-user
collaboration systems were thought of developing. The students of Carnegie-Mellon University
are in second phase of developing this application. They are maintaining certain principles while
developing this application: Keeping the infrastructure flexible so that some kind of innovation
can be added later. Designing the application by keeping security issues in mind and it should not
be added later. System should be robust and there should be appropriate support against failures.
Relation of our project to current research
Right now there are few pervasive computing systems and architectures developed by different
research groups in different universities. The systems that they have developed are ad-hoc in
nature. These systems work on specific technologies and uses intelligent devices. Such devices
are not developed at large scale. These are advance devices would become integral part of
tomorrow’s pervasive computing world.
In our project we try to work with normal devices or devices with very limited intelligence.
Intelligence of our system is in pervasive computing framework and not in devices used to form a
pervasive computing environment. Such framework will surely help to develop intelligent
autonomous systems with current devices. This framework will help many device workflows to
execute different tasks. We are working towards developing a scripting language, which would be
7
The Buddies – Project Proposal
easy to write and understand, to describe such workflow. This framework could be implemented
in smart offices, smart home or any smart environment, which will make them really smart.
4. General plan of work
Proposed Solution
The proposed solution will consist of:
 A high level language to write Pervasive Service Specification Script. The language
syntax shall be able to represent any number of devices and their operations. The
language glossary shall consist of keywords to which uniquely identify most of the
device operation without duplication. For example to draw image on a screen and to print
it on a printer, both can be expressed with same keyword “write”. The system will have
intelligence to interpret these keywords and to infer what is meant by “write” on a printer
means “print” and “write” on a screen means “draw”. The language will also provide
constructs to define flow of events and alternate flow paths.
 A software component that can manage all the activities of an AS. This entity will be
responsible for obtaining new service information, do a quick matching between
available resources and resources required to create a service, if resources are available
then create a service at runtime and manage the service through the life of AS.
 A directory to store information about all the devices in the AS and services running on
top of these devices.
 A persistent storage mechanism to store the information to store essential system
configuration and runtime information. This information will help AS to recover from
failures.
 Communication infrastructure/components to interface the AS with external services /
other AS.
The actual system will consist of software components, which implement above functionalities.
However there may not be one-to-one mapping between functionality and a software component.
In other words a single functionality may be split into multiple components or multiple
functionalities many be implemented as a single component.
Proposed System
The proposed solution can be visualized as a collection of loosely coupled software components.
The main components of the system are:
 AS Manager: This component is the heart of the system. It manages an Autonomous
System (AS), its devices and the services running on top of the devices.
 Inference / Interpretation engine: It parses / interprets the Pervasive Service Specification
Script and converts it into instructions / facts which can be understood by the AS
Manager Module.
 Service Manager: This module is responsible for managing services run/offered by the
AS. This module will not only monitor existing services it can also Plug-And-Play new
services at runtime.
 Database Manager: This module provides persistent store (mostly RDBMS) used by the
AS Manager to store information about the devices, services and users.
 External Interface Module: This module manages connectivity between AS and any
external system like MS Passport authentication Service. There can be many instances of
this module corresponding to number of external interfaces.
8
The Buddies – Project Proposal
Note: The list of modules is not comprehensive. We may introduce new modules, split / combine
existing modules as we advance in the design process.
Domain analysis
Business/domain model:
Business Scenario: A software development firm has a team of people who are required to
interact with their other team members but all of them are geographically spread out and they
could be online (similar to being online in Messenger service) in the Buddy system through any
device like PDA, cell-phone, laptop etc.
Application
requirements:
To allow such professionals to do their jobs more efficiently, we need to build a Buddy System
with following requirements:
 The framework, on which this system will be built, has to be as generic as possible so
that it could be used by a variety of people just by downloading the desired script from
web.
 A scripting language, which can be used for writing the simple instructions in the
workflow.
 It should be able to interpret any small/large workflow chalked out in the script.
 A component in the AS (Autonomous System) which will have enough intelligence as to
interpret the term “Output” in the script as “Print”, ”scan”, ”SMS” etc if the device
through which the person is online is printer, scanner, mobile phone respectively.
 Use Web services to achieve some functionality.
Functional requirements:
 Unique Identification: To access the application, every user must be issued a user ID
(URI), which will serve as an identification key to the system.
 User record management: The application must keep a record of the user information,
like address, age group, general interests, and so on. There will be a separate agent to add,
delete, and modify user information.
 Device list: It must keep a record of all available devices and their availability, along
with their up-to-date shipping prices. The availability information should help to predict
the shipping time and alert the agent about new products.
Nonfunctional requirements:
 Reliability and security: It should allow for a sufficient degree of reliability and security
during online notifications, providing a mechanism to ensure secure, one-time delivery of
the data over the network. There might be some users who do not want their presence to
be notified to their buddies during a particular time of day.
 Seamless integration with the existing system: Any new application should seamlessly
integrate with the existing project framework. You should be able to write new script for
your application, plug it in, update the data in the databases and use the newly developed
application effectively, with minimal changes in other components of framework.
Stakeholders:
Thus the stakeholders in this project could be:
 Any organization, which requires a group of people to interact with another set of people
who are geographically apart. They cannot communicate through a common tool like
video conferencing because they could be using different devices like PDA, cell-phone
9
The Buddies – Project Proposal

etc. It is now necessary to intimate a person about the other person’s presence for
communication to take place. The Buddy system will notify a person about all his
buddies who will be online as soon as he enters the system.
Buddy system could even be used by superstores like Walmart. It would not be right to
assume that all people will definitely walk in with cell-phones. Some might be using
devices like PDA. So the appropriate method of notification will be used by our Buddy
System.
Time table for project completion
Month: October
 Week 1:
o Preparing initial design of framework, defining modules, identifying classes,
defining function interfaces.
o Initial study of Java programming language and studying specific areas like
database, web services and xml programming in Java.
o Revisiting framework design to check for modifications.
 Week 2:
o Starting with developing small codes, which can be used to develop actual
project code.
o Preparing concrete design of the framework.
o Submitting System Design Document on 10/20
 Week 3:
o Starting with the actual development of modules.
 Week 4:
o Modules development continues
o Revisiting design to check whether we are working in right direction.
 Week 5:
o Completing basic requirements of each module.
Month: November
 Week 1:
o Integrating basic modules and starting with initial testing
 Week 2:
o Submitting System Prototype – I on 11/10
o Continuing with module development.
 Week 3:
o Complete module development.
o Integrating modules. Start with testing and debugging phase.
 Week 4:
o Coding for enhancements and testing.
Month: December
 Week 1:
o Submitting System Prototype – II on 12/1
o Documentation
 Week 2:
o Submitting final package on 12/12
10
The Buddies – Project Proposal
5. Reference
[1] Oxygen, MIT (http://oxygen.lcs.mit.edu/)
[2] The Role of the Semantic Web in Pervasive Context-Aware Systems Harry Chen, Tim
Finin, and Anupam Joshi Department of Computer Science & Electrical Engineering
University of Maryland Baltimore County, Baltimore MD 21250, USA {hchen4, finin,
joshi}@cs.umbc.edu
[3] Context-Oriented Programming for Pervasive Systems Andry Rakotonirainy School of
Information Technology and Electrical Engineering University of Queensland –Australia
andry@itee.uq.edu.au
[4] Pervasive Computing: Vision and Challenges M. SatyanarayananSchool of Computer
Science Carnegie Mellon University
[5] Project Aura: Toward Distraction-Free Pervasive Computing David Garlan, Daniel P.
Siewiorek,Asim Smailagic, and Peter Steenkiste Carnegie Mellon University
[6] Architectural Issues for Pervasive Computing Sam Weber James S. Jennings
[7] A System Architecture for Pervasive Computing Robert Grimn, Tom Anderson, Brian
Bershad, and David Wetheral, University of Washington.
[8] Programming for Pervasive Computing Environments Robert Grimn, Janet Davis, Eric
Lemar, Adam MacBeth, Steven Swanson, Steven Gribble, Tom Anderson, Brian Bershad,
Gaetano Borriello, David Wathera, University of Washington, Technical Report UW-CSE-01-0601
11
Download