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