Microsoft Office Groove 2007
Author: Matt Nicholson
One of the most exciting additions to 2007 Microsoft Office System is the collaboration
tool Office Groove 2007. Although new to Office System, Groove actually started
life in October 2000 when Groove Networks shipped the first beta version. Microsoft
acquired Groove Networks in April 2005, which brought not only Groove Virtual Office
3.1 but also Ray Ozzie, the company’s influential founder.
Ozzie has long been interested in collaborative applications, having founded Iris
Associates in 1984 with funding from Lotus Development to create the product which
eventually became Lotus Notes (now owned by IBM). Following the acquisition, Ozzie
joined Microsoft as one of three Chief Technology Officers and quickly made his
mark with his controversial open email ‘The Internet Services Disruption’ (see www.scripting.com/disruption/ozzie/TheInternetServicesDisruptio.htm).
In June 2006 he took over the role of Chief Software Architect from Bill Gates.
Getting in the Groove
All of which clearly makes Office Groove 2007 a highly significant product for Microsoft.
Groove is perhaps best described as a peer-to-peer environment for creating and
working in shared workspaces. Once you have installed the Groove client you can
start creating workspaces that contain the information you want to share with your
colleagues. At the simplest level a workspace can simply be a folder on your desktop
containing files that other team members need to access. Alternatively it can contain
any of the more sophisticated collaboration tools that come in the package, or that
you create yourself.
Once you’ve created a workspace you can start inviting colleagues to join. If your
colleagues have already installed Groove then they will receive the invite as an
instant message within the application itself. Otherwise invitations are sent as
standard email messages which include instructions on how to download a trial version
of Office Groove 2007. Once they accept the invitation, and have Groove set up on
their machine, they receive an exact copy of the workspace, either from you if you
are online at the time, or from any other workspace member who happens to be connected.
Once a workspace is established, any of its members can work on its content, whether
they are connected to the Internet or not. A full copy of the data associated with
each workspace is stored in encrypted form on each member’s desktop, while behind
the scenes, each copy of Groove is busy keeping each copy of the workspace up-to-date
in an intelligent fashion, transmitting encrypted ‘deltas’ between members which
contain just the information that has changed. (This makes it particularly efficient
for teams that need to work with particularly large files.)
This is the beauty of Groove. Workspaces can be shared across organisations and
even to roaming users who are only intermittently online, perhaps through a public
wireless access point when they can find one. Data is distributed across all the
workspace members rather than stored in one central server. Furthermore, because
only encrypted ‘deltas’ (in other words distributed transactions) are transmitted,
rather than full copies of each file, data exchange is very secure. This is particularly
important when workspace members can come from both inside and outside your organisation’s
The main control panel for Groove is its Launchbar (shown above). Here you see a
list of the workspaces that you have created or joined, and a contact list that
displays the status of other members: whether they are online or not, and whether
they are active in any of the workspaces. Workspaces which have changed since you
last visited are highlighted.
You can also chat to other Groove members from the Launchbar. Chats work in much
the same way as they do in Windows Messenger, for example, except that you can save
a chat as a Groove workspace if it looks as though it may be of lasting value. Alternatively
you can chat from within an existing workspace, in which case the chat is automatically
saved as part of the workspace.
Groove is particularly good at reporting ‘presence’. You are kept constantly up-to-date
as to who has joined a workspace and which tool they are using , all of which enhances
the feeling that you are sharing a ‘virtual office’.
A file-sharing workspace is simply a folder on your desktop that has additional
functionality showing you the status of other members of the workspace, and allowing
you to chat with them. Alternatively you can create a Standard workspace that contains
not only a space for sharing files but also a Discussion tool where members can
conduct threaded conversations.
Going further you can create workspaces that contain any combination of the tools
that come with the package, or any that have been uploaded by other users to the
Groove Web site. Available tools range from collaborative games such as Chess and
Reversi through to shared calendars, a drawing tool, a meetings organiser and a
pictures organiser. New to the Office Groove 2007 is a SharePoint Files tool which
allows your workspace to include documents that are stored in SharePoint libraries.
As we shall see, creating your own Groove tool is straightforward, thanks to the
built-in forms designer. Here you can design a form specific to your needs so that
team members can input, edit and share data about, for example, the status of the
project. Also new to Office Groove 2007 is the ability to import forms created using
Office InfoPath 2007.
Groove can work in a purely peer-to-peer manner, but generally functions better
with the help of a number of centralised services.
For example, when you first install Groove you create a Groove account. This is
a file stored on your computer that contains details about your Groove identities
and the cryptographic keys associated with them, details about the machines on which
you run Groove, references to the workspaces which you have created or joined, and
so forth. You can access your account from more than one device simply by copying
the file to another machine.
One of the options you are presented with when you create your account is to have
it listed in the Groove Public Directory. This is a centralised service maintained
by Microsoft that makes it easier for you to find other Groove users, wherever they
However the big problem is synchronisation. Keeping a purely peer-to-peer system
synchronised is only practical if most of the clients are connected most of the
time by a relatively fast network. If one client disconnects and then reconnects
at a time when all the other members of a workspace are disconnected, then that
client won’t be updated with any of the changes that the others might have made
in the meantime. If any of the clients are behind a firewall, they won’t be able
to directly receive deltas that originate outside the firewall, either.
Microsoft gets around this by offering a central relay service. In a situation where
some of the members of a workspace are disconnected – perhaps because they are in
an airplane on route to their next meeting – changes that are made by the connected
clients are sent to the relay server where they are held in a queue, ready to be
forwarded. When the plane lands, and the client re-connects to the Internet – perhaps
through a wireless network at the airport – it automatically downloads these changes
from the relay server and sends out any changes that its user made while in flight.
To partake you need to subscribe to Office Groove Enterprise Services. Alternatively
you can purchase Office Groove Server 2007 which gives you your own relay service,
used only by members of the organisation’s workspaces, and full administrative control.
Nevertheless Groove remains essentially a peer-to-peer system as the relay service
is only used to store-and-forward the deltas, and does not contain a full copy of
the workspace. This is only held on the member’s machines, giving each member local
access whether they are online or offline.
Building Groove tools
The Groove client comes with a tool designer that is intuitive enough to be used
by not only developers but also ‘power users’ looking to quickly put a tool together
that will help them with a particular project. When you build a tool you are putting
together an interface to a record-oriented database which is automatically synchronised
across workspace members. Each record is a collection of fields that you define
in the designer and then lay out on a Form. Each Form is accompanied by at least
one View which displays the records in a list, showing just the fields you have
selected in the order that you have specified. A typical example is the built-in
Discussion tool which was actually put together using the Groove Forms tool designer.
Add a new Forms tool to a workspace and Groove automatically creates a Design Sandbox
in which you work. Once you’ve created your form you can then save it so that you
can continue working with it at a later date, or publish it in which case it becomes
part of the workspace and visible to the other members.
The Design Sandbox is a local copy of the design of the form, allowing you to make
changes which are not seen by the other workspace members until you publish them.
This can cause problems if more than one member decides to edit the same form at
the same time, as the last person to publish their changes will overwrite the design
changes made by everyone else, so members do need to cooperate here.
Creating the fields and designing the form is very intuitive and largely wizard-driven.
Field types include not only text, number and date fields but also option buttons,
drop-down lists, password entry, contact (for selecting Groove users), various design
elements such as headings and rules, and a Script Button whose action can be defined
set properties such as formatting, validation (principally upper and lower values)
and how the field should be labelled.
Any fields you create are listed alongside the System Fields, such as the author’s
name or the date created, ready to be placed on your form. Here you are given all
the tools you could need to create a professional-looking form that can include
grouped items and multiple tabs.
One option that will be of more interest to developers than power users is ‘Show
Advanced Design Features’. Select that and more design options appear, including
an ‘HTML Source’ tab next to the Preview tab in the form designer. Select this and
you will see that behind the scenes your form is actually written in standard HTML.
You can’t directly edit the HTML, but this is useful for checking object names.
Other advanced facilities include the ability to add both scripts, which are run
automatically when the user is working with the form, and macros, which are available
or VBScript using a basic code editor that provides little help, although it does
include a wizard for creating Lookup Strings that can take values from other forms
to, for example, populate a list box. These forms can be in the current workspace
or can come from other workspaces to which the workspace members have access.
There is also an option to create new styles for your form. You define these using
Cascading Style Sheets (CSS), much as you would a Web page.
An alternative to Groove Forms are Groove InfoPath Forms which you build using Office
InfoPath 2007. Just as with Groove Forms, you can create Views of InfoPath data
grouped and sorted in various ways. Groove InfoPath Forms are better at handling
more complex data structures, such as repeating sections. However anyone trying
to access them needs to have InfoPath 2007 installed on their machine. Note also
that Groove InfoPath forms run within a sandboxed environment which means they cannot
interact directly with external data.
In a corporate environment, Groove really comes into its own when linked to back-end
applications that run behind the firewall. Once this is done, Groove users can interact
with mission-critical business systems in an ad-hoc and yet secure manner that opens
up all sorts of new possibilities.
This integration is achieved through Web services. The Groove 2007 client application
functions as a server, exposing the Groove Web Services API which gives external
applications access to Groove workspaces, to the data stored in Groove Form tools,
and to members through standard SOAP calls.
Developing against the API from Visual Studio involves loading the appropriate WSDL
document (installed as part of the SDK) which gives you access to the services exposed
by the local instance of the Groove client. You can then write applications that
interact with the data available to the Groove client. Microsoft has said it wants
to support Groove transactions in Windows Communications Foundation (WCF) and Web
Services Extensions (WSE), but this is for the future.
The Web Services API gives you access to accounts, allows your application to detect
presence and send messages, invite people into workspaces, access data within workspace
files and forms, and navigate users to particular places within the local copy of
Groove. It also supports events so that your application can respond if, for example,
a new file is added to a workspace. Accessing Forms and InfoPath Forms is very similar,
in that the Web Services return DataSets containing records. If it is an InfoPath
Form then the InfoPath XML file is delivered through a binary field.
Entities, such as files inside a workspace, are accessed through a URL (Uniform
Resource Locator). You can then manipulate the entity by sending SOAP messages to
the URL that define the action you want to perform. Some of these URLs are defined
in the SDK while others are returned by Groove in response to the appropriate messages.
As a result code can end up looking pretty verbose, so Microsoft recommends creating
a ‘managed wrapper’ before you get in to application specifics.
Security is paramount to Groove, so every SOAP call must contain the appropriate
security identifier in its header. This is obtained from the local registry and
changes from time to time. Every response contains an authentication key so you
can be sure it actually came from the local instance of Groove.
The type of application you might build would be to integrate your Groove workspace
with another desktop application, such as Office Excel or Outlook, or to create
a specialised desktop client to a Groove workspace. For more heavy weight integration
to back-end databases or business applications such as SAP or Siebel, Microsoft
supplies the Groove Data Bridge.
This is a 64-bit server-based version of the Groove client. The Data Bridge can
create workspaces and be invited into any workspace just like any other client,
and it maintains an up-to-date copy of the workspace just like any other client.
It even appears in your contact list like any other workspace member. It can be
used for other purposes too. For example, one of the applications that come with
the Data Bridge allows it to make scheduled backups of any workspaces to which it
You integrate the Data Bridge to back-end services by writing against the Groove
Web Services API, which it exposes just like any other client. Your application
effectively becomes the middle tier of a three tier application with the Groove
workspaces at the top, and the back-end services (or the database) at the bottom.
For example, you could use the Data Bridge to connect to your ordering system. You
could then arrange for a workspace to be created automatically when an order is
placed, and have invites sent out to the people who need to deal with it. Data Bridge
allows you to get business data out into Groove workspaces where it can be worked
on in a secure fashion by people who are outside the scope of your IT system, such
as partners and customers.
For the developer, Groove is an exciting platform on which to build collaboration
tools that can be shared in a flexible fashion both inside and outside the organisation.
It also provides the tools you need to integrate these with both Office SharePoint
and with core back-end applications without compromising security.
You can download the Groove 2007 Software Development Kit (SDK) from http://msdn.microsoft.com/office/download/sdk/.
About the author:
Matt Nicholson is publisher and editor of the
DNJ Online web site at http://dnjonline.com