The Service Provider Interface APIs provide the ability to extend the Instant Messaging server functionality. The Service Provider Interface is composed of the following independent APIs:
An Archive Provider is a software module usually providing integration with the archive or auditing system. Each configured Archive Provider is invoked for each server process.
The Archive Provider is invoked for the following server processes:
When an instant message is sent, such as alert, poll, chat, news or conference messages.
During an authentication event, such as login or logout.
When there is a change in the presence status.
During a subscription event. For example, when someone joins or leaves a conference, or subscribes or unsubscribes to a news channel.
The application that uses the Archive Provider API are as follows:
Instant Messaging Archive
The default Instant Messaging archive in Instant Messaging is based on the Archive Provider API. For more information on Instant Messaging Archive, see Chapter 18, Managing Archiving for Instant Messaging.
The application that records the usage statistics for sizing purposes.
A Message Converter is invoked for every message or each message part going through the server. The Message Converter may leave the message part intact or modify or remove the message part. The text parts are processed as Java String Objects. The Message Converter processes other attachment as a stream of bytes and returns a potentially different stream of bytes, or nothing at all if the attachment is to be removed.
The applications that uses Message Conversion API include the following:
Virus checking and removal
Translation engine integration
Message content filtering
The Authentication Provider API provides the ability to deploy Instant Messaging in environments that are not using Access Manager password-based or token-based authentication service. This API is invoked whenever an end user requests authentication, and it can be used in conjunction with the LDAP authentication.
Single Sign-on (SSO) with Access Manager is performed using the Authentication Provider API. This API can also be used to integrate with other authentication systems.