Title: Computer-based communication system and method using metadata defining a control structure
Patent Number: US Patent 5,862,325
Issued: January 19, 1999
Filed: September 27, 1996
Parent case: This application is a continuation-in-part of co-pending application Ser. No. 08/609,115, filed Feb. 29, 1996, now US Patent 6,044,205 (Intermind Corporation).
Inventor(s): Drummond S. Reed et al.
Assignee: Intermind Corporation
Referenced at issuance: US Patent 5,008,853 (Xerox Corporation) Φ, US Patent 5,220,657 (Xerox Corporation) Φ, US Patent 5,625,818 (Apple Computer, Inc.), US Patent 5,644,764 (Unisys Corporation), US Patent 5,682,532 (Microsoft Corporation), US Patent 5,689,708 (ShowCase Corporation), US Patent 5,706,434 (Electric Classifieds, Inc.), and US Patent 5,721,911 (IBM Corporation).
Referenced after issuance: US Patent 6,421,733 (Intel Corporation) and US Patent 6,988,109 (IO Informatics, Inc.).
Blogger comment:
There were 75 references to prior patents at issuance, including the 8 references identified above. The remaining 67 references are unremarkable for the scope and purposes of this blog.
An advanced search at USPTO online on August 12, 2008 for distinguishing references to this patent after its issuance using ref/5,862,325 reveals 448 references. A more refined search reveals the 2 patents identified above.
See also The challenges of establishing, maintaining, operating and terminating automated communication relationships between providers and consumers Φ, a journal entry to this blog quoting extensively from the subject patent.
See also Analysis of P3P and US Patent 5,862,325 (W3C Note 27-October-1999). This Note is a response to a request from the W3C for Pennie & Edmonds' opinion as to whether implementations of the W3C's Platform for Privacy Preferences Project ("P3P") specification would infringe any claim of Intermind's U.S. Patent No. 5,862,325.
Abstract:
Independent claims (as numbered):
1. A computer-based communication system comprising:
a provider memory storing information including provider information;
a consumer memory storing information including consumer information;
association means for creating metadata associating portions of said information and defining a control structure for processing at least at said consumer memory to associate with said metadata one or more processes for controlling the communication of said associated information, said metadata including update metadata associating a process for determining when said associated information has been updated and transfer metadata associating a process for transferring at least a portion of the updated information;
transfer means for transferring said information, including said metadata defining said control structure, from said provider memory to said consumer memory; and
processing means for processing said metadata to execute instructions external to said control structure to perform said processes.
20. A computer-based communication system comprising:
a provider memory storing information including provider information;
a consumer memory storing information including consumer information;
association means for creating metadata associating portions of said information and defining a control structure for processing at least at said consumer memory to associate with said metadata processes for controlling the communication of said associated information, said metadata including data exchange metadata associating a process for controlling the transfer of feedback information, said feedback information including at least a portion of said consumer information, to said provider memory;
transfer means for transferring said information, including said metadata defining said control structure, from said provider memory to said consumer memory;
feedback transfer means for transferring said feedback information from said consumer memory to said provider memory; and
processing means for executing instructions external to said control structure to perform said processes to control communications of said information.
78. A computer-based communication method, comprising operating one or more computers to communicate by performing the steps of:
in a provider memory, storing information including provider information;
in a consumer memory, storing information including consumer information;
creating metadata describing associations with portions of said information and defining a control structure which is processed at least at said consumer memory to associate one or more processes for controlling communications of said associated information, said metadata including update metadata associating a process for determining when said associated information has been updated and transfer metadata associating a process for transferring at least a portion of the updated information;
transferring said information, including said metadata defining said control structure, from said provider memory to said consumer memory; and
processing said metadata to execute instructions external to said control structure to perform said processes.
109. A computer-based communication method, comprising operating one or more computers to communicate by performing the steps of:
in a provider memory, storing information including provider information;
in a consumer memory, storing information including consumer information;
creating metadata describing associations with portions of said information and defining a control structure which is processed at least at said consumer memory to associate one or more processes for controlling communications of said associated information, said metadata including data exchange metadata associating a process for controlling the transfer of feedback information, said feedback information including at least a portion of said consumer information, to said provider memory;
transferring said information, including said metadata defining said control structure, from said provider memory to said consumer memory;
processing said metadata to execute instructions external to said control structure to perform said processes; and
communicating said feedback information from said consumer memory to said provider memory.
Key Drawing(s):
There is illustrated in FIG. 1 a first embodiment of a system of the present invention which automatically updates a database in a consumer computer with information from a provider computer. Numerous providers and consumers exist in the system of the present invention. However, since all communications can be separated into transfers between a single provider and consumer, the design and operation of the system is illustrated with only one provider and one consumer, except as otherwise noted. As illustrated in FIG. 1, a provider computer 1 includes a provider database 11 of communications control information which it desires to disseminate or make accessible to one or more consumers. A consumer computer 2 includes a consumer database 21 of communications control information received from providers and stored by the consumer. The organization, structure, and content of the provider database 11 and consumer database 21 are discussed below. The provider computer 1 is connected through a communications network 3 to the consumer computer 2. Any communications network 3 may be used to connect the provider computer 1 and the consumer computer 2, including direct network connections, server-based environments, telephone networks, the Internet, intranets, local area networks (LANS), wide area networks (WANS), the World Wide Web, other webs, and even transfers of data on physical media such as disks or computer-readable paper outputs via postal communications networks. The particulars of the communications network illustrated as preferred embodiments are not limiting features of the invention. However, the Internet and World Wide Web provide existing capabilities between computers sufficient to provide the necessary connections. For this reason, the description of the present invention is based on this communications medium, which should be understood to be used for purpose of illustration only. Organization and operation of the Internet and communications over the Internet are discussed generally in Kris Jamsa and Ken Cope, Internet Programming (1995) and Marshall T. Rose, The Internet Message: Closing the Book with Electronic Mail (1993), which are incorporated herein by reference. Communications over the World Wide Web are discussed generally in John December and Neil Randall, The World Wide Web Unleashed (1996), which is incorporated herein by reference. Additionally, the illustrated embodiment is not limited to the specific networks known as the "Internet" and "World Wide Web", but relate to internet, intranet and web networks generally. A specific feature of this invention is that it is easily adaptable to control and automate communications via any type of communications network. In addition, it can select a preferred communications network and message encoding format to be used for a specific communications transaction, as further described below.
As illustrated in FIG. 1, there are two principal methods for information transfer in a data communications system, both of which can operate through the Internet. First, a "pushing" method transfers information from the provider computer 1 directly to a known consumer computer 2. An example of such a system is e-mail. So long as the consumer's address is known, the information can be routed through the communications network directly to that recipient. For the pushing method, the provider must know the consumers who want to receive the information. The provider must also know how to address those recipients in the communications network.
The second method, referred to as "pulling", occurs when the consumer computer 2 requests and initiates a transfer of information directly from a provider computer 1 or from another server computer 32 located on communications network 3 on which a copy of the information has been placed for distribution. An example of such a distribution server 32 is when a copy of the information is placed on a web server and accessed by the consumer computer 2. In the pulling method, the provider and the provider computer 1 or distribution server 32 do not need to know ab initio, the identity or location of consumer computers 2. Rather, the consumer computer needs to know the location of the provider computer 1 or distribution server 32 and the location of the desired information to be accessed on such computers.
Basic Operation of Programs for Communications
Appropriate programs executing on the provider computer 1 and the consumer computer 2 perform the functions necessary to transfer, maintain, and update the information at both locations. A program represents a set of stored instructions which are executed in a processor of the computer to process data, transmit and receive data, and produce displays. The provider program 12 operates to transmit changes in information stored in the provider database 11 at the provider computer 1. When changes are made to the information and the database, the provider program 12 operates to disseminate the changed information through the communications network 3. In the pushing method, the provider program 12 transmits the changed information, for example through e-mail, to the consumer computers 2 of all intended recipients. In the pulling method, the changed information is stored on a distribution server 32, such as a web server, which then can be accessed by the consumer computer 2. Any type of distribution server may be used, including network file servers, FTP servers, gopher servers, and so on. The type of distribution server used is not a limiting feature of the invention. The consumer program 22 will typically poll the distribution server 32 to determine whether the information has changed. This polling operation can be as simple as issuing a Web server HTTP file date request and comparing this with the file date of the last update. Polling is controlled by the information transferred from the provider program to the consumer program as further described below. Upon receipt of changed information, the consumer program 22 operates to perform certain functions with regard to that changed information. Principally, the information is stored in consumer database 21 on the consumer computer 2 for future reference and usage in controlling and automating communications between the consumer and provider. Furthermore, the information may be presented to a user at the consumer location, so that the user will be notified of the changed information. The information can be presented in a number of manners, including display or printing by the consumer program, sending an e-mail or voice-mail message to the user, paging the user, and other notification methods.
Since the provider knows what the changed information is and how consumers would likely prefer to be notified of the changed information, the transmitted information can include instructions on how the consumer program 22 should process the information for purposes of notification. For example, information from a provider may include the provider's telephone number. If the telephone number changes, the provider needs to supply everyone with whom it does business with the new number. The present invention provides a simple mechanism for carrying out such a data transfer, and of controlling which consumers receive overt notification. When the telephone number is changed in the distribution database at the provider computer 1, the information is transferred to the consumer computer 2, through either the push or pull method. Upon receipt, the consumer program 22 will process the changed information and store the new telephone number in the consumer database 21 for later access by the user or by other programs operating on the consumer's computer 2. At the consumer computer 2, the consumer may or may not be interested in overt notification of the new phone number; this depends on the consumer's relationship with the provider and how often and in what manner the consumer makes use of the phone number. This invention provides a way for notification to be cooperatively controlled by both the provider and consumer through the use of notification elements, which are described below.
Additionally, receipt and storage of the new or updated information can trigger other actions, such as automatically forwarding the information to another consumer, exchanging data with the consumer database 21, sending an automated response to the provider, or sending a message to another software program on the consumer's desktop. Again, this invention provides a means for such actions to be cooperatively controlled by both the provider and the consumer through the use of receipt methods, which are discussed below.
The information stored in the consumer database 21 can also include data, metadata, and instructions to be used by the consumer program 22 for controlling and automating communications between the provider and consumer. Again, because the provider of the information knows what communications response options are available to the consumers of the information, the provider can include the necessary data, metadata, and instructions to simplify and automate specific responses from the consumer to the provider. For example, the provider can include Web URL (Uniform Resource Locator) links to Web pages or forms on the provider's Web server. Or, the provider can also include special forms to be processed by the consumer program 22 that allow the consumer to automatically or semi-automatically transfer data from the consumer database 21 back to the provider. Examples include product order forms, survey forms, customer service request forms, scheduling forms, etc.
In the most general case, the provider knows what communications networks, network addresses, languages, encoding formats, data structures, and other communications processing data and methods are supported by the provider. Thus, the provider can include in the transferred information the data, metadata, and instructions necessary to control and coordinate general communications from the consumer to the provider or to parties related to the provider. For example, data, metadata and instructions in the transferred information can be used by the consumer program 22 or other computer programs running on the consumer computer 2 to automatically format, compress, encrypt, address, and transmit copies of a word processing document, spreadsheet, database or database query, or other computer file format. Corresponding data, metadata, and instructions in the provider program 12 can control and automate the reception of the received message, including decryption, decompression, notification of the provider, and acknowledgment of receipt to the consumer. The same control technique can be applied to the execution of real-time communications, such as telephone calls, videoconferencing, or whiteboard applications.
[Original image modified for size and/or readability]