Abstract:
A computer-implemented method includes providing a computer service to a user and displaying to the user of the computer service a list of identifiers for other users of the computer service selected by the user for inclusion in the list. Information about the data transfer rate of at least one of the other users is accessed and establishing a threshold data transfer rate is established. The accessed data transfer rate is compared with the threshold data transfer rate, and a graphic associated with one of the other users is displayed in the list, which classifies on-line communications available to the other listed user based on results of the comparison between the accessed data transfer rate and the threshold data transfer rate.

Description:
CLAIM OF PRIORITY  
       [0001]     This application is a continuation-in-part application of U.S. patent application Ser. No. 10/715,205, filed on Nov. 18, 2003, which claimed priority to U.S. patent application Ser. No. 60/426,815, filed on Nov. 18, 2002, and to U.S. patent application Ser. No. 60/479,918, filed on Jun. 20, 2003. The entire contents of all above-mentioned applications are hereby incorporated by reference. 
     
    
     TECHNICAL FIELD  
       [0002]     This disclosure generally relates to electronic communications, and more particularly to the display of a connection speed of an on-line user.  
       BACKGROUND  
       [0003]     Online service providers offer services to enhance their subscribers&#39; online experience. The service provider may provide a subscriber with access to information about news, weather, financial, sports, and entertainment services. Furthermore, the service provider may provide the subscriber with the ability to communicate with other subscribers through a wide variety of different services, such as, for example, e-mail, instant messaging, audio communication services (include telephone networks), video communications (e.g., streaming video services), common calendar services permitting the subscribers to schedule meetings with each other, and automatic communication services that alert one subscriber about the status of another subscriber. Currently, disparate pieces of information relating to a subscriber reside in different applications and services.  
       SUMMARY  
       [0004]     In a general aspect, a computer-implemented method includes providing a computer service to a user and displaying to the user of the computer service a list of identifiers for other users of the computer service selected by the user for inclusion in the list. Information about the data transfer rate of at least one of the other users is accessed and establishing a threshold data transfer rate is established. The accessed data transfer rate is compared with the threshold data transfer rate, and a graphic associated with one of the other users is displayed in the list, which classifies on-line communications available to the other listed user based on results of the comparison between the accessed data transfer rate and the threshold data transfer rate.  
         [0005]     In another general aspect, a system for displaying a graphical user interface to a user of a computer service, can include a memory adapted for storing a threshold data transfer rate and a processor that is adapted for providing the computer service to a user, displaying to the user of the computer service a list of identifiers for other users of the computer service selected by the user for inclusion in the list, accessing information about the data transfer rate of at least one of the other users, comparing the accessed data transfer rate with the threshold data transfer rate, and displaying a graphic associated with one of the other users in the list classifying on-line communications available to the other listed user based on results of the comparison between the accessed data transfer rate and the threshold data transfer rate.  
         [0006]     In a further general aspect, a system for displaying a graphical user interface to a user of a computer service can include a means for storing a threshold data transfer rate, a means for providing the computer service to a user, a means for displaying to the user of the computer service a list of identifiers for other users of the computer service selected by the user for inclusion in the list, a means for accessing information about the data transfer rate of at least one of the other users, a means for comparing the accessed data transfer rate with the threshold data transfer rate, and a means for displaying a graphic associated with one of the other users in the list classifying on-line communications available to the other listed user based on results of the comparison between the accessed data transfer rate and the threshold data transfer rate.  
         [0007]     In another general aspect, a graphical user interface provided to a user of a computer service can include a list of identifiers for other users of the computer service selected by the user for inclusion in the list and an graphic associated with one of the other listed users indicating that the other listed user is capable of on-line communications with the user at a rate that is above a threshold rate.  
         [0008]     Implementations can include one or more of the following features. For example, the user can be a sender of data to the other user, and the graphic can indicate that the other user is capable of receiving the data through a desired communication mode. The graphic can be displayed only if the results of the comparison indicate that the accessed data transfer rate exceeds the threshold data transfer rate. The computer service can include an instant messaging computer service.  
         [0009]     The graphic can be an icon. The graphic can be a distinctive font. The graphic can indicate that the other user is connected to the computer service through a broadband communications link. The graphic can indicate that the other user is connected to the computer service through a link other than an analog communications link. The graphic can indicate a type of communications link used by the other user to connect to the computer service. The graphic can indicate a characteristic transfer rate of a communications link used by the other user to connect to the computer service.  
         [0010]     A command can be received from the user to initiate a particular mode of communication with the other user based on the comparison.  
         [0011]     The processor can be further adapted for displaying the graphic only if the results of the comparison indicate that the accessed data transfer rate exceeds the threshold data transfer rate. The processor can be further adapted for receiving a command from the user to initiate a particular mode of communication with the other user based on the comparison.  
         [0012]     The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. 
     
    
     DESCRIPTION OF DRAWINGS  
       [0013]      FIG. 1  is a block diagram of a communications system.  
         [0014]      FIGS. 2-5  are block diagrams of expansions of aspects the block diagram of  FIG. 1 .  
         [0015]     FIGS.  6  is an illustration of a graphical user interface that may be provided by a system, such as the system of  FIG. 1 .  
         [0016]     FIGS.  7  is a flow chart of a process that may be implemented by a system, such as the system of  FIG. 1 .  
         [0017]     FIGS.  8  is an illustration of a graphical user interface that may be provided by a system, such as the system of  FIG. 1 .  
         [0018]     FIGS.  9  is a flow chart of a process that may be implemented by a system, such as the system of  FIG. 1 .  
         [0019]     FIGS.  10  is an illustration of a graphical user interface that may be provided by a system, such as the system of  FIG. 1 .  
         [0020]     FIGS.  11  is a flow chart of a process that may be implemented by a system, such as the system of  FIG. 1 . 
     
    
     DETAILED DESCRIPTION  
       [0021]     Users of networked online communications applications may communicate and exchange information with other users of the communications application(s). When a user has the capability of communicating with a vast multitude of other users with the communications application(s), the user may select a subset of the other users that are particularly important to the users and identify such users as “buddies.” A list of a user&#39;s buddies may be stored in a buddy list that is displayed graphically to the user when using the communications application(s), and a graphical user interface (GUI) may be defined that lists the user&#39;s buddies and enables the user to communicate with his/her buddies through the GUI-based application (e.g., instant messaging). The functionality of the GUI can be expanded from merely enabling communication with buddies through the GUI-based application to monitoring several other communications applications and reporting on events that have occurred, that are occurring, and/or that will occur in the other applications.  
         [0022]     For illustrative purposes,  FIGS. 1-6  describe a communications system for implementing techniques for transferring electronic data. For brevity, several elements in the figures described below are represented as monolithic entities. However, as would be understood by one skilled in the art, these elements each may include numerous interconnected computers and components designed to perform a set of specified operations and/or dedicated to a particular geographical region.  
         [0023]     Referring to  FIG. 1 , a communications system  100  is capable of delivering and exchanging data between a client system  105  and a host system  110  through a communications link  115 . The client system  105  typically includes one or more client devices  120  and/or client controllers  125 . For example, the client system  105  may include one or more general-purpose computers (e.g., personal computers), one or more special-purpose computers (e.g., devices specifically programmed to communicate with each other and/or the host system  110 ), or a combination of one or more general-purpose computers and one or more special-purpose computers. The client system  105  may be arranged to operate within or in concert with one or more other systems, such as, for example, one or more LANs (“Local Area Networks”) and/or one or more WANs (“Wide Area Networks”).  
         [0024]     The client device  120  is generally capable of executing instructions under the command of a client controller  125 . The client device  120  is connected to the client controller  125  by a wired or wireless data pathway  130  capable of delivering data.  
         [0025]     The client device  120  and client controller  125  each typically includes one or more hardware components and/or software components. An example of a client device  120  is a general-purpose computer (e.g., a personal computer) capable of responding to and executing instructions in a defined manner. Other examples include a special-purpose computer, a workstation, a server, a hand-held computer, a mobile telephone, a personal digital assistant (“PDA”), a device, a component, other equipment or some combination thereof capable of responding to and executing instructions. An example of client controller  125  is a software application loaded on the client device  120  for commanding and directing communications enabled by the client device  120 . Other examples include a program, a piece of code, an instruction, a device, a computer, a computer system, or a combination thereof, for independently or collectively instructing the client device  120  to interact and operate as described herein. The client controller  125  may be embodied permanently or temporarily in any type of machine, component, equipment, storage medium, or propagated signal capable of providing instructions to the client device  120 .  
         [0026]     The communications link  115  typically includes a delivery network  160  making a direct or indirect communication between the client system  105  and the host system  110 , irrespective of physical separation. Examples of a delivery network  160  include the Internet, the World Wide Web, WANs, LANs, analog or digital wired and wireless telephone networks (e.g., PSTN, ISDN, or xDSL), radio, television, cable, satellite, and/or any other delivery mechanism for carrying data. The communications link  115  may include communication pathways  150 ,  155  that enable communications through the one or more delivery networks  160  described above. Each of the communication pathways  150 ,  155  may include, for example, a wired, wireless, cable, or satellite communication pathway.  
         [0027]     The communications link  115  facilitates communication between the client system  105  and the host system  110  at a rate that is generally limited to a maximum data transfer rate. The maximum data transfer rate is determined by, among other things, the hardware, software, and/or protocols used to transfer data between the client system  105  and the host system  110 . For typical “dial-up” communications links  115  that connect the client system  105  to the host system  110  through a telephone line (e.g., an analog V.90 connection or an Integrated Services Digital Network (“ISDN”) connection), the transfer rate is generally below  100  kilobits per second. For faster “broadband” communications links  115  that connect the client system  105  and the host system  110  (e.g., a cable connection, a digital subscriber line (“DSL”) connection, a T1 connection, or an 802.11b wireless connection), the transfer rate is generally higher than 100 kilobits per second, and is often higher than 1000 kilobits per second. Thus, the transfer rate for “broadband” communications links  115  is often more than ten times faster than the transfer rate of “dial-up” communications links  115 .  
         [0028]     The host system  110  includes a host device  135  capable of executing instructions under the command and direction of a host controller  140 . The host device  135  is connected to the host controller  140  by a wired or wireless data pathway  145  capable of carrying and delivering data.  
         [0029]     The host system  110  typically includes one or more host devices  135  and/or host controllers  140 . For example, the host system  110  may include one or more general-purpose computers (e.g., personal computers), one or more special-purpose computers (e.g., devices specifically programmed to communicate with each other and/or the client system  105 ), or a combination of one or more general-purpose computers and one or more special-purpose computers. The host system  110  may be arranged to operate within or in concert with one or more other systems, such as, for example, one or more LANs (“Local Area Networks”) and/or one or more WANs (“Wide Area Networks”).  
         [0030]     The host device  135  and host controller  140  each typically includes one or more hardware components and/or software components. An example of a host device  135  is a general-purpose computer (e.g., a personal computer) capable of responding to and executing instructions in a defined manner. Other examples include a special-purpose computer, a workstation, a server, a device, a component, other equipment or some combination thereof capable of responding to and executing instructions. An example of host controller  140  is a software application loaded on the host device  135  for commanding and directing communications enabled by the host device  135 . Other examples include a program, a piece of code, an instruction, a device, a computer, a computer system, or a combination thereof, for independently or collectively instructing the host device  135  to interact and operate as described herein. The host controller  140  may be embodied permanently or temporarily in any type of machine, component, equipment, storage medium, or propagated signal capable of providing instructions to the host device  135 .  
         [0031]      FIG. 2  illustrates a communication system  200  including a client system  205  communicating with a host system  210  through a communications link  215 . Client system  205  typically includes one or more client devices  220  and one or more client controllers  225  for controlling the client devices  220 . Host system  210  typically includes one or more host devices  235  and one or more host controllers  240  for controlling the host devices  235 . The communications link  215  may include communication pathways  250 ,  255  enabling communications through the one or more delivery networks  260 .  
         [0032]     Examples of each element within the communication system of  FIG. 2  are broadly described above with respect to  FIG. 1 . In particular, the host system  210  and communications link  215  typically have attributes comparable to those described with respect to host system  110  and communications link  115  of  FIG. 1 . Likewise, the client system  205  of  FIG. 2  typically has attributes comparable to and illustrates one possible embodiment of the client system  105  of  FIG. 1 .  
         [0033]     The client device  220  typically includes a general purpose computer  270  having an internal or external storage  272  for storing data and programs such as an operating system  274  (e.g., DOS, Windows™, Windows 95™, Windows 98™, Windows 2000™, Windows XP™, Windows NT™, OS/2, or Linux) and one or more application programs. Examples of application programs include authoring applications  276  (e.g., word processing, database programs, spreadsheet programs, email program, calendar programs, or graphics programs) capable of generating and/or editing documents or other electronic content; client applications  278  (e.g., AOL client, CompuServe client, AIM client, AOL TV client, or ISP client) capable of communicating with other computer users, accessing various computer resources, and viewing, creating, or otherwise manipulating electronic content; and browser applications  280  (e.g., Netscape Navigator or Microsoft Internet Explorer) capable of rendering Internet content.  
         [0034]     The general-purpose computer  270  also includes a central processing unit  282  (CPU) for executing instructions in response to commands from the client controller  225 . In one implementation, the client controller  225  includes one or more of the application programs installed on the internal or external storage  272  of the general-purpose computer  270 . In another implementation, the client controller  225  includes application programs externally stored in and performed by one or more device(s) external to the general-purpose computer  270 .  
         [0035]     The general-purpose computer typically includes a communication device  284  for sending and receiving data. One example of the communication device  284  is a modem. Other examples include a transceiver, a set-top box, a communication card, a satellite dish, an antenna, wireless router, or another network adapter capable of transmitting and receiving data over the communications link  215  through a wired or wireless data pathway  250 . The general-purpose computer  270  also may include a TV (“television”) tuner  286  for receiving television programming in the form of broadcast, satellite, and/or cable TV signals. As a result, the client device  220  can selectively and/or simultaneously display network content received by communications device  284  and television programming content received by the TV tuner  286 .  
         [0036]     The general-purpose computer  270  typically includes an input/output interface  288  for wired or wireless connection to various peripheral devices  290 . Examples of peripheral devices  290  include, but are not limited to, a mouse  291 , a mobile phone  292 , a personal digital assistant  293  (PDA), a keyboard  294 , a display monitor  295  with or without a touch screen input, a TV remote control  296  for receiving information from and rendering information to subscribers, and an audiovisual input device  298 .  
         [0037]     Although  FIG. 2  illustrates devices such as a mobile telephone  292 , a PDA  293 , and a TV remote control  296  as being peripheral with respect to the general-purpose computer  270 , in another implementation, such devices may themselves include the functionality of the general-purpose computer  270  and operate as the client device  220 . For example, the mobile phone  292  or the PDA  293  may include computing and networking capabilities and function as a client device  220  by accessing the delivery network  260  and communicating with the host system  210 . Furthermore, the client system  205  may include one, some or all of the components and devices described above.  
         [0038]     Referring to  FIG. 3 , a communications system  300  is capable of delivering and exchanging information between a client system  305  and a host system  310  through a communication link  315 . Client system  305  typically includes one or more client devices  320  and one or more client controllers  325  for controlling the client devices  320 . Host system  310  typically includes one or more host devices  335  and one or more host controllers  340  for controlling the host devices  335 . The communications link  315  may include communication pathways  350 ,  355  enabling communications through the one or more delivery networks  360 .  
         [0039]     Examples of each element within the communication system of  FIG. 3  are broadly described above with respect to  FIGS. 1 and 2 . In particular, the client system  305  and the communications link  315  typically have attributes comparable to those described with respect to client systems  105  and  205  and communications links  115  and  215  of  FIGS. 1 and 2 . Likewise, the host system  310  of  FIG. 3  may have attributes comparable to and illustrates one possible embodiment of the host systems  110  and  210  shown in  FIGS. 1 and 2 , respectively.  
         [0040]     The host system  310  includes a host device  335  and a host controller  340 . The host controller  340  is generally capable of transmitting instructions to any or all of the elements of the host device  335 . For example, in one implementation, the host controller  340  includes one or more software applications loaded on the host device  335 . However, in other implementations, as described above, the host controller  340  may include any of several other programs, machines, and devices operating independently or collectively to control the host device  335 .  
         [0041]     The host device  335  includes a login server  370  for enabling access by subscribers and routing communications between the client system  305  and other elements of the host device  335 . The host device  335  also includes various host complexes such as the depicted OSP (“Online Service Provider”) host complex  380  and IM (“Instant Messaging”) host complex  390 . To enable access to these host complexes by subscribers, the client system  305  includes communication software, such as, for example, an OSP client application and an IM client application. The OSP and IM communication software applications are designed to facilitate the subscriber&#39;s interactions with the respective services and, in particular, may provide access to all the services available within the respective host complexes.  
         [0042]     Typically, communications using an IM application involve an instantaneous or nearly instantaneous communication between two users, where each user is able to transmit, receive and display communicated information. Additionally, IM communications may involve the display and perception of online presence information regarding other selected users (“buddies”). Examples of IM communications exist over AIM (America Online Instant Messenger), AOL (America Online) Buddy List and Instant Messages, Yahoo Messenger, MSN Messenger, and ICQ, among others. Although discussed below primarily with respect to IM applications, other implementations are contemplated for providing similar functionality in platforms and online applications such as chat, e-mail, and streaming media applications.  
         [0043]     Typically, the OSP host complex  380  supports different services, such as email, discussion groups, chat, news services, file storage, and Internet access. The OSP host complex  380  is generally designed with an architecture that enables the machines within the OSP host complex  380  to communicate with each other and employs certain protocols (i.e., standards, formats, conventions, rules, and structures) to transfer data. The OSP host complex  380  ordinarily employs one or more OSP protocols and custom dialing engines to enable access by selected client applications. The OSP host complex  380  may define one or more specific protocols for each service based on a common, underlying proprietary protocol.  
         [0044]     The IM host complex  390  is generally independent of the OSP host complex  380 , and supports instant messaging services irrespective of a subscriber&#39;s network or Internet access. Thus, the IM host complex  390  allows subscribers to send and receive instant messages, whether or not they have access to any particular ISP. The IM host complex  390  may support associated services, such as administrative matters, advertising, directory services, chat, and interest groups related to the instant messaging. The IM host complex  390  has an architecture that enables all of the machines within the IM host complex to communicate with each other. To transfer data, the IM host complex  390  employs one or more standard or exclusive IM protocols.  
         [0045]     The host device  335  may include one or more gateways that connect and therefore link complexes, such as the OSP host complex gateway  385  and the IM host complex gateway  395 . The OSP host complex gateway  385  and the IM host complex  395  gateway may directly or indirectly link the OSP host complex  380  with the IM host complex  390  through a wired or wireless host communication pathway  375 . Ordinarily, when used to facilitate a link between complexes, the OSP host complex gateway  385  and the IM host complex gateway  395  are privy to information regarding the protocol type anticipated by a destination complex, which enables any necessary protocol conversion to be performed incident to the transfer of data from one complex to another. For instance, the OSP host complex  380  and IM host complex  390  generally use different protocols such that transferring data between the complexes requires protocol conversion by or at the request of the OSP host complex gateway  385  and/or the IM host complex gateway  395 .  
         [0046]     As shown, the client system  305  may access the Internet  365  through the host system  310 .  
         [0047]     The client system  305  can exchange data with the host system  310  over the communications link  315  at a maximum rate that is limited by the hardware and software of the client system  305 , the host system  310 , and the communications link  315 . This rate of data exchange can be known as the user&#39;s connection speed, and the connection speed can be determined by a variety of methods. For example, the connection speed can be detected directly by sending data bits from the client system  305  to a daemon on the host system  310  that records the amount of data transmitted in a time period or by sending bits of data from the host system  310  to a daemon on the client system  305 , which that reports back to the host system the amount of data received in a time period. A user&#39;s IP address can be mapped to known IP addresses that are known to access the host system  310  through a particular type of connection, for example, a broadband connect or dial-up connection, and the type of connection can be mapped to a connection speed. The type of connection used by the client system  305  to connect to the host system  310 , and hence the user&#39;s connection speed, can be determined by analyzing the protocols used to transfer information between the systems. For example, an access server on the host system  310  can determine what protocols are being used and return a highly accurate determination as to whether the user is connecting over TCP to the host server  310 . The host system  310  can send a cookie to the client system  305  that requests the client system to send back and indication of its connection speed to the host system  310  or the host system can store information about a user&#39;s connection speed in user profile that provides a record of the speed of the connection used by the user to connect to the host system  310 . One or more of the above methods, or other methods of determining a connection speed, could be used to determine a user&#39;s connection speed.  
         [0048]     After the user&#39;s connection speed is determined, it is stored in the state information for the user in a memory on the host and can be used while the user is logged on to the host system  310 . In addition, the connection speed of the user can be written to a cookie or a user profile that can be used to predetermine the user&#39;s connection speed when the user connects to the host system  310  in the future and if the system  310  is not able to determine the user&#39;s connection speed in real time.  
         [0049]     Referring to  FIG. 4 , a communications system  400  is capable of delivering and exchanging information between a client system  405  and a host system  410  through a communication link  415 . Client system  405  typically includes one or more client devices  420  and one or more client controllers  425  for controlling the client devices  420 . Host system  410  typically includes one or more host devices  435  and one or more host controllers  440  for controlling the host devices  435 . The communications link  415  may include communication pathways  450  and  455  that enable communications through the one or more delivery networks  460 . As shown, the client system  405  may access the Internet  465  through the host system  410 .  
         [0050]     Examples of each element within the communication system of  FIG. 4  are broadly described above with respect to  FIGS. 1-3 . In particular, the client system  405  and the communications link  415  typically have attributes comparable to those described with respect to client systems  105 ,  205 , and  305  and communications links  115 ,  215 , and  315  of  FIGS. 1-3 . Likewise, the host system  410  of  FIG. 4  may have attributes comparable to, and illustrates one possible implementation of, the host systems  110 ,  210  and  310 , shown in  FIGS. 1-3 , respectively. However,  FIG. 4  describes an aspect of the host system  410 , focusing primarily on one particular implementation of IM host complex  490 . For purposes of communicating with the IM host complex  490 , the delivery network  460  is generally a telephone network.  
         [0051]     The client system  405  includes a client device  420  and a client controller  425 . The client controller  425  is generally capable of establishing a connection to the host system  410 , including the OSP host complex  480 , the IM host complex  490  and/or the Internet  465 . In one implementation, the client controller  425  includes an IM application for communicating with servers in the IM host complex  490  using exclusive IM protocols. The client controller  425  also may include applications, such as an OSP client application and/or an Internet browser application for communicating with the OSP host complex  480  and the Internet  465 , respectively.  
         [0052]     The host system  410  includes a host device  435  and a host controller  440 . The host controller  440  is generally capable of transmitting instructions to any or all of the elements of the host device  435 . For example, in one implementation, the host controller  440  includes one or more software applications loaded on one or more elements of the host device  435 . However, in other implementations, as described above, the host controller  440  may include any of several other programs, machines, and devices operating independently or collectively to control the host device  435 .  
         [0053]     The host system  410  includes a login server  470  capable of enabling communications with and authorizing access by client systems  405  to various elements of the host system  410 , including an OSP host complex  480  and an IM host complex  490 . The login server  470  may implement one or more authorization procedures to enable simultaneous access to the OSP host complex  480  and the IM host complex  490 . The OSP host complex  480  and the IM host complex  490  are connected through one or more OSP host complex gateways  485  and one or more IM host complex gateways  495 . Each OSP host complex gateway  485  and IM host complex gateway  495  may perform any protocol conversions necessary to enable communication between the OSP host complex  480 , the IM host complex  490 , and the Internet  465 .  
         [0054]     To access the IM host complex  490  to begin an instant messaging session, the client system  405  establishes a connection to the login server  470 . The login server  470  typically determines whether the particular subscriber is authorized to access the IM host complex  490  by verifying a subscriber identification and password.  
         [0055]     Once a connection to the IM server  4902  has been established, the client system  405  may directly or indirectly transmit data to and access content from the IM server  4902  and one or more associated domain servers  4904 . The IM server  4902  supports the fundamental instant messaging services, and the domain servers  4904  may support associated services, such as, for example, administrative matters, directory services, chat and interest groups. In general, the purpose of the domain servers  4904  is to lighten the load placed on the IM server  4902  by assuming responsibility for some of the services within the IM host complex  490 . By accessing the IM server  4902  and/or the domain server  4904 , a subscriber can use the IM client application to view whether other subscribers of particular importance to the subscriber (“buddies”) are online. A subscriber may elect to exchange instant messages with other subscribers, participate in group chat rooms, trade files such as pictures, video files, audio files, invitations or documents, find other subscribers with similar interests, get customized news and stock quotes, and search the Web. The subscriber may elect to engage in textual, audio, graphical, or video communications with other subscribers. However, certain communications with other subscribers may require that relatively large amounts of data be transferred between the subscribers (e.g., real-time audio- or video-conferencing, the exchange of large audio, video, or graphical, or image files). So that such relatively large amounts of data can be transferred between the subscribers without a delay time that is frustratingly long for the subscribers, such data-intensive communications may be practical or desirable for subscribers only when they are connected to the host system  410  by a broadband or accelerated communications link  415 . Thus, as described in further detail below with reference to  FIG. 6B , the host system  410  may provide subscribers with information about the data transfer rate of the communications links  415  used by the subscriber&#39;s buddies to connect to the host system  410 . The subscriber can then decide with which buddies to initiate data-intensive communications, such as, for example, video conferencing, the transfer of large audio, video, or graphics files.  
         [0056]     In the implementation of  FIG. 4 , the IM server  4902  is directly or indirectly connected to a routing gateway  4906 . The routing gateway  4906  facilitates the connection between the IM server  4902  and one or more alert multiplexors  4908 , for example, by serving as a link minimization tool or hub to connect several IM servers to several alert multiplexors. In general, an alert multiplexor  4908  maintains a record of alerts and subscribers registered to receive the alerts.  
         [0057]     Once the client system  405  is connected to the alert multiplexor  4908 , a subscriber can register for and/or receive one or more types of alerts. The connection pathway between the client system  405  and the alert multiplexor  4908  is determined by employing another hashing technique at the IM server  4902  to identify the particular alert multiplexor  4908  to be used for the subscriber&#39;s session. Once the particular multiplexor  4908  has been identified, the IM server  4902  provides the client system  405  with the IP address of the particular alert multiplexor  4908  and gives the client system  405  an encrypted key (i.e., a cookie). The client system  405  then uses the IP address to connect to the particular alert multiplexor  4908  through the communication link  415  and obtains access to the alert multiplexor  4908  using the encrypted key.  
         [0058]     The alert multiplexor  4908  is connected to an alert gate  4910  that, like the IM host complex gateway  495 , is capable of performing the necessary protocol conversions to form a bridge to the OSP host complex  480 . The alert gate  4910  is the interface between the IM host complex  490  and the physical servers, such as servers in the OSP host complex  480 , where state changes are occurring. In general, the information regarding state changes will be gathered and used by the IM host complex  490 . However, the alert multiplexor  4908  also may communicate with the OSP host complex  480  through the IM gateway  495 , for example, to provide the servers and subscribers of the OSP host complex  480  with certain information gathered from the alert gate  4910 .  
         [0059]     The alert gate  4910  can detect an alert feed corresponding to a particular type of alert. The alert gate  4910  may include a piece of code (alert receive code) capable of interacting with another piece of code (alert broadcast code) on the physical server where a state change occurs. In general, the alert receive code installed on the alert gate  4910  instructs the alert broadcast code installed on the physical server to send an alert feed to the alert gate  4910  upon the occurrence of a particular state change. Upon detecting an alert feed, the alert gate  4910  contacts the alert multiplexor  4908 , which in turn, informs the client system  405  of the detected alert feed.  
         [0060]     In the implementation of  FIG. 4 , the IM host complex  490  also includes a subscriber profile server  4912  connected to a database  4914  for storing subscriber profile data. The subscriber profile server  4912  may be used to enter, retrieve, edit, manipulate, or otherwise process subscriber profile data. In one implementation, a subscriber&#39;s profile data includes, for example, the subscriber&#39;s list of buddies, alert preferences, designated stocks, identified interests, and geographic location. Each buddy in the subscriber&#39;s list of buddies (“buddy list”) is uniquely identified from all other subscribers (e.g., by an alphanumeric character string, which maybe known as a “screen name”). The subscriber may enter, edit and/or delete profile data using an installed IM client application on the client system  405  to interact with the subscriber profile server  4912 . The other subscribers in a subscriber&#39;s buddy list generally are selected by or for the user because they have a particular significance or importance to the subscriber. For example, the subscriber may correspond frequently with buddies in the subscriber&#39;s buddy list.  
         [0061]     Because the subscriber&#39;s data is stored in the IM host complex  490 , the subscriber does not have to reenter or update the data in the event that the subscriber accesses the IM host complex  490  using a new or different client system  405 . Accordingly, when a subscriber accesses the IM host complex  490 , the IM server  4902  can instruct the subscriber profile server  4912  to retrieve the subscriber&#39;s profile data from the database  4914  and to provide, for example, the subscriber&#39;s buddy list to the IM server  4902  and the subscriber&#39;s alert preferences to the alert multiplexor  4908 . The subscriber profile server  4912  also may communicate with other servers in the OSP host complex  490  to share subscriber profile data with other services. Alternatively, user profile data may be saved locally on the client device  405 .  
         [0062]     Referring to  FIG. 5 , a communications system  500  is capable of delivering and exchanging information between a client system  505  and a host system  510  through a communication link  515 . Client system  505  typically includes one or more client devices  520  and one or more client controllers  525  for controlling the client devices  520 . Host system  510  typically includes one or more host devices  535  and one or more host controllers  540  for controlling the host devices  535 . The communication link may include communication pathways  550  and  555  that enable communications through the one or more delivery networks  560 . The network  560  may be any known or described delivery network including, but not limited to, a telephone network and/or the Internet.  
         [0063]     Examples of each element within the communication system of  FIG. 5  are broadly described above with respect to  FIGS. 1-4 . In particular, the client system  505  and the communications link  515  typically have attributes comparable to those described with respect to client systems  105 ,  205 ,  305 , and  405  and communications links  115 ,  215 ,  315 , and  415  of  FIGS. 1-4 . Likewise, the host system  510  of  FIG. 5  may have attributes comparable to and illustrates one possible embodiment of the host systems  110 ,  210 ,  310 , and  410  shown in  FIGS. 1-4 , respectively. However,  FIG. 5  describes an aspect of the host system  510 , focusing primarily on one particular implementation of the host device  535 .  
         [0064]     The client system  505  includes a client device  520  and a client controller  525 . The client controller  525  is generally capable of establishing a connection to the host system  510  through the delivery network  515 . In one implementation, the client controller  525  includes one or more applications, such as an IM application, an OSP application, and/or an Internet browser application.  
         [0065]     The host system  510  includes a host device  535  and a host controller  540 . The host controller  540  is generally capable of transmitting instructions to any or all of the elements of the host device  535 . For example, in one implementation, the host controller  540  includes one or more software applications loaded on one or more elements of the host device  535 . However, in other implementations, as described above, the host controller  540  may include any of several other programs, machines, and devices operating independently or collectively to control the host device  535 .  
         [0066]     The host device  535  includes a mail gateway  5350  having a send mail server  5352  and a read mail server  5354 . The send mail server  5352  is configured to perform functions relating to transmitting electronic data. The read mail server  5354  is configured to perform functions relating to receiving and accessing electronic data. The mail gateway  5350  is in communication with one or more processing servers  5360 .  
         [0067]     The mail gateway  5350  also is in communication with the storage area  5370  that includes electronic content and attachment database storage. The storage area  5370  includes a system of folders that store electronic data for subscribers of the host system  510 .  
         [0068]     The host device  535  includes an IM host complex  5390 . The IM server  5390  typically has attributes comparable to some or all elements of IM host complexes  390   490  of  FIGS. 3 and 4 . The IM host complex  5390  includes an e-buddy server  5392  in communication with the client system  505 , the read mail server  5352 , a look-up server  5394 , and an IM server  5396 . The IM server  5396  is capable of supporting instant messaging services, the look-up server  5394  is capable of finding subscriber account information (e.g., screen name) from a given e-mail address, and the e-buddy server is  5392  is capable of configuring IM communication between the intended recipient of an e-mail message and the sender and/or other recipients of the e-mail message.  
         [0069]      FIG. 6  illustrates one particular scenario in which the OSP host complex  380  and the IM host complex  390  communicate through one or more OSP host complex gateways  385  and one or more IM host complex gateways  395 . In particular,  FIG. 6  illustrates one example of a user interface (“UI”)  600  that may be presented to a user. In general, the UI  600  is rendered on the user&#39;s client system  105  using software stored on the client system. The software for rendering the UI  600  may be downloaded from the host system  110 .  
         [0070]     As shown, the UI includes a window  601  that displays a list (a “buddy list”)  602  identifying one or more of the user&#39;s buddies, for example, by the screen name  604  of the buddy. A user may add buddies to his buddy list because they are particularly important to the user (e.g., the user may frequently communicate with a buddy by email, instant messaging, chat, telephone, or other methods). Buddies also can be specially selected for the user (e.g., by a supervisor of the user), because the buddies are deemed to be particularly important to the user (e.g., it is predicted that a user will communicate frequently with a buddy because the user and the buddy have been assigned to work together on a project).  
         [0071]     Several different communications between a user and a buddy are possible through the UI  600 . For example, a user can initiate an IM dialog with a buddy by selecting the buddy&#39;s screen name  604  from the buddy list  602  (e.g., by clicking or otherwise selecting the screen name with a mouse). Selecting the buddy&#39;s name establishes a connection from the user&#39;s client system  505  through the IM server  5902  and/or the domain name server  5904  to the buddy&#39;s client system  505 , so that the user and the buddy can, for example, exchange instant messages, participate in group chat rooms.  
         [0072]     A user may also exchange email with a buddy through the UI  600 . For example, a user may scroll over the screen name of a buddy and right click or otherwise select on the buddy&#39;s screen name to open an application to send email to the buddy. To use UI  600 , which lists the user&#39;s buddies by screen name, to send email to a buddy&#39;s email addresses (or to receive email from one or more of those addresses), a mapping between the screen name and the email address occurs.  
         [0073]     For example, referring to  FIG. 7 , such a process  700  begins when the application running UI  600  receives one or more screen names in a user&#39;s buddy list and passes the screen names to the application that stores the user&#39;s email address book (step  702 ). Within the address book, a correspondence between a screen name and an email address is then sought (step  704 ). For example, a correspondence may be found between a buddy&#39;s screen name of “Andy” and the email address andy@aol.com. Such a correspondence may be made automatically by software, or the user may be prompted to confirm a suggested correspondence between a screen name and an email address. Databases in addition to an email address book may also be consulted when searching for a correspondence between a buddy&#39;s screen name and email address. For example, an electronic Rolodex™ or a database of contacts that stores information about a buddy including the buddy&#39;s name, address, telephone numbers, screen name, and email addresses may be consulted to find one or more email addresses that correspond to a user&#39;s screen name. Once the email addresses corresponding to the buddies screen names are located, the mappings between screen names and email addresses are returned to the buddy list application and to the UI  600  (step  706 ). The application running the UI  600  communicates the email addresses to the user&#39;s email client and requests to be notified by the email client when a new email is sent to or received from any of the email addresses (step  708 ). Then, whenever the email client sends or receives an email, it notifies the application running the UI  600  of this fact, such that the UI  600  is updated to present an appropriate mail icon next to the name of the buddy to whom or from whom mail has been sent (step  710 ).  
         [0074]     Referring again to  FIG. 6 , when the application running the UI  600  receives a notification that an email message has been received from a buddy, a mail icon  606  is displayed in the window  601  next to the buddy&#39;s screen name  604  to indicate that email has been received from the buddy. The mail icon can be, for example, an image of the back (return address) side of an envelope. When the user scrolls over the mail icon  606  with a mouse, information about the email received from the buddy (e.g., the number of unread emails received from the buddy, the date and time the email was send and the subject of the email) is displayed to the user. Similarly, when mail is sent to the buddy, the icon may be an image of the front (recipient&#39;s address) side of an envelope. The mail icon  606  can be displayed until all mail received from the buddy and all mail sent to the buddy has been read.  
         [0075]     Referring to  FIG. 8 , when the user moves the cursor over a mail icon  606  associated with the screen name  604  of a buddy in the UI  600 , information about the buddy and the mail sent by the buddy is displayed by one or more supplemental interfaces  802  (e.g., a window or dialog, a tooltip, or a fly-out panel known as a quick access panel (“QAP”)). Such information may include the buddy&#39;s real name, telephone number, whether the buddy is online and how many unread messages the user has received from the buddy. By double clicking on (or otherwise selecting) the mail icon  606 , the user can open or activate an email application UI  804  listing all emails received from and/or sent to the buddy associated with the mail icon  606 . When the email application UI  804  is activated, it can automatically display the oldest unread message sent from the buddy to the user in a window  806 .  
         [0076]     Referring again to  FIG. 6 , a user may communicate by telephone with a buddy through the UI  600 . For example, a user may scroll over the screen name of a buddy and right click or otherwise select the buddy&#39;s screen name to open an application to dial a phone number associated with the buddy. To use UI  600 , which lists the user&#39;s buddies by screen name, to telephone a buddy, a mapping between the screen name and the phone number occurs.  
         [0077]     For example, referring to  FIG. 9 , such a process  900  begins when the application running UI  600  receives the screen names in a user&#39;s buddy list and passes the list of screen names to a database application that stores the contact information for the user&#39;s buddies (step  902 ). The database application creates a correspondence between a buddy&#39;s screen name and one or more phone numbers associated with the buddy (step  904 ). Such a correspondence may be made automatically by software, or the user may be prompted to confirm a suggested correspondence between a screen name and one or more phone numbers of the buddy. Once the phone number(s) corresponding to the buddies&#39; screen names are located, the mappings between screen names and phone number(s) are returned to the buddy list application and to the UI  600  (step  906 ). The software running the UI  600  then communicates the phone number(s) to the user&#39;s telephone software, and requests to be notified by the telephone software when a voicemail is received from any of the phone numbers (step  908 ). Then, whenever a phone call or voicemail is received from one of the listed phone numbers, the telephone software notifies UI  600  of this fact, and UI  600  presents a new telephone call icon next to the name of the buddy from whom the voicemail has been received (step  910 ).  
         [0078]     Referring again to  FIG. 6 , when the UI  600  receives a notification that a phone call or a voicemail has been received from a buddy, a telephone icon  608  may be displayed in the window  601  next to the buddy&#39;s screen name  604  to indicate that a phone call or voicemail has been received from the buddy. The telephone icon can be, for example, an image of a telephone. Alternatively, when the UI  600  receives a notification that a phone call has been received from a buddy, an email icon  606  may be displayed in the window  601  next to the buddy&#39;s screen name  604  to indicate that a phone call has been received from the buddy. When the user scrolls over the telephone icon  608  or the email icon  606  with a mouse, information about the telephone calls received from the buddy is displayed to the user (e.g., the number of phone calls received from the buddy, the date and time at which the phone calls were received, whether voicemail messages were left by the buddy, and how many voicemail messages were left by the buddy). By double clicking or otherwise selecting the telephone icon  608 , the user can open an audio streaming application to play a recording of the voicemail message(s) left by the buddy or a text reading application to read a transcription of, or other information about, the voicemail message(s). Similarly, by double clicking, or otherwise selecting, the email icon  606 , the user can open an email application for information about the call, including, for example, the name of the caller, the phone number from which the call originated, the time of the call, and a transcript of the call.  
         [0079]     Alternatively, or additionally, a telephone icon  608  can be used to indicate that a buddy is currently accessing the host system  110  through a mobile computing device, such as, for example, a mobile phone or a mobile PDA. When the user scrolls over or otherwise selects the alternative or additional telephone icon  608 , appropriate information about the buddy is displayed to the user. For example, information about the buddy&#39;s telephone number or location can be displayed to the user when scrolling over the icon  608 . If telephone icon  608  were used to indicate that a buddy is connected to the host system  110  through a mobile computing device, then the appearance of email icon  606  would take on different images to indicate that the user had received an email message or a telephone message from the buddy.  
         [0080]     As an alternative to the client-side voicemail notification process described above, the voicemail notification process may be implemented on the host side of the communications system  100 . For example, a first user can subscribe to a voicemail service provided by the host, and the first user&#39;s address book can include a second user&#39;s screen name and phone number. The second user can record a voicemail message for the first user on the host system. The host system then notifies the first user of the voicemail message by sending the first user an email message with a subject line containing information about the call (e.g., the name and phone number of the caller and the time of the call) and a sound recording of the voicemail message as an attachment to the body of the email message. When the email message arrives at the mail client on the host system, the mail client parses the subject line for the phone number of the caller and passes the phone number to the address book of the first user. The address seeks a matching phone number among its records, and if a match exists, the address book application notifies the instant messaging application and instructs the UI  600  to place an email icon  606  and or a phone icon  608  next to the second user&#39;s screen name in the UI  600 . When the first user selects the email icon  606  or the phone icon  608 , an email application is activated to display the email message about the voice mail to the first user.  
         [0081]     A user and/or a buddy may schedule calendar events for each other through the UI  600 . For example, a user may scroll over the screen name of a buddy and right click or otherwise selecting the buddy&#39;s screen name to open a calendar scheduling application to schedule a calendar event (e.g., a meeting) for the buddy. To use UI  600 , which lists the user&#39;s buddies by screen name, to schedule a calendar event for the buddy, a mapping between the buddy&#39;s screen name and buddy&#39;s name occurs. This mapping is similar to the mapping between the buddy&#39;s screen name and email address described above with reference to  FIG. 7  and to the mapping between the buddy&#39;s screen name and telephone numbers described above with reference to  FIG. 9 . This mapping is accomplished though automatic or semi-automatic communications between the software running the UI  600  and the software running a common calendar accessible to both the user and the user&#39;s buddies. Then, whenever a calendar event involving the user and the buddy is scheduled, the calendar software notifies the UI  600  of this fact.  
         [0082]     When the UI  600  receives a notification that a calendar event has been proposed or scheduled between the user and a buddy, a calendar icon  610  is displayed in the window  601  next to the screen name  612  of the buddy with whom the calendar event has been proposed or scheduled. The calendar icon  610  can be, for example, an image of a calendar page. The presence of the calendar icon  610  can indicate that the user has been invited to participate in a calendar event (e.g., a meeting or a teleconference), and the user can accept or decline the invitation. When the user scrolls over the calendar icon  610  with a mouse, information about the calendar events related to the buddy is displayed to the user (e.g., the number of calendar events concerning the buddy, the date and time of a calendar event, who scheduled the calendar event, and who has confirmed attendance at the calendar event). By double clicking or otherwise selecting the calendar icon  610  the user can open a common calendar application, with which to view calendar events concerning the user and the buddy. Within the common calendar application, the user can accept or decline the invitation to participate in the proposed or scheduled calendar event.  
         [0083]     Alternatively, or additionally, calendar icon  610  can be used to indicate the existence of pending calendar events that have been scheduled between the user and a buddy. For example, when the user has accepted a calendar event or scheduled a calendar event for himself with a buddy, calendar icon  610  can be displayed next to the buddy&#39;s username. One or more distinct calendar icons  610  can be displayed next to a buddy&#39;s username whenever the user has a calendar event pending with the buddy, when a calendar event is scheduled within a certain time period, only when a time-proximate calendar event is scheduled (e.g., on the day the user views the UI  600 ), or using another criterion.  
         [0084]     The window  601  that displays the buddy list  602  can group the buddies in categories according to how they are known to the user (e.g., “Family and Friends,” “Top 10 Buddies,” “Co-Workers,” and “Offline” buddies). A tally of the total number of buddies in a category and the number of on-line buddies can be kept next to a heading identifying the category. For example, in the category of “Family and Friends”  620 , a tally  622  identifies that three of the  23  total buddies in the category are currently on-line. The screen name of buddy may also identify whether the buddy is on-line of off-line. For example, the screen name of buddy listed in normal italic weight font  604  indicates that the buddy is on-line, whereas the screen name of buddy listed in light weight font  630  indicates that the buddy is off-line.  
         [0085]     When the user moves the cursor over the screen name  604  of a buddy, information about the buddy is displayed by one or more supplemental interfaces, such as, for example, a window or dialog, a tooltip, or a QAP, similar to the supplemental interface shown in  FIG. 8 . The supplemental information for displaying information about the buddy may include information that the user has collected about the buddy, information reflecting the user&#39;s past relationship with the selected buddy, and status information reflecting aspects of the user&#39;s current and future relationship with the buddy. The information collected about the buddy may include the buddy&#39;s full name, phone numbers, screen name, and other data about the buddy extracted from the user&#39;s address book. If the user&#39;s address book does not have an address book entry for the buddy, the supplemental interface provides a way to add one. The status information about the buddy may include various views of email messages received from the buddy (e.g., unread messages, all received messages, or total mail count), calendar events, alerts, on-line presence state, chat presence, buddy icons, and links to additional buddy information).  
         [0086]     Referring to  FIG. 10 , UI  600  may indicate to the subscriber that one or more of the user&#39;s buddies are connected to the host system  110  through a broadband, high-speed data connection. That a buddy is connected to the host system  110  by a broadband connection may be indicated by displaying the particular buddy&#39;s name in a distinctive font. For example, the screen names  1004   a  of buddies connected through a broadband connection (e.g., “ANDY,” “DONALD,” and “ERIC,” as indicated in  FIG. 10 ) may be displayed in all capital letters, or in a particular color, while the screen names  1004   b  of buddies not connected through a broadband connection (e.g., “Crystel,” “Bob,” “Michael,” “Scott,” and “Sheila,” as indicated in  FIG. 10 ) may be displayed in lowercase letters of in a different color than the broadband-connected buddies. Additionally or alternatively, a distinctive icon  1072  indicating that a buddy is connected through a broadband connection may be displayed in close proximity to the buddy&#39;s screen name  1004   a.    
         [0087]     More generally, such indications of the buddies&#39; connection type may be used to indicate the connection speed or maximum data transfer rate of the buddies. For example, icons  1072 , and distinguishing fonts  1004   a ,  1004   b  for buddy screen names can be used to indicate whether buddies are capable of communicating with the subscriber through data transfers that occurs faster than a particular data transfer rate. The particular data transfer rate may be defined by the subscriber, by the host system  110 , or by the client system  105 . The particular type of communications link  115  used by a buddy to connect to the host system  110  or the typical or maximum transfer rate of the communication link  115  used by the buddy can be displayed to the subscriber through UI  600 . For example, the subscriber may scroll over (or otherwise select) a buddy&#39;s screen name and information about the connection type or connection speed may pop up and be displayed to the subscriber in UI  600 .  
         [0088]     Information about the connection type of a subscriber&#39;s buddy aids the subscriber in deciding with which buddies to engage in particular communications, or more precisely, which buddies are capable of receiving different types of messages or media. Consequently, the indication of connection type or speed may be useful to a potential sender seeking to determine who shall receive content available to the sender for distribution. In one example, the subscriber may use the information in deciding among buddies with whom to initiate a video conference; the subscriber may choose to initiate the video conference with a broadband-connected buddy but not with a dial-up connected buddy. The subscriber may choose to share large graphics or video files (e.g., a video or a photo album of a family vacation) with a buddy if the subscriber knows that the buddy is connected to the host system  110  through a communications link  115  that is capable of transferring the files at a fast enough rate that will not detract from subscriber&#39;s or buddy&#39;s experience. Thus, the subscriber may choose to send data to or receive data from a buddy through a particular mode of communication depending on the information about the buddy&#39;s connection type, or the subscriber may decide whether to send data to a buddy based on the buddy&#39;s connection type.  
         [0089]     Whether a buddy is connected to the host system  110  by a communications link  115  that transfers data at a rate above a threshold transfer rate depends, of course, on the communication link  115  used by the buddy and not on the buddy himself. Because the buddy can connect to the host system  110  through a variety of different communication links  115  (e.g., though a T1 line from home, through a dial-up connection from home, or through a low speed wireless connection when using a mobile PDA), the subscriber needs to be appraised of changes in his buddies&#39; connection types.  
         [0090]     Referring again to  FIG. 6 , the window  601  of the UI  600  includes a list  602  of the user&#39;s buddies, a list of some of the user&#39;s favorite places  640 , and a list of the user&#39;s favorite things  650 . Some features of the buddy list  602  have been described above.  
         [0091]     The favorite places list  640  includes a list of the user&#39;s favorite links  642  to other information. Although favorite links  642  commonly are webpage URLs accessible through a browser application, favorite links  642  can be any kind of uniform resource identifier for identifying and retrieving content from a network through any network protocol (e.g. ftp, Gopher, telnet, https). By move the cursor over and clicking or otherwise selecting a link  642 , the user may open a supplemental interface to display the information. The information may be displayed in a traditional web browser but may also be displayed in a window or dialog, a tooltip, or a QAP. Thus, the favorite places list  640  of UI  600  provides a place to store the user&#39;s favorite links to additional information within a window  601  that includes the screen names of the user&#39;s buddies.  
         [0092]     The favorite things list  650  indicates a list of selected resources that the user stores on the host system  110 , such as, for example, text files, image files, audio files, and a calendar of appointments. Referring to  FIG. 11 , to make use of things stored on the host system  110 , the user first uploads a thing from the client system  105  to the host system  110  (step  1102 ). The user may upload a thing by using tools within the UI  600 . For example, a user may right click (or otherwise select) the “things” label within window  601  to open a supplemental interface for selecting a thing stored on the client system  105 , and may use the supplemental interface to initiate a transfer of the thing from the client system  105  to the host system  110 .  
         [0093]     Once uploaded to the host system  110 , the thing is stored on a storage medium of the host system where it is accessible to the user (step  1104 ), and thereafter, the thing  652  is accessible to the user within the favorite things list  640  within window  601  of UI  600 , which makes the thing accessible to the user from any client system  105  with which the user may access the host system  110 .  
         [0094]     After a thing is uploaded and stored on the host system, the user can grant access to the thing to one or more of the user&#39;s buddies (step  1106 ). A user may right click (or otherwise select) the thing  652  as represented in window  601  of UI  600  to open a supplemental interface in which the user can enter the screen names of buddies that are allowed to access the thing  652 . When a user grants a buddy access to a thing  652 , a notification may be sent to the buddy that the user has granted access to the thing (step  1108 ). The notification may be presented to the buddy in the form of an icon representing a “new thing” or as an email icon  606  to the right of the user&#39;s screen name in the buddy&#39;s buddy list. The buddy can then click or otherwise select the new thing icon to open the thing (step  1110 ), or the user can click or otherwise select the email icon  606  to open an email containing the new thing as an attachment or containing a link to the new thing. When the user moves a cursor over the thing in the UI  600 , a list of the buddies who have been granted access to the thing can be presented to the user. The list may include a date when the thing was shared with each buddy in the list, may specify the type of access that the user granted to the each buddy, and may specify when the thing was modified and by whom. Similarly, when the user moves a cursor over the screen name  604  of a buddy in the UI  600 , a list of the things that have been shared with the buddy can be presented to the user. The list may include a date when each thing in the list was shared with the buddy and may specify the type of access the buddy was granted to each thing.  
         [0095]     The list of buddies with whom a thing has been shared and/or the list of things that have been shared with a buddy can be presented in a supplemental interface.  
         [0096]     The user can control the degree of access a buddy has to the thing. For example, the user may grant “read only” access to the thing, permitted the buddy to open and view the thing but not to modify the thing, or the user can grant “modify” access to the thing to permit the buddy to open, modify, and restore the modified version of the thing on the host system  110 . If the buddy makes a modification to the thing  652  and stores it again on the host system  110 , a “new thing” notification is sent to all the buddies that have access to the thing to inform them that the thing has been modified. The host system  110  can store only the updated, modified thing  652 , or can store all versions of modified things, so that buddies and the original user can track the evolution of a thing. The buddies with access in the list can be shown in the UI  600  in different ways depending on the degree of access they have. For example, buddies with modify access may be shown in bold font, while buddies with read access may be shown in regular font.  
         [0097]     The general aspects described above relate to instant messaging and e-mail as well as other forms of communication such as, for example, telephonic communication (e.g., mobile phones, and pagers). Other implementations are within the scope of the following claims.