Groove is a remarkable platform for building collaborative peer-to-peer applications. It's the invention of Lotus Notes creator Ray Ozzie, it's partly owned by Microsoft, and it can integrate with COM and .NET applications.
The core concept behind Groove is shared spaces, where multiple users work on a single task. Examples of shared spaces include a chat window, or a shared white-board or calendar. Each user interacts with the shared space on his or her local computer, and changes are seamlessly applied to all other users in the shared space. The basic Groove Workspace includes tools that allow users to jointly edit Word documents, view PowerPoint slides, surf Internet pages, share files, chat, and more.
All of these tools run inside the Groove transceiver. It's through the Groove transceiver that you log in, see who else is online, create a new shared space, and invite users to join you in a shared space. A shared space (see Figure 12-4) can include a single Groove tool (like chat) or it can combine more than one Groove tool (for example, if you want to create a synchronized discussion, calendar, and document review session). The important point to remember is that it's the Groove infrastructure that synchronizes changes with all the subscribed users.
The Groove infrastructure also adds the following benefits that aren't as easy to incorporate into your custom peer-to-peer applications:
Security. Groove uses encryption to protect data on the wire, digital finger-prints (essentially a GUID) to uniquely track users, and digital signatures to verify that messages aren't tampered with and users aren't impersonated.
Firewall traversal. Groove uses its own proprietary central server components that solve firewall and network address translation (NAT) problems. (Incidentally, you can host your own Groove Enterprise server for a significant fee.)
Offline support. Groove synchronization can automatically update clients when they come online, thereby allowing your application to work even in the face of variable network connectivity.
But Groove isn't just a collection of typical peer-to-peer collaborative tools. It's also a framework that allows you to create your own tools and add them to shared spaces. In this case, the goal is to make creating a Groove tool nearly as easy as creating a stand-alone Windows application, so that the developer doesn't need to worry about security, synchronization, networking, and so on. Groove even provides a Visual Studio .NET add-in that makes this process relatively easy. You'll still need to learn the Groove toolset object model and its deployment and configuration system (particularly if you want to develop more advanced tools), but you won't need to overcome the same challenges as you would if you were writing a collaborative application from scratch.
Groove provides a .NET developer hub at http://www.groove.net/developers/dotnet. Using this link, you can download the Groove 2.1 Workspace, the Groove toolkit for Visual Studio .NET, and a more generic Groove development kit with samples. You can also read whitepapers and other documentation about developing with Groove. Groove Networks was one of the first organizations to become a Visual Studio .NET Integration Partner (VSIP), and both Groove and Microsoft are committed to collaborating in the future and extending their tools together into the world of collaborative peer-to-peer.
From a business point of view, the only downside to using Groove is that it isn't free. You can use the scaled-down trial version to test your custom tools, but you need to purchase the full version to access advanced features and use automated deployment. You can find information about purchasing Groove at http://www.groove.net/products/workspace/starterkit-smb.