Non-persistent user interface for real-time communication

Methods, systems, and computer program products for making real-time communication user interfaces less intrusive by automatically adjusting the user interfaces based on the user's level of interaction. An initial representation of a user interface for real-time communication is displayed and automatically adapted to the user's activity level based on user input directed to the user interface. For example, the initial representation may be automatically adjusted, either reduced or enlarged, to an intermediate representation, a larger representation, or a smaller representation. When a representation is reduced, a message may be displayed to indicate the reduced representation's location. For smaller representations, subsequently received real-time messages may be displayed adjacent to the smaller representation, at least for a predetermined time. The initial representation may display in a desktop bar that displays other user interfaces, such as for a calendar, etc. As the initial representation adjusts, these other representations may adjust as well.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention relates to methods, systems and computer program products for real-time communication interfaces.

2. The Relevant Technology

The popularity of the Internet and satellite-based technologies has enhanced the way people communicate with each other by allowing users quick and easy access to a virtually endless sea of communication methods. Any given person may now contact another person with greater or lesser immediacy using various media that include accessing the World Wide Web, electronic mail (email), satellite-based or Internet-based telephony, video conferencing, and instant text messaging. These methods allow people to stay in touch with each other, and to access information on a variety of subjects, in some cases instantly.

Currently, instant text messaging (IM) is one of the more popular forms of relatively immediate or real-time communication. Such real-time communication allows a user to communicate with another user within a matter of seconds. In operation, real-time communication interfaces typically display a selectable contact list. When a user desires to communicate with a contact in real-time, the user may select a contact from the contact list and send real-time text communications to the user. In so doing, the user's message usually is received by the contact within a second or two of being sent. This ability to communicate with other contacts in such a short time highlights a number of advantages instant text messaging has over other types of electronic messaging, such as email.

Real-time communication users converse with other contacts typically using a separate conversation interface for each contact (i.e., one-on-one session), or one conversation interface for multiple contacts (i.e., chat session). Messages appear in each conversation interface in time-dependant alternating segments. Thus, users can monitor continuous text conversations through one conversation interface, even after multiple iterations of sending and receiving responses. This ability allows for a fluid real-time conversation between users. Thus, real-time communication provides many conveniences compared with other messaging protocols such as electronic mail.

Despite such conveniences,FIG. 1illustrates some significant impediments that remain with present real-time communication interfaces. As shown, a prior art monitor100with a desktop screen102may display application icons104, and several other open application interfaces. Such applications may include several different real-time communication applications110,120, and130, an email application140, and a word processing application150. The monitor100may also display one or more incoming message notifications, e.g., notifications160and170. These applications and notifications illustrate a significant problem in the prior art: intrusive notices and interfaces.

For example, incoming message notification170obstructs email interface140, which itself obstructs word processing application150. Email interface140and real-time communication interface120both obstruct real-time communication interface130. Instant messenger interface110and incoming message notification160simply occupy currently unused desktop screen real estate. As a result, for a user to monitor the real-time communication conversations110,120, and130, as well as to reference the word processing document150or email140, the user must toggle between each of the different interfaces. In addition to obstructing other interfaces, notification170requires explicit user interaction in order to dismiss the notification so that the user can proceed with other, potentially more pressing tasks. Notification160automatically fades from view after a predetermined amount of time, giving the user a limited amount of time to take any desired action.

Although notifications160and170may display part of a received real-time message, neither notification represents a user interface for real-time communication. Note, for example, that notifications160and170do not include a text input box or other input field for composing real-time messages. If a user decides to participate in a real-time conversation by interacting with notifications160and170, a separate user interface, such as user interfaces110,120, or130, is launched. Once launched, user interfaces110,120, and130remain a fixed (maximized) size, regardless of the amount of user interaction with each user interface. For example, user interface120displays as shown until explicitly resized, moved, closed, or minimized by a user.

A user may attempt to remedy the screen space and multiple interface issues by arranging or resizing the various application interfaces. In addition, the user may simply turn off incoming message notifications160and170in order to avoid distractions. While most present GUI-based operating systems provide this ability to arrange various interfaces selectively, having to explicitly interact with multiple user interfaces can be burdensome. Accordingly, methods, systems, and computer program products that make real-time communication user interfaces less intrusive by automatically adjusting the user interfaces based on a user's level of interaction are desired.

BRIEF SUMMARY OF THE INVENTION

The present invention relates to making user interfaces for real-time communication less intrusive by automatically adjusting the user interfaces based on the user's level of interaction. In accordance with example embodiments, an initial representation of a user interface for real-time communication is displayed and user input directed to the initial representation is monitored. The initial representation of the user interface is automatically adapted to the user's activity level based on the monitored user input. For example, the initial representation may be automatically adapted to an intermediate representation that includes a text input box, a larger representation that also includes the text input box, or a smaller representation. Because each contains a text input box, both the intermediate representation and the enlarged or larger representation can receive user input. Automatically adapting occurs without explicit user input to reduce or enlarge the initial representation, such as an explicit minimize, maximize, or resize input.

In an example embodiment, the initial representation is enlarged in response to hovering over or clicking on the initial representation. The initial representation may be reduced in response to a user sending a real-time message. For example, the user may compose a real-time message in the text input box of a larger representation of the user interface. Then, after the user sends the real-time message, the larger representation may be reduced automatically to the intermediate representation.

When the intermediate representation is reduced to the smaller representation, a message may be displayed to indicate the location of the smaller representation, which after reduction may be simply an icon. Subsequent real-time messages may be displayed next to the smaller representation, at least for a predetermined time, as they are received. Interacting with the displayed real-time messages for the smaller representation may cause the smaller representation to be enlarged to either an intermediate representation or the larger representation.

The initial representation of the user interface for real-time communication may be displayed in a desktop bar that also displays representations of other user interfaces, such as for a calendar, streaming audio or video, a contact list which allows custom identification information to be associated with individual contacts, etc. A user may initiate a real-time message to a contact by selecting the contact's representation, or dragging a computerized object, such as a file icon, and dropping the computerized object on the contact. As the initial representation is adapted, these other representations may be adapted as well. For example, as the initial representation enlarges, representations of one or more other user interfaces may be reduced. Similarly, as the initial representation reduces, the representations of the other user interfaces may be enlarged.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention relates to simplifying user interaction with real time communication user interfaces by adapting the user interfaces to the user's activity level. Example embodiments of the present invention may comprise a special purpose or general-purpose computer including various computer hardware, as discussed in greater detail below. Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer.

FIG. 2Aillustrates an example embodiment of the present invention in connection with a word processing application. Here the figure depicts a computer screen or desktop202with a user typing a letter210into word processing document200, which appears next to a desktop bar220. AlthoughFIG. 2Ashows desktop bar220at the right side of screen202, it should be appreciated that desktop bar220may be displayed in any portion of the screen202(side, top or bottom, etc.).

Desktop bar220(forFIGS. 2A and 2B) displays a user interface for a contact list that includes representations of the user, Bryan230, and of contacts Jena240, Mike250, and Kurt260. Each contact is represented by a name and a bullet point, such as with contact Jena240.FIG. 2Ashows the user's (Bryan230) representation prominently above the other contacts, though such a placement is not required. An online count222indicates how many of the contacts are online. Other status information, including status information for individual contacts, also may be shown. For example, the contact representation for Mike250indicates that he is online, but has not interacted with a real-time communication interface (or some other type of measurement such as typing on his keyboard) for a predetermined period of time or has otherwise indicated that he is unavailable for real-time communication. Consequently, the contact representation for Mike250shows an altered bullet point and text255indicating he is “away” from his messaging device (i.e., computer, PDA, etc.).

Desktop bar220(inFIGS. 2A and 2B) also displays representations of a user interface for real-time communication (e.g., chat, instant messaging, etc.) that includes message text242, a text input box270, and a send option272. For this example embodiment, the user interface representation shown inFIG. 2Aillustrates an intermediate representation of a user interface for real-time communication in a minimized state. As described in greater detail below, minimized does not necessarily mean the smallest possible state, but rather, an intermediate state that allows for user interaction with the intermediate representation with a minimal level of intrusion by the user interface. Compare this intermediate user interface representation, for example, with the smaller user interface representation327shown inFIG. 3Aand the larger user interface representations270and311shown inFIGS. 2B(After),3B and3C.

Note, however, that intermediate, larger or enlarged, and smaller or reduced, are relative terms. Each qualifier should be evaluated relative to other representations of user interfaces for real-time communication. Also note that while minimized ordinarily refers to an icon and/or text representation of a currently running application or process, in the context of this application, minimized and minimized state also can be used to reference an intermediate representation of a user interface displayed in a desktop bar. In other words, minimizing a real-time communication user interface may be used to display the user interface in desktop bar220, rather than displaying the user interface as merely an icon and/or text.

FIG. 2Aillustrates that user Bryan230is involved in a conversation with at least one other contact, Jena240. As shown, user Bryan230receives a real-time message242which appears below the list of contact representations, and within the desktop bar220. Thus, unlikeFIG. 1, the example real-time communication interface for real-time communication that is illustrated inFIG. 2Adoes not obstruct the word processing document200. User Bryan230can monitor incoming real-time messages, such as message242, as they are received, and as described below, may respond via a text input box270and send option272without opening a new real-time communication user interface.

FIG. 2Billustrates before and after sequences of user Bryan230entering a real-time message in text input box270. In the “Before” sequence, user Bryan230begins entering text in text input box270. User Bryan's text, however, needs more space than is allotted in the “Before” depiction. Accordingly, the text input box270automatically enlarges or grows in the “After” depiction to allow user Bryan230more space for entering his response text. In other words, user Bryan does not need to explicitly resize the real-time communication user interface. Since the text input box270begins at a more minimal size (“Before”), and automatically enlarges or grows to fit the entire typed text (“After”), user Bryan230does not need scroll bars to see his entire real-time message.

The “After” representation of text input box270is an example of an enlarged or larger representation of a user interface for real-time communication. After user Bryan230sends his message, at least a portion of the text will appear under Jena's240message as part of a conversation history; and text input box270reduces or shrink back to its initial size. Among other things, automatically adjusting or adapting the text input box270of the real-time communication interface based on user interaction allows for a compact user interface layout that initially favors other applications, but gives way to an enlarged or larger user interface when the user's interaction with the real-time communication interface make an enlarged or larger user interface appropriate. This ability to automatically adjust a user interface based on a user's interaction with the user interface, as opposed to explicit resize, maximize or minimize input, represents a significant advancement, particularly in the context of real-time communication, where real-time messages may interrupt other activities.

FIG. 3Adepicts additional example embodiments of the present invention in “Before” and “After” sequences of desktop bar300. Desktop bar300displays a representation of a user Bryan310and a contact list that includes contacts Jena320, Mike330, and Kurt340. Each contact has an associated user-definable icon or graphic315,325,335, and345. InFIG. 3A, user Bryan310is monitoring a real-time conversation between contacts Jena320and Mike330.

Because user Bryan310is monitoring (that is not actively participating and therefore having little or no interaction with) the real-time conversation between Jena320and Mike330, the user interface for the real-time communication is a reduced or smaller representation327. The reduced or small representation327allows other user interfaces, such as video newscast360, list of incoming emails375, the word processing application ofFIG. 2A, etc., more space. The reduced or smaller representation327comprises an icon in the form of a balloon or conversation balloon, below newscast360and email list375.

Smaller or reduced user interface representations for real-time communication may take a variety of forms. Furthermore, the user may be offered one or more dynamic options based on whether a user hovers (e.g., places a cursor over the balloon) or selects the balloon (e.g., “clicks” on the balloon). Such dynamic options could include displaying a portion of the message, displaying an option to explicitly maximize the conversation window, an option to view the conversation history, an option to cancel the conversation session, etc. Of course, the invention is not limited to any of these examples.

Continuing with the “Before” sequence, Jena320sends Mike330a text message322. This message notification322for user Bryan may remain only for a predetermined time period. For example, if user Bryan310fails to interact with the message notification322, the message fades, and therefore is not shown in the “After” representation of desktop bar300. Interaction may comprise, e.g., “hovering” over the message, or selecting the message, as described with the conversation balloons above. After the message notification322fades, the sending contact's representation325in the “After” sequence may be highlighted, alerting user Bryan310to a received message. Here, for example icon325(“After”) is shown outlined, representing that Jena320has sent a real-time message that has not been viewed, selected, etc. by user Bryan310. One will appreciate that this sort highlighting may comprise a wide variety of methods such as bolding or outlining a representation, blinking a representation, inserting smaller textual notices near the representation, enlarging the representation, etc. Contact Mike330responds to contact Jena's message322, as shown in theFIG. 3A“After” sequence. Here too, the real-time communication interface places message332beside or adjacent to conversation representation327.

FIGS. 3B and 3Cillustrate additional embodiments of a larger or enlarged real-time communication user interface311, which is maximized. InFIGS. 3B and 3C, the desktop bar300does not show the client's user name (e.g., Bryan310,FIG. 3A).FIGS. 3B and 3Cdo, however, show an online count302, as described above inFIGS. 2A-2B. As well,FIG. 3Bshows a different user interface380for a calendar, rather than the email inbox375shown inFIG. 3A.

InFIG. 3B, the user interface or conversation window311is shown prominently on the desktop bar300. Note that the user interface311in this case is slightly larger than the overall desktop bar300, and includes conversation text316, as well as additional window options312and314. An enlarged conversation window311is appropriate here because the user is actively interacting with the real-time conversation, rather than simply monitoring. That is, since the user is directing his attention to the real-time311in this manner does not obstruct other interfaces with which the user might be otherwise interacting. The user also may explicitly direct that the message window310remain in an enhanced size, even though the user directs his attention elsewhere.

Continuing withFIG. 3B, the user interface311may present the typed text316such that the conversation lines appear in different horizontal offsets. Different horizontal offsets provide a visual cue regarding the identity of the participants. After a time, the user interface311may drop the contact names preceding the text after a time, and simply show the conversation in contact-specific horizontal offsets to identify the source of each real-time message. However, it should be recognized that there are a variety of ways the conversation window311may present the message text316to the user.

The user interface311may include the two window options312and314as shown, as well as additional options (not shown), and may provide the user with a variety of menu options. For example, option312may provide an option to display a conversation history, or may provide an option to move the conversation window upon selection (e.g., “clicking”) to make the conversation window appear as a separated interface (e.g.,FIG. 3C). Upon a user's selection of option314, time and date properties may be displayed, etc. Window option314may provide similar options as window option312, or may provide a minimize function such that selection of the option314drops the conversation window into an iconic form (e.g., message balloon icon327,FIG. 3A) of docks the conversation window within desktop bar300.

FIG. 3Cshows the case when the user selects the conversation window311to be separated from the desktop bar300.FIG. 3C, also shows that, as a result, another user interface, e.g., newscast360, may appear where the real-time communication user interface311resided previously. Newscast user interface360may automatically replace user interface311when the conversation window311is separated from the overall interface. Alternatively, desktop bar300may show a blank spot where the user can optionally insert the newscast user interface360some other user interface.

In addition, these various, optional user interfaces may enlarge or reduce based on adjustments made existing conversation window311. For example, inFIG. 3B, calendar object380is shown below real-time communication user interface311with three two-hour blocks. When the user interface311is removed or reduced in some way (e.g.,FIG. 3C), the calendar380may automatically enlarge as shown inFIG. 3C, to show a five two-hour blocks or to display more information. Accordingly, the various user interfaces, such as newscast360(streaming video), streaming audio (not shown), calendar380, and email object375may automatically adjust or adapt based on the real-time communication user interface, or may be adjusted manually by the user as is common in graphical user interfaces.

FIG. 4shows one embodiment of how a user may alter or customize his representation of others in a contacts interface for real-time communication. The figure depicts a contact interface400with user Bryan410, contacts420,430, and440and respective iconic representations415,425,435, and445.FIG. 4also depicts a modification user interface450with a textual appearance option452and an image or graphic appearance option455, including a custom image selection option457.

In practice, a user, e.g. user Bryan410, may change the user's appearance to other contacts, e.g.420,430,440, by typing a user name in the text input option452. To do so, the application software, may present a user, e.g. user Bryan410, with several options455including using (or altering) a default icon, or selecting a custom image. It should be appreciated, however, that customized text, icons, and graphics are merely examples of manipulating a user's representation of others.

FIG. 5illustrates at least one method by which a user, e.g. user Bryan510may initiate a real-time communication with another user, using a typical “drag and drop” method. “Drag and drop” is a phrase referring to selecting and moving objects (and, in some cases executing files or commands) with a cursor in a graphical user interface.FIG. 5depicts a desktop bar500for user Bryan510, with a contact list comprising contacts Jena520, Mike530, and Kurt540. Each user or contact has a respective graphical or iconic representation515,525,535, and545. The figure depicts user Bryan510sending a real-time communication to Kurt540by “dragging and dropping” a file550onto Kurt's540representation545. Of course, Bryan510may initiate the message by dropping the file onto Kurt's name. Either way, this action initiates a new real-time message window568that comprises the document550and an option to send accompanying text, or alternatively may add a file icon in the send portion of an existing real-time communication user interface such that a new message window568is not opened.

FIG. 6illustrates a variety of embodiments of the present invention in the context of multi-media such as audio and/or video messaging. As described in more detail below, desktop602includes three enlarged user interface representations615(text only),645(audio), and685(video), along with reduced user interface representations610,640or650, and680or690that each appear below their corresponding enlarged user interface representation. In accordance with the present invention, the example real-time communication interfaces illustrated inFIG. 6are capable of automatically adapting to the user's activity level based on monitored user input to help make the user interface less intrusive. Of course, a user also may switch between the enlarged and reduced representations with explicit input, such as a maximize input, a minimize input, etc. Note that each of the enlarged and reduced representations alternatively may be displayed within desktop bar600. SimilarFIGS. 2A-2B, desktop bar600shows an online count indicator622, user Bryan630, and a list of contacts including Jena640, Mike650, and Kurt660. Since the real-time message user interface is separated from the desktop bar600, newscast user interface665and email user interface675fill the remaining space.

Each of the enlarged user interface representations615,645, and685show examples of some options and capabilities that a real-time communication user interfaces may provide. For clarity, however, most common options are numbered, and will be described, only with respect to user interface representation615. User interface representation615includes a window minimize button608, a window maximize button604, a window close button606, and an interface minimize button618. For enlarged user interface representation615,645, and685, the window minimize button608may serve to reduce the conversation window to corresponding conversation windows610,640or650, and680or690; the window maximize button604may serve to enlarge the conversation windows to a larger size if they have been previously reduced or resized or may display the conversation history; and the window exit button606may serve to close the conversation entirely. The interface minimize button618may be designed to perform the same function as window minimize button608, or may dock conversation windows615,645, and685to the desktop bar600.

Conversation window615also includes a menu button622that may provide a list of additional interface options, a webcam button624that may provide an option for audio messaging (e.g., conversation window645) or video messaging (e.g., conversation window685), and a send file button626for adding a file to a real-time message. A format and emoticon toolbar612, a text entry box614, and at least a portion of the ongoing text conversation620show toward the bottom of conversation window615.

For an audio conversation, e.g. audio conversation window645, the real-time communication user interface may provide additional audio controls632to adjust the volume, speakers, or quit the audio conversation. The audio conversation window645shows that audio and text chat may be combined into a single interface, and may be reduced into alternative audio user interfaces, e.g., window640or window650, which may represent minimized representations of conversation window645. Conversation windows640and650merely illustrate one example of the extent to which optional controls may be included in a reduced audio conversation window645. Note that audio conversation window650also includes a window minimize button604and a window maximize button606.

Similar to audio conversation window645, video conversation window685provides audio controls632to adjust the volume, speakers, or quit the audio portion of the real-time video messaging communication. Video conversation window685includes video stream672, shows a text entry box614and an ongoing text conversation history620for combined real-time text and video messages. As in the case of the other conversation windows615and645, a user may reduce the video conversation window685into smaller user interfaces, e.g. video conversations windows680and690. Like smaller audio conversation windows640and650, smaller video conversation windows680and690illustrate merely one example of the extent to which optional controls may be included in a reduced video conversation window685. Note that video conversation window690also includes window minimize and maximize buttons604and606.

The present invention also may be described in terms of methods comprising functional steps and/or non-functional acts. The following is a description of acts and steps that may be performed in practicing the present invention. Usually, functional steps describe the invention in terms of results that are accomplished, whereas non-functional acts describe more specific actions for achieving a particular result. Although the functional steps and non functional acts may be described or claimed in a particular order, the present invention is not necessarily limited to any particular ordering or combination of acts and/or steps.

FIG. 7shows example acts and steps for methods of making one or more user interfaces for real time communication less intrusive by automatically adjusting the one or more user interfaces based on the user's level of interaction in accordance with the present invention. A step for monitoring (710) user input directed to an initial representation of a user interface for real-time communication may include an act of displaying (712) an intermediate representation of the user interface that includes a text input box and at least a portion of a received real-time message. A step for automatically adapting (730) the initial representation of the user interface to the user's activity level based on the monitored input may include an act of automatically enlarging (724) an intermediate representation of the user interface upon receiving an increased level of interaction with the intermediate representation and an act of automatically reducing (722) the intermediate representation of the user interface upon receiving a decreased level of interaction with the intermediate representation.

A step for automatically adapting (730) one or more other user interfaces to account for size changes in the initial representation of the user interface may include an act of automatically reducing or enlarging (732) the one or more other user interfaces when the initial representation is enlarged or reduced. When a user interface representation is reduced, a step for indicating (740) the location of the reduced representation may include an act of displaying (742) a message that indicates where the reduced representation is located. For reduced user interface representations, such as a user interface that has been reduced to an icon, received real-time messages may be displayed (752) adjacent to the reduced representation.

With reference toFIG. 8, an exemplary system for implementing the invention includes a general-purpose computing device in the form of a conventional computer820, including a processing unit821, a system memory822, and a system bus823that couples various system components including the system memory822to the processing unit821. The system bus823may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM)824and random access memory (RAM)825. A basic input/output system (BIOS)826, containing the basic routines that help transfer information between elements within the computer820, such as during start-up, may be stored in ROM824.

The computer820may also include a magnetic hard disk drive827for reading from and writing to a magnetic hard disk839, a magnetic disk drive828for reading from or writing to a removable magnetic disk829, and an optical disc drive830for reading from or writing to removable optical disc831such as a CD ROM or other optical media. The magnetic hard disk drive827, magnetic disk drive828, and optical disc drive830are connected to the system bus823by a hard disk drive interface832, a magnetic disk drive-interface833, and an optical drive interface834, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules and other data for the computer820. Although the exemplary environment described herein employs a magnetic hard disk839, a removable magnetic disk829and a removable optical disc831, other types of computer readable media for storing data can be used, including magnetic cassettes, flash memory cards, digital versatile disks, Bernoulli cartridges, RAMs, ROMs, and the like.

Program code means comprising one or more program modules may be stored on the hard disk839, magnetic disk829, optical disc831, ROM824or RAM825, including an operating system835, one or more application programs836, other program modules837, and program data838. A user may enter commands and information into the computer820through keyboard840, pointing device842, or other input devices (not shown), such as a microphone, joy stick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit821through a serial port interface846coupled to system bus823. Alternatively, the input devices may be connected by other interfaces, such as a parallel port, a game port or a universal serial bus (USB). A monitor847or another display device is also connected to system bus823via an interface, such as video adapter848. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.

The computer820may operate in a networked environment using logical connections to one or more remote computers, such as remote computers849aand849b. Remote computers849aand849bmay each be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically include many or all of the elements described above relative to the computer820, although only memory storage devices850aand850band their associated application programs836aand836bhave been illustrated inFIG. 8. The logical connections depicted inFIG. 8include a local area network (LAN)851and a wide area network (WAN)852that are presented here by way of example and not limitation. Such networking environments are commonplace in office-wide or enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer820is connected to the local network851through a network interface or adapter853. When used in a WAN networking environment, the computer820may include a modem854, a wireless link, or other means for establishing communication over the wide area network852, such as the Internet. The modem854, which may be internal or external, is connected to the system bus823via the serial port interface846. In a networked environment, program modules depicted relative to the computer820, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing communication over wide area network852may be used.