BuddySpace is an enhanced Jabber client providing secure presence management, web services and instant messaging.
Version: 2.6BuddySpace is an instant messenger with four novel twists: (1) it allows optional maps for geographical & office-plan visualizations in addition to standard 'buddy lists'; (2) it is built on open source Jabber, which makes it interoperable with ICQ, MSN, Yahoo and others; (3) it is implemented in Java, so it is cross-platform; (4) it is built by a UK research lab, so it is 100% free with full sources readiily available. But BuddySpace is about more than just 'messaging', as we explain below.
License: The Apache License 2.0
Operating System: Linux
One of the key factors that led to the widespread popularity of Instant Messaging applications from 1997 onwards (including ICQ, AOL, Yahoo!, MSN, Odigo, and Jabber messengers) was the concept of pushed presence: the automatic notification of the appearance of friends and colleagues online.
However, Instant Messaging (IM) is just one of many possible presence-related and presence-dependent applications. For example, presence-enabled applications can facilitate safety-tracking of children by mobile phone, support for emergency services, blind-date radar, group teleconference management, multiplayer games, and anything involving the collaboration of individuals separated in space and time.
Why phone a contact only to receive an engaged tone or pre-recorded message, when the telephone network already knows what state your contact is in, and could indicate this directly on your contact list? All of these concepts embody varying degrees of what we refer to as enhanced presence management.
The concept of presence has matured in recent years to move away from the simple notion of 'online/offline/away', towards a rich blend of attributes that can be used to characterise an individual's physical and/or spatial location, work trajectory, time frame of reference, mental mood, goals, and even intentions! Our challenge is how best to characterise presence, how to make it easy to manage and easy to visualise, and how to remain consistent with the user's own expectations, work habits, and existing patterns of Instant Messaging and other communication tool usage.
BuddySpace generalizes the concept of 'Buddy List' (popularised by Instant Messaging tools such as AOL Instant Messenger, ICQ, MSN Messenger, and Yahoo Messenger) to provide multiple views of collaborative workgroups according to users' needs and tastes. Our aim has been to provide a personal 'dashboard' or 'radar screen' so that one can observe the availability and 'interaction state' of colleagues worldwide in a manner that exhibits the following desirable properties:
* immediate: real-time updates need to be pushed instantly to users rather than pulled in by request -- the push approach helps keep updates more palpable and informative
* peripheral and therefore non-intrusive: users lead busy lives, and dislike being bombarded with yet more information, so we aim to keep awareness of colleagues available in a compact manner that can be noticed peripherally
* customisable: some people prefer simple or hierarchical lists, some prefer visual maps, some prefer status lights, and so on; some prefer a 'Windows' look-and-feel, some a 'Mac'-- we need to cater for diverse user preferences and capabilities
* scaleable: we have to provide ways to indicate the presence of potentially enormous numbers of people, even given that these numbers will be filtered down for personal use -- researchers inhabit workspaces with many hundreds of colleagues around the globe; the Open University has well over 150,000 students online; large peer-spaces like music swapping communities have many millions of users connected simultaneously
* interoperable: with several hundred million users of the 'Big Four' (AIM/ICQ/MSN/Yahoo!), it is crucial that any approach allow interopebility with systems to which our users already subscribe; this is one of the many reasons we built BuddySpace entirely on top of Jabber (www.jabber.org), which provides gateways to the 'Big Four' products.
* cross-platform: we need to service a community not only on Windows, Unix/Linux, and Mac desktop and notebook configurations, but also on PDAs and mobile phones -- we therefore develop entirely in Java
* XML-literate: for future intelligent applications, communication transport needs to be about more than just string-transmission; another we adopted Jabber is that it is based entirely on a generic XML transport architecture, ideally suited for this purpose.
* open source: for the research community to join us and to gain leverage via our research output, we have ensured that BuddySpace is open source, available on SourceForge.
* clean: BuddySpace adheres rigorously to the Jabber specification, which means that it interoperates with other Jabber clients and servers without danger of the rogue behaviour that non-standard implementations inadvertently allow (e.g. the semantics of users inhabiting multiple groups is undefined in some clients, and can cause crashes).
* extendable: BuddySpace deploys a plug-in architecture which means that additions, such as new visualizations, and new concepts such as gaming interfaces, are readily achievable
BuddySpace fulfills all the above criteria, and provides a compelling user interface that can be highly compact, yet provide users with an important 'feel-good' factor, akin to seeing nearby office lights turned on when entering one's office building at night. By studying the semantics of presence, we can also augment the existing impoverished presence states in a principles manner, providing capabilities that are more representative of the way real users work. Forthcoming capabilities will include automatic location updates via mobile devices, and the use of semantic matchmaking via intelligent profile handling, in order to help users quickly find and filter colleagues of particular interest.