Large enterprises considering a realtime platform will want to also consider the platform's development potential. Both Lotus and Microsoft provide toolkits to let developers call the messaging server and invoke certain realtime functions.

Lotus provides separate toolkits (which were in beta when we did our research) for Java, LotusScript, and C++. Lotus provides two APIs—the Community Services API, which covers instant messaging (IM)-related features and basic Sametime functionality such as logging on to the server, and the Meeting Services API, which covers conferencing features.

Calls to the Community Services API can automatically trigger any standard Sametime IM function. For example, you can use the API to write an application that automatically sends any error messages that another application generates as instant messages to the appropriate person. The API also lets you integrate the awareness view into any application.

The Sametime toolkits let you build live names into applications or Web sites. Live names are links on Web pages. When you click a live name, you instantly begin an IM chat with the named person. This name can let Web visitors see whether the named person is online and available for communication. For example, we could put on our Web site a live-name link to C. Thi Nguyen and create a traffic-light graphic that turns green when Thi is online. When he is, a visitor could click his name and open a chat with him. (Sametime Server pushes a Java applet version of the Sametime client, letting Web users who don't have a Sametime client communicate with Thi.)

One unique tool in the Sametime toolkits is the WhoIsHere call, which lets a user at a certain place know who else is at the same place. For Sametime, a place is any string; a URL, a database ID, or a document name can function as a place. For example, if several users are accessing the same file on a particular server, those users are at the same place. With Sametime, those users can see that they are at the same place and can chat.

Sametime's WhoIsHere call lets you, for example, set up a Web page that can tell visitors who else is viewing the page concurrently and let them send instant messages to one another. However, enterprise network structure confines this sort of functionality; that is, you'll see only whether other people from your Sametime community are visiting a place. (Administrators set up Sametime communities and typically define one for an enterprise.) The place itself doesn't need to be inside your company's network. For example, you could set up an application that, when you browse to the CNN home page, lets you know what other Sametime users from your company are also viewing the page.

Microsoft's software development kit (SDK) for realtime applications was in beta at press time and wasn't as thoroughly documented as the Lotus toolkits. However, we talked to some members of the design team and gleaned a little information.

The SDK has two components—a client-side component and an administration-side component. According to the Microsoft team, you can use both components with "pretty much anything—C, Visual Basic, Java, HTML." Microsoft explained that the administration component is primarily for automating and scripting management functions for the IM and meeting server.

The client-side component consists of two ActiveX components. Like the Lotus toolkits, these components let you set up live names in Web pages and automatically send instant messages or email messages. The components don't have a single call equivalent to Lotus' WhoIsHere call, although Microsoft said you could construct that functionality yourself rather easily. Most interesting are the features that Microsoft calls extensible actions, which let you easily add to any application actions that invoke IM. For example, you could have a workflow application let you launch an event such as a NetMeeting with another user when that user comes online.