You check your morning's top tasks on your way to the IT Command Center. One of your power users makes a quick e-mail check as he hurries between airport gates. Your CEO confirms her next appointment as she exits the boardroom. Your star salesman rides the elevator up to his next sales call, briefly reviewing his client contact information. GroupWise Mobile Server has made everyone's life much more productive, not to mention less stressful, but supporting mobile users is only the beginning. The same technology that facilitates this synchronization between GroupWise and mobile devices can help you extend and customize GroupWise in countless other ways.
It's called SOAP—GroupWise SOAP, but officially known as GroupWise Web Services. Novell Connection magazine first introduced GroupWise Web Services in an article I wrote shortly after the launch of GroupWise 7, featuring a new SOAP interface. (See Please Pass the S.O.A.P.) In that article I went into detail about how GroupWise Web Services leverages the industry standards of SOAP, XML, HTTP and WSDL to enable direct client-to-Post Office Agent communication for accessing and manipulating data in users' mailboxes. I explained how it enables cross-platform development of back-end services that can do things like log in to a user's mailbox, retrieve address books and address book items, get a folder list and perform other client actions.
That said, I won't reprise all the details of that article here. Instead, I'll take you on an insider's tour of what's happened with GroupWise Web Services over the past year, how it's being used by Novell and some of its technology partners and perhaps spark some ideas on how you might be able to take advantage of it to enhance your GroupWise investment.
Proven Web Services Enable Powerful New Extensions to GroupWise
GroupWise Web Services were used to enable the mobile synchronization technology in GroupWise Mobile Server, powered by Intellisync, which was launched in June of 2006. In fact, GroupWise Mobile Server is the first major application built using GroupWise Web Services. The Novell GroupWise team designed GroupWise Web Services from the ground up knowing that it was going to be a server-side implementation for multi-threaded applications such as GroupWise Mobile Server. As a result, Novell went to great lengths to make sure its implementation of SOAP scales. The GroupWise Mobile Server is basically a synchronization and monitoring agent for the GroupWise data store, and GroupWise Web Services has become the great facilitator for these tasks.
On a GroupWise Post Office Agent (POA), you can enable SOAP listeners so that the POA can respond to data access requests from GroupWise Mobile Server or other SOAP clients. As a SOAP client, GroupWise Mobile Server can also register with GroupWise Web Services to be notified when certain events occur, such as adding or deleting an item from the mailbox folder, eliminating the need to continually dredge the mailbox for information and run comparison checks on that information to detect any changes.
For GroupWise Mobile Server, the process goes as follows (Note: This same process applies to contacts, appointments and tasks):
- A new e-mail arrives in Joe's GroupWise mailbox.
- The POA uses GroupWise Web Services to notify GroupWise Mobile Server that a new e-mail has arrived for Joe.
- After receiving the notification, GroupWise Mobile Server retrieves Joe's new e-mail message.
- GroupWise Mobile Server stores the e-mail message in its synchronized cache. If the "Push" feature is enabled, GroupWise Mobile Server will then send a notification to Joe's mobile device, along with the new e-mail. If not, the mobile device will get the information during the next scheduled synchronization.
- Joe has the option to immediately read the e-mail, reply to it, forward it or delete it.
The development phase of GroupWise Mobile Server allowed Novell engineers to resolve bugs and make GroupWise Web Services more stable. It also allowed for significant fine tuning to increase overall performance and scalability, resulting in a robust set of services for extending GroupWise.
During testing in the Novell super lab, hundreds of client machines and emulated mobile devices used GroupWise Web Services to access the GroupWise Mobile Server and GroupWise Post Office Agents. "We ran stress tests with GroupWise Mobile Server, SOAP clients and GroupWise clients to put a load on the Post Office Agent," says Preston Stephenson, senior GroupWise software engineer at Novell. "These tests allowed us to identify and fix bottlenecks, resulting in improved stability and increased performance and scalability of SOAP on the POA."
With the new interface to GroupWise proven by a major application, several other GroupWise developers have followed Novell's lead. A number of applications that use GroupWise Web Services are now available, and many more are in development.
It was the speed and ability to scale that prompted Research In Motion (RIM) to take advantage of GroupWise Web Services for the company's latest release of its BlackBerry Enterprise Server. The new SOAP-enabled release extends the benefits of GroupWise collaboration to mobile professionals using BlackBerry devices. "The efficiencies in the SOAP interface ultimately provide for a more scalable solution," says Jesse Boudreau, Vice President of BlackBerry Software at RIM. "The event-driven architecture of SOAP is a superior alternative to polling the GroupWise server at regular intervals. As a result, BlackBerry users will notice a marked improvement in delivery timelines for wirelessly synchronized items such as new contacts and updated calendar items."
Development Made Easy
Developers that have used the GroupWise Object API in the past should have little problem coming up to speed on GroupWise Web Services. They both use similar logic; it's just that they are packaged a little differently. One of the big benefits that GroupWise Web Services provides developers is that you really don't need to understand SOAP, XML or HTTP to take advantage of it. (See Figure 1.) This is in large part due to the GroupWise Web Services Description Language (WSDL), which describes what operations GroupWise Web Services can perform and how to talk to them. It also shows you the methods that GroupWise Web Services expose.
Most development frameworks support Web Services, and these frameworks allow you to import a WSDL file. The framework then creates a library that developers can use to access the Web Service. The frameworks hide the complexities of SOAP, XML and HTTP, so developers only need to be concerned about the business logic for the application.
Messaging Architects has leveraged GroupWise Web Services in its GWArchive product, an enterprise-level e-mail archiving solution for GroupWise that addresses retention, storage and regulatory compliance requirements. But the ease of development is just one of the aspects of the SOAP interface valued by Messaging Architects. "The SOAP interface for GroupWise offers us the flexibility we need to design solutions that can integrate easily into our customers' production environments," says Nick Stefan, Vice President of Research and Development at Messaging Architects. "The enhanced SOAP API capabilities also allow us to deliver a superior set of features in the applications that we build on this framework."
The development team at Messaging Architects also appreciates the fact that GroupWise Web Services enables them to create client-side applications with small memory footprints. Since the SOAP protocol is stateless, it doesn't require SOAP client applications to maintain an internal state. Instead, client applications simply use GroupWise Web Services to make requests to the Post Office Agent for data as needed. Client applications can decide what information they need to preserve based on their own requirements and then allocate memory accordingly.
Charles Taite, Chief Executive Officer and Chief Technical Officer at GWAVA, agrees that GroupWise Web Services has simplified the development efforts for his engineering team as well. Currently, GWAVA has three shipping solutions that leverage the SOAP interface, with seven more to be released later this year. "SOAP has significantly shortened our development cycles," Taite says. "That means we have more time to develop new products." Taite also indicates that since the SOAP interface is easier to develop with, feature requests from customers that were too difficult to consider before are now much easier to accommodate. As a result, GWAVA can say "yes" more often to customer feature requests.
The bottom line is that whether you are an in-house developer or an ISV, GroupWise Web Services definitely makes it easier than ever before to create solutions that extend and enhance GroupWise. Still, there are a few things that you need to be aware of when using the service, especially if you have used the GroupWise Object API in the past.
Because Novell had control of all the code with the Object API, Novell would cache certain things, such as folder lists and other data, to improve performance. When you use GroupWise Web Services, you need to take that responsibility upon yourself to improve performance. You also need to be aware that SOAP calls are more likely to produce a greater amount of protocol traffic between the caller and the GroupWise POA. So it's important to monitor that traffic during testing and make adjustments as necessary.
Additionally, with the Object API, Novell managed a connection between the client and server, so you only had to call into a library that handled that connection management. Because GroupWise Web Services is a connectionless protocol (as are most Web protocols), you need to make sure you manage your connections and timeouts. In most cases, your development framework will handle that for you, but as a developer you still need to be aware of the connections and timeouts that could occur. If you have questions about some of these issues, the developer support forum at forums.novell.com is a great place to turn to. The specific forum for GroupWise Web Services is called novell.devsup.gwsoap.
Develop GroupWise Solutions for Windows and Linux
While all the developers that Novell Connection talked to for this article enjoyed the performance, scalability and ease of development offered by GroupWise Web Services (See SOAP in Action), nearly all agreed that one of the most significant benefits it provides is that, unlike the Windows-only Object API, it makes it easy to develop applications that work well on both Linux and Windows.
Since 1998, Maintainet AG has been developing a variety of different GroupWise solutions. Like other developers, in the past they had to rely on the GroupWise Object API and Admin API to interface with GroupWise, limiting them to developing GroupWise clients on Windows. For Maintainet this wasn't a big problem until Novell made GroupWise available on Linux.
"One of our solutions is a team planner for GroupWise that allows you to select multiple users and then display all of their appointments over a period of days, weeks or whatever you choose," says Uwe Carsten Krause, CEO of Maintainet AG. "With the Object API we could not port this to Linux. With GroupWise SOAP, we now can. Even better, we can make it Web-based. In addition, our GWArchiveManager and GroupWise SEC products are now platform-independent thanks to SOAP. "
In regards to this cross-platform capability, GWAVA's Taite says, "At GWAVA, we have always strived to offer cross-platform support, but until the availability of the SOAP interface, it had been a time-consuming and expensive exercise. We can now offer cross-platform support on all our products, whereas in the past, some software functionality was simply not possible. Also, supporting multiple operating systems takes less time and is therefore less expensive, which means we have more time to develop brand new products for GroupWise."
An Exclusive Event for GroupWise Developers
Last month GroupWise experts from around the world converged on Brugge, Belgium for the GroupWise EMEA Summit, organized by members of the user community. One of the hot questions on the minds and lips of attendees was "What exactly is GroupWise Web Services and what can it do for me and my company?" The short response was that GroupWise Web Services provides server-side access to user accounts, allowing client applications to read, modify and write messages, address books and folders; however, it was the news of the service's event-monitoring capabilities that really excited attendees.
"GroupWise Events notifies an application when an event occurs within a user's mailbox," explains Tim Draper, lead developer for GroupWise Web Services at Novell, and a presenter at the summit. "This is the first time that non-Novell client applications have been able to be notified when an event occurs, such as an item being deleted or a new e-mail arriving. This capability was extremely interesting to GroupWise Summit attendees."
NetCB, which is currently using the SOAP interface in its GroupWise integration for EMC's Documentum eRoom, uses GroupWise Events to make sure appointments created in GroupWise are replicated to eRoom calendars. "GroupWise Web Services provides a far easier method to access the GroupWise information store," says Cobus Burgers, CEO of NetCB and one of the GroupWise experts that presented at the summit.
"GroupWise Web Services is the best thing that has happened to GroupWise in the last ten years," agrees Tommy Mikkelsen, a senior consultant for IT Quality in Denmark, and another expert at the conference. "GroupWise Events are a great improvement over past interfaces, since developers no longer need to scan a mailbox at scheduled intervals. Instead, they can react instantly."
It's SOAP Time
While there is growing momentum and increased interest in the GroupWise developer community around GroupWise Web Services, third-party developers aren't the only ones that can benefit from this proven interface. Any GroupWise customer can use GroupWise Web Services to develop custom solutions that boost user productivity. GroupWise Web Services provides a simple, straightforward way to extend GroupWise. It's been fine tuned for performance, stability and scalability. It simplifies the development of cross-platform solutions. Novell uses it in its own products. Major third-party developers use it. If you need to view, manage and manipulate the information stored in your GroupWise data store in a unique or custom manner, maybe it's time you started using SOAP too.