Microsoft, like many technology companies, sometimes grows by acquiring other companies. These acquisitions happen for a variety of reasons, and sometimes the rationale behind a particular purchase doesn't become clear until some time has passed. In March 2005, Microsoft bought Groove Networks, the company that created the Groove collaboration environment—but we're just now starting to see the strategy behind this acquisition with the release of the Microsoft Office 2007 system. Microsoft Office Groove 2007 fully integrates with Office 2007. Groove is a workgroup collaboration tool that lets you create a virtual office. Your team can use Groove to share files, manage meetings and projects, and track data and processes—all as if you were in one location.
Groove's History and Architecture
Groove was developed by a team led by Ray Ozzie, the architect who designed IBM Lotus Notes and who is now the chief software architect at Microsoft. You probably won't be surprised to see, therefore, that the Lotus Notes client and the Groove client share some architectural and behavioral similarities. For example, when you create a new Groove user account, the account automatically gets a digital certificate that is used to authenticate the account and to encrypt data sent to it. However, Groove is different, too, because it uses a peer-to-peer (P2P) architecture. Every client that connects to a particular Groove workspace maintains its own local copy of the workspace's information. Clients send updates directly to each other with the help of a Groove server, which you can think of as more of a coordinator than anything else. Microsoft maintains a centralized set of Groove servers, the addresses of which are hard-coded into the Groove application. However, you can deploy your own servers to take over this coordinating role by licensing Microsoft Office Groove Server 2007.
When a client reconnects after being offline, it finds its peers through queries to a Groove server, then establishes connections directly to those peers to catch up on the changes it missed while offline. The change-tracking algorithm that Groove uses is quite sophisticated; updates are tracked in small increments known as deltas. Therefore, changing one slide in a 10MB Microsoft Office PowerPoint presentation doesn't require a resynchronization of the entire file among all workspace members. The workspace where the change was created keeps a log of the deltas it "owns," purging a delta from the log only when all other workspaces confirm that they've introduced that delta into their own local spaces. The process by which an individual client determines which updates it needs from its peers is too complicated to cover here.
After its acquisition of Groove, Microsoft released an updated version of Groove Virtual Office that provided a few new features. However, the Office 2007 release of Groove is the first release to be completely integrated with the rest of Office, which smoothes the overall user experience and makes Groove capabilities more directly accessible from within Office applications and Windows Explorer.
Getting Into the Groove
Setting up a new shared workspace is simple; Groove lets you choose the type of workspace you want, from simple workspaces for sharing document files or calendar information to workspaces that automatically download and cache local copies of SharePoint sites. Figure 1 shows a sample Groove workspace. After you've created a workspace, you put content into it by dragging files and folders into the workspace view. As an alternative, when you create a workspace you can specify that it be synchronized automatically with a folder on your computer, although you can't use a Universal Naming Convention (UNC) path or a folder mapped to a remote share.
After the workspace is established, you invite other people to join it. You can send invitations via email, which lets you take advantage of the contents of your organizational Active Directory (AD) as well as your personal Microsoft Outlook contacts. You can also search for users on the Groove user directory maintained by Microsoft, which is useful for establishing workspaces that include people from different organizations. Of course, most users probably won't have existing Groove accounts, which leads to the biggest roadblock to getting started with Groove: Every workspace participant has to install Groove, then create a Groove account so that you can invite them to the workspace. This process isn't difficult, but my experience has been that many users are reluctant to install applications just for a particular project. That's part of what makes Groove's integration with Office 2007 so valuable: Many users will now already have Groove 2007 installed.
At the most basic level, you can think of a Groove workspace as a shared folder that can contain files. When you drop a file into your local copy of a workspace, the file is copied to every other instance of the workspace without any action by the other members. This capability predates most of the file-syncing and file-sharing services now available on the Internet, and it helped fuel early adoption of Groove. Groove workspaces include many useful tools, such as IM, a calendar, an outliner, a notepad, and so on. The data items produced by these tools are automatically synchronized between copies of a workspace; if you create a new calendar entry in your copy of a workspace, it will propagate to other copies of the workspace without any action on your part. This is a surprisingly useful way to provide workgroup collaboration: As each team member adds, creates, and modifies the contents of the workspace, the changes show up in each copy. The Groove client is smart enough to detect conflicting changes and to notify you that a conflict exists; you can see the changes associated with each workspace copy and choose the one you want to keep.
Groove's synchronization infrastructure is quite robust. By default, the only function that the centralized server is responsible for is helping clients find one another; a client will choose to establish a direct connection to another client whenever possible. Groove clients talk to each other using Simple Symmetric Transmission Protocol (SSTP) over TCP port 2492. If a client attempts to reach another client and finds that the recipient isn't answering on the selected port, the sending client can use SSTP over TCP port 443 to connect to a relay server instead; the relay server collects the sender's deltas and passes them on to the receiving workspaces when they next appear on the network. This method means that security concerns for deploying Groove are minimal for most organizations; you don't need to open additional ports to allow Groove to synchronize with users outside the company firewall.
What's New and Groovy
Groove 2007 includes significant changes from previous versions. First, it integrates with the rest of Office and with Windows Explorer. For example, you can now see presence information and open IM sessions with workspace members by using the Office Communicator client, and you can send files to a Groove workspace from within Windows Explorer.
Second, the Groove 2007 client can capture the contents of SharePoint team sites or document libraries, synchronizing only the files or folders you want. This ability makes your workflow simple and straightforward: You can work directly with the items you need while you're connected to your network, then synchronize the contents to a Groove workspace to get full offline access to those same items while you're traveling. You can make changes to the items, then check them back into their original SharePoint locations automatically the next time you connect to the network. Because SharePoint also offers team calendars, contacts, and lists, you can intermix Outlook's and Groove's offline functionality to coordinate your work with others. However, this synchronization is limited in scope: Only the workspace that originally establishes the sync relationship with a SharePoint site can put changed data back into that same SharePoint site. Suppose that Alice synchronizes her team SharePoint site with a Groove workspace. If Bob and Charlie are workspace members, they can make changes to the workspace data, but those changes won't propagate back to SharePoint until Alice initiates synchronization. In fact, if Alice has a copy of her workspace on a computer at home, that workspace can't push changes back to SharePoint either; only Alice's original workspace can do so.
Groove 2007 also integrates with Microsoft Office InfoPath forms, which makes Groove a natural platform for data-gathering applications. You can fill out instances of a form in Groove, then sync them back to a central server to aggregate the data you've collected with the work done by others.
Although Groove's decentralized nature remains, Microsoft has made an important concession to organizations that want to maintain total control of their Groove environments by creating the Groove Server 2007 applications. If you want to deploy Groove without depending on Microsoft's servers for coordination, you can deploy your own servers from which you can control which users get access to workspaces, what they can do with the workspaces, and what information you see and share with others. Groove Server 2007 integrates with AD for provisioning, so you can easily grant access using the same set of directory information you use for other types of provisioning. The Groove Server product line includes the ability to back up and restore workspaces from the server (a nice disaster-recovery feature), and the Groove Server Data Bridge lets you integrate other line-of-business applications with Groove workspaces and their tools.
Groove workspaces are a good example of cellular design: You can create workspaces for different projects, and each workspace can be thought of as a unique cell whose contents are completely separate from other workspaces. For example, I used Groove extensively during the creation of my two security books for Microsoft Press. I created one workspace for sharing documents with my editors and another for passing out drafts of chapters to technical reviewers. As I completed new versions of each chapter, I dropped them into the appropriate folders and let Groove take care of transmitting the updates to each team member. I didn't have to log on to a VPN, remember credentials, or do anything else beyond dropping the file into the correct workspace folder. Synchronization was automatic and worked well even over the dial-up lines I often had to use while traveling at the time. As editors or reviewers marked up chapters and artwork, their revisions automatically appeared in my workspace whenever I went online, greatly simplifying the process of exchanging and coordinating updates.
Another major benefit of Groove's approach is that workspace members don't have to be part of the same directory namespace. You can have a workspace whose members are all from the same AD forest or domain, but you can just as easily have a Groove workspace whose members are all from different organizations.
This capability means that collaborating with people outside your organization is just as easy as collaborating with those inside: Invite the members you want, and after they sign up for Groove accounts, they'll be able to start sharing.
Groove's collaboration capabilities lend themselves to remarkable uses. For example, John Morello, the deputy chief information security officer at Louisiana State University, and a team of Microsoft engineers quickly built a Groove-based system for operating LSU's Emergency Operations Center (EOC). The LSU EOC program takes advantage of Groove's synchronization infrastructure to allow disparate agencies (e.g., parish sheriffs, local ambulance companies) to federate with the EOC's systems without the overhead or maintenance of a VPN. By using SharePoint as the basis of the EOC's system and Groove to provide synchronization of SharePoint and InfoPath data, the EOC team can keep up to date.
From an IT perspective, Groove offers some interesting possibilities. Many users use Groove instead of the built-in Windows Client Side Caching (CSC) functionality; to do so, you set up a Groove workspace on your work computer, then use the built-in Export command to export your Groove account to a file. When you use the exported Groove account to log on to a different computer that has the client software installed, you'll be able to synchronize to your workspace and work with it locally. Of course, you can also invite others to the workspace—a key advantage over CSC. This simple method provides work-at-home capabilities for users who might not want to, or be able to, use VPNs to connect to your internal network. The decentralized nature of Groove workspaces is also a boon for geographically distributed teams; if you frequently find that you or some of your colleagues have to travel for implementation work, a Groove workspace might be a useful addition to your travel toolkit.
For end users, consider how you can use the synchronization and sharing features built in to Groove to improve the business processes you already have. Any process that depends on mobile or intermittently connected users should be evaluated to see whether adding a synchronized, P2P shared workspace might improve its timeliness or accuracy.