WO2002019643A1 - Instant messaging system and method for remote networks using a sequential message handshaking protocol - Google Patents

Instant messaging system and method for remote networks using a sequential message handshaking protocol Download PDF

Info

Publication number
WO2002019643A1
WO2002019643A1 PCT/SG2000/000127 SG0000127W WO0219643A1 WO 2002019643 A1 WO2002019643 A1 WO 2002019643A1 SG 0000127 W SG0000127 W SG 0000127W WO 0219643 A1 WO0219643 A1 WO 0219643A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
buffer
message
smsc
remote
Prior art date
Application number
PCT/SG2000/000127
Other languages
French (fr)
Inventor
Mendiola Dennis
Schlotman Brian
Original Assignee
Chikka Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chikka Pte Ltd filed Critical Chikka Pte Ltd
Priority to PCT/SG2000/000127 priority Critical patent/WO2002019643A1/en
Priority to AU2000274681A priority patent/AU2000274681A1/en
Publication of WO2002019643A1 publication Critical patent/WO2002019643A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Definitions

  • the present invention relates to a computer network based instant messaging system and a method for communicating instant messages between an instant messaging server and a remote communication network that utilises a sequential message handshaking protocol.
  • the invention has particular utility with instant messaging systems using the internet to communicate instant messages between a plurality of clients or appliances, where at least one of these clients or appliances forms part of a remote communication network such as, but not limited to, a Global System for Mobile Communications ("GSM”) network that utilises a sequential message handshaking protocol.
  • GSM Global System for Mobile Communications
  • IM Instant messaging
  • Internet Internet use pervading the areas of the domestic market and being taken up by younger, computer-literate generations as a social medium in its own right, a need has arisen for spontaneous and "instantaneous" messages to be exchanged between two or more parties connected to the internet simultaneously. This need has not been able to have been satisfied by the use of traditional email systems and consequently, IM systems have spawned as an alternative or adjunct to email.
  • “Instantaneous" in the context of IM means the ability to receive messages without prompting a message-handling server. This is in contrast to the way typical emails are sent and received by internet users.
  • POP Post Office Protocol
  • Email messages are sent by a user from an email PC client application (e.g., Eudora TM, Microsoft Outlook TM) on that user's PC to a mail server to which it has subscribed using SMTP.
  • the mail or SMTP server then forwards the message to the desired recipient's mail server via the internet.
  • Instant messaging systems work in a different fashion to email, requiring minimal if any user action, to receive messages.
  • Messages are forwarded from a sender's client application, normally a PC-based IM client application program, to the intended recipient's client application via an IM server or directly to the recipient's client, almost in "real time” from the time that a message is sent by the sender, or received by the IM server system - hence "instant".
  • No querying is needed to get a message to its intended recipient, reflecting more of a "pushing" technology, than a "pulling" of information.
  • Examples of some popular IM systems in the market include AOL's AIM TM and ICQ TM.
  • a characteristic of most IM systems is that a client user is able to set up a network of friends or colleagues, more commonly known as “buddies” with or amongst whom messages can be exchanged instantly.
  • client applications may include email-based client applications (eg Eudora TM, Microsoft Outlook TM) and browser based client applications (eg Internet Explorer TM and Netscape TM) on the internet, and also devices connected into a GSM network, such as mobile phones.
  • email-based client applications eg Eudora TM, Microsoft Outlook TM
  • browser based client applications eg Internet Explorer TM and Netscape TM
  • SMS networks have their own form of IM system for communicating short textual messages between different subscribers known as “Short Message Service” (“SMS”).
  • SMS Short Message Service
  • SMSC Short Message Service Centre
  • the messages are short, typically limited to 160 characters in length, and are sent between subscribers of the GSM network, with the SMSC server processing the messages for delivery to the right destination using the GSM mobile number of the intended receiver.
  • the textual message from the sender is initially sent to the SMSC server using the cellular telephone network.
  • the SMSC then stores the message and allocates it to the intended recipient for downloading, in accordance with normal GSM protocol, when the recipient is identified to be active within a cell.
  • SMS messaging is normally only provided between GSM clients that specifically subscribe to it, however, by virtue of the SMSC server, it is possible to connect to the internet using a particular protocol, dependent upon the particular GSM phone and network manufacturer.
  • a particular protocol dependent upon the particular GSM phone and network manufacturer.
  • Nokia TM use Computer Interface Message Distribution protocol version Two (CIMD2).
  • the CIMD2 protocol like virtually all SMSC protocols providing connectivity to the internet or other external networks, works on sequential message handshaking.
  • This type of handshaking in the case of an SMSC sending an IM to an external network, requires a confirmation to be received by the SMSC from the network indicating that the server of the external network has safely received the IM, before another IM will be sent.
  • the converse applies, whereby the SMSC server will not receive another IM until it has sent a confirmation to the external network server that the previous IM received by it has been received.
  • Centralisation of the IM server is desirable in a global IM system, where it is preferable to locate the centralised IM server in a tier 1 internet exchange residing in an area of very reliable internet infrastructure such as in the United States of America or Europe. Such location of an IM server provides maximal reliability and redundancy of internet access.
  • GSM networks are quite unrelated to the geographical location of tier 1 internet exchanges and consequently stability and latency factors can vary considerably with communications between SMSC servers that can be located in different and indeed quite remote regions of the world, and an IM server located in a tier 1 internet exchange. Disclosure of the Invention
  • an instant messaging system comprising: an IM server having a plurality of clients with IM client applications of the same or different types, a remote server to which at least one of the clients is connected, a computer network interconnecting the IM server and the remote server to provide IM communications therebetween, wherein the remote server utilises a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received, and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability; the computer network including:
  • a buffer server interconnected with the remote server using a sequential message handshaking protocol corresponding to that used by the remote server, wherein the interconnection provides for the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions;
  • the buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially and thus accommodate higher latency and instability problems with the computer network;
  • the buffer server is optimally connected relative to both the IM server and the remote server so as to maximise message throughput.
  • the buffer server is connected via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
  • the buffer server may be located in close proximity to the remote server and be connected via the highly reliable internet exchange and infrastructure to the remote server.
  • an instant messaging system comprising:-
  • an IM server having a plurality of clients with IM client applications of the same or different types
  • a remote server to which at least one of the clients is connected;
  • a computer network interconnecting the IM server and the remote server to provide IM communications therebetween and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability;
  • the remote server utilising a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by the remote server before a subsequent message is able to be transmitted or received;
  • a buffer server interconnected with the remote server using a sequential message handshaking protocol corresponding to that used by the remote server, the interconnection providing for the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions;
  • the buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially to accommodate higher latency and instability of the computer network therebetween;
  • the buffer server being optimally connected relative to both the IM server and the remote server so as to maximise message throughput.
  • the buffer server is connected via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
  • the buffer server may be located in close proximity to the remote server and be connected via the highly reliable internet exchange and infrastructure to the remote server.
  • the remote server is an SMSC server of a GSM network and the client types connected to the SMSC server have SMS capability that is controlled and managed by the SMSC server to provide for SMS there between and instant messaging between the SMSC server and the IM server.
  • the computer network interconnecting the I server and the buffer server is the internet.
  • the IM server is located within a tier 1 internet exchange.
  • the computer network interconnecting the buffer server and the remote server or host is a direct electronic link.
  • the IM server is interconnected to a plurality of remote servers via the computer network, each remote server utilising a sequential message handshaking protocol for transmitting and receiving messages with the IM server, whereby a buffer server is associated with and dedicated to each remote server.
  • said client types connected to the computer network via the GSM network have SMS capability and are initially connected via an SMSC server to control and manage said SMS therebetween, and wherein said SMSC server is directly connected to said IM server via said computer network.
  • the IM server is provided with a communication buffer mirrored to the buffer of said buffer server of the remote network, and each buffer comprises a circular array to contain the messages currently being processed by the instant messaging system at any one time, and wherein a plurality of statuses are recorded against each message to indicate its particular stage of communication between the IM server and the SMSC server.
  • each said buffer is provided with synchronization means to reconstruct messages that may have been lost in transit between the communication buffer of the IM server and the buffer server at the remote server as a result of an extended interruption to the computer network linking the same.
  • the synchronization means reconstructs messages from said circular array having regard to the statuses of the current messages being processed by the instant messaging system
  • the buffering is performed via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
  • the buffering may be performed in close proximity to the remote server and via the highly reliable internet exchange and infrastructure to the remote server.
  • Figure 1 is a schematic block diagram showing the embodiment of the IM system with the IM server connected to a plurality of SMSC servers of one or more GSM networks via a computer network incorporating buffer servers and the internet;
  • Figure 2 is a schematic diagram showing the circular array structures that reside in the communication buffer of the IM server and the buffer server of the remote server;
  • Figure 3 is a logic flow diagram showing the synchronisation procedure.
  • the preferred embodiment of the mode of the invention is directed towards an instant messaging ("IM") system and a method of instant messaging, whereby the IM system comprises an IM server to which a number of users or clients may be selectively connected via the internet or direct electronic links. More particularly the embodiment is concerned with the computer network interconnecting a plurality of remote servers of a GSM mobile phone network having SMS capability with the IM server.
  • IM instant messaging
  • the remote server is an SMSC server that controls and manages the SMS of one or more GSM networks and wherein the SMSC allows for the communication of instant messages between the IM server and a mobile phone user of the GSM network.
  • the basic functions of the IM system ie the basic actions it can undertake on behalf of a user, consist of sending and receiving instant messages and detecting users who are "online", i.e., connected to the internet or otherwise accessible by instant messaging right at, or around, that particular moment in time. Users are also referred to as "buddies" in the IM system.
  • the IM server system is designed to undertake any of the aforementioned basic actions if triggered or instructed to do so by the particular appliance of the client accessing the IM server. This triggering occurs when the client appliance sends an electronic prompt or command to the IM server.
  • a PC-based application will do this by sending commands to the IM server via an electronic or internet link.
  • a GSM device will do this by sending an SMS message to the IM server via the SMSC of the GSM network of which it is part and the computer network interconnecting the SMSC server and the IM server.
  • the format of the delivered information such as the actual message or notification of who is online, necessarily depends on the appliance type and thus in the case of a GSM device will be in SMS format.
  • a GSM device such as a mobile phone is the terminal or appliance, and the user of this device operates it as a subscriber to the GSM network where telecommunications between subscribers are transmitted wirelessly through GSM cellular sites disposed to create a cellular network.
  • a subscriber-to-subscriber SMS message on a GSM network includes an information packet comprising the sender's numeric address (the GSM mobile phone number of the sender), the target recipient's numeric address (typically the GSM mobile phone number of the receiver), the GSM mobile number of the SMSC server which will process the message, and as much as a 160-character message.
  • the SMSC server controls and manages the transmission of all SMS messages between subscribers.
  • the SMSC server includes a database of all SMS subscribers and stores SMS information packets sent by subscribers for subsequent downloading by targeted recipients when the GSM device of a recipient is switched on and is within a cell.
  • the SMSC server may be connected to the IM server via a direct electronic link or the internet. In the present embodiment it is connected by way of a computer network comprising a combination of the two. Thus messages or short messages can be sent via the computer network from the IM server to the SMSC server for subsequent delivery to subscribers of SMS on the GSM network and vice versa. Short messages are sent and received between the IM server and the SMSC server using the GSM network's message protocol. In the present mode, the particular protocol used is CIMD2. The system, however, can support other protocols such as Simple Message Paging Protocol ("SMPP").
  • SMPP Simple Message Paging Protocol
  • These protocols are characterised by sequential message handshaking whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by the SMSC server before a subsequent message is able to be transmitted or received.
  • the IM system comprises an IM server 11 having a communication buffer 12, which is connected to part of a computer network comprising the internet 13.
  • the communication buffer 12 is a process or program construct that forms a buffer array inside the same computer system constituting the IM server 11.
  • the IM server 11 is physically located to interface directly with a tier 1 internet exchange so that it will be close to a large amount of internet traffic providing high reliability and redundancy of internet access.
  • An SMSC buffer server 14 is located proximate to an SMSC server 15 of a remote GSM carrier network 16.
  • the SMSC buffer server 14, on one side, is connected to the internet 13 and on the other side is directly connected via an electronic link 19 to the SMSC server 15.
  • the computer network linking the IM server 11 to the SMSC server 15 comprises a combination of the internet 13 and the direct electronic link 19, and is interfaced with the IM server 11 by means of the communication buffer 12 and the SMSC server 15 by means of the SMSC buffer server 14.
  • Clients in the form of PC users 17 (and other users of the IM system) connect to the IM server 11 primarily through the internet 13.
  • the interface of the communication buffer 12 with the internet 13 is quite reliable due to the positioning of the IM server 11 in a tier 1 internet exchange, this is not necessarily so with the interface of the SMSC buffer server 14 to the internet 13. If the location of the SMSC server 15 and GSM network 16 is remote from the IM server 11 and not in a tier 1 internet exchange, which is the case in the present embodiment, then the connection to the internet 13 can be quite unstable and suffer high latency.
  • the way messages are handled by the communication buffer 12 and remote buffer server 14 is crucial to minimising the effects of latency with the computer network.
  • the SMSC buffer server 14 is configured to use a corresponding sequential message handshaking protocol to that used by the SMSC server 15 so that the SMSC buffer server exchanges SMS instant messages with the SMSC server 15 with each message requiring confirmation that it has been received by either the SMSC server 15 from the SMSC buffer server 14 or the SMSC buffer server 14 from the SMSC server 15, before the next message can be sent.
  • SMSC buffer server 14 is connected directly to or co-located with the SMSC server 15, latency and connection disruptions between the two are kept to a minimum.
  • the exchange of messages or SMS between the communication buffer 12 and the SMSC buffer server 14 does not require sequential message per message confirmation before any new messages can be sent or exchanged. Though message confirmations are still required, for message tracking purposes, the confirmations can come at random, as opposed to sequentially.
  • the SMSC buffer server 14 is also configured to connect to the IM server 11 via the internet 13 using a protocol that permits messages to be sent off and received in streams or batches to or from the IM server 11 and which does not require message handshaking to be performed sequentially between each message transmitted and received.
  • the SMSC buffer server 14 is also provided with a buffer memory to store up to 255 SMS instant messages of up to 160 characters each to accommodate typical latency and instability problems associated with the internet.
  • the SMSC buffer server 14 can simply store each message it receives from the SMSC server 15 and provide the sequential handshaking confirmation that is required with each message, thereby minimising the delay that arises with the communication of messages between the SMSC server 15 and the SMSC buffer server 14. It can also rapidly send messages from the buffer memory to the IM server 11 concurrently or once connection is established or re-established with the internet, without having to concern itself with message receipt confirmations and thus not be unduly delayed or affected by latency and instability issues associated with the internet.
  • the buffer memory of the SMSC buffer server 14 is sized to store up to 255 instant messages of 160 characters each received from the communication buffer 12 of the IM server 11 to accommodate different speeds in the transfer of messages from the SMSC buffer server 14 to the SMSC server 15.
  • the need for buffering at this end arises not from latency and stability issues associated with the link to the SMSC server 15, as the need for high stability and low latency of this part of the link is the essence of the invention, but rather due to the sequential message handshaking requirement of the SMSC server, whereby the rate of transfer of messages between the buffer server and the SMSC server is dictated by the speed of processing the messages by the SMSC server.
  • a message is sent to the IM server system 11 via the internet 13.
  • the IM server 11 relays the message through its own communication buffer 12 to the SMSC buffer server 14, via the internet 13.
  • the IM server 11 can continue to send more messages to the SMSC buffer server 14 without waiting for confirmation that the SMSC buffer server 14 has received the last message successfully.
  • the SMSC buffer server 14 Immediately the SMSC buffer server 14 receives a message, it stores it in its buffer memory. As soon as a message is stored in its buffer memory, the SMSC buffer server sends the oldest message stored to the SMSC server 15. The SMSC server 15 confirms the receipt of the message or SMS by sending the SMSC buffer server 14 a confirmation. This confirmation is necessary before the next oldest stored message can be transmitted to the SMSC server 15 by the SMSC buffer server 14. Due to the fact that the SMSC buffer server 14 is co- located or directly connected via the electronic link 19 to the SMSC server 15, the exchange of messages between the two occurs with minimal latency and interruption, as compared to a pure internet connection.
  • SMSC server 15 relays the message to the SMSC buffer server 14.
  • the SMSC buffer server 14 must likewise confirm the receipt of the message before it can receive any new messages from the SMSC server 15.
  • the SMSC buffer server 14 transmits the message to the IM server 11 via the internet 13 through the mirror communication buffer 12.
  • the SMSC buffer server 14 can continue to send more messages to the IM server 11 since their exchange of messages with the corresponding communication buffer server 12 does not require sequential message per message confirmation before new messages can be transmitted.
  • the IM server 11 transmits the message to the intended PC user recipient 17 via the internet 13.
  • the communication buffer 12 and the SMSC buffer server 14 possess circular arrays containing the messages that are presently being processed by the IM system.
  • Figure 2 illustrates the circular array structure that resides in each of the buffer servers. Essentially the two circular arrays mirror each other, i.e. the same messages reside (or eventually get stored) in the same position in the other array. Sometimes, however, the arrays can be out of synchronization for a protracted period of time. This situation may occur when the internet connection between the two buffer servers gets interrupted for an extended period. If this happens the IM system can reconstruct the messages that may have been lost in transit.
  • Each data element in the circular array contains the following information: sender 202, recipient 203, the message 204, its address 201 within the circular array, and special flags 205-208.
  • the array resides in the random access memory (RAM) of the computer for each buffer server (or the hard drive, to the extent that the RAM becomes filled).
  • Each data element in the circular array, or message for that matter, has a special flag that says any one of the following: Retrieved 205, Sent 206, Confirmed 207, and Processed 208.
  • each circular array has four "pointers" or indices: Last Message Retrieved 209 (Last retrieved), Last Message Sent 210 (Last Sent), Last Message Confirmed 211 (Last Confirmed), and Last Message Processed 212 (Last Processed). These indices point to elements or particular addresses in the circular arrays as suggested by the labels.
  • the processing of a message sent from the IM server 11 to a GSM device 18 takes place as follows.
  • the communication buffer 12 "retrieves” the message waiting on queue, having been recently sent by a PC user 17. This message is marked retrieved with the "last retrieved” pointer updated accordingly.
  • the communication buffer 12 "sends” the message to the SMSC buffer server 14.
  • the communication buffer 12 flags this message on the array as “Sent” and the "last sent” pointer is updated accordingly.
  • SMSC buffer server 14 Once the SMSC buffer server 14 successfully receives the message, it stores it in its own array and sends an acknowledgement back to the communication buffer 12 whereby on receipt, the message is tagged "Confirmed” on the communication buffer 12 and the "last confirmed” pointer is updated accordingly. Finally, the SMSC buffer server 14 notifies the communication buffer 12 that the GSM device 18 through the SMSC server 15 has successfully received the message. At this point, the message will be tagged "Processed” on the communication buffer 12 and the "last processed” pointer updated accordingly, which also means that the communication buffer 12 is ready to accept a new message in that particular location in its array.
  • the communication buffer 12 may continue receiving additional messages, storing each in addresses within the array and whose "Processed" flag is turned on.
  • the processing of a message sent from the SMSC buffer server 14 to the PC user 17 takes place as follows.
  • the SMSC buffer server 14 "retrieves” the message waiting on queue at the SMSC server 15, having been recently sent by a GSM device 18.
  • the SMSC buffer server 14 "sends” the message to the communication buffer 12.
  • the SMSC buffer server 14 flags this message on the array as "Sent”.
  • the communication buffer 12 successfully receives the message, it sends an acknowledgement to the SMSC buffer server 14, whereby on receipt the message is tagged as "Confirmed" on the SMSC buffer server 14.
  • the communication buffer 12 notifies the SMSC buffer server 14 that the message has been successfully sent to the PC user 17 or is queued in the "message inbox" of the PC user 17.
  • the message will be tagged "Processed” on the SMSC buffer server 14, which also means that the SMSC buffer server 4 is ready to accept a new message in that particular location in its array.
  • the SMSC buffer server 14 may continue receiving additional messages from the SMSC server 15, storing each in addresses within the array whose "Processed" flag is turned on. However, the SMSC buffer server 14 can only "retrieve” one message at a time from the SMSC server 15, only after it tells the SMSC server 15 that it has successfully "retrieved” the previous message sent. Notwithstanding this, since the SMSC buffer server 14 has a direct electronic link 19 to (or is co-located with) the SMSC server 15, this message confirmation loop can occur relatively quickly, with minimal latency as compared to a pure internet connection.
  • the system includes synchronization means to reconstruct messages that may have been lost in transit should an extended interruption of the internet connection between the buffer servers takes place.
  • the synchronization means is in the form of a routine programmed into the IM server 11 /communication buffer 12 and the SMSC buffer server 14. The logic flowchart of the algorithm for this synchronization means is shown in Figure 3 of the drawings.
  • the routine causes the communication buffer 12 and the buffer server 14 to monitor its respective connection with the internet 13 as represented by program loop 301.
  • the buffers try to reconnect 305 (though they would still continue to receive/retrieve messages from the two ends of the I system - the I server 11 from various PC users 17, and the SMSC buffer server 14 from the users of the GSM devices 18 via the SMSC server 15).
  • the buffers resend messages 309 from the "Last Confirmed" pointer up until the "Last Sent" pointers. Hence, messages that may have been lost during the internet connection interruption will be reconstructed/retransmitted.

Abstract

An instant messaging (IM) system and a method for communicating instant messages between an IM server (11) and a remote communication network utilising a sequential message handshaking protocol across a computer network that is prone to latency and instability. The remote communication network is a GSM network (16) having 'Short Message Service' (SMS) for subscribers with mobile GSM devices (18) linked to a 'Short Message Server Centre' (SMSC) for sending and receiving instant messages remotely of the GSM network (16) and as part of the IM system. The SMSC is provided with an SMSC server (15) connected by a highly stable link (19) with low latency to an SMSC buffer server (14) forming part of the computer network. The SMSC buffer server (14) is connected to the IM server (11) via the internet (13) to complete the computer network. The SMSC buffer server (14) provides for sequential message handshaking that requires and provides a confirmation of receipt of message from the SMSC server (15), and is provided with a buffer to facilitate storage of received instant messages received from the SMSC server (15). Delays are mitigated in the communication of instant messages between the SMSC server (15) and the SMSC buffer server (14), regardless of latency and instability associated with the internet. The SMSC buffer server (14) is also provided with a protocol that doesn't rely upon sequential confirmation of message transfer for communicating messages rapidly via the internet with the IM server, thereby accommodating latency and stability problems associated with the internet.

Description

"Instant Messaging System and Method for Remote Networks Using a Sequential Message Handshaking Protocol"
Field of the Invention
The present invention relates to a computer network based instant messaging system and a method for communicating instant messages between an instant messaging server and a remote communication network that utilises a sequential message handshaking protocol.
The invention has particular utility with instant messaging systems using the internet to communicate instant messages between a plurality of clients or appliances, where at least one of these clients or appliances forms part of a remote communication network such as, but not limited to, a Global System for Mobile Communications ("GSM") network that utilises a sequential message handshaking protocol.
Throughout the specification, unless the context requires otherwise, the word "comprise" or variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers.
Background Art
Instant messaging ("IM") systems have become very popular in recent times with the increasing use of the internet and email by all sectors of the community as a communication medium. With internet use pervading the areas of the domestic market and being taken up by younger, computer-literate generations as a social medium in its own right, a need has arisen for spontaneous and "instantaneous" messages to be exchanged between two or more parties connected to the internet simultaneously. This need has not been able to have been satisfied by the use of traditional email systems and consequently, IM systems have spawned as an alternative or adjunct to email. "Instantaneous" in the context of IM means the ability to receive messages without prompting a message-handling server. This is in contrast to the way typical emails are sent and received by internet users.
To send and receive e-mail messages, one uses popular personal computer- based email applications such as Eudora ™ or Microsoft Outlook ™, which employ the Simple Mail Transfer Protocol ("SMTP") and the Post Office Protocol ("POP"). Using POP requires the recipient of an email to query or prompt an email server to which it has subscribed, for messages to download to the user's personal computer ("PC") or any other internet-connected device.
Email messages are sent by a user from an email PC client application (e.g., Eudora ™, Microsoft Outlook ™) on that user's PC to a mail server to which it has subscribed using SMTP. The mail or SMTP server then forwards the message to the desired recipient's mail server via the internet.
Instant messaging systems work in a different fashion to email, requiring minimal if any user action, to receive messages. Messages are forwarded from a sender's client application, normally a PC-based IM client application program, to the intended recipient's client application via an IM server or directly to the recipient's client, almost in "real time" from the time that a message is sent by the sender, or received by the IM server system - hence "instant". No querying is needed to get a message to its intended recipient, reflecting more of a "pushing" technology, than a "pulling" of information. Examples of some popular IM systems in the market include AOL's AIM ™ and ICQ ™.
A characteristic of most IM systems is that a client user is able to set up a network of friends or colleagues, more commonly known as "buddies" with or amongst whom messages can be exchanged instantly.
Although current IM systems in the main involve buddy networks set up amongst client users that are PC based, more recently IM systems have been proposed that allow connectivity amongst different client types and different types of IM systems. For example, other client applications may include email-based client applications (eg Eudora ™, Microsoft Outlook ™) and browser based client applications (eg Internet Explorer ™ and Netscape ™) on the internet, and also devices connected into a GSM network, such as mobile phones.
GSM networks have their own form of IM system for communicating short textual messages between different subscribers known as "Short Message Service" ("SMS"). With SMS, a "Short Message Service Centre" ("SMSC") provides a server through which all SMS messages that are sent and received by client subscribers are handled. The messages are short, typically limited to 160 characters in length, and are sent between subscribers of the GSM network, with the SMSC server processing the messages for delivery to the right destination using the GSM mobile number of the intended receiver. Under the SMS protocol, the textual message from the sender is initially sent to the SMSC server using the cellular telephone network. The SMSC then stores the message and allocates it to the intended recipient for downloading, in accordance with normal GSM protocol, when the recipient is identified to be active within a cell.
SMS messaging is normally only provided between GSM clients that specifically subscribe to it, however, by virtue of the SMSC server, it is possible to connect to the internet using a particular protocol, dependent upon the particular GSM phone and network manufacturer. For example, Nokia ™ use Computer Interface Message Distribution protocol version Two (CIMD2).
The CIMD2 protocol, like virtually all SMSC protocols providing connectivity to the internet or other external networks, works on sequential message handshaking. This type of handshaking, in the case of an SMSC sending an IM to an external network, requires a confirmation to be received by the SMSC from the network indicating that the server of the external network has safely received the IM, before another IM will be sent. In the case of an SMSC server receiving an IM from an external network, the converse applies, whereby the SMSC server will not receive another IM until it has sent a confirmation to the external network server that the previous IM received by it has been received. Thus, only one message at a time can be processed by the SMSC, whereby it must receive confirmation each time that it sends or receives an IM from the server on the external network with which it is communicating. In addition to this sequential handshaking each instant message itself must have its own unique confirmation.
The problem with this type of handshaking is that it does not lend itself to communicating messages rapidly with external networks that are unstable or involve an inherent latency, such as the internet.
As instant messaging systems rely upon the speed at which they convey messages and flexibility in accommodating different client types such as mobile phones connected into a GSM network as attributes in distinguishing them from e- mail, slow communications between an IM server and an SMSC server is highly undesirable and detracts from the virtues of instant messaging.
Whilst the problem can be addressed by creating direct links between the IM server and the SMSC server, in a global IM system such an arrangement would be prohibitively expensive if the IM server was to be centrally located.
Centralisation of the IM server, however, is desirable in a global IM system, where it is preferable to locate the centralised IM server in a tier 1 internet exchange residing in an area of very reliable internet infrastructure such as in the United States of America or Europe. Such location of an IM server provides maximal reliability and redundancy of internet access.
On the other hand, the geographical location and distribution of GSM networks is quite unrelated to the geographical location of tier 1 internet exchanges and consequently stability and latency factors can vary considerably with communications between SMSC servers that can be located in different and indeed quite remote regions of the world, and an IM server located in a tier 1 internet exchange. Disclosure of the Invention
It is an object of the present invention to provide for instant messaging between an instant messaging server and a server of a remote network where that server relies upon sequential message handshaking for confirmation of the transmission and receipt of messages at optimum speeds, even in situations where the communication network between the IM server and the server of the remote network is relatively unstable and experiences high latency problems.
It is a further object of the present invention to provide for instant messaging which substantially obviates or alleviates the problems associated with the speed at which messages are communicated between an IM server and an SMSC server of a GSM via the internet.
In accordance with one aspect of the present invention, there is provided in an instant messaging system comprising: an IM server having a plurality of clients with IM client applications of the same or different types, a remote server to which at least one of the clients is connected, a computer network interconnecting the IM server and the remote server to provide IM communications therebetween, wherein the remote server utilises a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received, and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability; the computer network including:
a buffer server interconnected with the remote server using a sequential message handshaking protocol corresponding to that used by the remote server, wherein the interconnection provides for the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions; the buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially and thus accommodate higher latency and instability problems with the computer network;
and wherein the buffer server is optimally connected relative to both the IM server and the remote server so as to maximise message throughput. Preferably, the buffer server is connected via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
Alternatively, if the remote network is located in a highly reliable internet exchange with a highly reliable internet infrastructure, the buffer server may be located in close proximity to the remote server and be connected via the highly reliable internet exchange and infrastructure to the remote server.
In accordance with another aspect of the present invention, there is provided an instant messaging system comprising:-
an IM server having a plurality of clients with IM client applications of the same or different types;
a remote server to which at least one of the clients is connected;
a computer network interconnecting the IM server and the remote server to provide IM communications therebetween and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability;
the remote server utilising a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by the remote server before a subsequent message is able to be transmitted or received;
a buffer server interconnected with the remote server using a sequential message handshaking protocol corresponding to that used by the remote server, the interconnection providing for the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions;
the buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially to accommodate higher latency and instability of the computer network therebetween; and
the buffer server being optimally connected relative to both the IM server and the remote server so as to maximise message throughput.
Preferably, in either aspect of the invention, the buffer server is connected via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
Alternatively, in either aspect of the invention, if the remote network is located in a highly reliable internet exchange with a highly reliable internet infrastructure, the buffer server may be located in close proximity to the remote server and be connected via the highly reliable internet exchange and infrastructure to the remote server.
Preferably, in either aspect of the invention, the remote server is an SMSC server of a GSM network and the client types connected to the SMSC server have SMS capability that is controlled and managed by the SMSC server to provide for SMS there between and instant messaging between the SMSC server and the IM server. Preferably, in either aspect of the invention, the computer network interconnecting the I server and the buffer server is the internet.
Preferably, in either aspect of the invention, the IM server is located within a tier 1 internet exchange.
Preferably, in either aspect of the invention, the computer network interconnecting the buffer server and the remote server or host is a direct electronic link.
Preferably, in either aspect of the invention, the IM server is interconnected to a plurality of remote servers via the computer network, each remote server utilising a sequential message handshaking protocol for transmitting and receiving messages with the IM server, whereby a buffer server is associated with and dedicated to each remote server.
Preferably, in either aspect of the invention, said client types connected to the computer network via the GSM network have SMS capability and are initially connected via an SMSC server to control and manage said SMS therebetween, and wherein said SMSC server is directly connected to said IM server via said computer network.
Preferably, in either aspect of the invention, the IM server is provided with a communication buffer mirrored to the buffer of said buffer server of the remote network, and each buffer comprises a circular array to contain the messages currently being processed by the instant messaging system at any one time, and wherein a plurality of statuses are recorded against each message to indicate its particular stage of communication between the IM server and the SMSC server.
Preferably, in either aspect of the invention, each said buffer is provided with synchronization means to reconstruct messages that may have been lost in transit between the communication buffer of the IM server and the buffer server at the remote server as a result of an extended interruption to the computer network linking the same. Preferably, in either aspect of the invention, the synchronization means reconstructs messages from said circular array having regard to the statuses of the current messages being processed by the instant messaging system In accordance with another aspect of the present invention, there is provided a method for instant messaging between a plurality of clients connected to a centralised IM server, one client having an IM application provided via a remote network connected to the IM server via a computer network and a remote server, and the remote server utilising a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability; the method comprising:-
buffering communications with that portion of the computer network interfaced with the remote server and using a sequential handshaking protocol corresponding to that used by the remote server, so that the communication of messages with the remote server is provided in steady, timed flows with minimal latency and connection disruptions;
simultaneously buffering communications with that portion of the computer network interfaced with the IM server using a communication protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially thereby accommodating higher latency and instability that may be associated with that portion of the computer network; and
performing the buffering in a manner so as to maximise message throughput. Preferably, the buffering is performed via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
Alternatively, if the remote network is located in a highly reliable internet exchange with a highly reliable internet infrastructure, the buffering may be performed in close proximity to the remote server and via the highly reliable internet exchange and infrastructure to the remote server.
Brief Description of the Drawings
The invention will be better understood in the light of the following description of one specific mode thereof. The description is made with reference to the accompanying drawings, wherein:
Figure 1 is a schematic block diagram showing the embodiment of the IM system with the IM server connected to a plurality of SMSC servers of one or more GSM networks via a computer network incorporating buffer servers and the internet;
Figure 2 is a schematic diagram showing the circular array structures that reside in the communication buffer of the IM server and the buffer server of the remote server; and
Figure 3 is a logic flow diagram showing the synchronisation procedure.
Mode for Carrying Out the Invention
The preferred embodiment of the mode of the invention is directed towards an instant messaging ("IM") system and a method of instant messaging, whereby the IM system comprises an IM server to which a number of users or clients may be selectively connected via the internet or direct electronic links. More particularly the embodiment is concerned with the computer network interconnecting a plurality of remote servers of a GSM mobile phone network having SMS capability with the IM server.
In the present embodiment, the remote server is an SMSC server that controls and manages the SMS of one or more GSM networks and wherein the SMSC allows for the communication of instant messages between the IM server and a mobile phone user of the GSM network. The basic functions of the IM system, ie the basic actions it can undertake on behalf of a user, consist of sending and receiving instant messages and detecting users who are "online", i.e., connected to the internet or otherwise accessible by instant messaging right at, or around, that particular moment in time. Users are also referred to as "buddies" in the IM system. There can be no absolute assurance that a user is actually online or reachable at a given moment by instant messaging due to the less than perfect stability of the internet and GSM networks, mobility of the GSM subscriber, and so on.
The IM server system is designed to undertake any of the aforementioned basic actions if triggered or instructed to do so by the particular appliance of the client accessing the IM server. This triggering occurs when the client appliance sends an electronic prompt or command to the IM server. A PC-based application will do this by sending commands to the IM server via an electronic or internet link. A GSM device will do this by sending an SMS message to the IM server via the SMSC of the GSM network of which it is part and the computer network interconnecting the SMSC server and the IM server. The format of the delivered information, such as the actual message or notification of who is online, necessarily depends on the appliance type and thus in the case of a GSM device will be in SMS format.
In a GSM-based client, a GSM device such as a mobile phone is the terminal or appliance, and the user of this device operates it as a subscriber to the GSM network where telecommunications between subscribers are transmitted wirelessly through GSM cellular sites disposed to create a cellular network.
A subscriber-to-subscriber SMS message on a GSM network includes an information packet comprising the sender's numeric address (the GSM mobile phone number of the sender), the target recipient's numeric address (typically the GSM mobile phone number of the receiver), the GSM mobile number of the SMSC server which will process the message, and as much as a 160-character message. The SMSC server controls and manages the transmission of all SMS messages between subscribers. The SMSC server includes a database of all SMS subscribers and stores SMS information packets sent by subscribers for subsequent downloading by targeted recipients when the GSM device of a recipient is switched on and is within a cell.
The SMSC server may be connected to the IM server via a direct electronic link or the internet. In the present embodiment it is connected by way of a computer network comprising a combination of the two. Thus messages or short messages can be sent via the computer network from the IM server to the SMSC server for subsequent delivery to subscribers of SMS on the GSM network and vice versa. Short messages are sent and received between the IM server and the SMSC server using the GSM network's message protocol. In the present mode, the particular protocol used is CIMD2. The system, however, can support other protocols such as Simple Message Paging Protocol ("SMPP").
These protocols are characterised by sequential message handshaking whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by the SMSC server before a subsequent message is able to be transmitted or received.
Now describing the configuration of the present embodiment in more detail, as shown in Figure 1 of the drawings, the IM system comprises an IM server 11 having a communication buffer 12, which is connected to part of a computer network comprising the internet 13. The communication buffer 12 is a process or program construct that forms a buffer array inside the same computer system constituting the IM server 11. The IM server 11 is physically located to interface directly with a tier 1 internet exchange so that it will be close to a large amount of internet traffic providing high reliability and redundancy of internet access.
An SMSC buffer server 14 is located proximate to an SMSC server 15 of a remote GSM carrier network 16. The SMSC buffer server 14, on one side, is connected to the internet 13 and on the other side is directly connected via an electronic link 19 to the SMSC server 15.
Thus the computer network linking the IM server 11 to the SMSC server 15 comprises a combination of the internet 13 and the direct electronic link 19, and is interfaced with the IM server 11 by means of the communication buffer 12 and the SMSC server 15 by means of the SMSC buffer server 14.
Clients in the form of PC users 17 (and other users of the IM system) connect to the IM server 11 primarily through the internet 13. Clients in the form of GSM devices 18, however, connect to the SMSC server 15 to exchange messages, which in turn is directly connected with the SMSC buffer server 14, and it is the SMSC buffer server 14 that connects to the IM server 11 via the internet 13.
Whilst the interface of the communication buffer 12 with the internet 13 is quite reliable due to the positioning of the IM server 11 in a tier 1 internet exchange, this is not necessarily so with the interface of the SMSC buffer server 14 to the internet 13. If the location of the SMSC server 15 and GSM network 16 is remote from the IM server 11 and not in a tier 1 internet exchange, which is the case in the present embodiment, then the connection to the internet 13 can be quite unstable and suffer high latency.
The way messages are handled by the communication buffer 12 and remote buffer server 14 is crucial to minimising the effects of latency with the computer network. The SMSC buffer server 14 is configured to use a corresponding sequential message handshaking protocol to that used by the SMSC server 15 so that the SMSC buffer server exchanges SMS instant messages with the SMSC server 15 with each message requiring confirmation that it has been received by either the SMSC server 15 from the SMSC buffer server 14 or the SMSC buffer server 14 from the SMSC server 15, before the next message can be sent. Although this would create a major speed problem if directly connected to the internet which has intrinsic latency and stability problems, since the SMSC buffer server 14 is connected directly to or co-located with the SMSC server 15, latency and connection disruptions between the two are kept to a minimum.
On the other hand, the exchange of messages or SMS between the communication buffer 12 and the SMSC buffer server 14 does not require sequential message per message confirmation before any new messages can be sent or exchanged. Though message confirmations are still required, for message tracking purposes, the confirmations can come at random, as opposed to sequentially.
Consequently, the SMSC buffer server 14 is also configured to connect to the IM server 11 via the internet 13 using a protocol that permits messages to be sent off and received in streams or batches to or from the IM server 11 and which does not require message handshaking to be performed sequentially between each message transmitted and received.
The SMSC buffer server 14 is also provided with a buffer memory to store up to 255 SMS instant messages of up to 160 characters each to accommodate typical latency and instability problems associated with the internet. By virtue of this facility, the SMSC buffer server 14 can simply store each message it receives from the SMSC server 15 and provide the sequential handshaking confirmation that is required with each message, thereby minimising the delay that arises with the communication of messages between the SMSC server 15 and the SMSC buffer server 14. It can also rapidly send messages from the buffer memory to the IM server 11 concurrently or once connection is established or re-established with the internet, without having to concern itself with message receipt confirmations and thus not be unduly delayed or affected by latency and instability issues associated with the internet.
Likewise, the buffer memory of the SMSC buffer server 14 is sized to store up to 255 instant messages of 160 characters each received from the communication buffer 12 of the IM server 11 to accommodate different speeds in the transfer of messages from the SMSC buffer server 14 to the SMSC server 15. The need for buffering at this end arises not from latency and stability issues associated with the link to the SMSC server 15, as the need for high stability and low latency of this part of the link is the essence of the invention, but rather due to the sequential message handshaking requirement of the SMSC server, whereby the rate of transfer of messages between the buffer server and the SMSC server is dictated by the speed of processing the messages by the SMSC server. Thus the speed of communications between the SMSC buffer server 14 and the SMSC server 15 is quite independent of the speed of communications between the communication buffer 12 and the SMSC buffer server 14, and can at times be much slower than the latter, hence the need for buffering at both interfaces of the buffer server 14 with the computer network.
Although sequential message handshaking is not required between the communication buffer 12 and the SMSC buffer server 14, message tracking is nonetheless very crucial for high performance delivery. Hence, the IM system must know the status of each message going through the system and must ensure minimal message loss if at all. In case the internet connection between the buffer servers gets interrupted, the SMSC buffer server 14 and the communication buffer 12 have synchronization features, enabling the effective reconstruction of messages, which could have been lost. This feature will be discussed later.
For illustration, the following describes the flow of a message from a PC user 17 to a GSM device user 18.
A message is sent to the IM server system 11 via the internet 13. The IM server 11 relays the message through its own communication buffer 12 to the SMSC buffer server 14, via the internet 13. The IM server 11 can continue to send more messages to the SMSC buffer server 14 without waiting for confirmation that the SMSC buffer server 14 has received the last message successfully.
Immediately the SMSC buffer server 14 receives a message, it stores it in its buffer memory. As soon as a message is stored in its buffer memory, the SMSC buffer server sends the oldest message stored to the SMSC server 15. The SMSC server 15 confirms the receipt of the message or SMS by sending the SMSC buffer server 14 a confirmation. This confirmation is necessary before the next oldest stored message can be transmitted to the SMSC server 15 by the SMSC buffer server 14. Due to the fact that the SMSC buffer server 14 is co- located or directly connected via the electronic link 19 to the SMSC server 15, the exchange of messages between the two occurs with minimal latency and interruption, as compared to a pure internet connection.
A similar process takes place for messages sent by the user of a GSM device 18 to a PC user 17. The user of the GSM device 18 composes a message or SMS that is then transmitted to the SMSC server 15. Upon recognizing that the message is meant for a user of the IM system, the SMSC server 15 relays the message to the SMSC buffer server 14. As with messages sent to the SMSC server 15 by the SMSC buffer server 14, the SMSC buffer server 14 must likewise confirm the receipt of the message before it can receive any new messages from the SMSC server 15.
The SMSC buffer server 14 transmits the message to the IM server 11 via the internet 13 through the mirror communication buffer 12. The SMSC buffer server 14 can continue to send more messages to the IM server 11 since their exchange of messages with the corresponding communication buffer server 12 does not require sequential message per message confirmation before new messages can be transmitted. Eventually, the IM server 11 transmits the message to the intended PC user recipient 17 via the internet 13.
The communication buffer 12 and the SMSC buffer server 14 possess circular arrays containing the messages that are presently being processed by the IM system. Figure 2 illustrates the circular array structure that resides in each of the buffer servers. Essentially the two circular arrays mirror each other, i.e. the same messages reside (or eventually get stored) in the same position in the other array. Sometimes, however, the arrays can be out of synchronization for a protracted period of time. This situation may occur when the internet connection between the two buffer servers gets interrupted for an extended period. If this happens the IM system can reconstruct the messages that may have been lost in transit.
Each data element in the circular array contains the following information: sender 202, recipient 203, the message 204, its address 201 within the circular array, and special flags 205-208. The array resides in the random access memory (RAM) of the computer for each buffer server (or the hard drive, to the extent that the RAM becomes filled).
Each data element in the circular array, or message for that matter, has a special flag that says any one of the following: Retrieved 205, Sent 206, Confirmed 207, and Processed 208. Also, each circular array has four "pointers" or indices: Last Message Retrieved 209 (Last Retrieved), Last Message Sent 210 (Last Sent), Last Message Confirmed 211 (Last Confirmed), and Last Message Processed 212 (Last Processed). These indices point to elements or particular addresses in the circular arrays as suggested by the labels.
The processing of a message sent from the IM server 11 to a GSM device 18 takes place as follows.
The communication buffer 12 "retrieves" the message waiting on queue, having been recently sent by a PC user 17. This message is marked retrieved with the "last retrieved" pointer updated accordingly. The communication buffer 12 "sends" the message to the SMSC buffer server 14. The communication buffer 12 flags this message on the array as "Sent" and the "last sent" pointer is updated accordingly.
Once the SMSC buffer server 14 successfully receives the message, it stores it in its own array and sends an acknowledgement back to the communication buffer 12 whereby on receipt, the message is tagged "Confirmed" on the communication buffer 12 and the "last confirmed" pointer is updated accordingly. Finally, the SMSC buffer server 14 notifies the communication buffer 12 that the GSM device 18 through the SMSC server 15 has successfully received the message. At this point, the message will be tagged "Processed" on the communication buffer 12 and the "last processed" pointer updated accordingly, which also means that the communication buffer 12 is ready to accept a new message in that particular location in its array.
While this is happening, the communication buffer 12 may continue receiving additional messages, storing each in addresses within the array and whose "Processed" flag is turned on.
The processing of a message sent from the SMSC buffer server 14 to the PC user 17 takes place as follows. The SMSC buffer server 14 "retrieves" the message waiting on queue at the SMSC server 15, having been recently sent by a GSM device 18. The SMSC buffer server 14 "sends" the message to the communication buffer 12. The SMSC buffer server 14 flags this message on the array as "Sent".
Once the communication buffer 12 successfully receives the message, it sends an acknowledgement to the SMSC buffer server 14, whereby on receipt the message is tagged as "Confirmed" on the SMSC buffer server 14.
Finally, the communication buffer 12 notifies the SMSC buffer server 14 that the message has been successfully sent to the PC user 17 or is queued in the "message inbox" of the PC user 17. At this point, the message will be tagged "Processed" on the SMSC buffer server 14, which also means that the SMSC buffer server 4 is ready to accept a new message in that particular location in its array.
While this is happening, the SMSC buffer server 14 may continue receiving additional messages from the SMSC server 15, storing each in addresses within the array whose "Processed" flag is turned on. However, the SMSC buffer server 14 can only "retrieve" one message at a time from the SMSC server 15, only after it tells the SMSC server 15 that it has successfully "retrieved" the previous message sent. Notwithstanding this, since the SMSC buffer server 14 has a direct electronic link 19 to (or is co-located with) the SMSC server 15, this message confirmation loop can occur relatively quickly, with minimal latency as compared to a pure internet connection.
In the same manner as described in the IM server to GSM device procedure, the "last x" pointers, where x can be "sent", "received", "confirmed" or "processed" are continuous])/ updated. Every operation successfully carried out will merit a corresponding change in one of the pointers. This ensures an active circular buffer whose slots are constantly re-used and gives the system the ability to recover from an interruption in the internet connection.
The system includes synchronization means to reconstruct messages that may have been lost in transit should an extended interruption of the internet connection between the buffer servers takes place. The synchronization means is in the form of a routine programmed into the IM server 11 /communication buffer 12 and the SMSC buffer server 14. The logic flowchart of the algorithm for this synchronization means is shown in Figure 3 of the drawings.
The routine causes the communication buffer 12 and the buffer server 14 to monitor its respective connection with the internet 13 as represented by program loop 301. Once either of the buffers detects an extended interruption 303, the buffers try to reconnect 305 (though they would still continue to receive/retrieve messages from the two ends of the I system - the I server 11 from various PC users 17, and the SMSC buffer server 14 from the users of the GSM devices 18 via the SMSC server 15). Once connection has been re-established 307, the buffers resend messages 309 from the "Last Confirmed" pointer up until the "Last Sent" pointers. Hence, messages that may have been lost during the internet connection interruption will be reconstructed/retransmitted.
It should be appreciated that the scope of the present invention is not limited to the specific mode and the embodiment thereof described herein. Accordingly, changes and improvements to the embodiment that amount to no more than common general knowledge are not considered to depart from the spirit or scope of the invention.

Claims

The Claims Defining the Invention are as Follows
1. In an instant messaging system comprising: an IM server having a plurality of clients with IM client applications of the same or different types, a remote server to which at least one of the clients is connected, a computer network interconnecting the IM server and the remote server to provide I communications therebetween, wherein the remote server utilises a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received, and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability; the computer network including:
a buffer server interconnected with the remote server using a sequential message handshaking protocol corresponding to that used by the remote server, wherein the interconnection provides for the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions;
said buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially and thus accommodate higher latency and instability problems with the computer network;
and wherein said buffer server is optimally connected relative to both the IM server and the remote server so as to maximise message throughput.
2. An instant messaging system comprising:-
an IM server having a plurality of clients with IM client applications of the same or different types;
a remote server to which at least one of said clients is connected; a computer network interconnecting said IM server and said remote server to provide IM communications therebetween and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability;
said remote server utilising a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received;
a buffer server interconnected with said remote server using a sequential message handshaking protocol corresponding to that used by said remote server, the interconnection providing for the communication of messages between said buffer server and said remote server in steady, timed flows with minimal latency and connection disruptions;
said buffer server also being interconnected with the IM server using a protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially to accommodate higher latency and instability of the computer network therebetween; and
3. said buffer server being optimally connected relative to both said IM server and said remote server so as to maximise message throughput. The invention as claimed in claim 1 or 2, wherein the buffer server is connected via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
4. The invention as claimed in claim 1 or 2, wherein if the remote network is located in a highly reliable internet exchange with a highly reliable internet infrastructure, the buffer server is located in close proximity to the remote server and is connected via the highly reliable internet exchange and infrastructure to the remote server.
5. The invention as claimed in any one of the preceding claims, wherein said remote server is an SMSC server of a GSM network and said client types connected to the SMSC server have SMS capability that is controlled and managed by said SMSC server to provide for SMS there between and IM between the SMSC server and the IM server.
6. The invention as claimed in any one of the preceding claims, wherein said sequential message handshaking protocol is CIMD2.
7. The invention as claimed in any one of the preceding claims, wherein said computer network interconnecting said IM server and said buffer server is the internet.
8. The invention as claimed in claim 7, wherein the IM server is located within a tier 1 internet exchange.
9. The invention as claimed in any one of the preceding claims, wherein the IM server is interconnected to a plurality of remote servers via the computer network, each remote server utilising a sequential message handshaking protocol for transmitting and receiving messages with the IM server, whereby a said buffer server is associated with and dedicated to each remote server.
10. The invention as claimed in any one of the preceding claims, wherein the messages are communicated in streaming data between said buffer server and the remote server in well-defined time increments or cycles or sporadically depending on when the messages become available to send.
11. The invention as claimed in any one of the preceding claims, wherein the buffer server has sufficient memory to buffer up to 255 instant messages received from the remote server to accommodate latency and instability problems associated with the computer network connection to the IM server.
12. The invention as claimed in any one of the preceding claims, wherein the buffer server has sufficient memory to buffer up to 255 instant messages received from the communication buffer to accommodate different communication speeds between the buffer server and the remote server.
13. The invention as claimed in any one of the preceding claims, wherein the IM server is provided with a communication buffer mirrored to the buffer of said buffer server of the remote network, and each buffer comprises a circular array to contain the messages currently being processed by the instant messaging system at any one time, and wherein a plurality of statuses are recorded against each message to indicate its particular stage of communication between the IM server and the SMSC server.
14. The invention as claimed in any one of the preceding claims, wherein the IM server is provided with a communication buffer mirrored to the buffer of said buffer server of the remote network, and each said buffer is provided with synchronization means to reconstruct messages that may have been lost in transit between the buffers as a result of an extended interruption to the computer network linking the same.
15. The invention as claimed in claim 14 as dependent on claim 13, wherein said synchronization means reconstructs messages from said circular array having regard to the statuses of the current messages being processed by the instant messaging system.
16. An instant messaging system substantially as herein described with reference to the accompanying drawings as appropriate.
17. A method for instant messaging between a plurality of clients connected to a centralised IM server, one client having an IM application provided via a remote network connected to the IM server via a computer network and a remote server, and the remote server utilising a sequential message handshaking protocol for transmitting and receiving messages to and from the IM server, whereby a confirmation of the successful transmission or receipt of a message is required to be received or sent by said remote server before a subsequent message is able to be transmitted or received and wherein that portion of the computer network interfaced with the IM server is prone to latency and instability; the method comprising:- buffering communications with that portion of the computer network interfaced with the remote server and using a sequential handshaking protocol corresponding to that used by the remote server, so that the communication of messages with the remote server is provided in steady, timed flows with minimal latency and connection disruptions;
simultaneously buffering communications with that portion of the computer network interfaced with the IM server using a communication protocol compatible therewith in a manner where message handshaking is not required to be performed sequentially thereby accommodating higher latency and instability that may be associated with that portion of the computer network; and
performing the buffering in a manner so as to maximise message throughput.
18. A method as claimed in claim 17, wherein the buffering is performed via a direct electronic link to the remote server so as to ensure the communication of messages between the buffer server and the remote server in steady, timed flows with minimal latency and connection disruptions.
19. A method as claimed in claim 17, wherein if the remote network is located in a highly reliable internet exchange with a highly reliable internet infrastructure, the buffering may be performed in close proximity to the remote server and via the highly reliable internet exchange and infrastructure to the remote server.
20. A method for instant messaging between a plurality of clients having IM applications of the same or different types substantially as herein described with reference to the accompanying drawings as appropriate.
PCT/SG2000/000127 2000-08-28 2000-08-28 Instant messaging system and method for remote networks using a sequential message handshaking protocol WO2002019643A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/SG2000/000127 WO2002019643A1 (en) 2000-08-28 2000-08-28 Instant messaging system and method for remote networks using a sequential message handshaking protocol
AU2000274681A AU2000274681A1 (en) 2000-08-28 2000-08-28 Instant messaging system and method for remote networks using a sequential message handshaking protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2000/000127 WO2002019643A1 (en) 2000-08-28 2000-08-28 Instant messaging system and method for remote networks using a sequential message handshaking protocol

Publications (1)

Publication Number Publication Date
WO2002019643A1 true WO2002019643A1 (en) 2002-03-07

Family

ID=20428854

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2000/000127 WO2002019643A1 (en) 2000-08-28 2000-08-28 Instant messaging system and method for remote networks using a sequential message handshaking protocol

Country Status (2)

Country Link
AU (1) AU2000274681A1 (en)
WO (1) WO2002019643A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019363B2 (en) 2000-03-06 2011-09-13 Aol Inc. Facilitating messaging between a mobile device and a user
US8775538B2 (en) 2003-09-05 2014-07-08 Facebook, Inc. Methods for capturing electronic messages based on capture rules relating to online contexts of users
US8874672B2 (en) 2003-03-26 2014-10-28 Facebook, Inc. Identifying and using identities deemed to be known to a user
US8954534B2 (en) 2002-11-18 2015-02-10 Facebook, Inc. Host-based intelligent results related to a character stream
US8965964B1 (en) 2002-11-18 2015-02-24 Facebook, Inc. Managing forwarded electronic messages
US9203647B2 (en) 2002-11-18 2015-12-01 Facebook, Inc. Dynamic online and geographic location of a user
US9203794B2 (en) 2002-11-18 2015-12-01 Facebook, Inc. Systems and methods for reconfiguring electronic messages
US9203879B2 (en) 2000-03-17 2015-12-01 Facebook, Inc. Offline alerts mechanism
US9246975B2 (en) 2000-03-17 2016-01-26 Facebook, Inc. State change alerts mechanism
US9319356B2 (en) 2002-11-18 2016-04-19 Facebook, Inc. Message delivery control settings
US9647872B2 (en) 2002-11-18 2017-05-09 Facebook, Inc. Dynamic identification of other users to an online user
US9667585B2 (en) 2002-11-18 2017-05-30 Facebook, Inc. Central people lists accessible by multiple applications
US10187334B2 (en) 2003-11-26 2019-01-22 Facebook, Inc. User-defined electronic message preferences

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0777394A1 (en) * 1995-12-01 1997-06-04 ALCATEL BELL Naamloze Vennootschap Method and apparatus for electronic mail transmission as short messages towards a mobile radio terminal
WO1999011037A1 (en) * 1997-08-29 1999-03-04 Extreme Networks Protocol for communicating data between packet forwarding devices via an intermediate network interconnect device
WO1999048011A1 (en) * 1998-03-20 1999-09-23 Advanced Web Solutions, Inc. Communication board system and method for use in computer networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0777394A1 (en) * 1995-12-01 1997-06-04 ALCATEL BELL Naamloze Vennootschap Method and apparatus for electronic mail transmission as short messages towards a mobile radio terminal
WO1999011037A1 (en) * 1997-08-29 1999-03-04 Extreme Networks Protocol for communicating data between packet forwarding devices via an intermediate network interconnect device
WO1999048011A1 (en) * 1998-03-20 1999-09-23 Advanced Web Solutions, Inc. Communication board system and method for use in computer networks

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019363B2 (en) 2000-03-06 2011-09-13 Aol Inc. Facilitating messaging between a mobile device and a user
US9203879B2 (en) 2000-03-17 2015-12-01 Facebook, Inc. Offline alerts mechanism
US9736209B2 (en) 2000-03-17 2017-08-15 Facebook, Inc. State change alerts mechanism
US9246975B2 (en) 2000-03-17 2016-01-26 Facebook, Inc. State change alerts mechanism
US9053175B2 (en) 2002-11-18 2015-06-09 Facebook, Inc. Intelligent results using a spelling correction agent
US9253136B2 (en) 2002-11-18 2016-02-02 Facebook, Inc. Electronic message delivery based on presence information
US8965964B1 (en) 2002-11-18 2015-02-24 Facebook, Inc. Managing forwarded electronic messages
US9047364B2 (en) 2002-11-18 2015-06-02 Facebook, Inc. Intelligent client capability-based results related to a character stream
US9053173B2 (en) 2002-11-18 2015-06-09 Facebook, Inc. Intelligent results related to a portion of a search query
US9774560B2 (en) 2002-11-18 2017-09-26 Facebook, Inc. People lists
US9053174B2 (en) 2002-11-18 2015-06-09 Facebook, Inc. Intelligent vendor results related to a character stream
US10033669B2 (en) 2002-11-18 2018-07-24 Facebook, Inc. Managing electronic messages sent to reply telephone numbers
US9075867B2 (en) 2002-11-18 2015-07-07 Facebook, Inc. Intelligent results using an assistant
US9075868B2 (en) 2002-11-18 2015-07-07 Facebook, Inc. Intelligent results based on database queries
US9171064B2 (en) 2002-11-18 2015-10-27 Facebook, Inc. Intelligent community based results related to a character stream
US9203647B2 (en) 2002-11-18 2015-12-01 Facebook, Inc. Dynamic online and geographic location of a user
US9203794B2 (en) 2002-11-18 2015-12-01 Facebook, Inc. Systems and methods for reconfiguring electronic messages
US8954530B2 (en) 2002-11-18 2015-02-10 Facebook, Inc. Intelligent results related to a character stream
US8954534B2 (en) 2002-11-18 2015-02-10 Facebook, Inc. Host-based intelligent results related to a character stream
US8954531B2 (en) 2002-11-18 2015-02-10 Facebook, Inc. Intelligent messaging label results related to a character stream
US9313046B2 (en) 2002-11-18 2016-04-12 Facebook, Inc. Presenting dynamic location of a user
US9319356B2 (en) 2002-11-18 2016-04-19 Facebook, Inc. Message delivery control settings
US9356890B2 (en) 2002-11-18 2016-05-31 Facebook, Inc. Enhanced buddy list using mobile device identifiers
US9515977B2 (en) 2002-11-18 2016-12-06 Facebook, Inc. Time based electronic message delivery
US9894018B2 (en) 2002-11-18 2018-02-13 Facebook, Inc. Electronic messaging using reply telephone numbers
US9852126B2 (en) 2002-11-18 2017-12-26 Facebook, Inc. Host-based intelligent results related to a character stream
US9560000B2 (en) 2002-11-18 2017-01-31 Facebook, Inc. Reconfiguring an electronic message to effect an enhanced notification
US9571439B2 (en) 2002-11-18 2017-02-14 Facebook, Inc. Systems and methods for notification delivery
US9571440B2 (en) 2002-11-18 2017-02-14 Facebook, Inc. Notification archive
US9621376B2 (en) 2002-11-18 2017-04-11 Facebook, Inc. Dynamic location of a subordinate user
US9647872B2 (en) 2002-11-18 2017-05-09 Facebook, Inc. Dynamic identification of other users to an online user
US9667585B2 (en) 2002-11-18 2017-05-30 Facebook, Inc. Central people lists accessible by multiple applications
US9729489B2 (en) 2002-11-18 2017-08-08 Facebook, Inc. Systems and methods for notification management and delivery
US10389661B2 (en) 2002-11-18 2019-08-20 Facebook, Inc. Managing electronic messages sent to mobile devices associated with electronic messaging accounts
US10778635B2 (en) 2002-11-18 2020-09-15 Facebook, Inc. People lists
US9769104B2 (en) 2002-11-18 2017-09-19 Facebook, Inc. Methods and system for delivering multiple notifications
US9736255B2 (en) 2003-03-26 2017-08-15 Facebook, Inc. Methods of providing access to messages based on degrees of separation
US9531826B2 (en) 2003-03-26 2016-12-27 Facebook, Inc. Managing electronic messages based on inference scores
US9516125B2 (en) 2003-03-26 2016-12-06 Facebook, Inc. Identifying and using identities deemed to be known to a user
US8874672B2 (en) 2003-03-26 2014-10-28 Facebook, Inc. Identifying and using identities deemed to be known to a user
US9070118B2 (en) 2003-09-05 2015-06-30 Facebook, Inc. Methods for capturing electronic messages based on capture rules relating to user actions regarding received electronic messages
US10102504B2 (en) 2003-09-05 2018-10-16 Facebook, Inc. Methods for controlling display of electronic messages captured based on community rankings
US8775538B2 (en) 2003-09-05 2014-07-08 Facebook, Inc. Methods for capturing electronic messages based on capture rules relating to online contexts of users
US10187334B2 (en) 2003-11-26 2019-01-22 Facebook, Inc. User-defined electronic message preferences

Also Published As

Publication number Publication date
AU2000274681A1 (en) 2002-03-13

Similar Documents

Publication Publication Date Title
US7290041B2 (en) Instant messaging system and method for remote networks using a sequential message handshaking protocol
JP4884924B2 (en) Terminal and its message processing method
US7979064B2 (en) Methods and systems for providing application level presence information in wireless communication
US7120455B1 (en) Method and system for mobile instant messaging using multiple interfaces
US9560494B2 (en) Instant messaging to a mobile device
US6920478B2 (en) Method and system for tracking the online status of active users of an internet-based instant messaging system
JP5246332B2 (en) Enhanced messaging platform
EP2063590B1 (en) A method and system for transmitting email and a push mail server
EP1305727B1 (en) Method and system for tracking the online status of active users of an internet-based instant messaging system
EP1493092B1 (en) Apparatus and method for distributing electronic messages to a wireless data processing device
US20030177171A1 (en) Electronic mail retrieval
WO2002019643A1 (en) Instant messaging system and method for remote networks using a sequential message handshaking protocol
CN103166832A (en) Method and server for sending message
US8532564B2 (en) Method for transmitting data, particularly having multimedia contents, in a mobile radio telephone network
CN102036122B (en) Method, device and system for transmitting email information to Internet protocol television (IPTV) terminal
KR100455132B1 (en) Method to transfer multimedia message for multimedia messaging service
KR20050067665A (en) Method for dealing with plural mms

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP