`
`(12) United States Patent
`US 7,016,978 B2
`(10) Patent N0.:
`
` Malik et al. (45) Date of Patent: Mar. 21, 2006
`
`
`(54)
`
`INSTANT MESSAGING ARCHITECTURE
`AND SYSTEM FOR INTEROPERABILITY
`AND pRESENCE MANAGEMENT
`
`(75)
`
`Inventors: Dale Malik, Atlanta, GA (US); Matt
`Peterson, Atlanta, GA (US)
`
`(73) Assignee: BellSouth Intellectual Property
`Corporation, Wilmington, DE (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 720 days.
`
`(21) Appl. No.: 10/135,929
`
`(22)
`
`Filed:
`
`Apr. 29, 2002
`
`(65)
`
`Prior Publication Data
`
`US 2005/0044144 A1
`
`Feb. 24, 2005
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 15/16
`(52) US. Cl.
`..................................... .. 709/246; 709/205
`(58) Field of Classification Search .............. .. 709/204,
`709/206, 217, 230, 246, 205
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`......... .. 709/206
`4/2003 Auerbach et a1.
`6,549,937 B1
`5/2003 Gudjonsson et a1.
`..... .. 709/227
`6,564,261 B1 *
`3/2004 Carey et a1.
`.............. .. 455/466
`6,714,793 B1 *
`7/2004 Robinson et a1.
`...... .. 455/412.2
`6,760,580 B1 *
`OTHER PUBLICATIONS
`
`M. Day, et al.; A Model for Presence and Instant Messaging;
`Feb. 2000; pp. 1-17.
`M. Day, et al.;
`Instant Messaging / Presence Protocol
`Requirements; Feb. 2000; pp. 1-26.
`
`* cited by examiner
`
`Primary Examiner—Rupal Dharia
`Assistant Examiner—Brian J. Gillis
`
`or Firm—Thomas,
`(74) Attorney, Agent,
`Horstemeyer & Risley LLP
`
`Kayden,
`
`(57)
`
`ABSTRACT
`
`A computer network system establishes an instant messag-
`ing (IM) session between a first user registered with a first
`ISP (ISP) and at least one user registered with a second ISP
`when the two ISPs operate using different IM protocols. The
`ISPs each contain a Local IM server connected to each
`
`registered user. Each ISP also contains a Universal IM server
`that is connected to the distributed network. The Universal
`
`IM server includes a database that stores routing information
`and Presence information for each user registered with the
`second ISPs and facilitates communications between the
`
`first and second user using a universal format, such as XML.
`
`6,430,602 B1 *
`6,449,344 B1 *
`
`8/2002 Kay et al. ................. .. 709/206
`9/2002 Goldfinger et a1.
`.... .. 379/8817
`
`28 Claims, 6 Drawing Sheets
`
`400
`
`K
`
`410
`
`IM
`CLIENT
`
`LOCAL IM
`SERVER
`
`440
`
`IM
`CLIENT
`
`LOCAL IM
`SERVER
`
`i407
`USER
`
`
`
`
`
`
`
`UNIVERSAL IM
`UNIVERSAL IM
`
`
`SERVER
`SERVER
`
`Cg
`
`USER
`
`IM
`CLIENT
`
`IM
`CLIENT
`
`442
`
`USER
`
`457
`
`USER
`
`Page 1 of 16
`
`Samsung Exhibit 101 1
`
`Page 1 of 16
`
`Samsung Exhibit 1011
`
`
`
`US. Patent
`
`Mar. 21, 2006
`
`Sheet 1 0f 6
`
`US 7,016,978 B2
`
`135
`
`FIG.1
`
`PRIORART
`
`110
`
`Page 2 of 16
`
`3
`
`\—
`
`INSTANT
`
`MESSAGING
`
`SERVER
`
`o % N
`
`N
`‘—
`
`LO
`
`‘—
`
`Page 2 of 16
`
`
`
`US. Patent
`
`Mar. 21, 2006
`
`Sheet 2 0f 6
`
`US 7,016,978 132
`
`mwm
`
`mmN
`
`mww
`
`20.rzwflo
`
`meP0
`
`EMOmH/jn.
`
`ZO._.Zm__._o
`
`mMIPO
`
`EmOqun.
`
`ZO._.Zm=.._o
`
`MMIHO
`
`EmOmk/ln—
`
`ovm
`
`0mm
`
`owN
`
`
`
`>._.m<n_DEEP
`
`|_.Z<._.wz_
`
`mmmvzwwmm—S.
`
`mw>mmm
`
`mmN
`
`
`
`>._.m<n_0E1...
`
`._.Z<._.wz_
`
`mmwzwmmmfi
`
`mw>mmm
`
`>._.m<n_DEIP
`
`._.Z<._.wZ_
`
`mmwzmmmm—z
`
`mw>mww
`
`N.GE
`
`
`
`hmc‘EOEml
`
`Z.O._.<._mz<m
`
`.O._.<._wz<m
`
`._.
`
`«MEI—mo
`
`2w20n=200
`
`mwmms,
`
`._.Zm=I_O
`
`mummg.
`
`HZMZO
`
`mmmmfi;
`
`..O._.<._wz<m
`
`._.Zm=.—O
`
`Page 3 of 16
`
`Page 3 of 16
`
`
`
`
`
`
`
`
`US. Patent
`
`Mar. 21, 2006
`
`Sheet 3 0f 6
`
`US 7,016,978 132
`
`
`
`306
`
`VIDEO
`ADAPTER
`
`PROCESSING
`
`UNIT
`
`
`
`
` luIqanuuIIa4~1A1una
`-.4- («w-:2",-
`
`XX
`
`— M
`
`onitor
`
`330
`
`328
`
`$Wfly~
`
`HARD DISK
`DRIVE
`INTERFACE
`
`NETWORK
`INTERFACE
`
`MAGNETIC
`DISK DRIVE
`INTERFACE
`
`wfizbmxm’é-cmsimm;Mama: 2:»:me 2:WI“
`
`=4
`
`0’91
`
`SERIAL
`
`PORT INTERFACE
`
`wwwm»wam -:-z.,-a.'
`
`,W ‘:
`
`OPTICAL
`DISK
`INTERFACE
`
`m»wmommy«23>:sz:imexamamImam mam; 9:2,
`
`
`
`332
`
`Local Area Network
`
`342
`
`340
`
`
`
`
`
`338 ’
`
`...........................................................................................
`
`Page 4 of 16
`
`Page 4 of 16
`
`
`
`US. Patent
`
`hdar.21,2006
`
`Sheet4 0f6
`
`US 7,016,978 132
`
`oov
`
`~¢¢ovv
`
`mum:
`
`nm¢
`
`mmw:
`
`kzmjo
`
`oF¢\\
`
`2_
`
`
`2_4<0042.4(004
`
`mm>mmmmm>mmw
`
`2_2.
`2.pzmjo
`
`VGE
`
`s__._<wmm>_z:E4<mmm>_z:
`
`
`
`mm>mmmMm>mmm
`
`Nov
`
`mmmD
`
`va
`
`1mm:
`
`Page 5 of 16
`
`Page 5 of 16
`
`
`
`US. Patent
`
`Mar. 21, 2006
`
`Sheet 5 0f 6
`
`US 7,016,978 B2
`
`500
`
`4/
`
`505
`
`
`
`
`
`
`
`
`NEW USER MAKES REQUEST FOR
`NEW USER ID FROM FIRST LOCAL
`INSTANT MESSAGING SERVER
`
`510
`
`
`
`
`
`
`LOCAL IM SERVER CHECKS NEW
`USER ID WITH UNIVERSAL IM
`SERVER AND MAKES ASSIGNMENT
`
`
`
`
`
`FIRST LOCAL lM SERVER SENDS
`UPDATE TO FIRST UNIVERSAL IM
`
`
`SERVER
`
`
`
`
`
`
`FIRST UNIVERSAL EM SERVER
`SENDS UPDATED INFORMATION
`
`TO EVERY OTHER UNIVERSAL IM
`
`SERVER LISTED ON USER’S
`ROSTER
`
`
`
`START
`
`Page 6 of 16
`
`515
`
`520
`
`FIG. 5
`
`Page 6 of 16
`
`
`
`US. Patent
`
`Mar. 21, 2006
`
`Sheet 6 0f 6
`
`US 7,016,978 B2
`
`START
`
`6 o
`13
`
`605
`
`FIRST USER REQUEST IM SESSION
`
`WITH SECOND USER 610
`PROCESSING
`
`LOCAL IM SERVER ROUTES REQUEST TO
`FIRST UNIVERSAL IM SERVER FOR
`
`615
`
`
`IS
`
`THE SECOND
`
`
`USER REGISTERED WITH
`
`
`THE SECOND
`
`ISP?
`
`YES
`
`NO
`
`640
`
`620
`
`LOCATE LOCAL IM SERVER
`ASSOCIATED WITH SECOND
`USER ON FIRST ISP'S NETWORK
`
`LOCATION OF LOCAL IM SERVER
`
`ROUTE THE REQUEST TO THE
`SECOUND UNIVERSAL IM SERVER
`FOR PROCESSING AND
`
`645
`
`IS
`NO
`THE SECOND
`
`
`SER AVAILABLE?
`
`
`SEND
`
`
`ESTABLISH IM SESSION
`
`RETURN
`
`BETWEEN FIRST USER AND
`MESSAGE
`
`
`
`THE SECOND USER
`OR
`
`
`
`GOTO END
`
`
`
`647
`
`END
`
`FIG. 6
`
`Page 7 of 16
`
`Page 7 of 16
`
`
`
`US 7,016,978 B2
`
`1
`INSTANT MESSAGING ARCHITECTURE
`AND SYSTEM FOR INTEROPERABILITY
`AND PRESENCE MANAGEMENT
`
`TECHNICAL FIELD
`
`This invention relates generally to instant messaging, and
`more particularly relates to providing an open network to
`provide interoperability between multiple platforms operat-
`ing under a single instant messaging standard.
`
`BACKGROUND
`
`The Internet has changed the way people communicate.
`For many people, electronic mail, known as “e-mail,” has
`practically replaced traditional letters and in some instances,
`telephone calls, as the primary means of communication.
`Users of the Internet send literally millions of e-mail mes-
`sages across the Internet on a daily basis. The popularity of
`being able to send messages anywhere in the world in a
`matter of minutes, or even seconds, has made e-mail the
`most rapidly accepted form of correspondence to date. The
`use of e-mail has risen from obscurity, used once only by
`academics and the military,
`to dominant mode of public
`communication in less than twenty years.
`However, in our fast-paced world where the desire for
`access to more information at a faster rate increases on a
`
`daily basis, the once rapid response of e-mail communica-
`tions is no longer fast enough to keep pace with society’s
`need. One way to help people communicate faster was the
`creation of instant messaging (“IM”) services. IM services
`allow for nearly real time communications because the users
`sending and receiving messages are continually connected to
`an IM service. The speed at which recipients get IM mes-
`sages is determined by the speed the data can travel across
`the Internet. When a subscriber logs into an IM service, the
`service lets an IM server know that the user is available to
`
`the
`receive messages. To send a message to a recipient,
`subscriber simply selects the name of the recipient, usually
`from a contact list that contains the recipient’s IM address,
`and types the message.
`The core of IM is based on the concept of “presence
`management,” which determines where a user is connected
`to the Internet, the availability of the user, and on what
`system the user resides. Similar to email, a system level
`designation (domain) is the first tier of recognizing where to
`reach a particular user. IM, however, requires at least two
`additional elements (location and status) that make up the
`core of presence management. The immediate nature of this
`type of communication requires that the exact IP address of
`the person and their willingness to accept a message be
`known in order to set up a connection.
`IM was initially available to only dial up Internet users,
`which made location specific information extremely impor-
`tant. In the last couple of years the access of IM services has
`spread across mobile devices, such as cellular telephones,
`personal digital assistants (PDAs), and almost any system
`capable of Internet access. This proliferation has added the
`need to manage other elements of presence that did not exist
`in the past. With the potential to have multiple devices
`active, such as PC, PDA, cellular telephone, pager, etc., the
`presence system must be able to identify and manage each
`Internet device connected to the Internet and determine to
`
`which device messages should be forwarded.
`To accommodate the rapid growth in IM, each Internet
`Service Provider (ISP) developed their own brand of tech-
`nology to locate and connect users within their community.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`In doing so, each ISP selected different methods for man-
`aging presence and setting up communications paths
`between two parties. Unfortunately, these methods do not
`allow users of one system to easily contact and communicate
`with users of other systems. There is a need to enable
`effective intersystem communication and provide a path to
`grow future interoperability without negatively affecting the
`current separate networks in operation.
`Currently, ISPs use one of three methods to transmit
`instant messages between subscribers on their network. The
`first method uses a centralized network, in which subscribers
`are connected to one another through a series of network
`servers. The individual servers are linked together to form a
`large, centralized network. In this architecture, each server
`keeps track of the presence information and connections for
`each user connected to the network. When a subscriber
`
`sends a message, the server determines the location of the
`recipient’s computer by contacting all of the other network
`servers and routes the message through the network servers
`until it reaches the recipient. This particular method is used
`by Microsoft Network (MSN) Messenger IM service.
`A second method of transmitting instant messages uses a
`peer-to-peer architecture favored by systems using ICQ
`protocol (pronounced “I seek you”), such as the Yahoo!®
`Messenger IM service.
`In the peer-to-peer approach, a
`central ICQ server keeps track of which subscribers are
`currently online and records their Internet IM protocol
`addresses. Once a subscriber logs on to the ICQ server, the
`ICQ server scans the subscriber’s contact list and displays to
`the subscriber the Internet IM protocol address of every
`person on the contact list currently logged onto the IM
`server. When the subscriber wants to send a message to a
`recipient on the ICQ server, the subscriber simply selects the
`name of the recipient, types a message, and transmits the
`message. Because the ICQ client on the subscriber’s com-
`puter has the Internet Protocol IM address of the recipient,
`the message is sent directly to the ICQ client residing on the
`recipient’s computer without involving the ICQ server. This
`method has an advantage over the centralized network
`system because the messages do no travel through the entire
`network, which speeds the transfers of large files, such as
`documents and images because they are not slowed by
`network traffic.
`
`When the conversation is complete, the subscriber exits
`the IM program, at which point
`the ICQ client on the
`subscriber’s computer generates a message to the ICQ server
`to terminate the session. The ICQ client
`then sends a
`message to each ICQ client on the subscriber’s contact list,
`that are currently logged onto the ICQ server, indicating that
`the subscriber has terminated his session.
`
`The last method of transmitting instant messages is using
`a hybrid system that combines the centralized network
`approach with the peer-to-peer approach. America On
`Line’s (AOL®’s) Instant Messaging (“AIM”) service cur-
`rently uses this method. The AOL® AIM service uses the
`centralized network approach for transmitting text messages
`and performing presence management. Because text mes-
`sages are usually small, transmitting them over the network
`does not noticeably slow their delivery. However, for large
`files, such as document and images, AOL® AIM service
`uses ICQ protocol to establish a peer-to-peer connection
`between the subscriber and the recipient of the message.
`Unfortunately, each of the current IM services lacks a
`coherent standard. Each IM service uses a separate propri-
`etary protocol
`to implement
`instant messaging on their
`network. As a result, a user can only receive presence
`information and send messages to individuals that are reg-
`
`Page 8 of 16
`
`Page 8 of 16
`
`
`
`US 7,016,978 B2
`
`3
`istered with the same IM service as the sender. Thus, the lack
`of a standard protocol for IM severely limits the potential
`application of IM by restricting the number of potential
`recipients to those users registered on the same service as the
`sender of the IM message.
`An example of a traditional instant messaging architecture
`is shown in FIG. 1. The traditional IM architecture consists
`of a central IM server 105 connected to a number of
`
`individual IM clients (110, 115, 120, 125, 130, and 145) in
`a closed network. To send an IM, from client 110 to client
`145, IM client 110 first connects with an IM server 105 using
`a proprietary protocol. For example, AOL® and Yahoo!®
`use ICQ. Once the IM client 110 is connected to the IM
`server 105, the user logs on by entering a user name and
`password. The IM client 110 then sends the IM server 105
`the connection information, such as the IP address and
`number of the port assigned to the IM client and the name
`and address of everyone in the IM contact list associated
`with the IM client 110.
`
`The IM server 105 then creates a temporary file that
`contains the connection information for the IM client 110
`
`and for each IM client. Once the temporary files have been
`created, the IM server 105 checks the network to determine
`whether any IM client identified by the contact list associ-
`ated with IM client 110 is currently logged into the system.
`If the IM server 105 finds any of the contacts logged onto the
`network, the IM server 105 sends a message back to the IM
`client 110 with the connection information for each IM
`
`client currently logged onto the network. When the IM client
`110 receives the connection information, the status of that
`particular IM client is updated to “Online,” which is dis-
`played to the user. At this point the user may select any IM
`client that is registered “Online,” at which point a dialog box
`will appear in which the user may enter text. Because the IM
`client 110 knows the address and port number of the IM
`client 145 the message is sent directly to the recipient IM
`client 145. The IM client 145 then receives the instant
`
`message and can respond. Once the IM session is complete
`the dialog box is closed and the IM client 110 goes offline
`and sends a message to the IM server 105 terminating the
`session. The IM server 105, in response to acknowledging
`that the IM client 110 has logged off, generates a message to
`each of the IM clients on the client list of IM client 110
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`indicating that IM client 110 is logged off the network.
`A major drawback to this system is that each IM client
`that a user wishes to communicate with must be connected
`
`45
`
`to the IM server and must be part of the network due to the
`proprietary nature of the protocol. If the IM client happens
`to lie outside the IM network, he or she will not be able
`communicate with anyone in the network.
`One solution to the interoperability problem is an attempt
`by the Internet Engineering Task Force (IETF) to develop a
`standard protocol for instant messaging known as Instant
`Messaging Presence Protocol. Many of the IM service
`providers have been working within the IETF to develop a
`standard IM protocol. However, because each IM service
`provider has spent considerable capital developing a format
`for instant messaging,
`the IETF has yet been unable to
`establish a standard protocol.
`Another solution to the interoperability problem is JAB-
`BER, which is an IM system focused on providing IM
`access to any user from anywhere using any device and
`interoperability with IM services. JABBER is Extensible
`Markup Language (XML) open source server software that
`was developed by a community of developers over the
`Internet. JABBER allows communication among applica-
`tions and systems across all platforms. Developers write
`
`50
`
`55
`
`60
`
`65
`
`4
`additional modules to submit them back for possible incor-
`poration into the JABBER software. Unfortunately, most of
`the IM services do not use XML as their IM format.
`
`Therefore, to achieve interoperability between the IM ser-
`vices, JABBER requires a translation module to translate the
`IM message in XML format into each of the formats used by
`the separate IM services. Therefore, the JABBER system
`adds additional cost and complexity to the IM infrastructure.
`A block diagram illustrating a prior art IM network that
`uses JABBER Interoperable XML-Based Network architec-
`ture is shown in FIG. 2. JABBER is a real-time communi-
`
`cations platform based on open protocols and Extensive
`Markup Language (XML), and whose architecture is based
`on the well-known electronic mail system. Because JAB-
`BER is based on the email system, the JABBER architecture
`contains distributed network servers, called JABBER serv-
`ers 215, and clients, known as JABBER clients 200, 205,
`210, that receive and send messages to JABBER clients
`connected to any JABBER server on the Internet. However,
`unlike typical email systems, which are store and forward
`systems, JABBER delivers messages in real time because
`the JABBER server 215 knows when a particular JABBER
`client is online.
`
`Two features of JABBER make it unique over common
`prior art IM systems. First, JABBER uses an open protocol
`that allows interoperability among various IM systems.
`Second, JABBER is based on XML, which allows for easy
`and reliable structured messaging between software appli-
`cations.
`The JABBER architecture is based on client-server archi-
`tecture and not on a client-to-client architecture, as are most
`IM systems. Messages from JABBER client 200 to JAB-
`BER client 210 must pass through the JABBER server 215.
`Each JABBER client is attached to a local JABBER server
`215. Each local JABBER server 215 receives information
`from one JABBER client 200 and transfers the information
`
`to another JABBER client along with presence information.
`Each local JABBER server 215 functions independently
`from one another, and can communicate with any other
`JABBER server that is connected to the Internet as long as
`it has been identified, and predisposed to do so ahead of
`time.
`
`Each local JABBER server 215 performs two functions:
`listening for and communicating directly with JABBER
`client applications, and communicating with other JABBER
`servers. Each local JABBER server 215 consists of multiple
`components that separately handle individual functions with
`the JABBER system. At the core of the local JABBER
`server 215 is a deliver component 220, which performs the
`following tasks: session management, client-to-server com-
`munications, server-to-server communications, group chat,
`storing messages for JABBER clients currently offline, DNS
`resolution, user authentification, user registration, database
`lookups filtering messages for offline users, and the like.
`Additionally, each JABBER server 215 contains “trans-
`ports” 225, 230, and 235 that communicate with other
`servers operating under protocols that are foreign to JAB-
`BER’s open XML format. The transports act as translators
`between the deliver component 220 of the local JABBER
`server 215 and a third party instant messenger server. Each
`transport contains their own session manager that translates
`JABBER XML into and out
`the “foreign” protocol for
`presence, messaging, and information/query requests.
`In
`general, when a client logs onto the JABBER server 215, a
`thread is created in the transport to handle all communica-
`tion from that client. Typically, the translation to and from
`JABBER XML is straightforward when the foreign protocol
`
`Page 9 of 16
`
`Page 9 of 16
`
`
`
`US 7,016,978 B2
`
`5
`is well documented, as in the case of IRC protocols, and the
`AIM protocol. However, for other foreign protocols that are
`poorly documented, such as Yahoo!® Instant Messenger, the
`translation to and from JABBER XML can either be difficult
`
`and slow. Currently, transports are available to translate to
`and from the following protocols: AOL® AIM, ICQ, IRC,
`MSN Messenger, Rich Site Summary (RSS ver. 0.9), and
`Yahoo!® Instant Messenger.
`As an example, when the JABBER client 200 wishes to
`communicate with a client 245 on a third party instant
`messenger server 240, such as AOL Instant Messenger, the
`JABBER client 200 first generates a message which is sent
`to the local JABBER server 215. The message contains
`JABBER ID that contains the name of the third party instant
`messaging server 240 (e.g., johndoe@aim.goabber.org). The
`local JABBER server 215 routes the message to the appro-
`priate translator, which in the illustration is Translator 225.
`If the Translator 225 is running locally on the local JABBER
`server 215, the JABBER server 215 communicates directly
`with the Translator 225. If, however, the Transport 225 is
`running remotely, the JABBER server 215 passes the XML
`packet to the remote server, which then forwards it onto the
`Translator 225. After the local JABBER server 215 has
`
`passed the message to the Translator 225, the Translator 225
`translates the XML packet into a native packet, which is
`readable by the third party instant messenger server 240. The
`third party instant messenger server 240 in turn, passes the
`translated packet onto the appropriate client 245.
`The Jabber architecture relies heavily on translators and is
`constrained by its ability to keep up with each provider’s
`protocol, and method of handling presence. Thus, there is a
`need in the art for a simple, cost effective IM network
`architecture that uses a universal IM presence and intercon-
`nection methodology that is compatible with the existing IM
`Service Provider networks.
`
`SUMMARY OF THE INVENTION
`
`invention addresses the above-described
`The present
`needs in a universal instant messaging system. Generally
`described, a computer network system according to an
`embodiment of the invention for establishing a communi-
`cations link between a first user registered with a first service
`provider network and at least one user registered with a
`second service provider network when the two networks
`operate using different protocols. The networks, which are
`connected by a distributed network, such as the Internet,
`each contain a Local IM server connected to each user. The
`Local IM server controls the flow of electronic information
`
`between the users logged onto the particular network.
`The networks also contain a Universal IM server that is
`connected between the Local IM server and the distributed
`network. The Universal IM server contains a database that
`
`stores routing information and Presence information for
`each user registered with the first service provider network
`and some of the users of other provider networks. The
`Presence information contains user attributes and a set of
`
`40
`
`45
`
`50
`
`55
`
`logic rules that are used to control the communications link
`between the first and second users. The user attributes
`contained in the Presence information include a list of each
`
`60
`
`Internet device each user has registered to receive electronic
`messages, a list of connection options for each registered
`Internet device, a list of available states for each Internet
`device, and an application identifier associated with each
`Internet device.
`
`65
`
`Additionally, the Presence information contains a set of
`logic rules that govern the communications link between the
`
`Page 10 of 16
`
`6
`first and second user. The logic rules include a hierarchical
`listing of each user’s registered Internet devices that indi-
`cates the order in which each Internet device should be
`
`contacted to establish the communications link, a security
`level for each registered Internet device, and a listing of the
`applications that each Internet device is able to support.
`A method according to an embodiment of the invention,
`establishes an instant message session between a first user
`registered on a first ISP (ISP) network and a second user
`registered on a second ISP over the Internet when the first
`and second ISPs are operating under different instant mes-
`saging protocols. The method begins by the first user gen-
`erating a connection request and transmitting it to a Local
`IM server associated with the first ISP. The connection
`
`request contains a USERID associated with the second user.
`The Local IM server checks the routing information for the
`connection request to determine whether the second user is
`registered with the first ISP. If the second user is registered
`with the first ISP, the Local IM server associated with the
`first ISP establishes the instant message session between the
`two users. If however, the second user is registered with
`another Local IM server, the connection request is routed to
`a Universal IM server to determine the appropriate Local IM
`server to receive the request. The Universal IM server
`contains a database that lists each user on its own network
`and selected users on other ISPs. The selected users are
`derived from the contact lists or rosters for each user on the
`first ISP network. A determination is made at the Universal
`IM server on the first ISP whether the second user is listed
`in the database. If the second user is listed in the database,
`the Universal IM server connected to the first ISP forwards
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`the connection request to a Universal IM server connected to
`the second ISP. The Universal IM server connected to the
`second ISP then transmits back to the Universal IM server
`
`on the first ISP the routing information and the Presence
`information associated with the second user. The first Uni-
`
`versal IM server then establishes an instant message session
`based on the routing and Presence information returned from
`the Universal IM server using the extensive markup lan-
`guage (XML) protocol.
`
`BRIEF DESCRIPTION OF DRAWINGS
`
`The accompanying drawings, which are incorporated in
`and form a part of the specification,
`illustrate preferred
`embodiments of the present invention and, together with the
`description, disclose the principles of the invention. In the
`drawings:
`FIG. 1 is an illustration of a prior art instant messaging
`system.
`FIG. 2 is an illustration of a prior art JABBER interop-
`erable XML-based instant messaging network.
`FIG. 3 is block diagram of a personal computer that
`provides the operating environment for an embodiment of
`the invention.
`
`FIG. 4 is an illustration of a universal instant messaging
`architecture using an exemplary embodiment of the inven-
`tion.
`
`FIG. 5 is a logic flow diagram illustrating a method for
`registering a new user with a Service Provider Network
`using the universal instant messaging architecture.
`FIG. 6 is logic flow diagram illustrating a method of
`establishing a communications link between at least two
`users using the universal instant messaging architecture.
`
`Page 10 of 16
`
`
`
`US 7,016,978 B2
`
`7
`DETAILED DESCRIPTION OF THE
`EMBODIMENTS
`
`The present invention is directed toward novel architec-
`tures, systems, and methods for providing instant messages
`(IM) over a distributed network to multiple users connected
`to different Internet devices, such as personal computer,
`cellular telephones, Personal Digital Assistants, pagers, and
`the like on separate ISPs (ISP) operating different
`IM
`protocol standards.
`
`Exemplary Internet Device
`implementing the
`An exemplary Internet device for
`invention is shown in FIG. 3, which includes a conventional
`personal computer 100 with a processing unit 326, a system
`memory 304, and a system bus 306, which joins the system
`memory 304 to the processing unit 326. The system memory
`304 includes read only memory (ROM) 308 and random
`access memory (RAM) 312. The basic input/output system
`(BIOS) 310 is stored in ROM 308, and contains basic
`routines that aid in transferring information between ele-
`ments within the personal computer 300, as found during
`start-up. Further, the personal computer 300 contains a hard
`disk drive 330, a magnetic disk drive 348, and an optical
`disk drive 356, e.g., to read from or write to other optical
`media, or for reading a CD-ROM disk 360. Ahard disk drive
`interface 328, a magnetic disk drive interface 334, and an
`optical drive interface 338, connect the hard disk drive 330,
`magnetic disk drive 348, and optical disk drive 356 to the
`system bus 306. Non-volatile storage is provided for the
`personal computer 302 by the drives and their associated
`computer-readable media. Those skilled in the art should
`recognize that other types of media are readable by a
`computer, e.g., magnetic cassettes, digital video disks, flash
`memory cards, ZIP cartridges, JAZZ cartridges, etc. may be
`used in the exemplary operating environment as well as the
`computer-readable media described above.
`Various program modules may be stored in the RAM 312.
`These include, but are not limited to, an operating system
`314, one or more application programs 316, and program
`data 320, and other program modules. The personal com-
`puter 302 allows commands and information to be entered
`by devices such as a keyboard 354, a mouse 352, or other
`input device. Along with these conventional devices, pens,
`touch-operated devices, microphones, joysticks, game pads,
`satellite dishes, scanners, etc. may also be used to enter
`commands or information. The input devices are typically
`connected to the processing unit 326 through a serial port
`interface 336 coupled to the system bus 306. The devices
`may also be connected by other interfaces, such as a game
`port or a universal serial bus (USB). A display screen 324 or
`other type of display device is connected to the system bus
`306 via a video adapter interface 322. It is typical of personal
`computers to include other peripheral output devices, such
`as speakers or printers, as well as the display screen 324.
`Logical connections to one or more remote computers
`342, allow the personal computer 302 to operate in a
`networked environment. Although the remote computer 342
`has been shown as a personal computer, in FIG. 3, it should
`be apparent
`to those skilled in the art
`that
`the remote
`computer 342 may be a server, a router, a peer device or
`other common network node, and on average includes many
`or all of the elements described in relation to the personal
`computer 302. A local area network
`340 and a wide
`area network 362 are the typical logical connections
`that connect
`the personal computer 102 to the remote
`computer 342. These logical connections are commonly
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`found in offices and enterprise-wide computer networks,
`such as intranets and the Internet.
`
`The personal computer is connected to the LAN 340
`through a network interface 332, when used in a LAN
`networking environment. In a WAN networking environ-
`ment,
`the personal computer 302 normally includes a
`modem 350 or other channels of establishing communica-
`tions over the WAN 362, (e. g. the Internet). The modem 350
`is connected to the system bus 160 via the serial port
`interface 336, which may be either internal or external to the
`personal computer 302. The application programs 316
`described above relative to the personal computer 302, or
`any part
`thereof, may be stored in the remote memory
`storage device 344 of the networked computer 342 in the
`networked environment. The network connections shown
`
`are exemplary and those skilled in the art will appreciate that
`other ways of establishing a communications link between
`the personal computer and the remote computer exist with-
`out departing from the scope of this invention.
`
`Universal Instant Messaging Architecture
`FIG. 4 is an illustration of a Universal IM architecture
`400. The Universal IM architecture 400 uses a universal
`
`protocol, such as the extensible markup language (XML)
`protocol to allow users of different ISPs (ISPs) 405 and 430
`that use proprietary protocols to communicate with one
`another. AUniversal IM server 425 located at ISP 405 is the
`
`key feature of the Universal IM architecture 400. FIG. 4
`illustrates two separate ISP Networks, ISP 405 and ISP 430.
`Because the two networks are identical, the discussion of the
`Universal IM architecture 400 for purposes of this applica-
`tion is limited to the ISP 405. Additionally, the discussion of
`the ISP 405 will be limited to the components th