Groove Networks Inc. is a good example of a company that will soon be benefiting big time from a major move into the .NET/Intel Pentium IV-Itanium development genre.
The Beverly, Mass.-based peer-to-peer business software company started out five years ago by utilizing two of the most solid standards in the world, Visual C++ and Visual InterDev, to build its core business application. Now that it has moved into the Web services sector, it requires new tools to do a new job; in the near future, it will be using .NET more and more to construct its applications. And it is asking its own development community to do the same.
Back in February, the company announced a recommendation for Visual Studio .NET as the preferred tool for the Groove community. In the first quarter of this year, Groove shipped a Groove Developer Pack that supports the use of Windows Forms for creating Groove tools and applications. By the end of the summer, the company will provide an add-in module for Microsoft Visual Studio .NET that will make it much easier for developers to create Groove tools and applications in a familiar, language-independent environment.
"The text-based approach to developing tools and applications for Groove is just too cumbersome for most developers," said co-founder Jack Ozzie. "With our support for Windows Forms, and the development of our Groove Toolkit for Microsoft Visual Studio .NET, we will cut the time it takes developers to build Groove tools or applications by 75 percent, or more.
"In the short term, the message is quite simple: If you use Windows Forms to build applications today, then you can develop tools and applications for Groove as well. Moreover, the .NET applications you build can automatically inherit the people-to-people peer services that the Groove platform provides."
All these applications and tools are optimized for use on Pentium IV and Itanium processors. "It makes perfect sense that any kind of decentralized P2P application like Groove has to have high-performance processors," Groove spokesman Ryan Hoppe said. "And Pentium IV and Itanium chips are extremely high-performance."
Groove in a nutshell
In brief, Groove Networks "provides software and services that enable organizations to extend critical business processes, projects and meetings across time, space and organizational boundaries," its mission statement reads. Ray Ozzie, who founded Groove Networks in October 1997, is best known as the creator of Lotus Notes, a popular groupware product with more than 75 million users worldwide.
The privately held company currently sells its products and services through a direct sales force with offices throughout the United States and in the United Kingdom. Since its founding, the company has obtained more than $117 million in financing from Accel Partners, Microsoft Corp., Intel Capital, and private investors.
Essentially, Groove Networks provides an interactive, decentralized environment for small- or large-group collaboration, unencumbered by geography or time zones. Changes to documents can easily be shared and/or recorded for all team members. "Because of this feature, it's an ideal platform for international collaborative software development," product manager John Giudice said.
Groove Application Summary
| Application | Groove |
| Developer(s) | Eric Patey, Jack Ozzie, Ken Moore, Ray Ozzie |
| Tools Used | Original applications in Visual Interdev, C++; Visual .NET for Web service design and implementation |
| Primary revenue source(s) | Sales to companies |
| Development environment | JavaScript, Visual C++, Visual .NET |
| Device platform(s) | Windows OS family; applications are optimized for Intel Pentium IV processors |
| Web servers | IIS |
| Application servers | Proprietary internal |
| Database servers | Internal SQL |
How the business premise works into the software
"As we all know, business in prior years meant that people used regular e-mail or passed files from person to person," Giudice said. "We saw a lot of frustrations in passing documents around the world. With our product, people have immediate access to information, whether they're online or offline. We automatically sync up information so there's no user involvement."
What about secure documents? Isn't it dangerous to have everybody linked like that? "Everything is kept secure at all times, without explicit user action needing to be taken," Giudice said. "That's one of the key selling points of Groove."
How it all developed
In 1997, the company founders started prototyping ideas on collaborative information, and after about two years of research, a first-generation implementation was built. "We first showed people our prototype in a special preview in October 2000," Giudice said, "and Groove Version 1.0 shipped in April 2001." One of the first customers was GlaxoSmithKlein (GSK), one of the world's largest pharmaceutical companies. Then came the federal Defense Advanced Research Projects Agency (DARPA), and the company was one its way.
"That's when the founders started recruiting people to Groove," Giudice said. "We looked for people with credibility to build this solution; people with expertise in security, Web technologies, client-side technology, and others." About one-third of the Groove staff of 260 are developers, Giudice said.
How Groove makes its money
Fundamentally, Groove sells its software to companies and other organizations. It also offers a hosted servicea server-side version of the same collaborative application. "That give us the option of selling customer the servers as well," Giudice said.
"We want to make it easy for customers to add value besides the app itself; we also provide an open environment that gives developers a full access to Groove programming and APIs. We expose a lot of the technology through COM objects. Soon we'll also have add-ins for SOAP," Giudice said.
Groove's platform is a two-way SOAP provider and consumer. "Some enterprises want to have full control of their software, and they want to be able to extend that with collaborative tools. We provide those tools," Giudice said.
Groove's first move into Web services
Under project leader Matt Pope, Groove is building its first Web services product-an application called Groove Edge Services. This is a protocol-level "open" services development framework that employs standard Web services technologies, protocols, and methodologies. Specifically, it allows a Groove client to serve and consume SOAP services. "We will offer Groove platform objects (COM interfaces) as SOAP services, callable from either a remote application or from a local application," Pope said. "Whereas Web services are primarily about application-to-application integration, Edge Services extend the reach of Groove's network."
(For more detail on Groove Edge Services, see our interview with Pope.)
Behind the scenes in the user experience
When a user starts up Groove, he or she gets immediate online access to a folder with documents that are being updated in real time by other members of the "secured shared space." The user can make any changes necessary, and they will be made available immediately to other team members. "Groove 2.0 (which began shipping April 15) has a new document review tool and threaded discussion for both online and offline work," Giudice said. "It's great for administering project tasks."
"We use what we call a recordset that's wired to the UI," Giudice said. "When the user makes changes and modifies a record in the recordset, that change (called the
delta) is disseminated to all users in a shared space." Members who are online get the change right away; offline users get the changes stored in a queue relay, Giudice said, so they will be available as soon as they log on. The key to this process, Giudice said, is that the software assigns a unique number to each change as it's made, and all changes are processed automatically in sync with everybody else in the space.
Sometimes changes to a document collide, Giudice said. That's when Groove developers had to make a big decision on how to let the user handle it. "We had a few choices. We could have the latest change override everybody's; we could have a branching system that put aside changes until implemented by the user; we could have a tier-based system in which certain people's changes override others; or we could let the individual system owner choose. We opted to let the customer choose which option to use," Giudice said.
How Groove approaches error-handling
A typical problem is when changes to a file come in at the same time in the File Manager tool, Giudice said. "Because each change has a unique ID number, if I lose my change, Groove will interrogate all the other members of the shared space and bring it back into the document," he said. "This all looks very seamless to the user. Only people in the shared space can see the updates."
A major challenge faced
"By far, the most difficult challenge for us was how to make this easy to use," Giudice said. "As it is now, users don't have to worry about security, synching, recovery-even whether they're online or offline. It is automatic at all times."
Firewalls are another big issue. However, Groove has the ability to automatically cross firewalls. "We do this by wrapping all the changes (to the document) in HTTP and use Port 80," Giudice said. "Groove seamlessly works through firewalls. When you're on a deadline or in a hurry, you often can't get through to somebody via simple e-mail. It's a very nice feature to have when you need it, which could be at any time."
Resources:
Groove Platform
Screenshots
Tools built by Groove Networks
Tools built by Groove partners
Groove Development Kit