The Design and Implementation of a Multi-User Interactive Public Display by Sonia Garg Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the Degree of Master of Engineering in Electrical Engineering and Computer Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY 1ay 2003 ©Sonia Garg, MMIII. All rights reserved. The author hereby grants MIT permission to reproduce and distribute publicly paper and electronic copies of this thesis and to grant others the right to do so. Author .......................................................... Department of Electrical Engineering and Computer Science May 21, 2003 C ertified by ... ......................................................... .................................................... Larry Rudolph Tjesis Supervisor A ccepted by ................. . . ...... ........ . ............. ........................................ Arthur C. Smith Chairman, Department Committee on Graduate Theses MASSACHUSETTS INSTITUTE OF TECHNOLOGY JUL3 02003 1 LIBRARIES The Design and Implementation of a Multi-User Interactive Public Display by Sonia Garg Submitted to the Department of Electrical Engineering and Computer Science May 21, 2003 in partial fulfillment of the requirements for the Degree of Master of Engineering in Electrical Engineering and Computer Science Abstract This thesis explores a new approach to exchanging information using an interactive public display. The system was designed to support multiple users in dynamic environments, where people connect and disconnect to the displays at will. The key goals were to ensure a seamless end user experience and provide the anonymous exchange of information. Also, users have the option of customizing and personalizing their interaction with the public displays. A prototype of the exchange system was built to demonstrate a connection scheme for Bluetooth enabled devices. The interactive display system can be applied and extended by various pervasive computing endeavors. Thesis Supervisor: Larry Rudolph Title: Principle Research Scientist 2 Acknowledgments I would like to thank: Larry Rudolph for his inspiration and guidance throughout this project. He has been a motivational advisor and I am grateful to have had the opportunity of working with him. John Ankcorn and Jorge Ortiz for their help in designing and developing the Content Exchange system. Jonathan Brunsman, Glenn Eguchi, Hana Kim, Kan Liu, Arjun Narayanswamy for being fun and energetic officemates. Members of the MEng '02 group for helping to initiate my involvement with the Oxygen Research Group. My parents, Gobind and Kamlesh Garg as well as my brother and sister, Rohit and Nitasha Garg for their endless support and encouragement which have carried me this far. 3 Contents 1 Introduction ..................................................................................................... 6 2 Motivation and Background ............................................................................ 9 2.1 Group Background ...................................................................................... 9 2.2 Context-Aware Pervasive Computing Efforts......................................... 10 2.3 Efforts with Public Displays...................................................................... 11 3 The Content Exchange ......................................... 13 3.1 User Scenarios........................................................................................... 13 3.2 Design Goals ............................................................................................. 14 3.3 System Architecture ..................................................................................... 16 3.4 Functional Design .................................................................................... 20 4 Functional Im plem entation ............................................................................ 26 4.1 Bluetooth Stack & Interfaces ................................................................... 27 4.2 CEA Discovery...........................................................................................28 4.3 Establishing a Channel with a CEA via Bluetooth .................................. 4.4 Security......................................................................................................34 4.5 Partial State of the System ..................................................................... 36 5 Analysis & Extensions ........................................................................................ 39 5.1 Tradeoffs with Bluetooth.......................................................................... 39 5.2 User-Experience ...................................................................................... 41 5.3 Pros and Cons of Custom izations............................................................. 43 4 30 5.4 Extensions to the CEA N etw ork .................................................................. 45 5.5 Location Aw are Technology ..................................................................... 47 5.6 Multi-M odal Input................................................................................... 48 6 Conclusion ............................................................................................................ 5 50 Chapter 1 Introduction The focus of this thesis was to change the process of sharing and exchanging data by creating a system in which users could interact with information shown on public displays. A system called the Content Exchange was designed to demonstrate a multi-user system that can perform assorted functionality based on a dynamic set of attributes provided by the users. A prototype was implemented to define a connection and resource negotiation protocol for Bluetooth enabled devices. In the past 30 years, technological revolutions have redefined the way people think and operate. With the birth of the Internet, information has been made widely available. Databases, servers, and personal computers are filled with an abundance of information. Knowledge portals and data repositories are one way to organize and store such large amounts of information. In order to make the information repositories useful, effective mechanisms for saving and retrieving data need to be established. The key challenges in managing data and information effectively are one, to identify the proper way to display the information and two, to devise the correct scheme to transfer the information. First, displaying information effectively depends on the content of the information and the display devices available. Many research institutes and industry 6 corporations have moved towards using public displays to advertise products and services, show press releases, and publicize events. These displays are primarily used for the purposes of viewing static information. Second, methods of exchanging information have drastically changed with the emergence of the Internet. Network improvements and increased bandwidth have led to the adoption of peer-to-peer file transfer systems and chat programs. Exchanging information is an important element of creative interactive and collaborative environments. A system needs to be established that will allow multiple users to have similar interaction but where the information is on a public or private display. This thesis presents a system designed to change the paradigm for transferring data into and out of an information repository. The idea is to combine a public display with peer-to-peer file transfer. The result is a large-scale display that people can use to download and upload content. The system is designed to account for dynamic environments where users a free to move around. Additionally the system has multi-user support so that viewers can interact with the system simultaneously. Finally, the system allows users to personalize their experience and customize its behavior to fits their individual needs. A system called the Content Exchange was designed to achieve a new degree of personalization and interaction when exchanging information on a public display. In order to provide a significant level of customization, avenues within the system 7 were constructed to use real-time input from users and their environment. A prototype of the Content Exchange was implemented to illustrate how devices connect and disconnect to the system using Bluetooth. Implementing a prototype for Bluetooth communication exposed limitations of the communication protocol causing the prototype to deviate from original design decisions. In theory it makes sense for mobile clients to be considered Bluetooth masters because this gives users more control over their devices. Further, users may have their mobile devices already configured as Bluetooth masters, such as cell phones that would have Bluetooth slave accessories such as hands-free headsets. Also, in order to make use of many of the Bluetooth features, communicating directly over the Bluetooth stack was required. Since Bluetooth stacks are proprietary it was uncertain that communication between different stacks could be achieved. Therefore a TCP interface to Bluetooth was used to manage and control communication. Although this added complexity to the communication procedures, as discussed in this thesis, it helped make communication between Bluetooth devices possible. This thesis discusses the design and implementation of a multi-user interactive public display. Section 2 outlines the motivation behind the project and describes various related projects. Section 3 discusses the design of the Content Exchange, goals, system architecture and functionality. Section 4 provides an overview of the implementation of the pilot system. Finally, an analysis of the pros and cons of the system and possible future extension is discussed in Section 5. 8 Chapter 2 Motivation and Background There have been many paradigm shifts when devising architectures that store and circulate information. Given the new requirements about mobility and dynamic systems, present day information transfer models can no longer address important user scenarios. Current advertisements and other large-scale information displays are static and stand-alone. There is minimal interaction between the general public and the devices that are displaying information. Other systems such as public kiosks that do have user interaction are limited in functionality and do not provide multi-user support. Various systems and mechanisms have tried to address context-aware and information exchange issues in order to provide users with personalized and more relevant services. The research group that supported this thesis has developed a suite of systems that help incorporate technology into people's daily routines. Other proposed solutions include public kiosks and information exchange protocols. The aim of this section is to provide an overview of the Oxygen Research Group and other work related to public displays and content exchange. 2.1 Group Background The Oxygen Research Group is focused on developing a pervasive computing environment that is responsive to people completing routine tasks and going about their everyday lives. Project 9 Oxygen is a wide-ranged pervasive computing project that combines the use of different technologies. The key theme of Project Oxygen is to "help people do more by doing less." [1] The project strives to make technology fit into the everyday lives of people as opposed to making people adapt around the needs of technology. The vision of the project is to create a single portable device that will perform all the desired communication tasks [2]. The human-centered approach addresses various issues, which include providing location-aware support and enabling the customization of anonymous devices so that people can have constant access to information [3]. 2.2 Context-Aware Pervasive Computing Efforts Efforts to develop a pervasive environment are widespread. Many different approaches are being investigated to achieve a human-centric environment that is responsive and customizable. The basic idea across the board is making computers fit the needs of humans. Georgia Institute of Technology runs a program called the Aware Home which aims at creating a system which can understand the needs and desires of the its residents. Considerable effort is also placed into understanding the emotions of its residents. Using sensors including video cameras, wearable monitors, and location sensors, the system analyzes it's residents gestures, facial expressions, and movement. Based on this information, the aware home attempts to better predict the desires of its residents. [4, 5] The University of California Berkeley has developed a software agent called the Communication Information Agent (CIA). They have used a service infrastructure approach to context-aware computing where middle-ware technologies can be accessed through a network. The CIA uses 10 context and human-to-human interaction to gather and deliver relevant and useful information. The information retrieval methods are based on the relationship of the information with the user that relies on location and speech technologies. [6, 7] 2.3 Efforts with Public Displays Various other approaches to the dynamic public displays have been designed and implemented. Some solutions, although create an interactive display, are only valid for scenarios where the users are part of a small, related group. These solutions would not be applicable in a public setting where users are constantly connecting and disconnecting. The GVU Center at Georgia Institute of Technology has designed Semi-Public Displays, which are shared displays targeted for small groups [8]. These SemiPublic Displays are used in environments were there is a group of people working closely together. The purposes of the displays are twofold, one to help people collaborate and brainstorm on ideas and two, to inform people of the group's activities and interests. Although Semi-Public Displays promote collaborative environments and advertise events, the content on the displays is only partially dynamic. The information shown on the display is parsed from a weekly status report. Also, Semi-Public Displays are geared towards small, private groups and cannot be extended to public use. At the University of Calgary, researchers have developed an interaction system called the Notification Collage (NC) [9]. The NC is designed to serve as a public 11 bulletin board for small, co-located groups. The NC has a separate interface for the general public display and personalized views for each user. The content on the NC is dynamic so that it can show updated video captures, sticky notes that show the message being typed, and various other multi-media elements. The NC is successful in creating an interactive environment, but similar to Semi-Public Displays it targets a small private group. Extending the NC to a public domain would be nontrivial. Tbe Software Infrastructures Group at Stanford has developed an IRoom where "people can work together in a technology rich space" [10]. The IRoom is an interactive workspace that allows users to collaborative on school work using their mobile devices. The IRoom software infrastructure lets users enter and leave the workspace without affecting their experience. IRoom similar to other solutions focuses on building a collaborative environment and does not tackle the issue of a 2way exchange of information. Other display solutions are similar to Appliance Studio's Web Signs [11]. The Web Signs project is a flat panel display appliance that can run external applications. Web Signs provide interactive support, host dynamic content, and communicate with each other. Although Web Signs achieve a great deal of user interaction, it is mostly one-on-one interaction. Web Signs have a touch screen for users to "dig deeper" and get more information. However, Web Signs do not provide a framework for multiple users or for users to interact with the display using mobile devices. 12 Chapter 3 The Content Exchange The Content Exchange is a system that is designed to serve as a mechanism for users to interact with information on public displays, called Content Exchange Appliances (CEA). These appliances are designed to be an information portal that people can interact and exchange information with. This section serves to outline the design goals, architecture and functionality of the system. 3.1 User Scenarios The basic scenario for the Content Exchange system is to display general information to the public. For example, viewers of the information can interact with the display appliance while waiting for an appointment or a meeting. The displayed content could include general health tips if deployed in a doctor's office or product advertisements in the first floor lobby of a software company's building. A second situation for the CEA is in a meeting room where information is shared between multiple parties. The system could be used to assist in teleconferencing because not only would an image be transferred but content could be exchanged as well. This video relaying could also be applied in a family setting where different members of the family can communicate from the home, office or while they are walking around. 13 Another scenario for the display appliance is to support a collaborative environment where users can take full advantage of the display by uploading and downloading content. Co-workers or group mates can use the display to work together on a project by uploading and displaying content. 3.2 Design Goals The CEA can be considered a next generation public kiosk that serves multiple users at one time. The key aspect for the project was to keep the CEA human-centric because that would help instill faith in the end-user. In order for the CEA to be a success users have to feel comfortable enough to interact with and trust the intentions of the system. Various goals were kept in mind when designing the CEA. Seamless End-User Experience To maximize the impact and usability of a CEA, an important aim is to provide a seamless end-user experience. The idea is that from arrival to departure, a user can just interact with the display without experiencing delays, configuring settings or establishing connection interfaces. Device discovery and communication is initiated when a user is within local proximity of the public display. Similarly, a session ends when the user walks away from the public display. In addition, users do not have to be concerned with the actions of other users. Users should not have to wait for another user to finish their session or interaction. The system ensures that the navigation and actions of each user are independent. 14 Customized Interaction and Exchange Users have the option to configure their settings to achieve a customized and more personalized experience with a display. Each user can define the type of information they download and upload. Since users of the CEA have personal mobile devices, they can define how they want to save the information they receive from the display. An important goal of the system is to build flexibility into the application that would allow users to personalize their experiences. Providing users the ability to control their personal settings regarding information retrieval and privacy makes the CEA applicable in more situations and more a larger variety of people. Privacy and Security Ensuring the privacy of users is important since the system is open to the public. The public displays are used as information portals and require the user to establish a connection via one of the various communication standards that exist. A connection using Bluetooth or Wireless LAN may indirectly expose specific information about a user to the display application. The goal of the Content Exchange is to make it possible for users to anonymously interact with displays. Despite knowing the location of the different displays, a user's location can remain unknown because the Bluetooth information associated with a device can be changed with each session. Therefore, users can interact with public displays with the assurance that their sessions or actions are not tracked or recorded. The goal is to provide avenues for users to specify their preferred security level in order to achieve the desired level of privacy. Although security was not the focus of 15 this project, putting structures in place that would support various secure protocols was important. The goal was to achieve a minimal level of security that did not require a lot of computation by the mobile devices. For this reason, the use of the Secure Socket Layer protocol was minimized by creating a negotiation scheme (see Section 4.4). Since the information in the CEA repository is not necessarily sensitive, the default aim for security was minimal, but can be extended and improved upon. 3.3 System Architecture The overall architecture of the Content Exchange involves a public display running content exchange services, called a Content Exchange Appliance (CEA) and handheld devices (see Figure 1). The CEA can communicate and transfer data via different protocols, including Bluetooth, Internet Protocol, and IR. Content Echange INTERNET-A 802.11b 0I E 0 Content Exchange Appliance ith IPAQ Bluetooth Phone B ce Discovery IR / Bluetooth IPAQ Figure 1: CEA connects to mobile devices over Bluetooth, IR, IP, etc. Each handheld device is running an application that recognizes and understands the messages sent by a CEA. In a typical scenario, a user will approach a CEA and establish a connection. Once the CEA has secured a connection the user can proceed 16 to view, download and upload information to and from the CEA accordingly. Several components make up the multi-user content exchange system. Content Exchange Appliance CEA's are public displays hosting information, which can be viewed, transferred, and edited externally by users. A CEA is considered a "super-computer" because its computational ability, power supply, and memory dramatically outweigh the properties handheld devices. They support the communication mediums of Bluetooth, 802.11b, Ethernet, and IR. CEA's accept connections from devices that would like to interact with the information on display. CEA's can be controlled by typical network administrators to ensure that the information displayed and transferred is accurate and secure. A CEA is similar to the server side of an application, where people can use mobile devices to issue requests and make transactions. Mobile Device A mobile device serves as the gateway between the user and the CEA. Users can interact with a CEA with any type of mobile device that supports one of the listed communication protocols (see Content Exchange Appliance). The mobile device runs a client application that lets the device recognize a CEA. This application is responsible for initiating a connection to the CEA and managing the information exchange. The mobile device provides the user with a personal viewing platform 17 regarding the contents of the display as well as an input panel when uploading and downloading information. Personal Area Network A personal area network is an ad-hoc network that exists for each CEA and the devices to which the CEA is connected. This project focuses on creating a communication scheme using Bluetooth. A Bluetooth network is called a piconet, where one device, called a Bluetooth master, is connected to a maximum of 7 other devices, called Bluetooth slaves. The master of a piconet is responsible for maintaining the frequency hopping for the connected devices. Bluetooth devices operate within the 2.45MHz frequency range. Bluetooth devices can communicate without interfering with each other by performing what is called "spread spectrum frequency hopping." Bluetooth devices communicate by hopping 1600 times per second between 79 different frequencies each 1 MHz apart. Bluetooth piconets do not interfere with neighboring Bluetooth networks because the masters of each piconet ensure that the connected devices hop to different frequencies in unison. [12] In the original design, the mobile devices were considered the Bluetooth masters of the system. This was because as users would most likely have their devices preconfigured as masters, regardless of their interaction with a CEA. In order to achieve this design and time scheduling routine must be put in place to balance the requests of the mobile clients, since the CEA would be the slave. To avoid that complexity, in the prototype of the CEA, the CEA was made the master which runs a module devoted to listening for incoming connections from other Bluetooth devices. 18 The piconet isolates the communication associated for each display and allows users to interact with display anonymously. Once a user disconnects or leaves the vicinity of a piconet they no longer have to be associated with the temporary IP they had when connected. Connection Channel A connection channel is a communication link established between a CEA and a mobile device. A connection channel is created when a user walks in the vicinity of a public display and chooses to start interacting with the information. The channel is an understood agreement between the CEA and the device regarding the properties and settings of the user for a given device, user, session, or request. Attributes An attribute is a name value pair associated with a user, handheld or public display. They are a means of personalizing and customizing one's interaction with a CEA. Depending on the type of attribute, they are exchanged between the display and handheld at the time of connection or when transferring data. There are two types of attributes, session-based and action-based. Session-based attributes are properties of a user's handheld and are therefore device specific. They are transferred to the CEA when a connection channel is established. Session-based attributes also describe privacy and security settings of a user (see Section 3.2). 19 An action-based attribute is a name-value pair transferred over a connection channel when a user motions to exchange information with the CEA. Action-based attributes describe the type of information that is to be downloaded or uploaded. These attributes act as parameters to the different function calls on a CEA. 3.4 Functional Design Interaction with the multi-user content exchange system is a result of various methods and functions built into the system. The functionality of the CEA depends on its purpose, the environment in which it is deployed, the users that interact with it, and the computational power available. The CEA is designed to be versatile enough to mold to various user scenarios and requirements, defined either by the administrator or the users. This section defines how the system is designed to operate and adjust to various users. Configuring Settings & Attributes An important goal the CEA is to provide a framework where users can customize their mobile client application in order to personalize their experience. Users can configure a variety of settings or use the pre-configured default values. Minimal setup is required if users choose the default implementation, where as customizing the settings requires a nominal amount of configuration time. There are various common attributes that a user is more likely to configure to fit individual needs. For example a user can change the default connection behavior (see Section 4). When a user wants to create a connection channel with a CEA, the 20 user can choose to automatically connect to the closest CEA or see a list of possible devices before connecting. The default value, automatically connecting to a CEA, can be changed by users if they wish to have more control over their exchange sessions. Other attributes may be specific to the mobile device, such as the amount of free memory or the format and size of the device's screen. Similarly, a user can configure their privacy settings, depending on how private they want to keep their interaction with a CEA. When connecting using Bluetooth a user can change the Bluetooth device descriptor and address that is affiliated with the mobile device. If a user wishes to remain anonymous then they have to option of changing the settings of their Bluetooth configuration so that each time they use the CEA they are connecting under a different address. Navigation In the most common scenario, a CEA will have a top level page for the display application. This page remains visible on the screen for the public, even when users are interacting with the information. Users can "navigate" through the information because mouse movements from the users' mobile devices are captured and sent to the CEA (see Section 5). This positioning information is used to determine the actions intended by a user. Pages below the top level or home page of the CEA are viewed on a user's mobile device. Depending on the type of the device and the session-based attributes defined by the user, the CEA sends the appropriate viewing format. For example, if a user 21 is connected to a CEA via a cell phone, then the CEA will respond to a request by sending pages with a specific format, in this case, WAP. This processing can be done by the CEA, since its computational power outweighs that of a mobile device. Other possibilities for navigating and viewing information depend on the type of CEA deployed. Some CEA's may have space set aside on their display for users to view information. This space can be used when session-based attributes are set to a lower level of privacy. This would mean that a user does not mind having their actions or navigation paths followed, perhaps because the information they are viewing is public or accessible by others. The designated space would have to be shared by all the users connected to a CEA and may require the implementation of a scheduling system. This functionality is mentioned as a possibility but was not explored in detail for this project. Downloading Content In addition to viewing information on a CEA, a user can download information pertaining to the displayed information. Some possible examples of data downloaded are information about events, advertisements, news, etc. Depending on the use of a CEA, a variety of information can be made available. 22 HOME PAGE EET abstract calendar launch text sync email Phone PC 2 3 1 Figure 2: Multiple functions exist within a single a location on a CEA. The unique behavior of a CEA is that the function behind a button, link, or pixel of its display can have different results (see Figure 2). In past models, a position (x, y) of a display has a particular value associated with it, such a denoting a color. The current approach has a particular (x, y) coordinate associated with a value and a function, {(x, y), val, function}. This function is what makes displays and web pages dynamic. Touching a button or clicking a position on a page calls a function associated with that position. Similar to current representation, on a CEA a position (x, y) is associated with a value and a function. The difference is that functions on a CEA also take in parameters. These parameters a passed in by the user as attributes, defined in Section 4.2. This means that on a CEA a point can appear to have multiple functions, {(x, y), val, ({attr}, function)). Since attributes define the type of information downloaded, one person may synchronize their calendar with the CEA events calendar, while another person might download email information regarding a particular event. 23 Uploading Content In addition to downloading information and user can upload content depending on the settings of a CEA. When a user uploads content they can specify action-based attributes in order to create or add functionality to a particular pixel or position (x, y) associated with that content. The attribute associated with the information a person uploaded must be unique and not currently in use by the CEA. Users can also assign a value to a particular point on the CEA, but that requires additional access privileges on the side of the user. Content that is meant to be displayed and edited by particular people would need to have to proper attributes and permissions associated with it. Modes of Operation There are various modes in which a CEA can operate. Each mode pertains to specific functionality that depends on the configuration and purpose of the CEA. The basic level of activity is when the CEA is in the display mode. In this mode the CEA displays static information for the public. The information can be updated or changed by system administers, but appears static to the user during a session. When in the display mode, the user may have limited interaction with the information, since the primary purpose is to view what is being presented. In the receive mode, the CEA performs a partial set of the capabilities. The purpose of a CEA in this mode would be to distribute information to users. Users would only be able to download available information. Since users cannot upload information in 24 this mode, the content that they download is virtually static unless changed by the CEA administrator. The exchange mode is when the CEA is at full activity. In this mode, users can freely download and upload information. Downloading information is similar to the process when the CEA is in the receive mode. When uploading information, users can specify the format and type of information by sending the appropriate actionbased attributes with the request. The CEA interprets the attributes and store the information accordingly. Users also have the option of uploading collaborative information to leave for other users or the CE administrators. 25 Chapter 4 Functional Implementation The pilot system that was implemented is focused on building a connection framework for the CEA. On top of this framework, applications and extensions can be built (see Section 5). The backbone developed defined the protocol of establishing a connection between a CEA and a mobile client and extending that to building a personal area Bluetooth network. A connection establishment protocol is defined in detail because of its important role in public display systems such as the Content Exchange. Designing a way to create and manage connections between mobile clients and a CEA is difficult because of the system's unique requirements. The default communication medium used in the pilot is the Bluetooth protocol, along with various software modules and interfaces to help establish connectivity among the devices. Bluetooth was chosen because it has a built in a device discovery protocol and supports efficient close range communication. Devices that are Bluetooth enabled, such as Compaq Ipaq, Nokia Cell Phone, and the Acer Tablet PC, fall into the appropriate category of devices that are well suited for the purposes of a data exchange system. 26 4.1 Bluetooth Stack & Interfaces There are two main Bluetooth stacks available for Linux, which is the default operating system used for this research. The stacks, OpenBT, contributed by Axis, and Bluez, originally contributed by Qualcomm, are both open source and have strengths and weaknesses of their own. Bluez was the stack chosen for the prototype of the Content Exchange. Bluez, although new compared to OpenBT, has several benefits that are relevant to the requirements of a CEA. Bluez is included in the standard Linux kernel which allows for better integration. Second, the stacks have different interfaced for drivers and applications. OpenBT uses a serial abstraction, and BlueZ uses a network abstraction [website 1]. The network abstraction in Bluez is a key benefit because establishing connectivity between various devices is at the center of making the Content Exchange system work. Bluez achieves a solid network abstraction over Bluetooth by using various profile and interface tools. PAN is the Bluetooth profile that defines how to do networking on the Bluez stack. PAN achieves IP support over Bluetooth, by using an interface called BNEP. BNEP is an interface, similar to ETH, which encapsulates Ethernet frames in an L2CAP session. L2CAP, Logic Link Control and Adaptation Protocol, runs on the control data link layer, and is a control protocol used for Bluetooth and sometimes Ethernet [12]. Finally a driver, either hci_uart or hci_usb was needed, depending on how Bluetooth is connected. The BNEP interface for the mobile devices and the CEA are pre-configured with the following commands: 27 %> modprobe bnep %> ifconfig bnepO <PAN IP ADDR> The first command starts a new Ethernet emulation and the second command configures TCP/IP on the newly created bnep interface. The PAN IP ADDR is an internal IP address unique to the personal area network of a specific CEA. In the pilot system a default PAN IP of 10.0.0.1 was given to the CEA. Once the interfaces are configured, the devices and CEA can run their respective exchange applications. 4.2 CEA Discovery A user with a handheld device detects a CEA when it is in local proximity to the display, via Bluetooth. The user can manually connect to a CEA or rely on the device discovery mechanism in Bluetooth. In either case, the discovery is done by the user's device and not the CEA. By giving users the option to connect to a CEA they can be assured that their privacy is protected. Device discovery of Bluetooth works because the CEA is configured as a Bluetooth master. As a master, the display is responsible for maintaining the frequency hopping of its piconet. The PAN profile is used to run a server or daemon process on the CEA so that it is constantly listening for incoming Bluetooth connection requests. This process remains running despite the activity of the clients connected to the CEA because it must stay ready for incoming connection from other clients. A sequence of commands is issued after the BNEP interface is setup, to allow mobile devices to discover a CEA. On the CEA side the commands are: 28 %> pand -master %> pand -listen These commands start a process that remains running on the CEA as long as it is powered and functioning. It is important to have these processing running in order to accept new connection from mobile Bluetooth enabled devices. On the mobile client side, the users' handhelds are most often configured as Bluetooth slaves. As slaves the mobile devices can also use the PAN profile in order to connect to the CEA. The mobile client has a loop that is constantly scanning the environment in order to keep a look out for Bluetooth devices, using the command, %>hcitool scan Scanning ... 00:80:37:B5:A8:3A CEA1-LCS As shown, this command lists the descriptors and addresses of the Bluetooth devices that are in a local proximity to the mobile client. This means that the result of a Bluetooth scan will be a list of CEA's as well as the devices of the viewers using these displays. When other Bluetooth devices are detected, the client application prompts the user with a list of available Bluetooth enabled devices, listed the CEA marked entries first. If there is only one CEA in the area, then depending on the user's settings, the client application will connect to that display. The default setting on the client is to automatically connect to the display if there is only one option. Users can change their settings ahead of time. 29 If multiple CEA devices are found during the Bluetooth scanning loop, then the client can use local proximity as criteria to choose a CEA. The signal strength of the Bluetooth signal can be used to the degree of closeness, which would suggest that a user is closer to one CEA over another. Similar to other settings, the user can change the default setting from automatically connecting to the closest display, and instead choose to see a list of the options before connecting. Finally in the case where the user has a hard time distinguishing between CEA's and other mobile clients, the client will have to parse out the CEA devices from the scan results. Before presenting a list to the user, the client application can use the device descriptor field to determine whether the corresponding Bluetooth address is a CEA or another mobile client. If the user is presented with a list of possible CEA and Bluetooth devices, the user has the option of connecting to a CEA or not. The user must decide which Bluetooth device to connect to if there are multiple options. If the user decides not to connect to the display at that time, they have the option to continue scanning for Bluetooth devices or to quit the client application altogether. 4.3 Establishing a Channel with a CEA via Bluetooth Once a CEA has been discovered by the client application, it is up to the client application on the handheld to initiate a Bluetooth link before establishing a communication channel. There are a series of steps in the communication protocol that must be followed in order to ensure a successful connection to a CEA. The 30 connection protocol moves the client to and from various transition states, see Figure 3. set name to detect CEnA r Scansofor nBeeti' T S23S Si BT for Nait Wonct SET ecan TCP Socket ooenec ST t~tno c BT Send ACX to r disconnect Figure 3: This figure represents the transition states of the CE client application. When establishing a connection, the client starts in SO when scanning for devices. The client ends in S4 when it has received an ACK from the CEA, confirming that a connection channel has been established. While the client application is scanning for Bluetooth devices the client remains in the initial state, state 0. The first step in connecting to a CEA occurs after the client application detects the presence of a CEA. After the discovery takes place the client moves to state 1. In this state, if the user has decided to connect to a CEA, the client application chooses a random IP address from 10.0.0.2 to 10.0.0.255 to use for communicating in the CEA's personal area network. If the user decides not to connect to a CEA then the client returns to state 0. The random number is the IP used to configure bnep interface of the client as described in Section 4.1. Once interface is configured, the client changes the name of the device to the PAN IP address using the command, %> hciconfi -a hciO name 10.0.0.* The name of the device is changed in order to provide the CEA with the IP information necessary to establish a connection channel. Once the name has been 31 changed the client transitions to state 2, where the client issues a Bluetooth connection request by calling, %> pand -c <bdaddr> The command is part of the PAN profile and the argument, bdaddr, is the Bluetooth device address of the CEA. The client application gets the Bluetooth device address of the CEA from the scan request it loops through when searching for a CEA. After issuing the Bluetooth connection request, the client moves to state 3, where it waits for a response from the CEA. When a Bluetooth connection is received by the CEA, the device address and name of the handheld are made available, where the name is the PAN IP address of the mobile client requesting a connection. Before a communication channel can be established, the CEA must check the validity of the device that is requesting the new connection. The CEA needs to ensure that the IP address submitted by the client is not currently in use within its network of devices. Second, the CEA must also make sure that there isn't another active session affiliated with the Bluetooth device address of the new client If there is an IP address conflict that signals the CEA that the new client has chosen an IP address that is already in use. The CEA simply kills the Bluetooth connection using the command, %>pand -k <bdaddr of new client> 32 At this time the client is in state 3, waiting for a response from the CEA. If the client application has waited for longer then 10 seconds then it checks the Bluetooth connection it made with the CEA. Since the CEA just ended the connection, the client is transitions back to state 1 where it will generate a new IP address and then try to progress again. On the other hand, if the Bluetooth connection has not been killed, then client may experience delays because of an error with the CEA or the TCP socket request. In this case the client kills the Bluetooth connection and transitions to state 2, where it requests the connection again. The client does not need to go back to state 1 in this case because the delay was not necessarily due to an IP conflict. If the display application finds a Bluetooth device address conflict then the CEA does not know whether the new client has changed it's Bluetooth address or if it is an old client that has recently crashed and is trying to reconnect. The CEA then pings the IP on record for that particular Bluetooth address. If the ping is successful, then the CEA kills the Bluetooth connection request made by the new client. Disconnecting the mobile device sends the client application back to state 1. On the other hand, if there is no response to the ping request, the CEA assumes that the old client is no longer connected to the network and therefore the CEA can reassign the IP to the new client. The CEA now continues with the connection procedures as would occur if there was no conflict. If there are no conflicts with the IP addresses and the Bluetooth addresses then the CEA pings the client's IP. Issuing a ping to the mobile device creates a route to and 33 from the CEA. Without a ping from the display, the client would not be able to reach the CEA via its IP address. If the ping request is successful the server opens a TCP socket connection to the mobile device using the PAN IP address, in this case, 10.0.0.*. The CEA informs the client that the connection request has been accepted by sending a "CONNETACCEPTED" message. The CEA temporarily stores information about the client's Bluetooth and IP addresses (see Partial State of the System). Now the client device can communicate with the CEA. When the client receives the "CONNECTACCEPTED" message, it transitions to state 4. In this state, the client sends an ACK, or acknowledgement, back to the CEA. Once this is complete a connection channel has been established between the CEA and the client device. 4.4 Security In order to provide viewers a minimal level of security and protocol was designed to help guard against adversaries. After a connection channel is established between a client and a CEA, various factors can effect the status of the channel. For example the user could walk away from the display, the client application could fail, the mobile device could power down, or various other random events. In order to preserve the security of a connection channel, the user and the CEA negotiate a secret key and nonce (see Figure 4). The negotiation tells the CEA that the mobile device connected on the other end is in fact the expected device and not someone pretending to be that device. 34 Mobile CEA Step 1 Device (Shared Key) Cient -, Step 2 generate e- Step 3 (nonce), - notice Step 4 decrypt nonce ACK 4- Data (nonce -text)S K Figure 4: This figure illustrates the negotiation between the CEA and a mobile client that takes place to ensure a secure connection channel in the CE. The negotiation takes place after a connection channel has been established, which is when the client has reached state 4, as described in Section 4.3. When the connection channel is first established the Secure Socket Layer protocol is used to keep the connection secure. In step 1 of the negotiation is the CEA sends a 32-bit shared key to the client device over the created TCP socket. The shared key is encrypted with the client's SSL public key. Once the shared key is received, the client decrypts uses its private key to decrypt the message. From this point forward SSL, a computationally expensive protocol, is no longer necessary because the client and the mobile device can use the shared key to encrypt their messages. In step 2, the client generates a random 32-bit number as a nonce. In the next step, the client sends the nonce encrypted with the shared key to the display application. Here, encryption is simply the XOR of the shared key and the nonce. In step 4 the CEA receives and decrypts the nonce message using the previously sent shared key. The CEA now has the nonce that will the client append to the beginning of its messaging 35 as authentication. In the final step, the CEA sends and ACK message to the client which acknowledges the receipt of the nonce. Now that a secure channel has been established, all data sent by a client for a CEA will have the nonce at the beginning of the transmission. The nonce will signal to the CEA that the data it is about to receive is valid because it is coming from the correct client. 4.5 Partial State of the System The partial state of the Content Exchange system is necessary because information regarding the mobile clients and the public displays is temporarily stored by the client and display applications. Information is not permanently stored because of the dynamic environment in which a CEA is deployed. The client application keeps track of the history of displays that a user has visited. The table, PASTCONNTABLE, stores the name of the CEA, the Bluetooth device address of the CEA, and the BNEF IP addresses the client used to connect with the CEA, see Figure 5. The client also saves the nonce and shared key that was exchanged in case it can still be used. CEA Name CEA btaddr BNEPO IP Nonce (32-bit) Secret Key (32-bit) Figure 5: This figure shows the table, PASTCONNTABLE, which is stored on the client which allows for speedy re-connection. 36 The table is preserved until the user quits the client application or the mobile device dies. Storing the last used IP for a previously visited CEA will save the client time when it tries to reconnect to that display, further discussed in Section 5. On the CEA, the application stores information about the client, the connection, and the user's device. The nonce and IP information affiliated with a particular Bluetooth device address is saved in the CEA's CONNECTIONTABLE, see Figure 6. Each record is saved with a timestamp in order to keep the records up to date. The expiration of the timestamp is determined by the settings of the CEA which depends on the environment in which the CEA is deployed. The nonce is stored in a table and mapped to the PAN IP address of the client. The nonce is used to determine the authenticity of messages coming from a particular PAN IP. Timestamp Secret Key Nonce Client Client IP (32-bit) (32-bit) btaddr address Figure 6: This figure shows the format of the CONNECTIONTABLE stored on the CEA. This table helps determine the validity of incoming requests and the expiration of previously used nonces and secret keys. The CONNECTIONTABLE also maps clients' Bluetooth device addresses to their PAN IP addresses. This mapping allows the CEA to recognize mobile clients that have visited in the recent past. Session-based attributes, defined in Section 3.3, are also stored temporarily by the CEA. They are marked for deletion when a client device disconnects from a CEA. Session-based attributes are stored in order to prevent clients from having to send 37 repeated information with the action requests when navigating through the information on a CEA. A set of session-based attributes is only active during a single session or interaction between a user and a display. 38 Chapter 5 Analysis & Extensions The Content Exchange was designed to propose a new way for users to transfer data into and out of a public kiosk type device. The public display component added different user scenarios and usability requirements to the standard information repository problem. Multiple users accessing and interacting with the information simultaneously adds complexity to the system. The concept of a public display required devising proper protocols to protect the viewers and the CEA. Efforts for the project are focused on furthering the development of pervasive computing technologies. The Content Exchange system can incorporate the different pervasive computing technologies of the Oxygen Research Group, such as location-aware support, speech recognition, and face and gesture detection. This section discusses the tradeoffs of the design and prototype of the CEA, and then proceeds to address possible extensions to the system. 5.1 Tradeoffs with Bluetooth The Bluetooth prototype described in Section 4 provided the means necessary to achieve many of the original design goals for the Content Exchange. Using Bluetooth made device discovery in a local proximity possible. Although the device scanning described in Section 4.2 successfully identifies CEA's in the area, all other 39 Bluetooth enabled devices are also found. The option presented in Section 4.2 solves the problem by using the Bluetooth device descriptor to extract the CEA entries. Despite its feasibility, relying on a descriptor suggests that a standard naming system is defined for every CEA, where the name is set to the value of the Bluetooth device descriptor. Another possible solution is to scan for Bluetooth devices that have been declared as Bluetooth masters [footnote?]. Since each CEA is supposed to be a master of its own piconet, then scanning for masters will return a list of display devices. Using this mechanism, mobile clients would not be detected because they are configured as Bluetooth slaves. Although Bluetooth was the preferred communication protocol used in this project, using Bluetooth did pose certain networking limitations. According to the Bluetooth specifications a piconet can consist of one master and a maximum of 7 slaves [Bluetooth Spec]. The limit on the number of Bluetooth connections for a given CEA limits the number of viewers that connect to the display using Bluetooth. This means that once the 7 slots are taken, users with Bluetooth enabled devices will have to wait until someone leaves, try connecting to a different CEA, or connect to the same CEA using a different communication protocol, such as 802.11 or IR Another limitation of Bluetooth was that there are different proprietary stacks that can communicate over Bluetooth. Further research into Bluetooth needed to be done in order to devise a way to communicate directly over the Bluez stack. Instead the PAN profile on the BlueZ was used to assist with the prototyping effort, since it supported the widely accepted and practiced use of TCP socket connections. Since 40 communication directly over the Bluetooth stack was not achieved, using the BlueZ stack was both necessary and beneficial since it provided the foundation for establishing a personal area network for each CEA. The PAN and bnep modules gave the CE the appropriate level of user control. Using the PAN module made development work simpler because communication from software could be done through standard TCP sockets. The BlueZ stack was also easy to integrate into a common mobile device used in the testing environment, Compaq's Ipaq. On the other hand, using BlueZ also requires setup time when the CEA's are powered up. This is understandable since a CEA is designed to stay powered on most of the time. For mobile clients that are using BlueZ the initial setup is autoconfigured with the exchange client application. Another drawback to developing a solution for BlueZ is that this stack is not used on every Bluetooth enabled device. The portability of the exchange client applications to other Bluetooth stacks is not certain. Separate client applications may have to be written for various Bluetooth stacks. Although the programming logic would be similar, the connection and scanning commands may differ among the different stacks. This is evidence that further supports the argument for developing a Bluetooth industry standard. 5.2 User-Experience An important goal for the CEA was to establish and maintain a seamless end-user experience. Each user is supposed to remain oblivious to the variability of each CEA's personal area network. The connections of each CEA are dynamic since 41 users come and go at random times. In the current design, viewers are not affected by the arrival or departure of other users. The system is designed to help make the users visit to each CEA enjoyable. The partial state of the system helps users achieve a good degree of mobility without many repercussions. The table maintained by the client application that stores a history of the displays visited saves the user time when revisiting a display. The client saves time because instead of attempting to connect with random IP address that might conflict with other devices, the client can use the IP address in it has on record for the corresponding display. The history table on the client only remains refreshed while the client application stays running. This helps ensure that the PAN IP addresses stored in the table are up to date and can be used with confidence. In addition to saving time upon connection, the stored information also saves the client from having to negotiate a shared key and nonce. The partial state of the system has helped make the user experience efficient and friendly. A user may experience delays when trying to connect to a CEA if the randomly generated IP is already in use. Although the probability of two devices picking the same PAN IP is low, the IP must also be sure not to overlap with LAN and WLAN IP's that are in use. The issue of IP overlap or collisions is important and can effect the performance of the CE. In this situation, the client applications can be configured to chose random IP's from unregulated space. The current implementation limits devices to the range 10.0.0.2 - 10.0.0.255. Increasing the 42 range of possible PAN IP addresses would further reduce the chances of IP collisions. Another point in the system where users may be required to input information or experience delays is when they are trying to establish a connection channel with a CEA. Connection to a CEA may not happen automatically because that depends on the environment of the CEA. The client application is responsible for scanning the area for Bluetooth devices and parsing the list for display devices, which may require input from the user. In the other situation if the viewer is using the default settings, then the display chosen by the client application may not be accepting connections or may not be the CEA the user intended to connect to. These scenarios occur when displays are in high traffic areas or when there are multiple displays in close proximity to each other. 5.3 Pros and Cons of Customizations Providing users with a high degree of customization and personalization was an important goal for the Content Exchange system. The system was designed to give users the opportunity to set their own desired level of privacy and connection behavior. In addition, users could define any number of personal settings that described their mobile devices, storage destination when downloading, data source when uploading, and various other session-based attributes. With this level of customizations come various tradeoffs and outcomes. 43 Processing the different user settings and customizations levels takes place on the CEA. Several operations performed by the CEA's require a lot of computation, processing and storage. For example, for a predetermined length of time CEA's must store information regarding every mobile client that has connected to it. This information is maintained whether the client is still connected or not. Second, CEA's must monitor their current connections to keep track of when a mobile client is active or not. In addition, CEA's also have to manage the session-based attributes for each connected device. These attributes must be accessed each attempts download or upload data, because the client does not send all the attribute information with every request. Finally, when a user navigates to a new page the CEA must determine the format of the data sent to the mobile client so that it can be correctly displayed on that particular device. By design the CEA has to do a lot of computation and processing, but this was done intentionally since CEA's are supercomputers compared to mobile devices. This design benefits the users since mobile devices have less bandwidth, slower processors, and minimal power resources compared to a CEA. In the design of the CE users can achieve a strict level of privacy, but that requires a higher degree of customizations on the user's part. The default is not insecure communication, but if a user wants complete anonymous communication they need to take appropriate steps to make that happen. The decisions to make a high level of privacy added work for the user was made because the common scenario for the CEA is to exchange public data in either a confined environment such as a company lobby or other workplace. In scenarios where displays are completely out in the 44 open, users that care about their privacy would not mind making extra effort to achieve that. Setting session-based attributes requires work done by the user as well. This is an initialization step that can be completed just once if the user decides to keep the settings the same. If the user wishes to achieve varying behavior at different times, then they must spend the extra time to make that happen. Although this requires effort by the user, it is argued that users desiring this level of personalization would not mind spending time setting up their attributes. The goal of the system was to provide a framework that allowed users to customize their exchanges with a CEA. 5.4 Extensions to the CEA Network The implementation of the CEA does allow for various networking extensions. The current solution was implemented to handle separate piconets for each CEA. One possible extension is to form ad-hoc networks composed of piconets that correspond to different CEA's. In Bluetooth these ad-hoc networks are called scatternets. The added benefit from forming scatternets is that information can be transferred between two or more CEA's. A example scenario involves a user that has uploaded data to one CEA but wants it to appear on a collection of other CEA's. Instead of manually uploading information to each, if the CEA's formed a scatternet the data could be forwarded to the respective CEA's. Synchronizing displays could also be achieved using other communication protocols, such as 802.11 or LAN. Another scenario that would benefit from connected CEA's is that data uploaded by the user could follow the user around as they moved from CEA to CEA. Similarly a user can set their mobile device to act as a slave-master bridge and start to communicate 45 with two CEA's at once. This would give users the ability to exchange information with two different display devices without having to go through the connection setup sequence each time. Further research is being conducted to identify efficient methods of forming Bluetooth scatternets [13, 14]. A second possibility to increase the number of Bluetooth clients that can interact with a CEA is to make the CEA a Bluetooth slave. As originally imagined, having the mobile devices be Bluetooth slaves would mean that clients would create their own point-to-point piconet with a CEA. In this scheme, the CEA would be a slave to multiple masters, and therefore would not be able to communicate with other CEA's. Further exploration into Bluetooth will determine whether this design when implemented can be applied to a larger number of clients. In the design of the Content Exchange, each CEA is intended to communicate with devices over Bluetooth, WLAN, IR and other wireless communication technologies. The implementation can be extended to include other communication mediums, namely 802.11. The benefit of using the BlueZ stack is that communication in software is done through TCP sockets. This makes the integration with 802.11 trivial because the code does not change. Instead of opening socket connections to the PAN IP address of a Bluetooth enabled device, a socket is opened to the IP address of a WLAN device. When communicating over WLAN, devices would be set to the ad-hoc infrastructure mode as opposed to the peer-to-peer mode. This means that they would expect to receive an IP from a base station which could be the CEA itself. Another interesting issue that arises when moving to the WLAN case is 46 device discovery. Similar to the Bluetooth scanning tool used discover Bluetooth devices, an 802.11 device can scan for other 802.11 devices. In this situation, the scan will return a list of IP addresses of devices that are using the same access point. This list comes close to depicting the devices in close proximity because WLAN devices use access points based on the distance between them. The problem is a user may not know which IP address corresponds to the CEA to which they want to connect. A simple solution to this problem is to have the CEA display its Internet IP address on the display so the viewers can see it when they want to connect. 5.5 Location Aware Technology The current design of the Content Exchange used Bluetooth device discovery mechanisms to determine the proximity of a mobile client to a CEA. A different approach to locate a CEA that is close to a user would be to use independent location detection technology. Location aware systems can be applied to the exchange system because they are built to track the positions of mobile clients. AT MIT, the Laboratory for Computer Science has developed a location aware system that does not use a GPS tracking system [15]. The Cricket Location-Support System, the location aware system at LCS, uses a system of signal emitters and receivers, called beacons and listeners respectively. A cricket beacon is mounted on a ceiling or wall and emits an RF signal and an ultrasonic pulse. Listeners are attached to mobile devices, such as Ipaqs. The listeners pick up the RF signals and the corresponding ultrasonic pulses from the emitting beacon. The distance between a listener and a beacon is determined by the distance between each ultrasonic pulse. 47 The Cricket Technology at LCS can be used to identify the CEA that a mobile client should connect to. The beacons would be mounted on the ceilings close to the CEA's or on the CEA's themselves. The listeners would attach to the mobile devices and used to find the distances between the devices and the CEA's. The distance information can be inputted into the exchange client application to determine which CEA is closer to the user at any given time. This system is targeting towards group communities in indoor environments. 5.6 Multi-Modal Input The current version of the Content Exchange is designed to capture mouse movements to control navigation, downloading, and uploading. There are various input and control methods that people can use to interact with CEA's. Users do not have to be limited to using the standard mouse or navigation unit on their mobile device. Instead, they can interact and use the information from a display using speech technology, location aware systems, and other movement tracking devices. This section outlines the different ways to control the exchange of information. Speech Input A person can use speech to govern the activity between the mobile computer and the public display. Another team of the Oxygen Research Group has developed speech recognition technology. The speech technology has been developed since 1994, and has revolved around enabling human to computer conversations. The project could interlace to spoken language systems called Galaxy and SpeechBuilder. 48 SpeechBuilder is a suite of tools that can be used by external applications in order to process spoken language [16]. This architecture allows for speech recognition, language understanding, information retrieval, and language generation. Current efforts have been successful in transporting the speech technology from a server to light weight mobile devices [17]. The Content Exchange could be extended to incorporate the speech technology as a way for users to communicate with a CEA. Viewers could say navigation, download, or upload commands into their mobile devices. Then the recognition system on the mobile device could convert the spoken phrase into text and send the command over to the CEA. This mode of input would complement or even replace mouse movements, especially if the viewer is using a cellular phone. Vision & Gesture Recognition Improvements in vision technologies have made it possible to control computer systems with facial expressions and body gestures. The Vision team of the Oxygen Research Group has put together visual processing systems that can be used to recognize and classify gestures. The Vision Interface Group has built systems that can accurately detect the presence, posture, and gaze of a person [18, 19]. Using this technology, viewers of a CEA can point or look in certain directions in order to navigation through the information on display. The vision interfaces would make the users' experience more natural because they wouldn't be confined to the input methods on their mobile devices. 49 Chapter 6 Conclusion The overall goal in pervasive computing endeavors is to understand and support everyday practices of people. The human-centered approach in pervasive computing is paralleled by efforts to build a context-aware system that still maintains a seamless end-user experience. This thesis project illustrated a context-aware system that created a new way for people to exchange information with public displays. The prototype of the interactive display implemented a Bluetooth based solution. Using Bluetooth sparked a series of questions regarding the organization of the piconets and the mode of communication. In the prototype personal area networks were assigned to each CEA, however it is important to investigate the performance of the display if it was made a slave node in piconets controlled by mobile devices. A TCP/IP interface was used in the prototype to assist in software development. Further research should be done to explore the possibility of communicating directly over the different proprietary Bluetooth stacks. Related work completed in this area has successfully created interactive environments that support group collaboration. The Content Exchange Appliance distinguishes itself because it can be deployed in both small groups and the general public. Also, the interactive display provided a framework for people to customize how they interact with public displays. People can control the format and context of 50 the information they download and upload to the display appliance. The CEA balances the responsibilities of the display appliance and the user. Users are responsible for configuring their personal settings if they choose to change the default behavior. The display appliance handles many of the computationally expensive tasks such as managing the connections of the CEA, storing mobile client information, and formatting data according to the specifications of each mobile device. The system designed and implemented in this project can also be extended. There are various input methods that can be applied to the CEA, which would give users options for how they communicate with the display appliance. Although this project focused on designing an building a framework from public display interaction, many applications can designed for such a system. Interactive public displays have the potential to revolutionize the way people think and operate. 51 Bibliography [1] Dertouzos, Michael L., "The future of computing," Scientific American, July 1999. [2] Guttag , John V., "Communicating Chameleons," Scientific American, July 1999 [3] Brown , Eric S., Project Oxygen's New Wind, Technology Review, December 2001. [4] Essa, Irfan, "Computers Seeing People," Al Magazine, Volume 20, Summer 1999. [5] Kidd, Cory D., Robert J. Orr, Gregory D. Abowd, Christopher G. Atkeson, Irfan A. Essa, Blair MacIntyre, Elizabeth Mynatt, Thad E. Starner and Wendy Newstetter. Proceedings of the Second International Workshop on Cooperative Buildings. Position paper, October 1999. [6] Hong, J.I. and Landay, J.A., "A Context/Communication Information Agent." Personal Technologies (Special Issue on Situated Interaction and Context-Aware Computing), 2001. [7] Hong, J.I. and Landay, J.A., "An Infrastructure Approach to Context-Aware Computing," Human-Computer Interaction (HCI) Journal, 2001. 52 [81 Huang, E., Mynatt, E., Tailoring Public Display for Small, Co-located Groups; In the Companion Proceedingof the ACM Conference on Computer Supported Cooperative Work (CSCW), 2002. [91 Greenberg, S., Rounding, M., The Notification Collage: Posting Information to Public and Personal Displays, In Proceedingsof ACM Conference of Human Factorsin Computing Systems, pages 514-521, 2001. [10] Johanson, B., et al., "Multibrowsing: Moving Web Content Across Multiple Displays," In Proceedings of Workshop on Handheld, in Conj. with ACM Conference on Computer Supported Cooperative Work, 1998. [11] Lewis, S., "Web Signs, Display Appliance Platform," Appliance Studio Technical Report. [12] Bluetooth, Specifications of Bluetooth Core 1.OB, 2003. [13] Tan, G., Miu, A., Guttag, J., Balakrishnan, H., "Forming Scatternets from Bluetooth Personal Area Networks," MIT LCS Technical Report, 2001. [14] G. Zussman and A. Segall, CapacityAssignment in Bluetooth Scatternets -Analysis and Algorithms, Proc. 2nd IFIP TC-6 Networking Conference, Pisa, Italy, 2002. 53 [15] Nissanka B. Priyantha, Anit Chakraborty, Hari Balakrishnan, The Cricket Location-Support system, In Proceedingsof the 6 th Annual ACM International Conference on Mobile Computing and Networking (MobiCom '00), pages 32-43. ACM, August 2000. [16] E. Weinstein, SpeechBuilder:FacilitatingSpoken Dialogue System Development, M.Eng. thesis, MIT Department of Electrical Engineering and Computer Science, May 2001. [17] Zue, Victor, "Talking with your computer," Scientific American, July 1999. [18] Trevor Darrell, Konrad Tollmar, Frank Bentley, Neal Checka, Louis-Philippe Morency, Ali Rahimi, Alice Oh, Face-responsive interfaces: from direct manipulation to perceptive presence, International Conference of Ubiquitous Computing, 2002. [19] Alice Oh, Harold Fox, Max Van Kleek, Aaron Adler, Krzysztof Gajos, LouisPhilippe Morency, Trevor Darrell, Evaluating Look-to-Talk: A Gaze-Aware Interface in a Collaborative Environment, Proceedingsof the Conference on Human Factors in Computing System (CHI), 2002. 54