This subject matter relates to strategies for integrating different kinds of message services. In a more particular implementation, this subject matter relates to strategies for alerting users who are using a first kind of messaging service of messages received via a second kind of messaging service.
Two kinds of message services that enjoy significant popularity today are E-mail 9 services and instant messenger (IM) services. In E-mail services, E-mail functionality at a client device typically sends a text message with optional attachments to an addressee I using the traditional ampersand formulation; for instance, a text message might be addressed to a target recipient John Smith who works for company XYZ (with a domain name “xyzcompany.com”) using the following addressee information: JohnSmith@xyzcompany.com. The E-mail service typically sends the message through a TCP/IP network (e.g., the Internet) to a server associated with the domain name xyzcompany.com. The recipient, John Smith, can then, at his convenience, access the message by downloading it from the server to his own client device. Other popular E-mail services use web-enabled E-mail functionality, which allow senders and recipients to send E-mail messages without having E-mail functionality installed on their respective client devices. Microsoft Corporation's Outlook Express and Hotmail services provide two examples of E-mail services in wide use today.
On the other hand, IM services are generally designed to enable real time communication among participants who happen to be using their computer devices at the same time. That is, an IM service typically includes functionality for allowing an IM user to define a group of participants with whom the user frequently communicates. The IM service will then typically notify the IM user when any member of the thus-defined group happens to be on-line. The IM user then has the option of starting a communication session with one or more of the group members or joining an existing communication session. This prompts the IM service to open a user interface (UI) panel that will display an evolving sequence of textual messages transmitted among group members. When a participant goes off line, it is typically no longer possible to send that participant a message using the IM service.
Since E-mail services and IM services address somewhat different communication needs, many users prefer to use both kinds of services. For instance, users continue to favor E-mail for more formal electronic communication between clients. E-mail is also the preferred choice when it is desirable to send a message to a recipient regardless of whether that recipient is on-line at the moment of message transmission. Also, whether justified or not, E-mail messages may enjoy a greater expectation of security compared to some IM services. On the other hand, users commonly resort to IM services for relatively quick and informal conversations. While some IM services permit users to retain logs of IM conversations, there is generally no expectation that the user will do so in the normal course of using this service.
Using both E-mail services and IM services thus enhances the communication options available to users. However, this dual use also may introduce new challenges. For instance, the use of both services may require the user the repeatedly toggle between the two different kinds of service functionality. That is, after using an IM service for a length of time, the IM user may need to check their E-mail account to determine whether the IM user has received any E-mail messages in their inbox. Provisions exist for alerting a user that they have received E-mail while the user is using other applications. But these alerts do not provide a meaningful synopsis of the state of the user's E-mail inbox. Accordingly, the user may still find it necessary to activate their E-mail functionality to investigate what E-mail messages they have received while using another application, and to determine whether these E-mail messages require their immediate attention.
Accordingly, there is an exemplary need for more satisfactory techniques for integrating notifications provided by different messaging services, such as E-mail services and IM services.
According to one exemplary implementation, a method is described for notifying a user of a first message service of the arrival of a message received via a second message service. The method comprises: (a) activating the first message service to provide a user interface associated with the first message service; (b) receiving a notification that alerts the user that a sender has sent the user a message via the second message service; and (c) presenting the notification via the user interface provided by the first message service, wherein the notification identifies the sender of the message.
According to one exemplary implementation, the above-mentioned first message service is an instant messaging (IM) service and the above-mentioned second message service is an E-mail service.
Additional exemplary implementations are described in the following.
The same numbers are used throughout the disclosure and figures to reference like components and features. Series 100 numbers refer to features originally found in
The following description sets forth techniques for alerting a user of a first message service of messages received via a second message service. The alerting techniques are particularly configured to notify the user of the first message service of the respective identities of the individuals who sent the messages. This feature provides the user of the first message service with a useful summary of activity occurring within the second message service while the user is engaged in interacting with the first message service. This allows the user to decide whether they need to attend to the second message service without having to repeatedly activate and investigate the activities that have occurred with respect to the second message service every time they receive a message through that service.
The term “message service” refers to any functionality for transmitting messages among participants, including one-to-one transmission of messages and one-to-many transmission of messages. To facilitate discussion, the following description is specifically framed in the exemplary context where the first above-mentioned message service is an instant messaging (IM) service and the second above-mentioned messaging service is an E-mail service. IM services generally refer to any functionality for transmitting messages among participants who are concurrently online and attending to an ongoing conversation in some manner. E-mail services general refer to any functionality for transmitting messages to participants' inboxes irrespective of whether the participants are online at the time of message transmission. However, it should be noted that the principles described herein can be applied to other kinds or combinations of message services besides IM services and E-mail services. Further, the principles described herein can be applied to the case where messages received via multiple kinds of message services are forwarded to multiple other kinds of message services; in other words, for example, messages alerts pertaining to messages received by any of message services A, B, C, etc. can be forwarded to users via any of message services M, N, O, etc., and so forth.
Message services perform their ascribed tasks using logic that can be distributed over multiple sites. For instance, the message services may rely on logic allocated to one or more participant client sites as well as one or more server sites. Or the message services can be implemented without requiring that special logic be loaded at the client sites, as in the case of web-enabled message services. The term “service functionality” is used broadly herein to refer to any number of ways that messages services can be implemented, without necessarily referring to a particular technical implementation. Thus, reference to E-mail service functionality can encompass both client-resident functionality for transmitting and receiving messages as well as web-enabled functionality for transmitting and receiving messages. If reference is being made to specific functionality present at a local or remote site, then the phrases local functionality and remote functionality, respectively, will be used.
Generally, any of the functions described with reference to the figures can be implemented using software, firmware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The term “logic, “module” or “functionality” as used herein generally represents software, firmware, or a combination of software and firmware. For instance, in the case of a software implementation, the term “logic,” “module,” or “functionality” represents program code that performs specified tasks when executed on a processing device or devices (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices. More generally, the illustrated separation of logic, modules and functionality into distinct units may reflect an actual physical grouping and allocation of such software and/or hardware, or can correspond to a conceptual allocation of different tasks performed by a single software program and/or hardware unit. The illustrated logic, modules and functionality can be located at a single site (e.g., as implemented by a processing device), or can be distributed over plural locations.
This disclosure includes the following sections. Section A describes an exemplary system for integrating E-mail alerts in an IM service. Section B describes exemplary user interface features for allowing a user to interact with the system of Section A. And Section C describes a series of flowcharts which describe the operation of the system of Section A.
A. Exemplary System
The devices (104, 106, . . . 108) can optionally include or omit logic functionality for implementing some aspect of the message service functionality. For instance, the devices (104, 106, . . . 108) can each include a first software program for implementing aspects of the E-mail service functionality and a second software program for implementing aspects of the IM service functionality. When so configured with these programs, the devices function as E-mail and IM clients. Microsoft Corporation's Outlook Express is one example of a commercially available E-mail client. Microsoft Corporation's Instant Messenger is one example of a commercially available IM client. The devices (104, 106, . . . 108) are shown as including local processing functionality (112, 114, . . . 116) to represent that they may include any combination of software and/or hardware dedicated to the transmission and receipt of messages.
However, in other implementations, the devices (104, 106, . . . 108) need not store and execute message-specific software. For instance, any of the devices (104, 106, . . . 108) can send and/or receive E-mail messages via web-enabled functionality accessible through browser logic. One example of a web-enabled E-mail message service is Microsoft Corporation's Hotmail. As described above, the general term “message service functionality” is meant to refer to any such implementation of the message services, including the software-enable client implementation and the web-enabled browser implementation.
The coupling mechanism 110 can include any kind of routing infrastructure. For instance, this coupling mechanism 110 can include any combination of wide area network, local area network, point-to-point connectivity, and so on. In one example, the coupling mechanism 110 employs some kind of network that utilizes the TCP/IP protocol, such as the Internet or an intranet. In this protocol, messages are transmitted in packets over a network infrastructure that potentially includes various routers, gateways, name servers, etc. (not shown). But the coupling mechanism 110 can also employ other kinds of networks, such as local area Ethernet networks, and so on. The communication links employed by the coupling mechanism 110 can include any combination of hardwired links, wireless links, etc.
The message service infrastructure 102 refers broadly to any infrastructure that is remote from the devices (104, 106, . . . 108). The service infrastructure 102 can be located at a single site or distributed over multiple sites; in the latter case, the parts of the service infrastructure 102 can be coupled together via the coupling mechanism 110 or via a separate coupling strategy. The message service infrastructure 102 can host multiple types of message services, such as instant messaging (IM) service 118, an E-mail messaging service 120, and one or more other types of messaging services (generally denoted by message service n 122). Although these services (118, 120, . . . 122) are shown as implemented exclusively as remote resources, aspects of these services may also be implemented in part by the devices (104, 106, . . . 108) or entirely in a peer-to-peer manner.
Remote processing functionality (124, 126, . . . 128) associated with the different message services (118, 120, . . . 122) refers to any head-end processing mechanisms employed by these services (118, 120, . . . 122). This remote processing functionality (124, 126, . . . 128) can be implemented as one or more servers dedicated to performing ascribed tasks. For instance, the remote processing functionality 126 associated with the E-mail service 120 can include various Simple Mail Transfer Protocol (SMTP) servers, various Post Office Protocol (POP3) or Internet Mail Access Protocol (IMAP) servers, and so on. SMTP servers generally process outgoing mail, while POP3 servers and IMAP servers process incoming mail. In a typical well known routing strategy, assume that Jane Doe who has an e-mail account maintained by ABC company sends an e-mail to John Smith who has an e-mail account maintained by XYZ company; if Jane Doe sends an E-mail message to John Smith, the E-mail service 120 might route the E-mail message to a server associated with the ABC company, which then sends the message to one or more servers maintained by XYZ company.
Likewise, the remote processing functionality 124 associated with the IM service 118 can include various servers dedicated to transmitting instant messages among participant devices (104, 106, . . . 108). An IM server performs the task of setting up user groups. The IM server also monitors whether group participants are logged onto their respective devices (104, 106, . . . 108) and operating online. An IM server also notifies other members of the IM group of the online status of its members. An IM user can invoke a real time communication with another IM user by clicking on a name of that IM user that appears in a user interface presentation provided by the IM service 118. In one implementation, this can prompt the transmission of an instant message from one participant device to another participant device without the assistance of the remote processing functionality 124 provided by the IM service 118.
Finally, store (130, 132, . . . 134) represents any storage functionality associated with the services (118, 120, . . . 122). Each of these stores (130, 132, . . . 134) can represent a single databases of multiple distributed databases. Each of these stores (130, 132, . . . 134) can be implemented using any kind of storage media, including magnetic storage media, solid state storage media, optical storage media, and so forth. Each of the stores (130, 132, . . . 134) can employ any kind of database management functionality to store and retrieve information from the stores (130, 132, . . . 134). As to application, in the case of the E-mail service 120, the storage 132 can be used to store E-mail messages in different accounts assigned to subscribing users. When a user accesses his or her E-mail account, the user is given the option of downloading any of their received E-mail messages to their local devices (104, 106, . . . 108). The IM service 118 may or may not store IM messages at the head-end depending on the configuration of the IM service 118.
Generally, the notification features to be described herein can be applied to any IM service paradigm and E-mail service paradigm. Accordingly, the details provided above should be interpreted as exemplary, rather than limiting. In one case, a single entity (such as a single commercial, academic or governmental entity) can supply by the IM service 118 and the E-mail service 120. For instance, the notification features to be described below can be implemented using a combination of Microsoft Corporation's Instant Messenger service and Hotmail service. In other examples, different entities can furnish the IM service 118 and the E-mail service 120. In this case, these different entities can set up contractual arrangements that permit one service to supply information to another service.
With the above introduction,
To begin with,
In the fourth step (4), the IM service 118 can send a notification to the IM user that alerts the IM user, via an interface associated with the IM service 118, that the IM user has received E-mail messages from members of the user's IM group. Preferably this notification specifically identifies the IM group member(s) who has sent the E-mail messages. The notification may optionally inform the user how many E-mail messages that each IM group member has sent to the user. The notification may optionally inform the IM user of the subject matter that each of the E-mail messages pertains to. This notification information therefore provides a synopsis of the content of the IM user's E-mail inbox, filtered with respect to the messages transmitted by IM group members. Upon viewing this synopsis, the IM user may then choose to invoke the E-mail service 120 itself to view and potentially respond to the received E-mail messages.
Further details regarding exemplary user interface presentations for displaying the notification information are shown in
The protocol described with reference to
Still further protocols can be used to alert IM users of E-mail messages received from IM group members.
As a final note, the above discussion was framed in the context of alerting the IM user to only E-mail messages sent by members of the user's IM group. However, the IM service 118 can also be configured to notify the IM user of E-mail messages received from senders who do not belong to the user's IM group. This can be accomplished in various ways, such as by providing a special section in the IM user interface presentation which identifies the arrival of an E-mail message from a non-IM group member; this alert notification also preferably identifies who has sent the E-mail message to the extent that this can be determined, such as by displaying the sender's E-mail address, and so forth. Still further variations on the principles described above can be implemented.
The functionality for performing the above-described operations can be implemented as software and/or hardware which is implemented in the local processing functionality (112, 114, . . . 116), the remote processing functionality (124, 126, . . . 128), or a combination of local processing functionality (112, 114, . . . 116) and remote processing functionality (124, 126, . . . 128).
And once again, the principles described above can be applied to other message services besides E-mail services and IM services. Also, the principles can be applied to the case where the user of an E-mail service is alerted, via the E-mail user interface, of an EI message transmitted via an IM service.
B. Exemplary User Interface Functionality
According to another optional feature, the IM service 118 can include logic for identifying the subject matter of the received E-mail messages. One way of performing this function is to display synopsis information 702 in proximity to an E-mail icon when the user, Alice, moves pointer 704 in proximity to the E-mail icon. The synopsis information can identify when the E-mail message was sent and the subject matter of the E-mail message. The subject matter can be gleaned from the subject line of the E-mail messages themselves.
Finally,
The above-described user interface features are exemplary. Additional features can be added, or illustrated features can be removed, to suit individual applications. Further, instead of visual information, or to supplement the visual information, the message service functionality can alert the user to the receipt of E-mail messages via audio prompting or some other form of prompting. Audio prompting may provide a voice message or other audible cue that identifies the senders of the E-mail messages, such as by announcing the names of the senders or by displaying a jingle associated with the senders, and so on.
C. Exemplary Method of Operation
D. Exemplary Computer Environment
In one exemplary implementation, certain aspects of the IM service functionality and the E-mail service functionality can be implemented as computer code executed by the participant devices (104, 106, . . . 108). In this case,
The computing environment 1200 includes a general purpose or sever type computer 1202 and a display device 1204. However, the computing environment 1200 can include other kinds of computing equipment. For example, although not shown, the computer environment 1200 can include hand-held or laptop devices, set top boxes, game consoles, mainframe computers, etc. Further,
Exemplary computer 1202 includes one or more processors or processing units 1206, a system memory 1208, and a bus 1210. The bus 1210 connects various system components together. For instance, the bus 1210 connects the processor 1206 to the system memory 1208. The bus 1210 can be implemented using any kind of bus structure or combination of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
Computer 1202 can also include a variety of computer readable media, including a variety of types of volatile and non-volatile media, each of which can be removable or non-removable. For example, system memory 1208 includes computer readable media in the form of volatile memory, such as random access memory (RAM) 1212, and non-volatile memory, such as read only memory (ROM) 1214. ROM 1214 includes an input/output system (BIOS) 1216 that contains the basic routines that help to transfer information between elements within computer 1202, such as during start-up. RAM 1212 typically contains data and/or program modules in a form that can be quickly accessed by processing unit 1206.
Other kinds of computer storage media include a hard disk drive 1218 for reading from and writing to a non-removable, non-volatile magnetic media, a magnetic disk drive 1220 for reading from and writing to a removable, non-volatile magnetic disk 1222 (e.g., a “floppy disk”), and an optical disk drive 1224 for reading from and/or writing to a removable, non-volatile optical disk 1226 such as a CD-ROM, DVD-ROM, or other optical media. The hard disk drive 1218, magnetic disk drive 1220, and optical disk drive 1224 are each connected to the system bus 1210 by one or more data media interfaces 1228. Alternatively, the hard disk drive 1218, magnetic disk drive 1220, and optical disk drive 1224 can be connected to the system bus 1210 by a SCSI interface (not shown), or other coupling mechanism. Although not shown, the computer 1202 can include other types of computer readable media, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, electrically erasable programmable read-only memory (EEPROM), etc.
Generally, the above-identified computer readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for use by computer 1202. For instance, the readable media can store the operating system 1230, application-specific functionality 1234 (including functionality for implementing aspects of the IM service and the E-mail service), other program modules 1234, and program data 1236.
The computer environment 1200 can include a variety of input devices. For instance, the computer environment 1200 includes the keyboard 1238 and a pointing device 1240 (e.g., a “mouse”) for entering commands and information into computer 1202. The computer environment 1200 can include other input devices (not illustrated), such as a microphone, joystick, game pad, satellite dish, serial port, scanner, card reading devices, digital or video camera, etc. Input/output interfaces 1242 couple the input devices to the processing unit 1206. More generally, input devices can be coupled to the computer 1202 through any kind of interface and bus structures, such as a parallel port, serial port, game port, universal serial bus (USB) port, etc.
The computer environment 1200 also includes the display device 1204. A video adapter 1244 couples the display device 1204 to the bus 1210. In addition to the display device 1204, the computer environment 1200 can include other output peripheral devices, such as speakers (not shown), a printer (not shown), etc.
Computer 1202 operates in a networked environment using logical connections to one or more remote computers, such as a remote computing device 1246. The remote computing device 1246 can comprise any kind of computer equipment, including a general purpose personal computer, portable computer, a server, etc. Remote computing device 1246 can include all of the features discussed above with respect to computer 1202, or some subset thereof. In the context of the system 100
Any type of network 1248 can be used to couple the computer 1202 with remote computing device 1246, such as the WAN 402 of
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.