WO2001037142A1 - Systeme et methode permettant a des communautes d'utilisateurs de reseau informatique se chevauchant de communiquer en contexte - Google Patents

Systeme et methode permettant a des communautes d'utilisateurs de reseau informatique se chevauchant de communiquer en contexte Download PDF

Info

Publication number
WO2001037142A1
WO2001037142A1 PCT/US2000/031758 US0031758W WO0137142A1 WO 2001037142 A1 WO2001037142 A1 WO 2001037142A1 US 0031758 W US0031758 W US 0031758W WO 0137142 A1 WO0137142 A1 WO 0137142A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
network
user
server
community
Prior art date
Application number
PCT/US2000/031758
Other languages
English (en)
Inventor
Claus Spacil
Christian Wiener
Peter Harold Charles Madams
Pavel Shabalin
Original Assignee
Zadu, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zadu, Inc. filed Critical Zadu, Inc.
Priority to AU16607/01A priority Critical patent/AU1660701A/en
Publication of WO2001037142A1 publication Critical patent/WO2001037142A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership

Definitions

  • the invention relates in general to computer network based communities in which groups of users of computer network access devices communicate over a network, and more particularly, to management of user participation in such network communities.
  • Network addresses specify the location of information objects on a network.
  • An information object for example, may be a file or any other unit of information accessible over a network. Each information object has its own network address.
  • the user of a network access device wishes to access an information object over a network, the user must specify the network address of the desired information object. For instance, a user may browse the Internet by selecting interface objects that appear on a series of web pages that the user visits.
  • An interface object for example, may be text, graphic, or perhaps even an animated region that appears on a web page. By selecting an interface object that has a network address associated with it, such as a hypertext link for instance, the user can access an information object specified by the associated network address.
  • Network addresses typically are partitioned into different components that specify different parts of the network address coordinates of an associated information object.
  • An Internet network address may be specified with a uniform resource locator (URL).
  • a domain name portion of a URL specifies the network domain in which an information object is located on a network. For instance, the hypothetical domain name,
  • www.LNP.com has components that specify the domain name of companies in the USA (com), a hypothetical company (LNP) and a computer (www).
  • LNP hypothetical company
  • www a computer
  • the aforementioned domain name specifies the world wide web server computer of the company designated as LNP which is located in the USA.
  • IP internet protocol
  • IP addresses there are a one-to-one correspondence between domain names and IP addresses.
  • a particularly busy (i.e., heavily accessed) domain that may be served by multiple computers in order to manage the load of access requests.
  • Another example is a virtual host, one computer that masquerades as several different domains.
  • Chat services allow two or more users to exchange messages in a live interaction.
  • Typical chat uses only text messages, each user types in their message and the chat system broadcasts it to all of the other users in real time, so that everyone gets to share in the on-line conversation.
  • Chat systems can handle more complex objects than simple text messages, some support multi-point file transfer others add "joint web browsing" where one user inputs a URL which is broadcast to all other users and handed automatically to their web browsers.
  • IM systems allow two users of computers on a network to exchange messages in real time.
  • messages are simple text one user types in a messages and sends it "instantly" to the other user who can easily reply to the message in a similar way.
  • Some systems support sending more complex objects such as images, documents or other files and some add streaming protocols that support live voice or video connection.
  • Most IM systems maintain a "buddy list", a list of users to contact. Some present the on-line status of such buddies, that is, when a user is on-line each IM client makes this known to the user's buddies. It is important to know if a user is on-line.
  • IM is akin to a chat system with only two users. Some systems actually merge the two into one program.
  • the context may be a network accessible document that several geographically dispersed users may simultaneously access to discuss or to edit.
  • the context may be a web page that users may annotate with notes that can be picked up and read later by other users.
  • RETRIEVAL SYSTEM issued to Shapiro et al., provide data retrieval systems with a co- presence mechanism.
  • the co-presence mechanism permits two or more users who retrieve the same information object at the same time to become aware of each other and consequently to communicate with each other in real time.
  • the data retrieval system enables a user who accesses a certain document to discuss it in real time, with others who might happen to access the document at the same time.
  • "Co- presence" according to the Shapiro patent, is the capability to enable two or more users to be "present” at a "virtual place.” ('874 Patent, column 1, lines 56-65).
  • the information access device when an information access device requests an information object from a data repository, the information access device also informs a co-presence server that it has accessed the specific information object.
  • the co-presence server then adds the information access device to a virtual place associated with the accessed information object.
  • the information access device associates virtual places with accessed information objects.
  • the co-presence server can maintain a virtual place for information objects accessed by the information access device.
  • the co- presence server also can create a virtual place on demand when a user first becomes present at an information object, and can remove the virtual place when no one is present.
  • a virtual place of the general type disclosed in the Shapiro and Shapiro et al. patents therefore, makes possible the changing of context for network communications with changing access to information objects.
  • the context for communication at any given time can be a mutually accessed information object.
  • Companies such as Hypernix Technologies Ltd., having places of business in Tel Aviv, Israel and New York, New York with its product, Gooey, and such as NovaWiz, having places of business in New York, and Hertzilya, Israel, with its product, Odigo for example, offer Internet users co-present at a mutually accessed information object the opportunity to engage in chat in the context of the object.
  • patents exist which describe systems which can overlay data on top of information objects without altering the information object in any way.
  • a user may wish to choose the set of users with whom he or she wishes to communicate depending upon the accessed information object that serves as the context of the communication.
  • a user also may wish to communicate with one set of users in the context of an accessed information object at one time and may wish to communicate with a different set of users in the context of the same object at the same or at a different time.
  • a user may wish to participate in different communities of users in the context of different information objects, or the user may wish to be able to choose which community of users to participate with in the context of any given information object.
  • a user may wish to communicate with one community of users when searching for the Internet information about automobiles for sale.
  • the information objects providing context for communications are likely to be automobile-related web pages. The same user may wish to participate with a different community of users when visiting an online site dedicated to restaurants and entertainment.
  • the information objects providing context for communications probably will include entertainment-related web pages.
  • a user might want to discuss investments with one community of users and may want to discuss sports with a different community of users.
  • the information objects providing context for communications are likely to include investment-related web pages.
  • different providers of communication services may wish to target those services to different communities of network users. For example, one service provider may wish to attract users seeking financial services. Another service provider may wish to focus on users who want travel services. Yet another service provider may wish to foster cooperation among users interested in volunteering in various public interest projects. The participants in these different communities have different interests. Certain service providers may wish to promote the formation of communities of users around their communication services by catering to the interests of participants in such communities.
  • annotations such as notes can be troublesome to use.
  • web discussion forums such as USENET
  • an information device user may post a note that poses a question.
  • a user returns to the web site that hosts the discussion to find out whether another user has posted a note that replies to the question.
  • the user typically takes the trouble to actually access the discussion forum web page again to learn whether or not a question has been answered.
  • in-context communications of the general type discussed above, the problem of checking for answers to different notes posted in the different contexts of numerous different information objects can become much more severe since the notes may be scattered over many network address locations in a network For instance, a device user may leave different notes on different web pages of the Internet.
  • Figures 1A-1C are illustrative functional schematic diagrams showing the general architecture of a presently preferred embodiment of the invention.
  • Figure 2 is an illustrative functional schematic of the general architecture of a presently preferred embodiment diagram of the invention, which includes a service area directory structure and a community server directory structure.
  • Figures 3A-3K are illustrative functional schematic diagrams showing multiple information access devices accessing multiple combinations of information objects and community servers in accordance with a presently preferred embodiment of the invention.
  • Figure 4 is an illustrative drawing of an example service area directory structure in accordance with a presently preferred embodiment of the invention.
  • Figure 5 is an illustrative drawing of a server area directory structure which includes a backup service area directory structure and multiple cache service area directory structures in accordance with a presently preferred embodiment of the invention.
  • Figure 6 is an illustrative drawing of a process of determining whether a network address (or area) of an accessed information objects matches an address (or area) entry in a community server director structure in accordance with a presently preferred embodiment of the invention.
  • an information access device may comprise a personal computer, cellular telephone, PDA, set top box, WebTV device, handheld wireless inventory device, server computer or other information appliance.
  • the information object may encompass almost any form that can be transmitted over the network.
  • an information object may be a file, web page, a video clip or a graphic.
  • a file is a general type of information object that can encompass many specific types and formats of information.
  • One characteristic of a file is that it has a network address where it can be accessed.
  • a file might be accessed 'all at once' (as with a web page, or word processing document, or image) or it might be accessed as a stream (as with audio or video streams). In either case the file is accessed using a network address. Even a telephone conference bridge or a chat session, might be considered to have a network address, 1 -800-555-1234 as hypothetical example.
  • the network might include one or more local area networks (LAN), a wide area network (WAN) which handles data or telephone communications traffic or both, the Internet, a fixed network or a wireless network.
  • Figures 1A-1C illustrate the general architecture of presently preferred embodiment of the invention, the general architecture is best understood through an example of the manner in which it operates.
  • Figure 1A provides an example of multiple information access devices seeking the same context by accessing the same information object.
  • Figure IB provides an example of the same multiple information access devices determining which community servers provide service in context of the accessed information object.
  • Figure IC provides an example each of the multiple information access devices selecting from among the community servers they are registered to use in the context of the accessed information access device. Referring to the illustrative drawing of Figure 1A, there are shown multiple information access devices, 602, 604, 606, 608.
  • each of the multiple information access devices may independently request access to an information object 610 via an information object server, which may comprise a computer or other information access device (not shown), over a network, such as the Internet, for example, represented as a cloud 612 of routing devices and networked computers. It will be appreciated that the access requests may occur in close temporal proximity or with long time intervals between them.
  • the respective access requests issued by the respective multiple information access devices are transmitted through the network 612 to an information object 610 capable of providing the requested access.
  • one or more information servers receive the request to access the information object.
  • An information server may respond to access requests, for instance, by returning a respective copy (or it may start a data stream flowing to the access device) of the requested information object to each information access device that independently transmitted a request received by such server.
  • each of the multiple information access devices 602, 604, 606, and 608 independently requests from a service area directory server 614 information about services that may be provided in the context of the requested information object.
  • Arrows 611, 613, 615 and 619 indicate requests for service area information which are transmitted through the network 612 to the service area directory server 614.
  • the service requests may be closely spaced or widely separated in time.
  • the service area directory server 614 provides access to information concerning one or more services that may be associated with the accessed information object 610.
  • the service area directory server 614 responds to the respective requests for service information by providing via the network 612 respective service information indicated by arrows 611, 613, 615 and 619 to each respective requesting information access device.
  • the provided service information includes network addresses of one or more community servers, labeled 1, 6 and 15, shown in Figure IC that provide services in the context of the accessed information object.
  • information access devices 602, 604, 606 and 608 include browser software and companion software.
  • the browser software accesses information objects such as information object 610 via information object servers (not shown).
  • the companion software monitors the browser software to detect the network address of the information object being accessed.
  • the companion software then commimicates with the service area directory 614 and community servers of the present invention.
  • a service area directory server may have information concerning one or more community servers that provide services in the context of a given accessed information object. As explained below, some community servers may provide services in the context of some but not all information objects.
  • the service area directory server 614 provides an illustrative directory 620 that provides network addresses of a set of twenty different community servers that can provide service in the context of the particular information object accessed via requests 603, 605, 607 and 609. For simplicity sake, these twenty network addresses are identified by the numerals 1 - 20.
  • Each of the information access devices 602, 604, 606 and 608 is configured to partake in services provided by a different set of community servers. More specifically, in a preferred embodiment, information each access respective device 602, 604, 606 and 608 maintains respective registration information 622, 624, 626, and 628 indicating the community servers it is registered to use.
  • Information access device 602 is registered to partake in services provided by a set of community servers at network addresses 1, 6 or 20.
  • Information access device 604 is registered to partake in services provided by community servers 2, 4, 6, 10 or 20.
  • Information access device 606 is registered to partake in services provided by a set of community servers 3, 5, 6, or 15.
  • Information access device 608 is registered to partake in services provided by a set of community severs 7, 9, 11, 12, 15, 17, 18, 19 or 20.
  • arrow 630 indicates that information access device 602 forms a network connection with the community server labeled with reference numeral 1 at network address 1.
  • Arrow 632 indicates that information access device 604 forms a network connection with the community server labeled with reference numeral 6 at network address 6.
  • Arrows 634 and 636 indicate that information access device 606 forms a network connection with both the community server labeled 6 at network address 6 and with the community server labeled 15 at network address 15.
  • Arrow 638 indicates that information access device 608 forms a network connection with the community server labeled 15 at network address 15.
  • Only information access device 602 partakes in services provided by community server 1 in the context of the accessed information object 610.
  • Both information access devices 604 and 606 partake in services provided by community server 6 in the context of the same accessed information object 610.
  • Both information access devices 606 and 608 partake in services provided by community server 15 in the context of the same accessed information object 610.
  • Each information access device in this example may partake in services from among any one or more of the community servers in the set of community servers for which it is (or its user) is registered.
  • each of the illustrated information access devices 602, 604, 606 and 608 is registered or configured to partake in the services of the community server at network address 20.
  • none of the devices has made a network connection to the server at network address 20, and therefore none of them partakes in those services.
  • information access device 606 is registered to partake in services provided by any of a set of community servers at network addresses 3, 5, 6, or 15.
  • Device 606 has established network connections with community servers at network addresses 6 and 15, and therefore, partakes only in the community services provided by those two community servers.
  • Figure 2 provides an illustrative example of the architecture of a service area directory structure associating an information object network address (or address range) with multiple community servers and a community server directory structure associating the information object network address with particular communications in accordance with a present embodiment of the invention.
  • the service area directory structure is encoded in computer accessible storage media in a service area directory server.
  • the community server directory server is encoded in computer accessible storage media in the community server.
  • the architecture of the service area directory structure and the community server directory structure are illustrated through their operation in connection with user device access of a representative information object. For example, information access device 616 forms a network connection 618 across network 612 with server device 620 in order to access an information object at network address NA-x which is served by server device 618.
  • the information access device 616 forms a network connection 622 across the network 612 with service area directory server 624 located at network address NA-SAD.
  • the information access device 616 requests information about which, if any, community servers provide service in the context of the accessed information object at network address NA-x.
  • the service area directory server 624 provides a directory structure 626 which associates respective network addresses patterns, NAP-1 through NAP-51 in this illustrative example, with respective community servers that provide services in the context of network addresses NA-x.
  • the service area directory server 624 reports to device 616 the network addresses of the community servers that provide services in the context of network address NA-x. In this example, there are fifty-one such community server network addresses.
  • the information access device 616 determines which if any of the community servers identified as providing service in the context of the accessed information object the device 616 is registered to use.
  • the device 616 is registered to use the community server labeled 3117 at network address NA-3117.
  • the information access device 616 forms a network connection 628 with community server 3117 located at network address NA-3117.
  • the device 616 notifies the community server 3117 of the network address NA-x of the accessed information object.
  • the community server 3117 provides a directory structure 630 that associates respective network addresses (or network address areas) with respective service objects.
  • network address NA-a is associated with service object SO-a
  • NA- b is associated with SO-b
  • NA-x is associated with SO-x
  • NA-y is associated with
  • the community server directory structure 630 respectively associates service objects SO-a through SO-y with respective detailed information Info-a through Info-y.
  • Respective service objects provide brief information concerning communications in context of the associated objects. For instance, SO-x might provide location, author and time stamp of notes attached to the information object (e.g., a web page) at network address NA-x. Respective detailed information provides additional details about the communications identified by an associated service object. For example, the information of Info-x might provide the actual text of notes identified by the service object SO-x as being attached to the information object at network address NA-x.
  • a service object might identify users who are currently "present" at a given network address, and the detailed information corresponding to such service object might provide an email address or an IP address of identified users.
  • the community server 3117 returns to the user information access device 616 service object information associated with the information object accessed at network address NA-x.
  • the information access device 616 presents the service object information to the user.
  • the service object SO-x information might indicate, for example, who left notes on the information object at network address NA-x and when such notes were left.
  • the device user wants to read a particular note, for example, then the device 616 uses the network connection 628, which may be persistent or transitory, to access the detailed information Info-x pertaining to the particular note.
  • the community server 3117 provides an instant message service, for instance, the user can use the service object SO-x information to observe who is currently available to send and receive instant messages in the context of the accessed object at network address NA-x. If the user wishes to send an instant message to another user who is present in the context of the information object at NA-x, the device 616 uses the network connection 628, which may be persistent or transitory, to glean the detailed information Info-x concerning the email or IP address or other contact information for the desired other user.
  • the community server index structure comprises a table which includes a plurality of entries.
  • the index structure could be implemented in whole or in part as a tree structure.
  • Each entry includes a network address field, which serves as a match target, and a result field, which includes a service object.
  • a community server provides only a single service, though a service provider
  • a notes service object in a current embodiment includes a reference to a collection of notes anchors.
  • a synchronous communications service object in a current embodiment includes a list of userlDs currently present at the accessed information object, i.e. the user presence information.
  • a community server transmits the contents of these lists (anchors, presence), which constitutes service information, to a requesting information accesses device. The device user can select an anchor or select another user's ID from the presence list and request the community service provider to actually provide a desired service, i.e. a notes, instant messaging, chat, keyword, or conference.
  • the index structure also could be implemented using a relational database management system.
  • the illustrative community server directory structure 630 of Figure 2 is explained in the context of two different servers that can be implemented using the same basic community server directory structure, a notes server and a an instant message server.
  • multiple community servers might operate on different network addresses served by a single physical server computer.
  • multiple servers may in fact be implemented on multiple different physical server computers.
  • multiple servers may be implemented as sub-systems listening on multiple different ports of a server system. Since the service area directory server maintains associations among network addresses of accessed information objects and community servers that serve such network address and corresponding information objects, the information access devices themselves need not maintain the associations among information objects and community servers.
  • the service access directory server manifests this variety by maintaining one-to-one and one-to-many associations between information objects and community servers.
  • a one-to-many relationship signifies that multiple services are available in the context of an accessed information object.
  • a user of an information access device may choose from among different services when the user accesses different information objects.
  • the same user of an information device may choose to use a single service as the user accesses different information objects. This is significant since any given service may be more appropriate in the context of one information object than in the context of another information object.
  • the system of the present invention therefore, permits the user of an information access device to select the service the user believes to best suited to his or her needs in the context of any given information object.
  • the services provided by the different community servers may be quite similar in many respects and quite different in others.
  • different users may have different preferences for different services.
  • the community servers may be under the supervision and control of different providers such as corporate, government or educational.
  • a user of an information access device may choose a service or services that he or she wishes to partake in the context of a given information object at a given time. Consequently service providers may have to compete for user participation in their respective services. This competition would represent a benefit to users.
  • service providers may benefit by focusing their services to meet the particular needs of targeted users. By targeting services appropriately, a provider could attract users it desires to its services.
  • a service provider has an opportunity to continue to attract a user participation in its service even as users access one information object after another, as they might do when they surf the web for example.
  • a user can have the opportunity to readily switch from one service to another as the user surfs the web, for instance, by changing community server connections.
  • the services provided by community servers in a presently preferred embodiment of the invention include communication services such as notes, instant messaging, chat, conferencing, email, or even auctions, for example.
  • notes also have been referred to as "annotations" and can take many forms.
  • notes refer to data which is associated with an information object or portion of an information object and which may be created and accessed by users of different information access devices who access the information object.
  • a note can be just plain text.
  • a note might include no text and might have a document or a web page or a voicemail or videomail message attached to it.
  • the notes are not located at the information object. Rather, they can be overlayed onto the information object by a server in another location. In this way, the notes do not alter the information object in any way.
  • an information access device connects with a community server in order to partake in the services provided by the server in the context of an information object.
  • an information access device informs the community server of the network address of the information object for which context related services are sought.
  • the information access device also will deliver registration identifying information which, in a present implementation, can include a userlD and other information discussed in detail below.
  • the community server searches its directly structure to determine whether there is an entry for the network address (or network address range) provided by the device.
  • the community server searches for a match to the network address provided by the information access device. If no matching entries exist, then a null response is returned.
  • the community server also will check the userlD against a list of registered users, if this community server service requires registration before a user may enjoy access to notes. Some community servers may require registration to read a note; others may not. Other community servers might require registration only to post notes but not to read notes, for instance.
  • the community server In the case of a "presence" community server, such as an instant messaging service, the community server similarly searches its directory structure for a network address match. If there is no match, then no other user is "present” for this community server for the network address of the accessed information object. The community server creates a new entry in the directory structure to indicate "presence” at the network address of the accessed information object. The incoming userlD is added to the "presence" service object list. For "presence”, a new entry is created immediately so that other users can learn of the arrival of a new user in the context of the accessed information object. For notes, a new entry is created only when, and if, the companion software of the information access device comes back later with a new note.
  • a community server may transmit to an information access device service information in the form of one or more service objects.
  • a service object may comprise a list of anchors, a list of userlDs, or other information which is used to implement a service such as a keyword or videoconferencing service, for example.
  • user identification information in the list can easily be provided in sufficient detail so as to enable further communication with other users.
  • an IP address or email address can be provided.
  • certain community servers may also return a reference to an actual communications device that is implementing service in context of the particular information object, i.e. the address or other access information for a chat room or a video conference for example.
  • community servers provide in-context communications among members of a community. Communication might be synchronous (IM, Chat, conference) or asynchronous (Offline-IM, email, notes). Alternatively, however, the community server itself may not actually provide the commumcation. The community server might instead merely provide interfaces to external communication systems in the context of one or more information objects.
  • user interface software operative on an information access device causes an icon representing another person to be displayed for the user who can select the icon and choose from a menu of communication functions.
  • this menu is extensible. Third party tools can be readily added the menu easily.
  • the server in response to an information access device request for services issued over a network connection to a community server, the server provides: (1) positive or negative response about a network address match; (2) if positive, a service object which may include a list of anchors and/or a list of userlDs; (3) optionally, an address of a (perhaps third party) commumcation process (for chat, conference, etc).
  • a service object which may include a list of anchors and/or a list of userlDs
  • an address of a (perhaps third party) commumcation process for chat, conference, etc.
  • the access device upon receiving a list of anchors, for example, the access device will "annotate" the (user interface) presentation of the information object
  • the information access device Upon receiving a list of userlDs of users who currently are "present" at an accessed information object, the information access device makes available this presence information to the user. Of course, the user may have to prove he or she is registered before the server will grant access to these services.
  • An information access device user may select from among the anchors or from among users indicated to be present. If a user selects an anchor, the access device will send information that identifies the selected anchor to the community server. The actual note contents corresponding to the selected anchor will be returned by the community server to the access device. The note contents then can be displayed by the access device for viewing by the user. If a note involves video or audio, these also will be made accessible to the user. Alternatively, the note might provide a link to another web page, or might be used to access some other information object. If a note includes a dynamic keyword link, then the user access device connects directly to the information object of the dynamic link.
  • a user wishes to create a note he or she might select some part of a display of an information object which will serve as an anchor.
  • the user specifies the content of the "note”. This might simply be some text, or perhaps some structured text such as a word processing document or a web page, or it might be a more complex object such as an image, a voicemail or any other information object.
  • the information access device transmits the new anchor information and the note contents to the community server together with the accessed information object's network address and a userlD.
  • the community server stores the new anchor and note and associates them in its index structure to the network address of the accessed information object. In other words, the note is stored in the context of the accessed information object.
  • a given information access device may be able to send instant messages to that user. This represents a form of synchronous (real-time) communication.
  • the given device may form a direct connection to that other user's access device or sends the message through a server to that user (which is likely the case with firewalls and situations where a direct user-to-user connection is not desired).
  • the user of the given information access device may select another user from among a list of users indicated to be "present” in a certain context.
  • the given device opens a dialog box in which the user can input the text of a message (together with any "attachments", for instance documents, files, images, etc.)
  • a unique user ID is assigned to each device user.
  • This unique user ID is a form of user information.
  • the unique userlD assigned to each user is the only use information required for the system to operate.
  • any service component can access the user's home server.
  • a home server is server with which a user of the system of the present invention registers and logs into to access the system of the present invention.
  • the home server includes information about the user other than the user's userlD.
  • IP address of a user's information access device To communicate over the Internet, the IP address of the target is required. IP addresses are often assigned dynamically so that the IP address for a user might change from day to day or even session to session. (A session is defined as the time from when the user logs-in to the network until they log-out). Internet communication software such as voice-chat or data-conference tools need only the IP address of the target user in order to operate.
  • the user information data can contain the IP address since it is small amount of data the overhead of always sending it is low. With this available, it is very simple to start the third party software, passing the IP address as a parameter.
  • IP addresses might be withheld from the user information data for reasons of privacy. In which case, server facilitated connections can be used.
  • Dynamic Keyword Links Another type of service available to users through the system of the present invention includes Dynamic Keyword Links.
  • Hyperlinks are common on the World Wide Web and other hypertext systems where a user selectable connection is displayed linking an interface object (for example a word, several words, images, or other objects) to some other object.
  • interface object for example a word, several words, images, or other objects
  • This simple yet powerful technique allows a person to create cross-references all over an entire network, including all and any of the World Wide Web in conjunction with an internal private network perhaps, which has great value for commerce, education, entertainment and many other purposes.
  • Dynamic Keyword Links appears as hyperlinks to the user yet they do not require anyone to alter the interface object itself.
  • This simple yet powerful techmque allows a provider of a community server to automatically create cross-references from anywhere on an entire network, including from interface objects that the provider itself does not have access, to some information object preferably related to the community service itself. Examples include, commerce, advertising, auctions, reference and other applications yet to be discovered.
  • the community service providers provide a set of keywords and the corresponding network address (for example a URL) that will be used as the target of the link. Keywords are stored as anchors in a form similar to that used for annotations. In addition, for each keyword, the network address pattern defining the area of the network where the keywords will apply is given.
  • Dynamic Keyword Links are created and managed at the community server by a service provider.
  • a community server directly includes entries for each network area where a given set of keywords will apply, that is, a network address pattern is added to the directory (or index). Typical patterns might be "http://[*]” to map the entire http: web, or "http.//[*]. xyzcorp.com” to map the entire web site at a corporation. Keywords are defined and stored as anchors and stored in the service object together with the target address (compare this with notes where the anchors are stored in the service object together with a reference to the annotation)
  • a check with the service area directory will show whether that address is being served by this community server. If it is, a connection is made to the server and the network address is matched with the network address patterns in the community server index. If the network address matches one or more of the patterns that have been created for keyword, the corresponding service object containing the keyword anchors and target addresses, is returned to the user.
  • the user's information access device searches the information object for occurrences of the keyword anchors and automatically marks them as hyperlinks. If the user selects the hyperlink, the anchor contents are used to access the target address Typical network address patterns for keywords cover the entire network and would be accessed every time that the community server is references, caching techniques are used to reduce the overhead of such accesses.
  • searching the accessed information object for occurrences of the keyword anchors use the same mechanism as the overlaid annotations.
  • annotations it is important to be able to find where the annotation was anchored even when the accessed object has been altered somewhat and the anchor's location has moved.
  • the anchored location may be removed altogether in which case the annotations are "orphaned" and can be ignored.
  • keywords they may not exist on the object either and they will be ignored. Examples of Information Access Device Users Joining and Departing Communities and Changing Information Object Contexts
  • FIGS 3A through 3K illustrate several examples in which device users form network connections with community servers to join communities and access information objects to communicate with other community members in the context of an information object.
  • information access device 650 first accesses information object 652. Second, information access device 650 provides the network address NA-x to service area directory server 654. As illustrated by index 656 of service area directory server 654, in the example shown in Figure 3A, there are nine community servers which service area directory 654 associates with information object 610 having illustrative network addresses 52, 53, 54, 58, 59, 60, 64, 65, and 66. In Figure 100.5A, user access device 650 accesses the community server at address 59.
  • a second information access device 651 accesses information object 610.
  • Information access device 651 queries service area directory server 654 for addresses of community servers which provide services in the context of information object 610. Then, along with information access device 651, information access device accesses the community server having address 59.
  • the users of devices 650 and 651 are members of the community of users registered to use the services of server 59. They can communicate in the context of information object 610 at network address NA-x.
  • the connection between information access device 650 and information object 610 may or may not persist depending upon the nature of information object 610. If, for example, information object 610 is a single graphic, the connection may be severed. However, if information object 610 is some type of streaming connection, such as a video or audio stream, the connection will persist.
  • Figure 3C shows the situation of Figure 3B and further illustrates an index 59a of the community server at network address 59.
  • index 59a includes a plurality of entries, each of which associates a network address with a service object.
  • network addresses NA-A, NA-B, NA-C, NA-x and NA-y are associated with service objects SO-A59, SO-B59, SO-C59, SO-X59 and SO-Y59, respectively.
  • these service objects could, for example, be chat services, notes services, presence services, videoconferencing services, or any other synchronous or asynchronous services.
  • both information access device 650 and 651 can simultaneously partake in the service of service object SO-X59 provided in the context of information object 610 at network address NA-x.
  • the users of information access device 650 and 651 can each be aware that the other user is accessing information object 610 and, depending on the nature of service object SO- X59, can preferably communicate with one another.
  • users of information access devices 650 and 651 who may each have an interest in common with the business, government, educational or other group, could be made aware of each other and communicate with one another.
  • community server directory 59a it is possible that a single community server provide services in the context of different information objects; specifically, information objects at network addresses NA-A through NA-y. In this way, a sponsor managing a community server can offer services in the context of as many different information objects (e.g., many different web pages).
  • information access device 651 forms a network connection 806 with the community server at address 54. In the manner described above with respect to information access device 650 in Figure 3B, this connection is made after information access device 651 has queried service area directory 654 for the addresses of community servers offering services in the context of information object 610. Additionally, as represented by arrow 808, information access device 651 continues to access information object 610. Thus, user information access devices 650 and 651 both access information object 610, but they no longer share in context community services, since they have accessed different community servers.
  • a sponsor offering services from community access server at address 59 can do so without having the user of an information access device using the sponsor's services aware of or distracted by services offered by a second sponsor, say one offering services on community server at address 54. Additionally, by providing additional community servers, as many sponsors as would like may offer services associated with information object 610.
  • information access device 652 accesses information object 611 which is located at network address NA-y on a server device (not shown).
  • Device 652 accesses service area directory 654 to determine which community servers offer services in the context of information object 611.
  • service area directory 614 includes index 657.
  • index 657 shows that there are six community servers providing services in the context of information object 611 including those at addresses 54, 55, 60, 61, 66, and 67.
  • This information is returned to information access device 652 which, in the example shown, accesses the community server at address 60. Because the user of each information access device is using a service provided by a different community server, the users will preferably remain unaware of each others presence on the web.
  • devices 650 and 651 access the same information object but access different community servers, and device 652 accesses a different information objected and yet another community server.
  • Figure 3F illustrates the system shown in Figure 3E after information access device has accessed the community server at address 60.
  • information access device 652 preferably no longer remains in contact with service area directory 654.
  • the respective connections between information access devices 650, 651 and 652 and information objects 610 and 611 may either be cut or persist, depending upon the nature of information objects 610 and 611.
  • information access device 651 cuts off its access to information object 610 and accesses information object 611.
  • Information access device 651 queries service area directory 654 for addresses of community servers which provide services in the context of information object 611 having network address NA-y.
  • Service area directory 654 returns the list of community server addresses shown in index 659. Information access device can then select from the community servers with which it is registered. As shown, information access device selects community server at address 54. As shown in Figure 3 A in index 656, the community server at address 54 also provides services in the context of information object 610 having network address NA-x. Thus, in Figure 3G, devices 651, and 652 access the same information object at network address NA-y, but partake in different server communities, 54 and 60. Meanwhile, device 650 accesses the information object at network address NA-x and partakes in community server 59 services.
  • Figure 3H illustrates the status after information access device 651 has accessed the community server at address 54. Specifically, information access device 651 need no longer remain in contact with service area directory 654.
  • Figure 31 illustrates the information access device 650 has severed its connection with the community server at address 59 and established a connection with community server at address 60. It is to be understood that it was not necessary for information access device 650 to query service area directory 654 before accessing the community server at address 60. This is because, as explained with respect to Figure 3A, all of the addresses of the community servers providing service in the context of information object 610 at network address NA-x were provided to information access device 650 at the time information access device 650 first queried service area directory 654.
  • information access device 650 caches this information so that it may later use this information to change services.
  • a first services provider manages the community server at address 59
  • a second services provider manages the community server at address 60
  • the user of information access device 650 can switch from the services provided by the first service provider to the service provided by the second service provider without having to access service area directory 654 again.
  • both devices 650 and 652 partake in community server 60, but in the context of different information objects.
  • Device 650 has accessed the object 610 at NA-x
  • device 652 has accessed object 611 at NA-y.
  • Figure 31 also shows community directory 60a in which service object SO-x60, associated with information object 610 at NA-x, and service object SO-y60 is associated with information object 611 at NA-y.
  • Arrow 809 indicates a network connection on which device SO-x60 information.
  • 811 indicates a network connection on which device 652 receives SO-y60 information.
  • information access device 650 cuts off its connection with information object 610 and accesses information object 611. Assuming that information access device has not previously accessed information object 611, or at least not recently accessed information object 611, information access device preferably queries service area directory
  • FIG. 654 for a list of the addresses of community servers providing services in the context of information object 611.
  • Service area directory then returns the list shown in index 659 and information access device 650 selects the community server at address 60 and establishes a connection therewith.
  • Figure 3K shows that after information access device 650 connects with the community server at address 60, both information access device 650 and information access device 652 remain connected (either a persistent or transitory connection) with the community server at address 60. Further, both information access devices 650 and 652 are accessing information object 611 having network address NA-y. And, as indicated by arrows 813 and 814, both information access devices 650 and 652 access service object SO-y60 associated with the information object 611 having network address NA-y.
  • the respective users of information access devices 650 and 652 can share in the services of community server 60 in the context of information object 611.
  • the user of device 651 partakes in the services of community server 54 in the context of information object 611.
  • Direct communication from device to device is synchronous.
  • Server-based communications between one or more devices can occur synchronously.
  • Server based communication has several benefits over direct client-client communication although there may be some additional overhead incurred when using a server. Such overhead usually is small and the benefits often justify the server based communication.
  • a first benefit is that the first connection during communications may be made from client device to server and not server to client device. This is valuable when used with firewalls. Firewalls are designed to control incoming connections and only allow specific ones. Outgoing connections (from client to some public server) are considered safe and are allowed in all but the most secure systems.
  • a second benefit is privacy. With server based communication, there is not a need for each client to know the actual network address of the other devices.
  • a third benefit is performance.
  • the server can broadcast copies of incoming information from each client device to all of the other client devices.
  • servers are located at points a the network where high bandwidth is available making this type of broadcast very effective.
  • client devices are connected at end-points in the network, not the high bandwidth nodes within the network (where the servers are usually found).
  • a present embodiment of the invention includes the capability to overlay (with markers) any information object that is accessed over a network, and this is achieved without need to access the object directly, or need to have permission from the owner of the object.
  • the markers are stored at another place on the network referenced by the network address of the "marked" information object. No connection is ever made between the information object store and the markers store.
  • An information access device has additional capabilities added to it using the companion software, mentioned above, that performs a number of functions:
  • Typical services are community communications such as chatting with other users on-line and in-context or leaving messages for other users off-line, but again, in context of the underlying object.
  • annotations or notes whereby different users can access any object over the network and (apparently) annotate it. Other users can see these annotations, and make their own, reply to questions, join in a discussion or work collaboratively; always in the context of the underlying obj ect. Note, the underlying object is never altered, no derivative of the object is created; annotations are only displayed to the user in context with display of the accessed object.
  • a User selects an anchor.
  • Information access device (or client) sends information about the anchor to the server.
  • Server accesses the note in the database and returns it (and perhaps any attached objects) to the device,
  • Device displays the note and attachments to the user.
  • Creating a new note a.
  • User selects a new anchor (e.g., text, image, object, files, document, whatever).
  • Information access device collects user input for the note (e.g., text, images, attachments, whatever).
  • Device sends the network address of the accessed information object and the new anchor and the contents of the note, to the server. d.
  • Client device-to-client device based communication a. User selects one or more users he or she wishes to communicate with, from an access device presentation of the "presence" information, i.e. the list of users "present” in the context of a given information object. b. User selects from a menu the type of communication to establish, such as instant messaging, email, chat, conference, etc. The menu could also include third party software communication tools. c. Device presents the user with a dialog box where the user can input "messages”. d.
  • asynchronous communication e.g. email
  • the device will send the user's message using the appropriate process.
  • synchronous communication e.g. instant messaging, chat, conference
  • the device will send the user's message directly to the selected users.
  • the user "presence" information contains sufficient information for the device to effect the communication. This might be the IP address of the devices where each user is connected. For email, it would be the email address of the user. If for some reason that information is not available, then communication could change to use server-based connections.
  • the choice of direct client connection or server-based connection will (usually) be transparent to the user; the device operations are, of course, very different in each case.
  • certain servers may only provide for server based communication.
  • a user may wish to keep information such as email address or IP address private.
  • this type of information may not be able to be kept private.
  • server-based communications discussed below, this type of information can be kept private and a user need only know the userlD of a recipient.
  • the email address or IP address of a communication recipient can be kept in the server.
  • Server based communication a. User selects one or more users who are "present" and who he or she wishes to communicate with, from the presentation of the presence information, i.e. the list of users present in the context of a given information object.
  • a menu the type of communication to establish, such as instant messaging, email, chat, conference, etc.
  • the menu can also include communications systems provided by third parties.
  • d. Device presents the user with a dialog box where the user can input "messages”.
  • e. Device sends the message to the server, which can broadcast the message to other users who have a connection to the server in the context of the given information object.
  • server based communication allows a user's e-mail address or IP address to remain private. An originator of commumcation only need include the recipient's unique userlD in a communication. The server can retain the email address or IP address of the recipient keyed to the recipient' s userlD.
  • An advantage of the present invention is the ability of information access device users to employ the services of the community servers in the context of information objects accessed over a network.
  • community server services enable users to communicate directly with each other through notes, instant messaging, chat or conferencing, for example.
  • Providing these communication services in the context of an accessed information object can give users a shared frame of reference for their communication.
  • an information access device user searching the Internet for an automobile to purchase The user may visit several web sites and view web pages information about different vehicles of interest to the user. The pages are likely to promote the vehicle and provide numerous details. As the user visits a page, he or she may post notes associated with a vehicle featured on the page that ask questions or make observations about the vehicle.
  • the user can post notes relating to vehicles as the user moves from page to page through the network.
  • the user may come upon notes posted previously by other users.
  • the user may choose to read these notes, which may pose questions or may comment about some of the vehicles the user has been researching.
  • the user also may reply to some of these notes. In fact, some of the notes might even answer questions posed previously by the user.
  • users can communicate in the context of accessed information objects, in this example web pages dedicated to automobiles.
  • two or more information access device users may access the same web page (or web area) at the same time. These users may wish to have an instantaneous dialog in the context of the web page.
  • a web page may provide a document such as electronic blueprints for a new aircraft engine design.
  • Several geographically dispersed design team members may wish to discuss technical details of the design.
  • Each such team member will employ an information access device to visit the web page with the design on it. In that manner, all of the members can view design together. While they view the design, they can discuss it through instant messaging or by setting up a conference call for example.
  • team members can engage in real time discussions in the context of an accessed information object, in this case a web page (or web area), that is dedicated to an aircraft engine design.
  • the present invention includes the ability of users to participate one or more communities of users and the ability of different service providers to create different communities of users.
  • Users may choose to communicate with other users likely to share a common interest.
  • users may wish to change communities depending upon their interest at the time. For example, they may wish to participate in one community of users when seeking to make vacation plans. They may wish to participate in another community when seeking to invest in stocks.
  • a service provider may wish to sponsor communities of users who are likely to share a common interest.
  • a travel agency may wish to sponsor an on-line community centered on vacation travel.
  • the service might offer travel packages to users who register for the service.
  • the vacation travel service provider might even use information gleaned from inter-user communications to among community members create travel packages such as group tours.
  • a stock brokerage may wish to sponsor an investment advisory service.
  • the service may offer advice and services to users who register for the service. It might take orders to trade, or give prompt notification of market changes that need immediate response from the user.
  • This ability of a user to participate in communities of other users having similar interests can provide a filtering function. Specifically, a user may discriminate among the millions and millions of others users on the internet
  • the association of information access device users with communities is achieved in part through mapping of network addresses to sets of one or more community servers, that is, servers which offer services in the context of an information object.
  • community servers that is, servers which offer services in the context of an information object.
  • a user access device accesses an information object on the network, it also requests, from a service area directory server, community server associations with the network address of the accessed object.
  • the service area directory server may return to the requesting device the network addresses of multiple community servers that provide service in the context of the accessed information object.
  • Each community server serves a different commumty of information access device users.
  • a user may be registered to use more than one community server. In other words, the user may belong to more than one community.
  • the user belongs to a different community for each community server he or she is registered to use.
  • a multi-community user may choose the commumty server, and thus the community, with which the he or she wishes to communicate in the context of an accessed information object.
  • network names of accessed information objects are used to identify to an information access device user a set of one or more communities in which the user may communicate in the context of the accessed information object.
  • Network address patterning is employed to demarcate user communities.
  • FIG. 4 there is shown an example of an illustrative service area index structure provided by the service area directory server.
  • the service area index structure is shown as a table, but it can be implemented as many related tables in a relational database instead.
  • the first entry of each row in the illustrative directory is a network address pattern.
  • Each pattern comprises at least a portion of a network address that may be employed to access information objects over a network.
  • the network address pattern designates the portion of the network that is served.
  • the second entry in each row identifies the network address of a community server that provides service for the information objects with network addresses that corresponds to the network address pattern in the first entry of the row.
  • a service provider who desires to establish a community of users may sponsor this community server.
  • a community is generally a group of users who access services provided by a single sponsor, and who preferably share a common interest which can form the basis of the community.
  • the community server is preferably managed by the sponsor in as much as the sponsor decides the nature of the services offered by the server and the portion of the network across which the services will be provided.
  • the portion of the network across which the sponsor provides services is defined by the network address pattern or patterns which are included in the service area directory as being covered by the community server managed by the sponsor. It will be appreciated that one physical computer may host multiple community servers. It is also to be understood that a single community may be spread across multiple servers or be based in only a single server.
  • the third entry in each row identifies the service provider who sponsors the community server in the second entry. This information is useful to user of an information access device since it identifies the service provider (or community) associated with the network address in the second entry. As explained below, this service provider information facilitates scaling of the service area index.
  • the fourth entry in each row identifies the service type provided by the community server identified in the second entry.
  • the fifth entry in each row identifies the desired subject of communications for the community server identified in the second entry. Users may be encouraged to adhere to the desired subject, if only through the force of common rules of etiquette.
  • a server network address may in fact identify a composite server that, in effect, responds to information access device requests for different types of services by routing the requests to the appropriate sub-systems of the server.
  • the server identified in the first row of the index structure at NA1 may route requests for different types of services to server sub-systems.
  • the service type entry in the index structure could include further routing information to permit an access device user to form a connection to the appropriate sub-system. This further routing information would be returned to the user along with other information in the table.
  • the routing information might include port addresses.
  • the service type entry there would be port addresses associated with each of the chat and notes services types.
  • the different subsystems of the server at NA1 would listen for user requests on the designated chat port and notes port.
  • the first four rows of the illustrative index of Figure 4 contain the network address pattern http://[*].
  • the [*] symbolizes a universal match.
  • the pattem http://[*] encompasses every network address that employs the http:// protocol to access information objects over a network such as the Internet.
  • the pattern http ://[*] encompasses the entire address area of the internet for the http protocol.
  • the service area directory server receives an information access device request for an association for the network address of an accessed information object.
  • the network address uses the http protocol.
  • the service area directory server accesses the illustrative service area index of Figure 4 to locate network address patterns that match the subject network address.
  • entry of http://[*] in a row of the index structure of Figure 4 indicates service over the entire Internet for information objects accessed using http.
  • the first four rows of the index structure list ABC Corp. as the service provider.
  • the community server at NA1 provides notes and chat for sports enthusiasts.
  • the community server at NA2 provides instant messaging.
  • the community server at NA3 provides notes and chat for automobile enthusiasts.
  • the community server at NA4 provides conferencing services.
  • the community server at NA199 sponsored by DEF Corp. provides notes, instant messaging, chat and conferencing services over the entire Internet for http protocol network addresses.
  • an information access device user when an information access device user requests an association to commumty servers associated with any information object addressed with the http protocol, the device user receives from the service area directory server at least one hundred ninety-nine associations corresponding to the http://
  • Each association represents a service that is available for an accessed information object network address.
  • the user may pare down service selection based upon the service provider (i.e., the community), the nature of the service (i.e., notes, instant messaging, chat, conferencing, etc.), the subject matter of the communications (i.e., sports, shopping) or whether or not the user is registered to use the service.
  • service provider i.e., the community
  • the nature of the service i.e., notes, instant messaging, chat, conferencing, etc.
  • the subject matter of the communications i.e., sports, shopping
  • network address partitioning can designate set of services provided in overlapping network address areas.
  • an information access device user accesses an information object with a network address http://www.xyz. edu/historydept/[*l .
  • the device user would receive an association with the commumty server at network address NA200 sponsored by XYZ University which provides notes service in connection with history.
  • the device user accesses an information object with a network address http://www.xyz. edu/mathdept/
  • the device user would receive an association with the community server at network address NA201 sponsored by XYZ University which provides notes service in connection with math.
  • FIG. 2 shows an information access device 650 accessing in information object 610 at network address NA-x via network 612.
  • Information access device then accesses service area directory server 624, at network address NA-SAD, and provides it with the address NA-x.
  • Service area directory server 624 then searches its index for network address patterns which encompass network address NA-x. As shown by table 626, service area directory
  • NAP-1 through NAP-51 show in the left-hand column of table 626
  • addresses of community servers shown in the right-hand column of table 615)
  • network address patterns which encompass NA-x there are 51 community servers which provide services for address patterns which encompass the network address NA-x, if each commumty server was managed by a different provider, then 51 different providers could provide services in the context of information object 610. Additionally, because the services would be provided from separate community servers, the user of a first service from a first community server would preferably not be aware of or interfered with by the user of a second service provided by a second community server.
  • the addresses, shown in the right-hand column of table 626, of the community servers offering services in the context of information object 610 are returned to information access device 650.
  • the user of information access device 650 selects the community server at network address NA-3117. This may be either because the user of information access device is not registered with the providers managing the community servers at the other addresses, or because the user of information access device wished to access the type of service offered by the community server at network address NA-3117.
  • the commumty server at network address NA-3117 provides services for information objects having network addresses encompasses by network address pattern NAP-3.
  • Once information access device has accessed the community server at network address NA-3117, it provides to the community server the network address of the information object being accessed.
  • the community server searches its index, represented by table 630, for the network address NA-x.
  • the left-hand column of table 630 includes network addresses of information objects which the community server at address NA-3117 provides services in the context of, specifically information objects at network addresses NA-A through NA-y.
  • the right- hand column shows the service objects, SO-A through SO-y, which are associated with each respective network address. These service objects could, for example, be chat services, notes services, presence services, keyword services or services provided by a third party provider such as videoconferencing.
  • the arrows extending from the right-hand column indicate the information stored in community server at address NA-3117 which is necessary to provide the associated service.
  • service object SO-A were a presence service
  • InfoA associated therewith, would be a listing of all the other users accessing the information object at NA-A and who had selected to use services provided by the commumty server at address NA-3117.
  • the service offered by community server at address NA-3117 in the context of information object 610 is service object SO-x and requires information Infox to operate. Accordingly, the user of information access device 650 will use information object SO-x provided by the community server at address NA-3117 and requiring information Infox to operate.
  • a community service provider may wish to scale the number of community servers allocated to serve device users to meet user demand.
  • the community service provider can partition areas of the network (Internet) to reduce the number of information objects, and therefore the number of users, each community server must handle. Partitioning involves separating the space of information objects into unit thereof. What is necessary is to have a "key" with which to refer to the information objects which can be separated into non-overlapping patterns. With respect to the Internet, this is relatively straight-forward.
  • the index structure has row entries http://
  • An information access device request to the service area directory server for an association with any network address pattern using the http protocol that has first following letter beginning in the range A through H (e.g., http://www.albatross.com) will be associated with the entry http:// A-H*1.
  • the information object corresponding to such address therefore, will be associated with the commumty server at network address NA203, sponsored by GHK Corp., which provides notes service.
  • a request for an association with any network address pattern using the http protocol that has first following letter beginning in the range I through P will be associated with the entry http://[I-P*].
  • a request for an association with any network address pattern using the http protocol that has first following letter beginning in the range Q through Z will be associated with the entry http://[Q-Z*].
  • the same entity, GHK Corporation provides the same service on three different community servers.
  • GHK Corporation may change the association of address patterns to community servers.
  • the service area index identifies the service provider associated with the commumty server.
  • This partitioning can be done as finely as necessary to accommodate as many information objects and user as necessary.
  • the system of the present invention can be scaled to provide as many services as providers desire for as many information objects and users or information access devices as required, up to and including the entire Internet.
  • Figure 5 shows in greater detail the structure of a service area directory 614.
  • service area directory 614 includes a master service area directory 190, a backup service area directory 192, and a plurality of service area directory caches 194.
  • master service area directory 190, backup service area directory 192 and each service area directory cache 194 are included in a separate computer or server.
  • Backup service area directory 192 is interconnected with master service area directory 190 which is interconnected with each service area directory cache 194.
  • service area directory 614 indexes associations between an address for an information object and the address of a community server which provides services in the context of about the information object. This substantive association information is stored in the master service area directory 190, backup service area directory 192 and each service area directory cache 194.
  • service area directory 190 As community servers are brought on line, information regarding the contents and location of the community servers is entered by a system administrator into master service area directory 190. Master service area directory 190 will then update each service area directory cache 194 and backup service area directory 192 with any new information which has been entered.
  • service area directory caches 194 are geographically distributed and each client 114 is assigned to a particular service area directory cache 194 which is preferably in a geographic location relatively near the assigned client. Also, preferably, more than one client 114 is assigned to each service area directory cache 194. If one of the service area directory caches 194 goes down, master service area directory 190 can re-assign the clients associated with the down service area directory cache 194. Additionally, if master service area directory 190 goes down for any reason, backup service area directory 192 is preferably able to perform the functions of master service area directory 190 until master service area directory 190 can be brought back on line.
  • service area directory 614 can include any number of hardware servers, that is, it is scalable.
  • service area directory 614 is advantageously efficiently able to store, manage and retrieve notes, presence, keyword or other types of information associated with any one of the millions of information objects resident on the Internet. Registration and Authentication
  • Zadu Home Servers - a trusted third party
  • Zadu Registration the details, and the preferred implementation 5.
  • Provider Registration the details, and the preferred implementation 5.
  • Zadu is the entity which provides the protocol and standards used in implementing a system in accordance with the present invention and could be the manager of such a system.
  • the Zadu implementation of the invention defines a globally unique ID for each information access device user
  • the present embodiment of the invention uses a minimal system for the (Zadu) registration in order to support easy integration with the existing subscription or registration services (including billing, perhaps) of the service provider.
  • the invention allows each service provider to maintain and manage its own set of user information including the type of information and privacy controls and rules. When the provider chooses to offer (community) services, it need only add one extra piece of user information, the unique userlD. This minimal requirement makes integration simple. This is a factor in making a (community) service offering in accordance with the present invention attractive to potential customers and service providers.
  • the service provider has a "cross registration" application, perhaps on a web page, which might offer several facilities, including:
  • An existing Zadu user who is also a customer of the provider, gets a new Zadu service to use.
  • the new service is preferably automatically advertised to all existing Zadu users. This can provide a valuable business opportunity for new providers.
  • Zadu Home Servers • ZHS acts as a trusted third party in the Zadu authentication system
  • Preferred implementation o Uses PKI or digital signatures for authentication o
  • Each ZHS has it's own key-pair, a public key and a secret key o
  • the public key is broadcast widely, especially to all service providers o
  • the secret key is kept securely at the ZHS o
  • the secret key is used to digitally sign (encrypt) the users identification o
  • the public key is used to verify (decrypt) a user's identification o Further details of these operations are given below.
  • Each one provides the services mentioned (registration and authentication) for a set of users.
  • Additional ZHS can be added at any time and the load balanced across them.
  • the service area directory can be extended to include in it's index, mappings from userlDs to the network addresses of the corresponding ZHS that provides these services for each range of userlD
  • this index that maps userlD to ZHS addresses can be a stand-alone index, it is not required to be part of the service area directory. However, it needs to be a scalable index in it's own right, it must be capable of supporting access from millions of users at once, it should be accessible to those millions of users at some well known network address and it must be always available for the service to be reliable. All of these attributes (scalable, high performance, available and reliable) are the same as those desired by other service area directory users, this simple extension of adding a new record type is the preferred solution. As discussed above with respect to Figure 800, a service area directory in accordance with the present invention is scalable. Additionally, because the data contained in the service area directory is replicated in backups and caches, the service area directory is also available and reliable.
  • Zadu registration User obtains and installs companion software on his or her computer
  • Companion software contains the address of the master service area directory (SAD) and contacts it (or the backup SAD if the master is not available). Using the network address of the user's computer and information about the load on the computers running SAD caches, the SAD returns the address of a "local" SAD cache, one that is near (in network terms) to the user, and the companion remembers
  • the local SAD address is used for all subsequent SAD accesses.
  • the companion software can still access the master SAD (or backup SAD). In particular, this can be done to re- obtain the address of the local SAD, which is useful for example, if the user computer is moved.
  • Companion software contacts SAD for the location of a Zadu Home Server (ZHS). Using the network address of the user's computer and information about the load on the computers running ZHS, the SAD returns the address of a "local" ZHS, one that is local (in network terms) to the user and the companion remembers (caches) that address.
  • ZHS Zadu Home Server
  • ZHS generates a unique userlD and returns it to the companion o Preferred implementation: base the userlD on the network address of the client and the network address of the server and a sequential number within the server o This technique scales well, it does not depend on any single source for unique numbers
  • the companion software o Knows it's local SAD o Knows it's ZHS o Has a unique UserlD 9.
  • the companion software When first run, the companion software generates a key pair, the user's public key and secret key o
  • the user's public key is sent to the ZHS at stage 6 above o
  • the user's secret key is kept securely with the user; it is used to sign (or encrypt) tokens (which can be decrypted only by the corresponding public key).
  • the secret key is usually protected with a password; the secret key can only be accessed when the user gives the correct password. Alternatively, smart cards could be used.
  • ZHS signs the combination of the newly generated userlD together with the user's public key and returns this signed object to the companion software.
  • This object is called the user's passport. It will be used to identify the user. Since it is signed (i.e. encrypted) by the ZHS, it can be decrypted by anyone with the ZHS public key (which has been broadcast widely). 5.
  • Provider Registration a. Usually, the user will be an existing subscriber or customer of the provider, or may register with the provider for some purpose other than gaining access to the community communication tools. Some form of customer identification, a customerlD will be issued at this registration. b. It is likely that the provider will want to collect information about the user over an above what is required to operate the Zadu services, i.e.
  • the Zadu service may be just one of many services offered to the user or offered to attract users and customers for the provider.
  • a part of this invention is the ease of integrating the Zadu system with existing provider systems.
  • the provider may desire to relate information therein with the registration or subscription information maintained by the provider. For example, as the user accesses different information sources, a recording of the series of network addresses used for access might be used to provide market research data. This recording can be made at the provider's community server, where each network address accessed is available for each userlD. To record this in the user registration database, it is necessary to be able to relate the userlD with the exiting customerlD for that user.
  • Cross Registration is the simple process of creating a relationship between the user's userlD and the corresponding customerlD at the service provider.
  • the provider will record the userlD of the user in the provider ' s customer database.
  • the ZHS will record the customerlD of the user in the ZHS database.
  • the server software When a user operates the companion software and it connects to a community communication server, it is essential that the server software can confirm the true identity of the user. Before billing a user or making available their private data, the server software authenticates incoming request for service from the companion software. This is achieved by calling upon a trusted third party to authenticate the user's purported identity.
  • Companion software requests service from the service provider, sends the user's ID together with the request
  • Server software accesses the ZHS corresponding to the users userlD to confirm the identification a.
  • the server sends a token to the companion who forwards it to its ZHS, the one where the user logged in using their password.
  • the server checks with the ZHS corresponding with the purported user ID. if the right token is available, then the user is indeed the correct one.
  • Server decrypts the user's passport using the public key from the ZHS (recall: the passport contains the users userlD and the public key.)
  • Server decrypts the signed token using the public key from the passport, which will return the original token only if the public key corresponds to the secret key used to sign the token, vii.
  • the ZHS has been used as the trusted party that signed the passport originally, viii. Note that as well as being a more secure implementation, this required less communication for the authentication than the simple method described in b. above. 3.
  • the server provides service confident that the user is indeed who they claim to be. 8. Performance Enhancement/Advantages
  • the information access device queries the service area directory for the addresses of the community servers.
  • the service area directory may list many more addresses of community server which offer services in the context of an accessed information object than the information access device is registered to use. Accordingly, the information access device can filter out these addresses. In this way, there is less information for the information access device to process. This can lower overhead in the information access device and enhance performance.
  • a central IM interchange server can be provided which can receive a message from an third party IM service which would have either the recipient's unique userlD attached or information from which the interchange server could determine the recipient's userlD. The interchange server could then translate the message from the third party's IM protocol and forward the message to the recipient based on the recipient's userlD.
  • a system in accordance with the present invention creates communities that consist of users who can communicate with one another across a range of information objects, rather than at simply one information object.
  • a community member can be presented with information or advertisements at each information object included in the community.
  • Provider sponsored information or advertisements can also be included in the communications between community members.
  • a provider could supply information or advertising in annotations which are created by community members.
  • a provider can gain the attention of a network user over an extended period of time as the user moves from one information object to another within a single (e.g., the provider's) community.
  • Notification One aspect a present embodiment of the invention is a mechanism for notification.
  • One aspect of the present invention involves a mechanism to notify users (if they require) when replies are made to their (in-context) messages. Thus a user is saved the time of repeated, wasteful checks.
  • Instant messages, chat and videoconferences are all examples of synchronous communication where on-line users are notified of incoming messages or request to chat or an invitation to join a conference. Such notification is a natural part of synchronous communication.
  • This invention defines an expanded information access device that connects to the community service network in addition to its basic functions. This device connects to the home server to facilitate notification. The user logs-in to the home server using their password and a connection is maintained with that server. The fact that the user is on-line is recorded as part of the user's status and is available for others to inquire upon. All other component parts of the community communication system are able to access the user's status and also to send a notification message to this user knowing only the unique userlD of that user.
  • the service area directory includes an index that relates any given userlD to the corresponding home server. Messages and notifications sent to the user who is off-line are stored at the home server and made available to the user the next time they login. A "buddy list” or “contact list” of known friends or contacts can be maintained at the information access device, when logging-in the on-line status of each of these is accessed and presented to the user. Changes to this status are also sent to the user's buddy list, thus notifying them of the on-line status of their contacts.
  • a novel form of notification comes from the "presence” mechanism that is part of this invention.
  • the presence mechanism allows one or more users who access the same information object to become aware of each other's "presence at that object” which can lead to possible in-context (synchronous) communication.
  • This mechanism is extended to give notification when a user first "arrives" at the information object. Examples of use of this can include an on-line receptionist at the home page of a company's web site, a doorbell at a user's home page on the world wide web, a shopping assistant at an e- commerce site, a customer service representative or an entertainment guide.
  • Notification mechanism One computer program implemented process for implementing notification is a s follows: Notification mechanism
  • Any component of the community commumcation system can use the service area directory to locate the user's home server given their userlD • Messages and Notifications are sent to the home server and forwarded to the user's information access device for immediate display while they are on-line. Typically this takes the form of flashing an icon on a toolbar and/or making a sound, usually at the user's choice.
  • notification is sent to all users on the buddy list, i.e. the home server sends the notification to the home server of each of the users listed on the buddy list.
  • the user may specify that a notification should be sent when a reply is posted.
  • the user's unique userlD is recorded as the author of that note.
  • the author's userlD and request for notification are available and can be used to send the notification (using the service area directory and home server as described above).
  • the notification includes the network address of both the note itself and the underlying information object, making it easy for the user to re-access the object and the reply to their note.
  • these forms of synchronous communication may be established directly from client to client machine (when the user information contains sufficient data to allow this, for instance the user's IP address) or may be established through a server, in case 1) through the community presence server and case 2) through the user's home server.
  • Each (Zadu) Service Provider implements its commumty communication services as a set of software systems (servers) running on a computer(s) in the network.
  • Service is provide "in context" of particular information objects that the user might access over the network.
  • the address of each server is stored in the Service Area Directory (SAD) indexed by the network address pattern of the information object, thus each server is associated with areas of the network address space.
  • SAD Service Area Directory
  • Client software uses the SAD to find the address of all servers that offer service in context of a particular information source.
  • the network address of the information object is provided with the request for service.
  • the server maintains a table that relates network addresses to service objects. There is an entry in the table for each information object that is "in use” i.e. has some community communication under way, in context of the object itself.
  • FIG. 6 which is a simplified illustrative drawing of this process
  • a new network address 910 is "matched" (compared) with the table 912 of network addresses, and if there is a match, the corresponding service object is returned to the client software, thus allowing it to join with the existing communication.
  • Figure 6 which shows a table
  • a service that provides annotations in context of information objects would have an entry in this index for each object that is currently annotated.
  • the service object would be a list of anchors or markers of where the annotations lay together with information about the annotations themselves so the user can access them as required.
  • this service will access the annotations.
  • the annotations are actually stored at an annotation server, indexed by the same network address as the information object.
  • the service area directory can hold as many network addresses, and network address patterns as necessary, and there can be as many community servers as necessary.
  • this annotation service is scalable and able to include the entire Internet. Further, because different community servers can service the same information object or range of information objects, as many annotations services as necessary can be provided for a single information object or range of information objects.
  • the user's software e.g., browser
  • the (Zadu) companion software will accesses this service passing into the SAD the same network address that was accessed by the user software.
  • the network address of the object will match one or more of the rows in the index, the server software will return the corresponding service object(s) containing the anchors to the companion software for display.
  • Network Addresses that have an inherent structure comprising a number of components that have more or less significance with respect to the location of the object.
  • the network address of my inventory document might be:
  • this example shows the network address relative to some local area network
  • a more complete address would include more information about location, such as the company or organization where My-computer is installed, and the country or domain of the company.
  • the components of the address include an access protocol (http:), the computer address (my-computer .XYZ.co.uk) and the document address (/C-drive/My-directory/inventory-document) within the computer.
  • http http:
  • the computer address my-computer .XYZ.co.uk
  • the document address /C-drive/My-directory/inventory-document
  • My-computer identifies a particular computer installed at . XYZ.co XYZ, the name of the company, which is
  • Zadu servers match (compare) incoming network addresses to the list of addresses stored in the index. This match can be performed in two ways, (1) an EXACT match where the addresses must match all of their components, thus identifying an existing service object related to the specific information object address or (2) and AREA match, where only the more significant components of the addresses match, thus identifying an existing service object related to an information object that is in the same area, or local to the incoming object address.
  • the server may create a new row, with the address set equal to the incoming address, an empty service object is created and returned to the client • AREA match - the server may choose to match one or more significant components of an incoming address. Exact matches are used by servers that offer their service "in context" of a specific information object.
  • Examples include, annotations superimposed on an object, a chat room instantiated on an object.
  • Area matches are used by server that offer their service "in the area nearby" a specific object. Examples include, meeting users who are access objects in the same area, showing the presence of other users browsing web pages in the same domain.
  • Area Based Meeting Service (ABMS)
  • the Zadu ABMS server implements a service where users can meet in an area or where their presence can be seen by other users who are access the same area of the network address space.
  • the context in which users can be co-present is Scaleable. They may be co-present in a larger or a smaller "address area" or "context".
  • the context area varies with the number of users co-present in the area at any time.
  • other criteria for scaling the shared context area also may be employed consistent with the invention.
  • ABMS service objects are a list of user IDs present in that area.
  • ABMS implements a dynamic AREA matching algorithm, the number of components of network address that are used to match with the addresses in the index is varied according to the following rules. These rules create the effect of expanding the size of the address area when there are only a few users “present” (in or near the address area) and decreasing the size of the area when there are many users "present” (in or near the address area). This makes the meeting service much more useful and practical than exiting systems where the areas are fixed.
  • ABMS has two thresholds o LONELY, set for example to 4 o BUSY, set for example to 25
  • Client initiates access to some information object 2.
  • Client uses the routine Zadu processes to ascertain the address of the ABMS server that is offering meeting services in context of that information
  • the network address of the information is sent to the ABMS server
  • client sends a 'remove' message to the server 2.
  • server removes the user's ID from the service object (see 8 above)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ce système de communication est opérant dans un réseau informatique, de concert avec un système d'extraction d'information extrayant une information sur le réseau, et dans lequel l'information à extraire est associée à des noms réseau pouvant être traduits en adresses de réseau utilisées pour situer l'information à extraire sur le réseau. Ce système de communication comporte plusieurs serveurs de communauté respectifs résidant dans des supports de mémorisation accessibles sur le réseau. Ces serveurs de communauté assurent une communication sur le réseau entre des ordinateurs les utilisant. Le système comporte également une structure d'association de noms réseau résidant dans des supports de mémorisation accessibles sur le réseau, ladite structure associant des noms réseau respectifs à des processus de communication communautaire respectifs. Il comporte, en outre, au moins une instance de la structure de réception de nom réseau résidant dans les supports de mémorisation d'au moins un ordinateur accessible sur le réseau, le processus de réception de nom réseau recevant des noms réseau respectifs associés à l'information à extraire par un ordinateur donné dans le réseau et indiquant à la structure les noms réseau respectifs reçus.
PCT/US2000/031758 1999-11-17 2000-11-17 Systeme et methode permettant a des communautes d'utilisateurs de reseau informatique se chevauchant de communiquer en contexte WO2001037142A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU16607/01A AU1660701A (en) 1999-11-17 2000-11-17 System and method for in context communications among overlapping communities ofcomputer network users

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US44228099A 1999-11-17 1999-11-17
US09/442,280 1999-11-17
US44750299A 1999-11-23 1999-11-23
US09/447,502 1999-11-23

Publications (1)

Publication Number Publication Date
WO2001037142A1 true WO2001037142A1 (fr) 2001-05-25

Family

ID=27033112

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/031758 WO2001037142A1 (fr) 1999-11-17 2000-11-17 Systeme et methode permettant a des communautes d'utilisateurs de reseau informatique se chevauchant de communiquer en contexte

Country Status (2)

Country Link
AU (1) AU1660701A (fr)
WO (1) WO2001037142A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796393A (en) * 1996-11-08 1998-08-18 Compuserve Incorporated System for intergrating an on-line service community with a foreign service
US5819084A (en) * 1994-05-02 1998-10-06 Ubique Ltd. Co-presence data retrieval system
US5864874A (en) * 1994-05-02 1999-01-26 Ubique Ltd. Community co-presence system
US5870562A (en) * 1997-03-24 1999-02-09 Pfn, Inc. Universal domain routing and publication control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819084A (en) * 1994-05-02 1998-10-06 Ubique Ltd. Co-presence data retrieval system
US5864874A (en) * 1994-05-02 1999-01-26 Ubique Ltd. Community co-presence system
US5796393A (en) * 1996-11-08 1998-08-18 Compuserve Incorporated System for intergrating an on-line service community with a foreign service
US5870562A (en) * 1997-03-24 1999-02-09 Pfn, Inc. Universal domain routing and publication control system

Also Published As

Publication number Publication date
AU1660701A (en) 2001-05-30

Similar Documents

Publication Publication Date Title
US5867667A (en) Publication network control system using domain and client side communications resource locator lists for managing information communications between the domain server and publication servers
US5884035A (en) Dynamic distributed group registry apparatus and method for collaboration and selective sharing of information
US5870562A (en) Universal domain routing and publication control system
US6026430A (en) Dynamic client registry apparatus and method
US10154060B2 (en) Domain name hijack protection
US7130878B2 (en) Systems and methods for domain name registration by proxy
US5867665A (en) Domain communications server
US7930383B2 (en) Systems and methods for domain name registration by proxy
US7639672B2 (en) System and method for peer-to-peer internet communication
US7730030B1 (en) Resource based virtual communities
JP2000066982A (ja) 通信方法及び通信ネットワ―ク
US20080021958A1 (en) System and method for peer-to-peer internet communication
JP2000076307A (ja) 通信方法及び通信ネットワ―ク
JP2000066981A (ja) 通信方法及び通信ネットワ―ク
JP2000092153A (ja) 通信方法及び通信ネットワ―ク
JP2002041522A (ja) 個人情報開示システム及び電子メール配信システム
WO2001037142A1 (fr) Systeme et methode permettant a des communautes d'utilisateurs de reseau informatique se chevauchant de communiquer en contexte
WO2004029821A1 (fr) Procede et systeme e-mail proxy
CA2355965A1 (fr) Methode de communication avec modeles
WO2004021203A1 (fr) Procede et systeme d'enregistrement de nom de domaine et de courrier electronique par un mandataire
KR20020069894A (ko) 인터넷을 이용한 정보 제공 시스템 및 방법

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase