HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

In my spare time I participate in a nonprofit entity along with a number of other busy colleagues. Most of the hard work is done in our spare time and we occasionally meet to polish the work.

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.

It quickly became clear that some sort of collaboration tool was in order.

Enter Groove
Then a colleague recommended Groove Workspace, a peer-to-peer collaboration product from Groove Networks. The Groove Workspace (see Figure 1), or just "Groove," allows users to create a workspace that can contain a number of tools such as Calendar, Contact Manager, Discussion Manager, File Sharing, and more. Once the workspace is created, the owner can share the workspace with others by sending them an invitation. When a user accepts a Groove Workspace invitation, the workspace is replicated to their local Groove desktop. Users can then work in the environment and Groove manages the synchronization among all users of the workspace.

Figure 1

Features
Here are a few of the features you'll find in Groove 2.5 Workspace:

  • Autonomy: Groove is a desktop application that requires no server setup. Users are in full control of their shared spaces!
  • Distributed transparency: Seamlessly connects users across enterprise boundaries without imposing special setup requirements.
  • Disconnected productivity: Allows the user to continue to work while disconnected. Work is stored for later update when the user is back online.
  • Context: All information shared by the team is captured in a single space. Members can see the entire history and progress of work in the space.
  • Security: All content is encrypted on disk and over the wire.
  • 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.

    Figure 2

    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

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.