CAT: Context Aware Toolkit

[Overview] [CAT Architecture] [Benefits of CAT] [CAT applications] [Active Campus] [Phone App] [Presentation] [Presentation 2]





CAT is a Context Aware Toolkit that began as a project in the Wearable Computer class as the University of Oregon in spring 2003.  In short CAT is a middleware for wearable devices that can provide a wearable computing application easy and quick access to context, such as hardware sensors and p2p communication.  

Building applications for the varying types of wearable devices and sensors can be a difficult task.  And applications sharing that sensor data can complicate matters even further.  So CAT provides an easy way for an application to listen to and share sensors on a wearable computer.

CAT can be used to dynamically listen to and create sensors, whether they are physical sensors on the device or soft sensors that can be thought of as services available to the application.  In addition, CAT can be used to create special interest groups (SIGs) with other wearable devices whom you want to share sensors or services with.  For example, you may want to create a soft sensor to share with your friends that indicates whether you are available or not.  CAT can also make use of a local or server based database to save sensor data and to make future sensor data predictions.


Main features and benefits of CAT:

     Easy access to sensor data. 

     Dynamically create soft sensors. 

     Share sensor data with other agents. 

     Keep history of sensor data. 

     Prediction of future sensor data. 

     Facilitates agent discovery and p2p communication.



CAT Architecture



To see how CAT is designed and structured, please follow this link.



Benefits of CAT



As stated earlier, building applications for wearable devices can be a tedious and difficult task.  Wearable devices are based on a wide variety of hardware, which makes building a flexible wearable application very challenging.  Built with the Java language CAT is a multi-platform middleware, aiding the construction of wearable applications for many different hardware platforms.  

CAT helps by hiding the complexity of getting data from hardware sensors.  In addition, CAT allows an application to create its own services or 'soft sensors' that can be used to preprocess sensor data and/or create some new sensor data based on one or more other sensors.  Applications can then choose to listen to and create any sensors that it needs or wants.

Another large benefit of CAT is that it allows applications to easily share sensor data with other applications or agents.  An application using CAT can easy create Special Interest Groups (SIGs) that allow CAT to chare sensor data with other agents or applications.  Once an application creates a SIG, CAT will take care of sending the SIG invitations and of sending/receiving the sensor data.

CAT also keeps a history of sensor data.  By recording all sensor data in a history database applications can easily get old sensor data or predict future sensor data.  The history database is initially a local database that CAT can access and share with other agents, however, it was built, so that the history database can be a remote database that many agents can access.  A central server could then be used to store sensor data for many agents in order to alleviate storage problems on small devices.

Lastly, CAT provides some basic features to aid in general wearable computing, such as p2p communication and discovery.  CAT provides agent discovery as a type of sensor data.  In this way, an application can easily be notified when new agents are encounter and of when the list of agents in proximity changes.  And to aid in simple p2p communication, CAT provides a transport component that hides the complexity of 2 agents communicating whether instant messaging or file sharing.   



CAT Applications



A few applications have been built using CAT in order to explore CAT's possibilities and potential. 


Active Campus:  Based on the idea for Active Campus at University of California, San Diego.  Users can add other users to a friends list, view the location of friends, instant message friends, and view profiles of their friends.

Phone App:  This application shares the availability of yourself with others, and vice versa.  Before calling a user, the application will check the user's availability to take the call.  In addition, when the application receives an incoming call the user can check to see if he/she can call back later.

Social Net:  Based on the encounter based friend matching application, Social Net at Georgia Tech.  Applications keep a list of friends and a list of encountered strangers.  If two strangers have a mutual friend, then the friend will be prompted to introduce the two users.  In addition, if a group of your friends are gathering at a specific location, then you will be notified to join your friends.

For further information about CAT applications please see the CAT application web pages: Phone App or Active Campus.

Questions, comments, broken links? Email: