Source: https://patents.google.com/patent/JP2009521064A/en
Timestamp: 2019-12-11 03:28:48
Document Index: 758169249

Matched Legal Cases: ['art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 500', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600', 'art 600']

JP2009521064A - Contact list display system and method - Google Patents
JP2009521064A
JP2009521064A JP2008549070A JP2008549070A JP2009521064A JP 2009521064 A JP2009521064 A JP 2009521064A JP 2008549070 A JP2008549070 A JP 2008549070A JP 2008549070 A JP2008549070 A JP 2008549070A JP 2009521064 A JP2009521064 A JP 2009521064A
JP2008549070A
パウロ タイロル
オンノ バッケル
ヤン ヨースト リューブ
イーバディー ホールディング ベースローテン フェンノートシャップ
2006-12-11 Application filed by イーバディー ホールディング ベースローテン フェンノートシャップ filed Critical イーバディー ホールディング ベースローテン フェンノートシャップ
2006-12-11 Priority to PCT/IB2006/004264 priority patent/WO2008072030A2/en
2009-05-28 Publication of JP2009521064A publication Critical patent/JP2009521064A/en
Techniques for aggregating contact lists across the network include logging into the low level network through the high level network. A system configured by this technique can include network interfaces connected to different low-level networks. The system can further include a contact aggregation engine connected to the network interface and the network contact database. In operation, the system logs into one or more of the low level networks (or facilitates user login). Unless the data in the network contact database is up-to-date, the contact aggregation engine updates the network contact database contact information and then outputs the aggregated contact list including the contact information on the display device. A method according to this technique may include logging into a high level network and displaying contacts from one or more low level networks in the aggregated contact list. The method can further include logging into one or more low level networks.
Instant messaging differs from e-mail in that it requires the use of a client program that connects to an instant messaging service, and that interaction can then occur in real time. Most services provide a presence information function that indicates whether people on that person's contact list are currently online and can chat. This can be called a contact list. In early instant messaging programs, each character appeared as it was typed, and this was also seen in real time if the character was deleted to correct a typo. This made it more like a telephone conversation than exchanging characters. In modern instant messaging programs, the other party in the conversation generally only sees each line of text immediately after a new line begins. Most instant messaging applications further include the ability to set a status message that is approximately similar to an answering machine message.
Popular instant messaging services on the public Internet are: NET Messenger Service, AOL Instant Messenger, Excite / Pal, Gadu-Gadu, Google Talk, iChat, ICQ, Java, Qnext, QQ, Metro, Skype, Trillion and Yahoo! Includes messenger. These services bear a lot of ideas on previous (and still popular) online chat media known as Internet Relay Chat (IRC).
The above examples of the related art and limitations associated therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those skilled in the art upon reading this specification and reviewing the drawings.
The following embodiments and aspects thereof are described in conjunction with the figures in connection with systems, tools and methods, which are meant to be exemplary and illustrative and not limiting in scope. In various embodiments, one or more of the above problems have been reduced or eliminated while other embodiments aim for other improvements.
Techniques for aggregating contact lists across multiple different networks include logging into the lower level network through the higher level network. A system configured according to this technique can include network interfaces connected to different low level networks. The system can further include a contact aggregation engine connected to the network interface and the network contact database. In operation, the system can log in (or facilitate user login) to one or more of the low-level networks. This network contact database is for illustrative purposes and is not intended to be limiting, but it may be used for any contact related to the network from previous logins or data explicitly entered by the user. Information can be included. Unless the data in the network contact database is up-to-date, the contact aggregation engine updates the network contact database contact information and then outputs the aggregated contact list including the contact information to the display device.
A method according to this technique may include logging into a high level network and displaying contacts from one or more low level networks in the aggregated contact list. The method can further include logging into one or more low level networks.
In the following description, certain specific details are presented to provide a thorough understanding of embodiments of the invention. Those skilled in the art will recognize, however, that the invention may be practiced without one or more of the specific details, or in combination with other components. In other instances, well-known implementations or operations are not shown or described in detail to avoid obscuring aspects of the various embodiments of the invention.
Embodiments of the present invention are illustrated in the figures. However, this embodiment and figures are illustrative rather than limiting and they provide specific examples of the present invention.
FIG. 1 represents an example of a system 100 for providing instant messages to clients via a web interface. In the example of FIG. 1, system 100 includes a network 102, a server 104 and an instant messenger (IM) server 106, and an IM network 108. Server 104 is connected to the network via at least port 80. Bidirectional communication via port 80 is represented in the example of FIG. Server 104 is connected to IM server 106 via one or more other ports. Bidirectional communication via other ports is represented in the example of FIG. IM server 106 is connected to IM network 108 via any known or convenient mechanism. Indeed, the IM server 106 can be considered part of the IM network 108. The network 102 connects to the server 104 to a plurality of clients 114-1 to 114 -N (collectively referred to as clients 114). In the example of FIG. 1, the server 104 includes an event queue 116.
Network 102 is for purposes of illustration and not limitation, but may be a LAN, WAN, VLAN, WLAN, Internet, cellular telephone network, telephone network, wireless network, or some other known or Any convenient network can be included. As used herein, the term “Internet” refers to the Hypertext Transfer Protocol (HTTP) for Hypertext Markup Language (HTML) documents, such as TCP / IP and that make up the World Wide Web (Web). Refers to a network that uses a particular protocol, such as may be another protocol. The physical connections and protocols and communication rules of the Internet are well known, but any convenient physical connection or protocol can be used.
Server 104 may include multiple servers. Indeed, depending on the specific implementation details, it may be desirable to install several servers to accommodate the number of concurrent users that the system 100 supports. Depending on the specific implementation details, it may be more desirable for the server 104 to have a high CPU throughput with a large amount of RAM in order to handle a large number of users. Further, depending on the specific implementation details, a thread pool may be used in which a pool of threads is shared by one or more of the clients 114 and between the server 104 and the IM server 106 for client-server communication. It may be desirable to achieve resource sharing via
Server 104 may include one or more of an application server, database server, web server, banner server and content server, or any combination thereof. To take full advantage of the techniques described herein, server 104 is not required, but should include at least one application server. Other servers are for purposes of illustration and not limitation, but serve static content or advertisements (eg, banners), store usage data, or some other known or It can have the role of support in performing an advantageous function.
Server 104 can act as a proxy server between client 114 and IM server 106. Server 104 receives communications from client 114 on http port 80 and responds to client 114 on http port 80. Communications from client 114 destined for IM network 108, however, must also come to server 104 through http port 80 and then forwarded to IM server 106. In this way, the server 104 provides a mechanism for controlling and managing data (eg, text messages, display images, emoticons, audio / video streams, etc.) transmitted between one of the clients 114 and the server 104. Used to act as a carrier of data from the user to the IM network 108 and vice versa.
IM server 106 may be any known or convenient IM server that is compatible with IM. Events, messages or other suitable data from IM server 106 are collected in event queue 116 of server 104. Events are for illustrative purposes and are not intended to be limiting, but can be gathered in connection with various protocols including port 1863, port 5050, port 5222, port 5190, and the like.
IM network 108 is MSN Messenger, Yahoo! One or a combination of networks selected from Messenger, AIM AOL, ICQ, QQ, Java, Google Talk, IRC, or some other known or convenient IM network may be included.
Client 114 is for purposes of illustration and not limitation, and includes any known or convenient device including a web browser, mobile client, PDA, game console, TV box, native application, etc. Can be included. The client polls the server 104 for events. The event can be removed from the event queue 116, and the text that one or more of the clients 114 need or expect to process the data associated with the event, Java Script, XML Or it can be converted to some other known or convenient format.
In order to interact with the IM network 108, the client 114 sends data to the server 104. Data that can contain commands is processed and converted into corresponding data that is sent to the appropriate IM network. In one embodiment, the appropriate IM network can be determined based on the protocol encoded in the message.
Messages or actions from the client 114 are collected via a network protocol such as HTTP or a normal socket connection, for purposes of illustration and not limitation. This message or action is converted by the application-side IM protocol into an appropriate protocol format to be sent from the client 114 to the server 104 via the corresponding port. In a non-limiting embodiment, this corresponding port is an http port 80. However, any port having characteristics similar to those of the typical port 80 can be used.
As of December 2005, the latest available browsers allow the use of a technique called AJAX (Asynchronous JavaScript and XML). With AJAX, a properly configured client 114 can operate and poll for messages or events using only JavaScript. This method is based on the use of an XMLHttpRequest object that makes an HTTP request to the server 104. Server 104 can respond with a message retrieved from the queue for the corresponding session in XML (or other) format that is parsed and displayed according to the message content.
For a client 114 that includes a browser, when accessing the server 104, the browser typically uses a hidden HTML frame to update information on the visible frame. The hidden frame is reloaded within a short period of time, and the visible frame displays the appropriate information. At each refresh that hits server 104, the browser identifies the current message session and checks to see if there are any new events or messages associated with this session in event queue 116. When new information arrives and needs to be displayed in some form, the browser uses, for example, JavaScript code to update the visible frame and window with new messages or events to keep the information up to date in the screen. In this way, automatic refreshing can be performed in non-display frames.
In another embodiment, a particular client 114 with a browser may not utilize refresh. For example, the form of updating the screen without using a refresh technique is to keep one single HTTP socket request valid for the entire duration of the messaging session without actually closing the socket connection. In this example, the information is initially loaded and displayed in one single visible frame. While events and messages are received by the server 104, the JavaScript code can be kept valid and injected into the HTML document through the same HTTP socket managed by the server 104. For each event or message, the browser can interpret the installed JavaScript code and the corresponding parts of the HTML document and window are updated.
In another embodiment, a browser specific client 114 may utilize manual refresh. Some relatively simple browsers, such as WAP and xHTML browsers often available on mobile phones, do not support hidden frames and / or JavaScript (and others support hidden frames and / or JavaScript) Can be configured to not). In such cases, the displayed information must be manually updated by the user. The manual update process allows any device with any mobile phone, PDA, television set or browser to connect to the server 104 and use the messaging platform made available by the server 104; Ensure communication between the client 114 and the IM server 106.
Message history can be stored on the local computer by most IM clients. Local storage may not be possible for alternative web and mobile based clients. In a non-limiting embodiment, the server 104 can have the ability to store message history from IM interactions conducted via one or more of the clients 114. The message history can be accessed and retrieved at any time via the server 104 by one or more of the clients 114.
FIG. 2 represents an example of a system 200 for displaying content from an IM client at an alternate IM client. In the example of FIG. 2, system 200 includes client 202, IM network 204, server 206, IM network 208, client 210, other IM networks 212-1 to 212-N (collectively referred to as other IM networks 212) and Other clients 214-1 to 214-N (collectively referred to as other clients 214) are included.
For convenience of explanation, it is assumed that the client 202 has contents corresponding to the IM network 204. However, the client 210 can read content formatted for the IM network 208. Thus, during operation, server 206 collects content from client 202 (either through IM network 204 as shown in FIG. 2 or directly from client 202 as shown by way of example in FIG. 1). Server 206 then formats the content as appropriate for use on IM network 208. Once the content is properly formatted, it can be used by the client 210 (either through the IM network 208 as shown in FIG. 2 or directly to the client 210 as shown by way of example in FIG. 1). Can be done. Depending on the embodiment and / or implementation, the content can be formatted to be suitable for one or more of the other IM networks 212 to be made available to one or more of the other clients 214. .
In one embodiment, the server 206 can store content in one or many formats. In this manner, the client 202 can make the content available in the first IM format, the server 206 can convert the content to the second IM format, and the server 206 can at least the second IM format. You can save content in a format. Accordingly, the client 210 can receive data in the second IM format. Server 206 can similarly easily store content in the first IM format and make the content available to other clients connected to IM network 204. In addition, server 206 can convert content to and store other IM formats, such as formats associated with other IM networks 212. In this way, other clients 214 can access the content.
In a non-limiting embodiment, client 202 may be able to view client 210 and client 214 simultaneously. This is advantageous because IM clients usually cannot see IM clients from other IM networks. Conveniently, because server 206 is used, for example, client 202 may even include a mobile device without a client. (Of course, even though the term client is still used for exemplary purposes, this means that client 202 is not an IM client at all, since client 202 is handled by server 206 in a client-server-like manner. Can be interpreted). In a non-limiting embodiment, if the client 202 does not install or cannot install the client software, the client 202 can use a browser for web-based messaging and display.
FIG. 3 illustrates an example of a system 300 that can aggregate and display contacts. System 300 includes low-level networks 302-1 through 302-N (collectively referred to as low-level network 302), computer 304, and display 306. The low-level network 302 is for illustrative purposes and is not intended to be limiting, but can include various IM networks. It can be noted that the computer 304 and display 306 may constitute a computer system in a particular implementation.
The computer 304 includes a network interface 308, network login engines 310-1 to 310-N (collectively referred to as network login engines 310), and network contact databases 312-1 to 312-N (collectively network login engines 310). A high-level contact database 314, a user profile database 316, and a contact aggregation engine 318.
The network interface 308 is connected to the low level network 302. In a typical implementation, the network interface 308 further connects the computer 304 to a network, such as the Internet and / or a high level network (not shown).
The network login engine 310 may include logic and storage that facilitates login to various low level networks 302. For example, the network login engine 310-1 may include a username associated with the low-level network 302-1 (and possibly a password if a password is not required from the user at each login). Conceptually, each of the network login engines 310 has a general meaning (ie, data and logic required for any device to connect to the low-level network 302) and a user-specific meaning (eg, user-related Data provided by a user that allows login to an account that is) to represent a login function to the low-level network 302.
A network contact database 312 embodied in a computer readable medium includes contact data associated with any of the networks that the user has logged into. If the user logs out, depending on the implementation and / or user settings, the data may or may not be cached for future reference (or stored in non-volatile memory).
The high level contact database 414 embodied in a computer readable medium is an optional database that includes contacts associated with the high level network. The high level contact database is optional for at least two reasons. The first reason is that the system does not need to provide the ability to retain high level contacts, and the user needs to retain only low level contacts. The second reason is that even if the system provides the ability to retain high level contacts, the user may instead choose a low level contact and choose not to retain any high level contacts. Because there is no.
A user profile database 416 embodied in a computer readable medium is intended to represent data associated with a user. The amount of data retained is implementation specific.
Contact aggregation engine 418 is connected to databases 412, 414, 416, network login engine 410 and display 406. In operation, the contact aggregation engine 418 controls the network login engine 410 to log in to various low level networks 402 or facilitate login by the user. The list of contacts stored in the network contact database 412 is aggregated and displayed on the display 406, as shown in the screen shots of FIGS. 4A-4B and the flowchart of FIGS. Databases 412, 414, 416 are accessed.
4A-4B represent specific examples of screenshots representing multi-network IM displays. In many cases, the user logs into the high level account and adjusts the user settings so that the system automatically logs the user into various low level accounts. This may require storing login credentials so that the system can automatically log the user into each selected interface. FIG. 4A shows an example of a screen shot 400A in full screen display. In the example of FIG. 4A, screenshot 400A shows a contact list tab 402, an “add network” hyperlink 404, a plurality of MSN icons 406, a plurality of Yahoo! An icon 408 and a plurality of AIM icons 410 are included.
As the name implies, the contact list tab 402 includes a list of designated IM client contacts. For IM clients to be included in the list, users associated with the contact list generally must explicitly enter the client into the list. This can be accomplished with a single click. For example, if a new IM client contacts a user, the user can be prompted to allow this IM client to be placed in the user's contact list.
As suggested by the folders represented in the contact list tab 402, the user can organize contacts in various folders. Depending on the implementation and user settings, a single contact can be listed in no folders, one folder, or multiple folders. Depending on the implementation details, all contacts that are not currently online are listed in the “Offline” folder.
Following the “add network” hyperlink 304, a network for display can be added. In a non-limiting embodiment, when a network is added, the user's contacts in the added network are added to the contact list tab 402. Added contacts can be identified by the network using, for example, icons 406, 408, 410.
In an alternative embodiment, the contact list can be kept in a high-level network (ie, all contacts are in the contact list even if they are from a network where no contacts were added). Listed). If a contact is a member of a network that has not been added, the contact will probably be listed in an “offline” folder, since the contact is not known to the online user. However, depending on the implementation, an “offline” folder indicates two folders as needed, a folder indicating that the contact is offline and a member of the network where the contact was not added. Can be virtually divided into folders. In the example of FIG. 4A, the added networks have icons 406, 408, 410 associated with them, and each of the contacts has icons 406, 408, 410 associated with them, which is implied. . Therefore, it is obvious from looking at the display whether the contact is a member of the network being added now.
In a non-limiting embodiment, adding a network requires the user to be a member of the added network. For example, if a user wishes to add an MSN IM network, the user must have an MSN IM account. However, in an alternative embodiment, the system can set up a dummy account for a user who wants to add a network account that the user is not a member of. Although the dummy account is associated with the user, the user will find it easier to not log in or even remember passwords. The system can handle all of these details for a user without the user's personal knowledge and without exposing the user to security risks such as password leakage (some users have multiple accounts). However, in this case, the system will generate a random and possibly strong password that is used with the account).
FIG. 4B shows an example of a screen shot 400B of a mobile phone display. In the example of FIG. 4B, the contact list includes a series of contacts and their associated network identification icons 406, 408, 410. The information available on mobile phone displays is less than that of full screen displays, such as those available on laptop displays, for example.
In the example of FIG. 4B, the user can add an account by clicking on the “Add Account” hyperlink 412. Depending on the implementation, clicking the “add account” hyperlink 412 selects an account from the list of accounts that the user has already specified in the contact list (or adds a new account), or a specific subset (eg, FIG. Select a list of accounts associated with the folder reference (4A), or select a specific network (which can include logging the user into the network or prompting the user to do so) ), Storing login credentials and logging in, the system can automatically log the user into each selected interface or prompt the user to select an account in some other way It will be possible. Presumably, if an account is selected for a contact that is a member of the network that the user did not log in, in a non-limiting embodiment, either the user or the system must log into the network.
In the example of FIG. 4B, the user can remove the account from the online list by clicking the “sign out” hyperlink 414 next to the account. Depending on the implementation, clicking on the “Sign Out” hyperlink 414 may be on the same network as the account associated with the particular “Sign Out” hyperlink to the user or on the same network as the account associated with the particular “Sign Out” hyperlink. All accounts in can be taken offline. The “sign out” hyperlink 416 can be used to sign out from all networks at once, or in different implementations can prompt the user for the network to sign out.
In the example of FIG. 4B, screenshot 400B includes a “reload” hyperlink 418. It may be desirable to refresh the screen from time to time. Some mobile devices may even be unable to refresh without an explicit reload.
FIG. 5 depicts an example flow diagram 500 for a method for contact list aggregation and display. This and other methods are represented as sequentially arranged modules. However, the modules of this method can be reordered as needed or can be deployed for parallel execution. In the example of FIG. 5, the flowchart 500 begins at module 502 where a high level network is connected. The high level network is for illustrative purposes and is not intended to be limiting, but may include eBuddy.
In the example of FIG. 5, the flowchart 500 proceeds to module 504 where the low level network is connected. The low-level network is MSN Messenger, Yahoo! IM networks can be included, such as instant messenger, AIM or other known or convenient networks. If a high level network is connected, it should also work properly as if the high level network were at a low level. For example, a member of a first high level network can connect to a second high level network, which is then associated with the first and second low level networks. The second high level network would rather function like a node in a tree where the first high level network is the root and the leaves of the nodes are the first and second low level networks. Thus, the second high level network can be considered a medium network. Unless distinction is required, the medium network is treated as a low-level network herein.
In the example of FIG. 5, flow diagram 500 proceeds to decision point 506 where it is determined whether to connect to more lower level networks. If more low level networks are determined to be connected (506-Y), the flowchart 500 loops back to the module 504 described above. On the other hand, if it is determined that no more low level networks are connected (506-N), flow diagram 500 proceeds to module 508 where contact lists associated with one or more of the low level networks are maintained. Is done.
The contact list is not particularly important in an email environment (since it can write an email to anyone who knows the email address), but in an IM environment, a user can send an email before sending an IM. Contact lists are more desirable because you want to see who is online. If the contact is not online, IM is not enabled in many implementations (and communication is probably not an instant message in implementations that "enable" IM with offline contacts). Thus, at least in the IM environment, most users maintain a contact list (508).
In the example of FIG. 5, the flowchart 500 proceeds to module 510 where the high level network is logged in. When a user logs into a high-level network, the user typically has several options including requesting that a list of contacts be displayed. Depending on the implementation and user settings, a list of contacts can also be displayed automatically upon login.
In the example of FIG. 5, the flowchart 500 proceeds to module 512 where contacts from each of the lower level networks are displayed in an aggregated contact list. Depending on the implementation or user settings, the contact list can also include high-level contacts. Also, depending on the implementation and / or user settings, the user may or may not need to log in to each of the low level networks displayed in the contact list where the contacts are aggregated.
In the example of FIG. 5, the flowchart 500 proceeds to decision point 514 where it is determined whether to exit the high level network. If the user does not exit the high-level network (514-N), the flowchart 500 proceeds to decision point 516 where it is determined whether the user logs out of the high-level network. If it is determined that the user is to log out of the high level network (516-Y), the flowchart 500 proceeds to module 518 where the user logs out. Regardless of whether the user logs out (516-Y, 518) or not (516-N), the flowchart 500 loops back to the decision point 506 described previously.
In many cases, the user may never exit the high-level network, however, it is theoretically possible that the user will terminate (or the user will be prohibited). If the user exits the high-level network or is then banned (514-Y), the flowchart 500 ends.
FIG. 6 depicts an example flowchart 600 of a method for aggregated contact list display. In the example of FIG. 6, a flow diagram 600 begins at module 602 where members log into the high level network.
In the example of FIG. 6, the flowchart 600 proceeds to module 604 where the user logs into the low level network through the high level network. Depending on the implementation and / or user settings, a user can be automatically logged into the low-level network when explicitly logged into the high-level network by the user, or the user can be contacted related to the low-level network. Selecting the destination allows the user to be logged into the low level network.
In the example of FIG. 6, flow chart 600 proceeds to module 606 where high and low level contacts are displayed in an aggregated contact list. The user may not have a high-level contact list because the high-level system does not allow contact lists or because the user does not choose to keep any contact list high. Can be noted.
In the example of FIG. 6, the flowchart 600 proceeds to decision point 608 where it is determined whether to log out of the low level network. If it is determined to log out of the low-level network (608-Y), the flowchart 600 proceeds to module 610, where the associated low-level contacts are removed from the aggregated display, and the flowchart 600 is Loop back to 606. Related low level contacts are contacts in the contact list associated with the low level network from which logout was chosen. On the other hand, if it is determined not to log out of the low-level network (608-N), the flowchart 600 continues to decision point 612.
In the example of FIG. 6, the flowchart 600 proceeds to decision point 612 where it is determined whether to log into the low level network. It is possible to log into an implementation-specific number of low-level networks (or in the alternative, virtually any number of low-level networks). If it is determined to log into the low level network (612-Y), the flowchart 600 loops back to the module 604 described above. On the other hand, if it is determined not to log in to the lower level network (612-N), the flowchart 600 proceeds to decision point 614 where it is determined whether to log out of the higher level network. If not logging out of the high level network (614-N), the flowchart 600 loops back to the module 606 described above. Otherwise (614-Y), the flowchart 600 ends.
FIG. 7 depicts a computer system 700 suitable for implementing the techniques described above with reference to FIGS. The computer system 700 includes a computer 702, an input / output device 704, and a display device 706. The computer 702 includes a processor 708, a communication interface 710, a memory 712, a display controller 714, a nonvolatile storage device 716, and an input / output controller 718. Computer 702 can be connected to or include an input / output device 704 and a display device 706.
Computer 702 interfaces with external systems through communication interface 710, which may include a modem or network interface. Communication interface 710 may be considered part of computer system 700 or part of computer 702. Communication interface 710 may be an analog modem, ISDN modem, cable modem, token ring interface, satellite communication interface (eg, “Direct PC”), or other interface for connecting a computer system to another computer system. it can. Although conventional computers typically include some type of communication interface, it is possible to create a computer that does not include this, so that, in the most strict sense, the communication interface 710 is an optional interface. It will be a thing.
Processor 708 is for purposes of illustration and includes, but is not limited to, a conventional microprocessor, such as an Intel Pentium® microprocessor or a Motorola Power PC microprocessor. Can do. Although processor 708 is a critical component of all conventional computers, any applicable known or convenient processor can be used to implement the techniques described herein. Memory 712 is connected to processor 708 by bus 720. Memory 712, which can be referred to as "primary storage", can include dynamic random access memory (DRAM) and can further include static RAM (SRAM). Bus 720 connects processor 708 to memory 712, to non-volatile storage 716, to display controller 714, and to input / output controller 718.
Input / output device 704 may include a keyboard, disk drive, printer, scanner, and other input / output devices including a mouse or other pointing device. For convenience of explanation, it is assumed that at least one of the input / output devices is a block-based media device such as a DVD player. Display controller 714 can control the display on display device 706 in a known or convenient manner, for example, a cathode ray tube (CRT) or a liquid crystal display (LCD).
Display controller 714 and input / output controller 718 may include device drivers. A device driver is a specific type of computer software that is developed to allow interaction with a hardware device. In general, this constitutes an interface for communicating with the device, supplying commands to the device, and / or receiving data from the device through a bus or communication subsystem to which the hardware is connected, Configure the necessary interfaces to the OS and software applications.
The device driver may also include an OS specific hardware dependent computer program. A computer program allows other programs, typically an OS or application software package or computer program that runs under an OS kernel, to interact transparently with a hardware device, and usually requires any necessary Provides the essential interrupt handling required for asynchronous time-dependent hardware interface needs.
Non-volatile storage 716, which can be referred to as “secondary storage”, is often a magnetic hard disk, optical disk, or other form of storage for large amounts of data. A portion of this data is often written to memory 712 by a direct memory access process during execution of software in computer 702. Non-volatile storage 716 may include block-based media devices. The term “machine-readable medium” or “computer-readable medium” includes any known or convenient storage device that is accessible by the processor 608 and that includes a carrier wave that encodes a data signal.
Computer system 700 is one example of many possible computer systems having different architectures. For example, personal computers based on Intel microprocessors often have multiple buses, one of which is an I / O bus for peripheral circuits and a direct connection between processor 708 and memory 712 (often referred to as a memory bus). Can be. The buses are connected together through a bridge component that performs any necessary conversion for different bus protocols.
A network computer is another type of computer system that can be used in connection with the teachings provided herein. Network computers typically do not include a hard disk or other mass storage device, and executable programs are loaded from a network connection into memory 712 for execution by processor 708. The WebTV system that is known in the art is also considered to be a computer system, but it may lack some of the functions shown in FIG. 6, such as a particular input or output device. A typical computer system typically includes at least a processor, memory, and a bus connecting the memory to the processor.
The computer system 700 can be controlled by an operating system (OS). An OS is a software program that manages computer hardware and software resources-used in most but not all computer systems. In general, the OS controls and allocates memory, prioritizes system requests, controls input / output devices, facilitates networking, and performs basic tasks such as managing files. Specific examples of operating systems for personal computers include Microsoft Windows (registered trademark), Linux, and Mac OS (registered trademark). It is sometimes rather difficult to describe in detail between the OS and application software. Fortunately, any reasonable depiction should be sufficient, so that the depiction is not necessary to understand the techniques described herein.
The lowest layer of the OS can be its kernel. When the system boots or boots, the kernel is typically first layer software that is loaded into memory. The kernel provides access to various common core services to other systems and application programs.
As used herein, algorithmic descriptions and symbolic representations of operations on data bits in computer memory are believed to most effectively convey this technique to others skilled in the art. The algorithm is here and is generally understood to be a coherent sequence of actions leading to the desired result. Some operations require physical manipulation of physical quantities. Usually, but not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
However, it should be borne in mind that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels affixed to these quantities. It is. From the following description, unless otherwise stated, it will be understood throughout the specification that "process" or "calculation" or "calculation" or "determination" or "display" The discussion using terms such as "" or the like refers to computer system registers and data represented as physical (electronic) quantities in memory, computer system memory or registers or other such information storage devices. Refers to the operation and process of a computer that manipulates and converts to other data that is similarly represented as a physical quantity within a transmission or display device.
An apparatus for performing the techniques described herein can be specially configured for the required purpose, or it can be selectively activated by a computer program stored in the computer, Or a general purpose computer to be reconfigured can be provided. Such computer programs are for illustrative purposes and are not intended to be limiting, but include read only memory (ROM), RAM, EPROM, EEPROM, magnetic or optical card, floppy. Computer readable storage media such as any type of disc, including discs, optical discs, CD-ROMs, DVDs and magneto-optical discs, or any known or convenient type of media suitable for storing electronic instructions Can be stored within.
The algorithms and displays presented herein are not inherently related to any particular computer architecture. This technique can be either high-level (eg C / C ++) or low-level (eg assembler language) and translated (eg Perl), compiled (eg C / C ++), or bytecode ( For example, it can be implemented using any known or convenient programming language, whether just-in-time (JIT) compiled from Java). Regardless of architecture, any known or convenient computer may execute machine code that is compiled or otherwise assembled from any language into machine code that is compatible with the architecture of this computer. Must be possible.
The term “embodiment” as used herein is meant to be an embodiment that serves the purpose of illustration as being intended to be illustrative and not limiting.
It will be appreciated by persons skilled in the art that the specific examples and embodiments described above are illustrative and do not limit the scope of the invention. All substitutions, extensions, equivalents and improvements made obvious to those skilled in the art upon reading the specification and examining the drawings are intended to be included within the true spirit and scope of the invention. Is done. Accordingly, the following appended claims are intended to embrace all such alterations, substitutions and equivalents that fall within the true spirit and scope of this invention.
1 represents an example of a system for providing instant messages to clients via a web interface. 1 represents an example of a system for displaying content from an IM client at an alternate IM client. 1 represents an example of a system that can aggregate and display contacts. 2 illustrates an example of a screen shot representing a multi-network IM display. 2 illustrates an example of a screen shot representing a multi-network IM display. Fig. 4 represents a flow chart of an example of a method for aggregating and displaying a contact list. FIG. 6 illustrates a flow diagram of an example method for aggregated contact list display. FIG. 7 represents a computer system suitable for implementing the techniques described with reference to FIGS.
A network login engine connected to the network interface;
A network contact database embodied in one or more computer-readable media;
A web server connected to the network contact database;
A contact aggregation engine connected to the network login engine and the network contact database;
In operation, the contact aggregation engine controls the network login engine to log in to one or more networks or facilitate login, and the one or more networks in the network contact database. Updating the contact information associated with the web server, storing the aggregated contact list in a computer readable medium at the web server, and outputting the aggregated contact list including the contact information on a display device A system characterized by.
Further comprising a high level contact database embodied in a computer readable medium, wherein in operation, contacts from the high level contact database are included in the aggregated contact list. The system of claim 1.
The network login engine includes a plurality of network login engines that log in to each of a plurality of lower level networks or that contain sufficient information to facilitate login. The system according to 1.
A user profile database embodied in a computer readable medium and connected to the network login engine;
In operation, the user profile database includes user-specific information that the network login engine uses to log in to or facilitate the one or more networks. Item 1. The system according to Item 1.
The system of claim 1, further comprising the display device.
The system of claim 1, further comprising the one or more networks.
Connecting to a high level network;
Connecting to one or more low-level networks;
Maintaining a contact list associated with the one or more low-level networks;
Logging into the high-level network;
Displaying contacts from the one or more low-level networks in an aggregated contact list.
The method of claim 7, further comprising logging into the one or more low level networks.
Maintaining a contact list associated with the high-level network;
8. The method of claim 7, further comprising: displaying contacts from the high level network in the aggregated contact list.
8. The method of claim 7, further comprising connecting to an additional low level network, wherein the aggregated contact list does not include the additional low level network contacts.
Logging into the one or more low-level networks and additional low-level networks;
Displaying contacts from the one or more low-level networks and the additional low-level networks in the aggregated contact list;
8. The method of claim 7, further comprising logging out of the additional low level network.
The method of claim 7, further comprising logging out of the high level network.
Logging into the low-level network;
Displaying an aggregated contact list that includes contacts associated with the low-level network through the high-level network.
The method of claim 13, further comprising: automatically logging into the lower level network in response to logging into the higher level network.
The method of claim 13, further comprising facilitating an explicit login to the low level network.
The step of logging into the low level network is responsive to a user selecting a contact for display in the aggregated contact list associated with the low level network. Item 14. The method according to Item 13.
The low level network is a first low level network;
Logging into a second low level network through the high level network;
14. The method of claim 13, further comprising displaying the aggregated contact list including contacts associated with the second low level network.
Logging out of the second low-level network;
18. The method of claim 17, further comprising: removing low level contacts associated with the second low level network from the aggregated contact list.
Logging out of the first low-level network;
18. The method of claim 17, further comprising: removing low level contacts associated with the first low level network from the aggregated contact list.
The method of claim 13, further comprising displaying the aggregated contact list including contacts associated with the high level network.
JP2008549070A 2005-12-09 2006-12-11 Contact list display system and method Revoked JP2009521064A (en)
JP2009521064A true JP2009521064A (en) 2009-05-28
JP2008549070A Revoked JP2009521064A (en) 2005-12-09 2006-12-11 Contact list display system and method
JP2001503893A (en) * 1996-11-08 2001-03-21 アメリカ、オンライン、インコーポレーテッド System that integrates the community of online services with external service
JP2004199644A (en) * 2002-12-19 2004-07-15 Microsoft Corp Contact address user interface
WO2005045591A2 (en) * 2003-10-23 2005-05-19 Microsoft Corporation Contact management
JP2007509432A (en) * 2003-10-23 2007-04-12 マイクロソフト コーポレーション Contact management
2011-09-29 AA91 Notification of revocation by ex officio