Creating Awareness with Subscription Services (CASS) Strategy


Concepts: Home | Awareness Styles | Information Sources | Meta Information | Terminology | Scenarios
Systems: CASSandra Toolkit | Awareness Tools | Download | Documentation
General: Awareness Guages | Flier | People | Acknowledgements
Related Projects:  Yancees - a versatile notification service

Information Sources

An information source is any software that monitors its state and sends notifications of changes and events to a notification server. This software can monitor the physical world (using cameras and other sensors), documents (source code, spread sheets, papers, etc.), virtual spaces (chat rooms, on-line work areas, on-line communities, etc.) and systems (printers, servers, simulators, etc.).

CassDAV

The software comes with a sample information source: a WebDAV server called CassDAV. Based upon the WebDAV server distributed with Apache's Jakarta Tomcat server, our modifications cause it to send notifications to CASSIUS whenever it receives a request. If I am subscribed to be notified of all events concerning a file or folder on the CassDAV server, then every Put, Get, Move, Copy, Delete, Lock and Unlock event will be sent to my awareness tool. The awareness tool will determine how and whether to present this information to me. Alternatively, if I just want to know when the file has been modified, I can subscribe to just the Put, Move and Delete events. Subscribing to a folder lets me monitor all activity within the folder.

What makes this especially powerful is that modern operating systems can now mount webdav folders on the local desktop such that it behaves just like a local folder. Work group members can all mount the same webdav folder and as they modify files, notifications will be sent around to members of the work group keeping them aware of what kinds of changes are being made. If I know that changes to a file can affect my work, I will subscribe to notifications of changes to that file. As other users lock the file, make their changes, save the changes back to the mounted WebDAV directory, and unlock the file, I will have constant up-to-date information of the state of that file. If the source code editor used to modify the file is also instrumented to send notifications then I can also maintain awareness of what changes the coworker makes during the time that it has been checked out.

Implementing an Information Source

Developers can use the CASSandra toolkit to help building Java information sources; CASSandra handles all communication with the CASSIUS server. All communications with CASSIUS is done using HTTP requests, making it easy to implement your own tools for communicating with the server. Whether using CASSandra or doing the work by hand, the following steps must be taken to design an information source which sends notifications to CASSIUS.
  1. Identify what is to be monitored
  2. Provide meta information about the monitored entities to the server
  3. Perform the monitoring and send notifications to the server when an event occurs
  4. Detect changes in the nature of the monitored entites and update the meta information (in the case of WebDAV, whenever a file is moved or renamed, the object's meta information must be updated or its position within the object hierarchy will no longer reflect its true position)

For more information on information sources, go to the