Cross Platform Instant Messaging using Web Services
Original Publication Date: 2002-Jun-07
Included in the Prior Art Database: 2003-Jun-21
The present invention describes the use of Web Services and a Universal Discovery, Description, and Integration (UDDI) business registry to provide the required interoperability between users of different Instant Messaging clients running on potentially different platforms. A UDDI registry maintains information about businesses (businessEntity), the services they offer (businessService), and the interface(s) required to access a service (bindingTemplate). Each service conforms to a given specification (or version of a specification) which is described by a technical model (tModel). To achieve interoperability among Instant Messaging clients, each of the required services would be described using WSDL (Web Services Description Language) and be invoked using SOAP (Simple Object Access Protocol). The services are registered in a UDDI compliant registry, thus allowing any client application that can create and send messages over SOAP to dynamically discover users, their current IP address, and their preferred Instant Messaging protocol. Upon discovering the information required for communication, the client application can then communicate directly with the intended partner using its preferred protocol or alternatively can invoke an additional Web Service, possibly provided by the registry itself, to communicate with the intended partner. Implementation of the cross-platform instant messaging services comprises the following steps: 1. For each available IM protocol, define a tModel to represent it and a corresponding WSDL document that describes the interface, including method names, parameters, and return values. Access to proprietary protocols may require restricted access which can be achieved using the authentication mechanisms of the UDDI registry. Emerging standards such as Common Profile for Instant Messaging (CPIM) may be implemented right away. 2. Define a tModel for each of the services that a client application would need to interact with. IMUserReg is a service that allows a client application to register a given username, hostname, IP address, and preferred IM protocol. IMUserLookup is a service that allows a client application to lookup any desired communication partner by username or hostname to obtain their current IP address and preferred IM protocol. IMMessageDispatch would be a service that actually takes the parameters necessary for sending a message (username, IP address, and tModelKey of the IM protocol to use) and sends the message directly to the recipient on behalf of the client invoking the service. Alternatively, this service is not provided and the client sends the message directly to the recipient using the protocol discovered by invoking the IMUserLookup service.