1. Technical Field
The present invention relates generally to an improved data processing system and in particular, to a method, apparatus, and computer instructions for processing and displaying messages. Still more particularly, the present invention provides a method, apparatus, and computer instructions for providing information regarding responses to an instant message in an instant messaging system.
2. Description of Related Art
Instant messaging is an online chat medium, allowing users to communicate with each other and to collaborate in real-time over a network data processing system. Instant messaging is commonly used over the Internet. Instant messaging applications monitor and report the status of users that have established each other as online contacts. This information is typically presented to a user in a window. Instant messaging applications also are often used by users conducting business. By utilizing instant messaging, business users can view each other's availability and initiate a text conversation with colleagues or customers when a desired contact becomes available. Millions of users communicate using instant messaging systems every day. With instant messaging becoming an important part of both personal and business communications, functionality and usability enhancements are important to the continued success of this type of communication tool.
Current instant messaging systems provide information to a message sender regarding the response to the message. For example, information may be returned to the sender regarding if a response to the message is currently being typed. Additionally, a user may configure his messaging system to return a do not disturb flag or an “away” message to a sender if the user is busy or not in the office. However, a problem with instant messaging technology is that the information provided to the message sender offers little detail regarding how soon the sender may expect a response. In addition, if the user has configured his messaging system to return away messages, the user is not able to simultaneously send messages while away messages are being used. The user may also forget to take off the away message or the do not disturb flag. Thus, existing messaging systems only provide a message sender with the current availability status of the message recipient, and even this information may not be correct. As a result, no information predicting when the recipient will become available/unavailable and when the message sender may expect a response to his or her message is available.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for predicting the availability of an instant messaging user in an instant messaging system and providing this information to a message sender.
The present invention provides a method, apparatus, and computer instructions for predicting the availability of an instant messaging user in an instant messaging system and providing that information to a message sender. The present invention analyzes a user's collaborative data to determine the user's availability to respond to an instant message. The present invention also monitors z-order movement of an instant messaging window on a user's screen to determine how much attention the user is paying to the instant messaging. The instant messaging application then uses the collaborative data and the z-order information to provide an improved method of predicting the availability of the user to respond to the instant message. This information is subsequently displayed to an instant messaging partner in the partner's instant messaging window.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers or personal digital assistants (PDAs). In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Server 104 may act as an instant messaging server to facilitate the exchange of messages between users at clients, such as clients 108, 110, and 112. Network data processing system 100 may include additional servers, clients, and other devices not shown.
In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in
Those of ordinary skill in the art will appreciate that the hardware in
The depicted example in
The present invention provides a method, apparatus, and computer instructions for predicting the availability of an instant messaging user in an instant messaging system and providing that information to a message sender. The present invention offers an advantage over current instant messaging systems by allowing z-order data, such as the position and focus of the chat window, to be used in addition to collaborative tools information, such as calendar information, to create a new and improved probability of the predicted time an instant message sender may expect a response from an instant messaging partner. In this manner, a message sender is presented with information regarding when an instant messaging user will become available or unavailable.
The predicted availability of a partner may be generated based on various factors. For example, as users block off time in calendars for meetings, appointments, etc., the present invention may be used to lookup this calendar information regarding a user's availability and provide this information to the message sender. The user may also use the calendar to indicate what times for messaging the user are good, and what times are bad. In addition, the present invention may be used to check a user's calendar and report whether the user is in a meeting (and whether or not the user is on the agenda). A message sender attempting to contact the user may be given this information as well as when the meeting is scheduled to conclude. Statistics may also be generated that keep track of when a user is typically active through the course of the user's workday. This information may be used to inform others when the best time to send a message to the particular user. A user's phone activity may also be checked to determine the user's availability.
An instant messaging partner's availability status may also be tracked by determining the z-order movement of the instant messaging window on the user's screen. In other words, the position and focus of an instant messaging window on a partner's desktop may be used to provide additional information to a user. For example, if the partner's keyboard focus is on instant messaging window, the user is provided with information that conveys the partner's full attention to the instant messaging conversation. In contrast, if the user has minimized the instant messaging window, or if the instant messaging window has been covered by another messaging window or an application, the user is provided with information indicating that the partner is less focused on the instant messaging conversation.
Turning now to
Depending on the particular instant messaging system, instant messaging server process 404 may only be involved in providing an indication of when particular users are online and for establishing initial contacts while users contacting users already on a buddy list may contact those users directly after seeing that a particular user is online. Instant messaging server process 404 may be located on a server, such as data processing system 200 in
In these examples, the different users registered to the instant messaging system are stored in user database 406. This user database provides information needed to search for and find other users as well as contact users when they are online.
Turning next to
In the illustrative example, instant messaging application 500 processes messages, such as message 502, received from users located on remote data processing systems. As messages are received, these messages are presented in dialog windows 504. Additionally, dialog windows 504 provide an interface for a user to input text to send messages to other users.
Contact and control window 506 is presented by instant messaging application 500 to provide the user with a list of user names, as well as other information. Contact and control window 506 also provides an interface to allow a user to set different preferences. For example, the user may set passwords required to access different names used in instant messaging sessions.
Also, a user may employ contact and control window 506 to set other preferences, such as colors and fonts used in instant messaging application 500. These preferences also may include whether a picture is to be sent when a session is initiated with another user. Depending on the implementation, the preference may be set to allow a user who receives messages to retrieve images of the senders from a remote database or a local cache.
Further, a list of names presented by contact and control window 506 are stored in contact list 508 in these examples. Additional user or screen names may be added to or deleted from contact list 508. This contact list is employed in presenting the list of names within contact and control window 506.
Turning now to
LWP collaborative environment 600 includes central common services that any feature may access, such as organizational directory servers 602, common data stores (such as a DB2 Database) 604, application servers 606, and administrative services 608. Features may be added to LWP collaborative environment 600 in such a manner that existing features may easily re-use data. In addition, information from a variety of systems, such as, for example, calendaring features 610 from Web Conferences 612, Team Spaces 614, and Messaging 616, are all available to an instant messaging component by way of the LWP Infrastructure.
As LWP collaborative environment 600 comprises many discrete “components” that share a common infrastructure, these components may easily share data due to the common infrastructure. In this manner, it is possible to create the system of better predicted availability described in this patent. LWP architecture is particularly useful because customers may integrate their own components in and contribute to the system. If a customer had a custom component that they wished to add into the LWP system, they would simply add another component (similar to Messaging, Web Conferences, etc). For example, if a customer creates a “vacation planning database”, this data may be added into the predicted availability system. In addition, the customer could add the data from that custom component into the “predicted availability” data set (e.g., it may automatically append the user's status message with the vacation details).
As shown in
Likewise,
As previously mentioned, the predicted availability of a partner may be generated based on various factors. For example, the present invention may be used to lookup calendar information, such as if the user is in a meeting, to determine a user's availability and present it to the message sender. Similarly, the user's calendar may also be used to determine what times for messaging the user are good, and what times are bad. Statistics may also be generated that keep track of when a user is typically active through the course of the user's workday. This information may be used to inform others when the best time to send a message to the particular user. A user's phone activity may also be checked to determine the user's availability.
Turning now to
Preferences window 800 is shown to contain a list of definable items, such as calendar 802. When a user selects calendar 802, the user is presented with a series of calendar preferences. Users may set preferences in the calendar to manage their availability. For example, when calendar 802 is selected, the calendar preferences presented to the user may include preferences such as “working hours” preferences 806. The user may set times for the start and end of the user's workday. Working hours preferences 806 may also provide the user with the option to set general calendaring and instant messaging availability at the same time (e.g., “Change my instant messaging status to ‘away’ when I am online outside of my working hours”).
Users may also choose how they want their calendar events to affect their availability. For example, if the user selects automatic update option 808, the user may further indicate how the user's status is displayed. For instance, the user may select whether the user's status will automatically be set to “do not disturb” when the user is in a meeting, in contrast to providing the name of the meeting the user is attending in a status message without setting the user's status to “do not disturb”. Although the example in
Turning now to
New meeting window 900 is shown to comprise entries for creating a new meeting, such as start time 902 and end time 904, subject 906, and location 908. New meeting window 900 is also shown to include an availability option to the user. For example, if user selects “automatic update” option 910 when creating a new meeting, the user has chosen to be available, during the meeting period, only to those people attending that meeting. Although the example in
As previously mentioned, an instant messaging partner's availability status may be tracked by determining the z-order movement of the instant messaging window on the user's screen. This z-order data may be used alone or in combination to the collaboration tools information as described in
In the particular example in
In contrast,
Likewise,
Turning now to
The process begins by the instant messaging application analyzing a user's collaborative data to determine the user's availability to respond to an instant message (step 1202). For example, the instant messaging application may check collaborative data stored in a user's calendar. The instant messaging application also monitors z-order movement of an instant messaging window on a user's screen to determine how much attention the user is paying to the instant messaging (step 1204). For example, if the partner's keyboard focus is on instant messaging window, the user is provided with information that conveys the partner's full attention to the instant messaging conversation. In contrast, if the user has minimized the instant messaging window, or if the instant messaging window has been covered by another messaging window or an application, the user is provided with information indicating that the partner is less focused on the instant messaging conversation. The instant messaging application then uses the collaborative data and the z-order information to predict the availability of the user to respond to the instant message (step 1206). Subsequently, this information is displayed to an instant messaging partner in the partner's instant messaging window (step 1208), with the process terminating thereafter.
Thus, the present invention provides a method, apparatus, and computer instructions for predicting the availability of an instant messaging user in an instant messaging system and providing that information to a message sender. In these depicted examples, the mechanism of the present invention utilizes z-order data, such as the position and focus of the chat window, in addition to collaborative tools information, such as calendar information, to create a new and improved probability of the predicted time an instant message sender may expect a response from an instant messaging partner. In this manner, the present invention provides an advantage over current instant messaging systems by providing a new and improved probability of the predicted time an instant message sender may expect a response from an instant messaging partner. Thus, a message sender is presented with information regarding when an instant messaging user will become available or unavailable.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.