12 Lotus Instant Messaging/Web Conferencing (Sametime): Building Sametime-Enabled Applications
the administrator to determine where and how the chats are stored, by
developing a DLL or shared library that implements the specified SPI.
The Sametime Chat Logging SPI is implemented as a DLL for the Windows®
operating system supported by the server and as a shared library for IBM®
AIX® and Solaris. The chat logging sample in the Toolkit is currently
implemented only for the Windows operating system with the Microsoft®
Visual C++ 6.0 Developer Studio SP5; however, AIX and Solaris developers
may use the same source files in adapting the sample for use in these
Token authentication: Sametime supports two types of authentication tokens
– Proprietary Sametime token
– LTPA token supported by Domino and WebSphere
This server side component allows you to customize Sametime for a different
kind of token generated in your deployment, by developing a DLL or shared
library that implements the specified SPI.
1.5 Why have Sametime-enabled applications?
Instant messaging and application sharing technology is essential for real time
collaboration, but having a contact/buddlylist as a stand-alone application limits
the user’s work process. In order to initiate contact, a user must stop what they
are doing and go outside of a specific application to communicate. Using Lotus
Instant Messaging technology and the available Sametime Toolkits, it is possible
to build custom applications which integrate presence awareness and chat
capabilities directly into the context of the application. This enables users to
communicate and collaborate
directly from within the context of the application
where they are working.
1.6 What’s new in the Sametime 3.1 APIs
Sametime 3.1 is a minor feature release that has two main objectives. One goal
of release 3.1 is to address and fix as many problems as possible that have been
reported by customers who use earlier versions of Sametime. The second
objective is to add certain key features that have been added due to strong
For the list of problems that have been fixed, you can go to the Sametime fix list
database on the Web at:
Chapter 1. Overview of Sametime 13
This following sections discuss the new features that were added in Sametime
3.1 that affect the various Sametime APIs. For the full list of new features (both
end-user feautres, as well as features impacting the APIs, please see the
“What’s new” section of the Sametime 3.1 Release Notes, found at:
1.6.1 Reverse proxy support
A Sametime 3.1 server can be deployed behind a reverse proxy server. End
users can connect to the Sametime server through the reverse proxy server. The
STLinks and Java Toolkit support reverse proxy environment in Sametime 3.1.
Reverse proxy support in STLInks Toolkit
There are two new variables declared in the stlinks.js run-time file:
ll_proxyName: The reverse proxy name
ll_AffinityId: The Sametime server affinity ID
These variables are commented out with a default value and should be modified
by the administrator when using a reverse proxy environment. The administrator
should change the default values to the real ones.
After setting those variables, STLinks Toolkit is ready to support a reverse proxy
environment. There are no changes in the API resulting from this new reverse
proxy support and no additional required code by the developer.
Reverse proxy support in Java Toolkit
There is no default support for a reverse proxy environment in the Java Toolkit.
However, a new API has been added to the Java Toolkit in order to allow
applications to take advantage of this support. The new API concerns the
connection classes like HTTPConnection, PollingConnection, and so on. In the
com.lotus.sametime.core.util.connection package, the Sametime development
team has added constructors that accept a URL parameter versus host/port in
the older constructors.
For example, we added a new HttpConnection constructor:
public HttpConnection(URL hostUrl, long timeout
Note: This new API (constructors) can be used for any other purpose than
Reverse Proxy support. It is important to understand that they are not
implemented directly for the purpose of Reverse Proxy behavior.