REAL-TIME MOBILE COMMUNICATION SYSTEM FOR CHATTING
BACKGROUND OF THE INVENTION
This application claims the benefit of U.S. Provisional Application No. 60/281,404, filed April 5, 2001, under 35 U.S.C. § 119(e).
1. Field of the Invention
The present invention relates to a system and device for communication between a user on a mobile client application and another user, via a remote server. More specifically, the present invention permits mobile real-time chatting between the user and another user by using server side push technology to minimize network traffic.
2. Background of the Invention
In the related art, mobile telephone communication is performed via speaker (e.g., audio) in real-time. Further, a text message sent from another user may be displayed on a mobile phone. However, the related art communication system does not display the text message in real-time, as the message is only displayed via non-real-time messaging. For example, but not by way of limitation, the related art system uses voicemail and electronic mail to store messages for future retrieval. Further, the related art system doe not permit realtime communication between multiple users, so as to allow simultaneously received real-time messages to be processed in a manner that useful to the user.
However, the related art computer program and system have various problems and disadvantages. For example, but not by way of limitation, the related art system results in high network traffic. As noted above, the refresh rate of the related art system is not disclosed to be conducted at periodic intervals for mobile communication devices, thus resulting continuous refresh operations that result in increased network traffic.
Further, the user cannot communicate instantaneously with any other multiple users via mobile communication device. Thus, the users cannot perform such real-time activities as scheduling events in the short-term future.
SUMMARY OF THE INVENTION
It is an object of the present invention to overcome at least the aforementioned problems and disadvantages of the related art system.
It is another object of the present invention to provide a mobile chat product that permits a mobile user to communicate with at least one other mobile user in real-time.
It is yet another object of the present invention to provide a client that is configured to poll a server at a variable, predetermined interval to determine availability and status of other prescribed users via a chat server.
A system consistent with the present invention relates to a system for communicating between a first user and at least one second user, including a mobile communication device including an application and a user interface, the application configured to operate in accordance with information received from the first user. The system also includes a remote server configured to communicate with the mobile communication device and enable realtime communication between the first user and the at least one second user in accordance with one of a plurality of states of at lease one of the first user and the at least one second user.
Additionally, another system for communicating between a first user and at least one second user is provided, including a mobile means for receiving and transmitting information with the first user, the mobile means configured to operate in accordance with information received from the first user, and a remote communication means for enabling real-time communication between the mobile means and the at least one second user in accordance
with one of a plurality of states of at lease one of the first user and the at least one second user.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are included to provide a further understanding of illustrative, nonlimiting embodiments of the present invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the drawings.
Figure 1 illustrates a user interface according to an exemplary embodiment of the present invention;
Figure 2 illustrates a system according to the exemplary embodiment of the present invention;
Figure 3 illustrates a communication architecture according to the preferred embodiment of the present invention; and
Figures 4(a)-4(f) illustrate data flow according to the exemplary embodiment of the present invention.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS OF THE
INVENTION
Reference will now be made in detail to an illustrative, non-limiting embodiment of the present invention, examples of which are illustrated in the accompanying drawings. In the present invention, the terms are meant to have the definition provided in the specification, and are otherwise not limited by the specification.
In the present invention, "chat" is defined to include any and all real-time electronic communication between a user having a mobile communication device, and at least one other user at a remote location. Further "instant messaging" is a specific instance of chat, and instant messaging includes communication between the user and one other user. Also,
"buddy" is defined as another user that the user has placed on a list (i.e., a buddy list) for potentially performing a chat session, hi the present invention, the terms "communication" and "chat" may be used interchangeably without narrowing the conventional definition of either term.
The present invention relates to a system for real-time communication (e.g., instant messenger) between a user and at least one other user via a mobile communication device. For example, but not by way of limitation, instant messaging or chatting can be performed. Further, a status list of potential recipient users (i.e., "buddies") is provided for the user, and the system is configured to automatically detect the location of a buddy. The list of buddies is automatically refreshed from a database. Preferably, the database is stored on a database server, but the present invention is not limited thereto. Further, the present invention allows the user to provide their status information to other users in a manner substantially similar to the user's own buddy list.
The present invention employs a mobile client application that communicates with a remote chat server linked to a database. For example, but not by way of limitation, the mobile client application may comprise a Java applet in the mobile communication device of the user (e.g., mobile phone, pager, PDA). The present invention also "flashes" new messages to the client through the use of HTTP. Server-side push technology is used to minimize network traffic. Alternatively, another exemplary embodiment of the present invention may perform polling to search for new messages or a change in buddy status, based on a predetermined frequency of incoming messages.
In the present invention, a client is a mobile device, as described above, used by the user to communicate with at least one other user having a mobile or non-mobile communications device. At the client, the user starts the application (e.g., applet) on the front end. On the back end, the applet at the client sends a packet containing a unique identifier
associated with the mobile communication device to a chat server. The packet notifies the chat server that the user is "online" (i.e., logged in). The chat server then creates a connection identifier, indicative that the user is online and is reachable for real-time communication, that is stored on the server. The connection identifier on the server expires if the applet on the client side does not reset a timer at a predetermined interval.
On the front end at the client, the user is then shown their buddy list, along with the status of each of the buddies, as discussed in greater detail with respect to Figure 1. This buddy information is retrieved from a database via the network (i.e., through the chat server). Accordingly, the user selects at least one buddy from the buddy list with whom they wish to initiate a chat session. If the connection identifier still exists, the user's entered message is stored in a queue by the chat server, and is flashed on the user interface of the selected buddy or buddies when the applet of the buddy's client retrieves the typed message (i.e., in realtime). Optionally, an audible tone may also be provided by the client to alert the buddy of the chat session. Thus, the buddy is informed in real-time.
An alternate means may be used to inform the buddy of the chat session. For example, but not by way of limitation, the user may send a message to the buddy via non-real-time (e.g., email), requesting the buddy to start their chat applet in order to begin the chat session.
On the back end of the client, the server is polled as described above. While the chat session is live, the prescribed polling frequency is increased for participating (e.g., chatting) users. Thus, the users can send and/or receive queues messages for efficiently. However, once the user exits the chat session, the polling frequency is changed to a predetermined rate (e.g., 300 seconds) that is lower than the active polling rate, and the connection identifier is maintained. Thus, network traffic is minimized.
Figure 1 illustrates a user interface for a mobile device according to an exemplary embodiment of the present invention. A buddy list 1 and a chat window 2 are provided. In the
present invention, states are represented by three different state icons. The states include, but are not limited to offline, idle online and chatting online. In Figure 1, the offline state is represented as a circled "X" 3, the idle online state is represented as a circled "happy face" 4, and the online chatting state is represented as a circled "sad face" 5.
As illustrated in Figure 1, the buddy list 1 is provided when the user is in the idle online state. The buddy list 1 displays a status of at least one buddy (e.g., 6a). In the exemplary embodiment, five buddies 6a...6e are illustrated, along with their status. However, the present invention is not limited thereto, and fewer or more buddies may be displayed on the buddy list, along with icons representing their respective states. The first buddy 6a listed is "Club 1," which represents a plurality of users with which the user may chat. The status of Club 1 is online idle, which means that the user can presently chat with the users that are members of Club 1. If the state of a buddy is online idle, then a chat window, which is described in greater detail below, is opened, so that the user can communicate with the recipient.
Figure 1 also illustrates that the status of the second buddy 6b, Club 2, which also represents a plurality of users with which the user may chat, is chatting online. As a result, the user cannot chat with Club 2, because chatting is already occurring such that the user cannot participate. For example, but not by way of limitation, a maximum number of chatting participants may have been exceeded, or a user may not have permission to chat. If a user wishes to communicate with another user (or users) having a status of offline, then the user's message will be sent to the recipient as part of an electronic mail message for delivery to a mailbox of the user. Thus, the offline recipient may read the user's message at a future time.
Additionally, the user may also include individuals for instant messaging on the list. In Figure 1, the third buddy 6c listed on the buddy list is Yoshi Home Free, with a status of idle online. However, the fourth buddy 6d, Buddy 2 Office Busy has a status of offline, and
the fifth buddy 6e, Buddy 3 Shibuya Busy, has a status of chatting online. Therefore, Buddy 2 and Buddy 3 are not available for chatting and/or instant messaging. Previous/next selections 7 are provided in the buddy list interface, so that the user may scroll if the length of the list of buddies exceeds the available space of the buddy list interface 1. Additionally, the user may update status settings by selecting the "options" option 8, or close the buddy list by selecting the "exit" option 9.
As illustrated in the chat window 2 of Figure 1, the user is communicating with Yoshi (i.e., entry 3 of the buddy list) in a chatting online state, such that the buddy list 1 is replaced by the chat window 2. In this interface, the user is communicating with Yoshi as shown in the chat text box 10. Further, a header 11 is provided for the chat text box as a text entry, which includes, but is not limited to, the subject of the communication. The chat window may also be closed by selecting the "close" option 12 on the communication interface (i.e., chat window).
Additionally, the system of the present invention can provide a system message 13 to the user. For example, but not by way of limitation, if another user wishes to participate in the communication, the system will send the user a message indicating that another user is interested in joining the commumcation. At that point, the user may initiate (or respond to) a conversation with another user, such that multiple chat sessions can be performed simultaneously. Alternatively, multiple users may all participate in a single chat session, or may participate as members of a group (e.g., Club 1 and/or Club 2). Further, the user may add multiple buddies in a recursive manner by using the "Add more" option 14.
Figure 2 illustrates the system of the exemplary embodiment of the present invention. In the client 15, a messaging midlet 16 is provided to perform the sending and receiving functionality for the communication. A status update module 17, a friends status (i.e., buddy list) 18 and a buddy list maintenance module 19 are also provided. As illustrated in Figure 3,
a buddy may be added to the buddy list as an individual member, and/or as a member of a group (i.e., club). Additionally, a screen saver 20 may be optionally provided. In the present invention, a user may only be in one active chat group, and the system has two modes: 1:1 and 1 :many, representing instant messaging and chatting, respectively.
Figure 3 graphically illustrates the difference between instant messaging and chatting. A club 21 may include a group of member 22. Alternatively, the members 22 may be listed individually.
Figures 4(a)-4((f) illustrate the relationship between the mobile device (i.e., client) 23 and a remote server 24 according to the preferred embodiment of the present invention. A chronological description of the various functions performed by the client 23 and the server 24 are described. However, the sequencing is not limited thereto, and may further include a different sequence of events illustrated in Figures 4(a)-4(f).
Figure 4(a) illustrates a user performing a login operation according to the exemplary embodiment of the present invention. The user initiates the application, and performs a login function at the client 23. Once the login has been properly performed, the client 23 is configured to transmit a signal 25 to the server 24 indicating that the client 23 has completed the login process successfully. The server 24 is configured to authenticate the user's login. Then, the user is added to the chat server 24, which determines the status of the user's buddies, updates the status of the user on the chat server, and sends the user's buddy list to the client via a signal 26. The client receives the user's buddy list, and displays the buddy list in a user interface.
Figure 4(b) illustrates a default polling function that is performed in the present invention to update the user as to the status of at least one buddy. At a predetermined interval (e.g., 300 seconds), the client 23 automatically polls the server 24 via a polling signal 27. The default polling is performed at the predetermined interval when the user is not participating in
any chat session. During the polling operation, the client 23 requests that the server 24 provide buddy status information, retrieve messages for the user that is currently using the client 23, and perform a chat invite to allow other users to communicate with the user in realtime. Once the client 23 receives the aforementioned information in a signal 28 from the server 24, the client 23 updates the buddy list in accordance with the updated buddy status received from the server 24. The client 23 also displays any messages and chat requests generated in response to the chat invite. As this default polling is performed when the user is not in a chat session, the connection between the user, via the client 23, and the server 24 is maintained.
Figure 4(c) illustrates a client request to another user having a status of offline, according to the exemplary description of the present invention. The client 23 sends a chat request 29 to a buddy or a club for a logged-in user to the server 24. In response, the server 24 reviews buddy permissions to determine if the user is permitted to chat with the requested buddy, and accordingly, sends an invite to the buddy to chat. Because the buddy has an offline status, the message is sent to the buddy via a non-real-time communication. For example, but not by way of limitation, e-mail may be used to send the invite to the buddy.
Figure 4(d) illustrates a client request to another user having a status of idle online. In the' same manner as described above with respect to Figure 4(c), the client 23 sends a chat request 30 to the buddy or club, and the server 24 accordingly checks buddy permissions. Further, the server 24 sends an invite to chat to the buddy. Because the buddy is online while idle, this message is sent to the buddy by real-time message.
Figure 4(e) illustrates a chat request received at the client 23 from the server 24. In this exemplary embodiment, the user is receiving a request to communicate from another user. The server 24 sends a pending chat request 31 to the client 23. The user receives the chat request 31, and accordingly, displays a system message 13, as illustrated in Figure 1 and
described in greater detail above. At this point, the operation of the client 23 may be determined by the user. For example, but not by way of limitation, if the user is not available to chat, the client 23 sends a wait message 32 to the server, and the server accordingly sends the wait message to the buddy.
Alternatively, if the user is ready to being a chat session, the client 23 sends a switch signal 33 to the server 24 for the user, and begins the chat window 2. In response to the switch signal 33, the server 24 sends a start message to the buddy, links the chat together by adding the user to the chat room and updates the status of buddies for the user. The chat session continues, and once the chat session has been terminated by the user, the server 24 ends the current chat session and sends a termination (e.g., bye) message to the group and/or buddy.
Figure 4(e) illustrates the user, via the client 23, receiving a wait request 34 from the server 24. The server 24 transmits the wait request 34 to the client 23. Accordingly, the client 23 receives the wait request 34, and display the wait request 34 to the user on the interface. At this point, the user must wait to begin the requested chat.
In the present invention, the messages communicated between users are understood to be output to the user interface. Further, the messages may include, but are not limited to, text characters of one or more languages, audio messages and audio-visual messages that include video streams.
The present invention has various advantages over the related art. For example, but not by way of limitation, the present invention varies the polling frequency for the polling performed on the server by the client. When the user is not participating in a chat session, the polling frequency is lowered to minimize network traffic. Additionally, the user of applets on the client side further reduces network traffic by use of the aforementioned server side push technology.
It will be apparent to those skilled in the art that various modifications and variations can be made to the described illustrative embodiments of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover all modifications and variations of this invention consistent with the scope of the appended claims and their equivalents.