We started out collaborating in the endeavor in the typical ad hoc
fashion, using e-mail for discussion, activity coordination, and file
sharing. This mechanism quickly became awkward and unworkable. Long
e-mail conversations lack context, unless of course you include the
previous message. But then, after a few exchanges, distinguishing the
response from the context becomes awkward.
Web services: Best of all, features can be accessed as a Web service.
Enterprise Integration Server
Groove Networks has created an integration server that allows
companies to deliver enterprise information through the Groove
Workspace environment, allowing automated discovery and connection to
users on the desktop. This feature is delivered through agents (Bots
in Groove terminology) that plug into this server.
Agents can be developed to manage communications between Groove
shared spaces and a variety of external systems such as ERP, CRM, and
knowledge management systems.
The Web Service Groove
You may ask, "What does this have to do with Web services?" Well, as
Groove Workspace has moved into the enterprise workplace, it has
become clear that, although the integration server works well at
bringing enterprise resources into the workspace, the ability to
expose Groove's capability to other applications on the desktop and
in the enterprise is still needed.
Enter Web services. Groove has decided to expose its core
functionality as Web services for access by other parties through
SOAP. This makes it possible to access Groove data from a separate
process using any number of SOAP-enabled toolsets.
Local Versus Remote
The current version of Groove Workspace allows Web service access
from the same machine as the running workspace - called Local Groove
Web Services. This release also includes a preview version of Remote
Groove Web Services, which allow access from other network endpoints.
The Remote version is considered a preview because Groove Networks
has not fully worked out the security model and should therefore not
be used in production environments. I'll focus on the local Web
services.
Getting Started
In order to start developing a local client you'll need to install a
copy of the Groove Workspace application as well as the free Groove
Web Services GDK (Groove Developers Kit). The GDK comes with ample
documentation, sample SOAP clients, WSDL and XSD files, and
utilities. Support for developers is provided through the Groove
"devzone" site.
The samples provided with the GDK are written in C# and Perl. I was
able to compile and run the C# Groove Explorer client quickly and
without a hitch. Keep in mind that you'll need to have the Groove
Workspace running in order for the clients to work. Otherwise,
they'll just time out with a connection error. If the workspace is
running but you aren't logged in, the authentication panel will pop
up when a SOAP request is sent to the GrooveAccounts Service. This
may seem odd initially but makes sense since only local clients in
the same Windows account can send requests to the GrooveAccounts
Service and are likely to have come from an integrated desktop
application.
The Groove Explorer shown in Figure 2 gives you a good feeling for
the types of information you can request by showing a hierarchical
view of the Groove Environment.
Security
The Groove Environment enforces Local Web Service access restrictions
by requiring a special Groove Header in the SOAP request that must
contain a "WebServicesNonce" value. This value is generated and
stored in the Windows registry each time the Groove Workspace starts.
SOAP clients must retrieve this value from the registry and pass it
in the Groove Header along with each SOAP request. The Groove
Environment checks this value for each request and rejects those that
don't match. The mechanics of the access to Windows registry data
ensure that the request has come from a client running under the same
Windows account. As a developer who favors the Java programming
environment this led to some consternation. Java doesn't provide for
Windows registry access (it's not portable) so I would need to write
a small native method and call it through JNI (Java Native Interface,
Yuk!). Luckily the Groove Developers Zone provides sample JNI code to
assist with this requirement.
SOAP Endpoints
Since the Groove Workspace is a very fluid environment, workspaces,
tools, and other features can appear or disappear from the
environment due to changes by its members. This means that SOAP
endpoints also become moving targets and must be generated on the
fly. Most Groove services return URIs that can be used to generate
POST URLs for SOAP requests. For example, The GrooveAccounts Service
returns URIs for all GrooveSpaces for
an account. Each URI is appended to "http://localhost:port-number"
and used as the SOAP endpoint for a GrooveSpaces SOAP request. This
method propogates as each space will return the list of Tools (URIs)
contained by it for use as endpoints for SOAP requests to the
GrooveTools service.
Conclusion
The Groove Workspace product makes clever use of the peer-to-peer
model to facilitate on-the-fly collaboration while making setup and
administration almost nonexistent. The enterprise features allow
corporations to develop Bots that allow Groove users to access
corporate resources from within its collaboration environment.
Finally, SOAP access to Groove services allows developers to
incorporate and control Groove's features from core business
applications.
Company Information
Groove Networks, Inc.
100 Coummings Center
Suite 535Q
Beverly, MA 01915
Phone: (978) 720-2000
Fax: (978) 720-2001
Web: www.groove.net
E-mail: info@groove.net
Download information
Groove Workspace 2.5: www.groove.net/downloads/groove
Web Services GDK: www.groove.net/devzone/default.cfm?pagename=GWS_GDK
Licensing Information
Developer Licenses:
Groove Developer Kits Free
Developer Partner (Premium Support) $1495
Groove Networks recommends that developers purchase the Professional Workspace Edition (see below)
Runtime License:
Groove Professional Workspace Edition $149
Groove Workspace Professional Edition Upgrade $105
Groove Workspace Standard Edition $69
Testing Environment
OS: Windows-XP Professional (Service Pack 1)
Hardware: Intel Pentium III: 996MHz - 512MB RAM
Author Bio
Paul Maurer is a principal in the Financial Services practice of a leading consulting services company.
paul@paulmaurer.net
All Rights Reserved
Copyright © 2004 SYS-CON Media, Inc.
E-mail:
info@sys-con.com