Search
Subscribe

Bookmark and Share

About this Blog

As enterprise supply chains and consumer demand chains have beome globalized, they continue to inefficiently share information “one-up/one-down”. Profound "bullwhip effects" in the chains cause managers to scramble with inventory shortages and consumers attempting to understand product recalls, especially food safety recalls. Add to this the increasing usage of personal mobile devices by managers and consumers seeking real-time information about products, materials and ingredient sources. The popularity of mobile devices with consumers is inexorably tugging at enterprise IT departments to shifting to apps and services. But both consumer and enterprise data is a proprietary asset that must be selectively shared to be efficiently shared.

About Steve Holcombe

Unless otherwise noted, all content on this company blog site is authored by Steve Holcombe as President & CEO of Pardalis, Inc. More profile information: View Steve Holcombe's profile on LinkedIn

Follow @WholeChainCom™ at each of its online locations:

Thursday
Aug282008

The Economist: Open-source software

An neat, audio podcast overview (6m 21s) about the open-source software movement .....

Tuesday
Aug262008

Rabobank Report: U.S. Food Safety in Fresh Produce

Below is a link to a Rabobank America audio podcast posted on August 13, 2008. Here is an introduction to that podcast.

Without a nationwide traceability system in the U.S. for fruits and vegetables, identifying food contamination sources has been slow, inaccurate and difficult. Recent outbreaks have threatened public health and damaged the image and sales in the fresh produce industry, according to Rabobank’s “U.S. Food Safety in Fresh Produce” report.

“Several factors play a role in the severity and awareness of food contamination outbreaks in the fresh produce sector: media, increasing consumption, imports of fresh produce and changing population demographics,” said Marieke de Rijke, assistant vice president in food and agriculture research at Rabobank Group, who examines U.S. food safety in the report and podcast.

Here is the link to the 7m 50s podcast entitled New Rabobank Report, Podcast Inspect(s) U.S. Food Safety.

Monday
Aug252008

US Patent 7,149,977: Virtual calling card system and method

Title: Virtual calling card system and method
Patent Number: US Patent 7,149,977
Issued: December 12, 2006
Filed: August 28, 2002
Parent case: n/a
Inventor(s): Melora Zaner et al.
Assignee: Microsoft Corporation
Referenced at issuance: US Patent 5,796,395 (Wegener Internet Projects BV) and US Patent 6,476,830 (Fujitsu Software Corporation).
Referenced after issuance: n/a
Continuation patent(s): US Patent 7,373,609 (Microsoft Corporation)
Blogger comment:

There were 9 references to prior patents at issuance, including US Patent 5,796,395 and US Patent 6,476,830, referenced above. The remaining 7 references are unremarkable for the scope and purposes of this blog.

An advanced search at USPTO online on August 25, 2008 for distinguishing references to this patent after its issuance using ref/7,149,977 reveals 0 references by third parties.

Abstract:

A novel virtual calling card system and method aid in the formation of online relationships, serving as an introduction tool and as a contact mechanism. The calling card is an exchangeable entity that is automatically updated, ensuring that the recipient or viewer sees the most current version of the card. The card may display an aspect ratio that is the same as that of a traditional business card, and has a front side and a reverse side. Furthermore, the card provides a number of avenues for the card owner to express themselves, including an array of affiliation symbols, a most recent mood symbol, and a text field. The reverse side of the card can display a representation of the owner's social network, so that the recipients of the card may identify common friends and associates. Thus, the server-based card exchange appears to users as an exchange in the physical world.

Independent claims (as numbered):

1. A computer-readable medium having thereon a computer-readable data structure corresponding to a virtual calling card comprising: a first side having thereon a first display comprising: an identification of an owner of the calling card; and a contact control that is user-selectable to automatically send a message to the owner of the calling card through a central server via a locator associated with the calling card, the locator further facilitates automatic updating of the calling card upon rendering the calling card; and a second side accessible via a user-actuatable flip control on the first side, the second side having thereon a second display.

Key Drawing(s):

[Fig. 1 image modified for size and/or readability]Before describing the invention in greater detail, an example computing environment in which the invention may operate is described in connection with FIG. 1. The computing device 20 includes a processing unit 21, a system memory 22, and a system bus 23 that couples various system components including the system memory to the processing unit 21. The system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system (BIOS) 26, containing the basic routines that help to transfer information between elements within the computing device 20, such as during start-up, is stored in ROM 24. The computing device 20 may further include a hard disk drive 27 for reading from and writing to a hard disk 60, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.

The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the PC 20. Although the exemplary environment described herein employs a hard disk 60, a removable magnetic disk 29, and a removable optical disk 31, it will be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computing device, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories, read only memories, and the like may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk 60, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including an operating system 35, one or more applications programs 36, other program modules 37, and program data 38. A user may enter commands and information into the device 20 through input devices such as a keyboard 40 and a pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor, the computing device typically includes other peripheral output devices, not shown, such as speakers and printers.

The device 20 is operable in a networked environment using fixed or transient logical connections to one or more remote computing devices, such as a remote computer 49. The remote computer 49 may be another similar computing device, a server, a router, a network PC, a peer device or other common network node, or any other device type such as any of those mentioned elsewhere herein, and typically includes many or all of the elements described above relative to the computing device 20, although there is no such requirement, and only a memory storage device 50 has been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computing device 20 is connected to the local network 51 through a network interface or adapter 53. When used in a WAN networking environment, the computing device 20 typically includes a modem 54 or other means for establishing communications over the WAN 52. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. Program modules depicted relative to the computing device 20, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. Additionally, the invention is not intended to be limited to a particular network type. Any network type, wired or wireless, fixed or transient, circuit-switched, packet-switched or other network architectures, may be used to implement the present invention.

In the description that follows, the invention will be described with reference to acts and symbolic representations of operations that are performed by one or more computing devices, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processing unit of the computing device of electrical signals representing data in a structured form. This manipulation transforms the data or maintains it at locations in the memory system of the computing device, which reconfigures or otherwise alters the operation of the computing device in a manner well understood by those skilled in the art. The data structures where data is maintained are physical locations of the memory that have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various of the acts and operations described hereinafter may also be implemented in hardware.

[Fig. 2 image modified for size and/or readability]FIG. 2 is a schematic diagram of a network environment within which an embodiment of the invention may be implemented. In particular, a plurality of user devices 201, 203, 205, and 207 are illustrated as being communicably linked via a network 209. Each user device will typically be used by or associated with a different user. The exact number of user devices so linked is not important for the present invention, although a network communication will typically involve at least two users. Furthermore, the type of network 209 is not critical, and may be peer-to-peer, server-based, a hybrid of the two, or any other type of link or network that allows an exchange of information, directly or indirectly between two user machines. For example, one contemplated network type is a simple beam communication between devices such as devices 205 and 211. The beam may be electromagnetic (e.g. visible radiation, IR radiation, UV radiation, RF radiation, etc.) acoustic (e.g. audible or otherwise), or any other directional or non-directional beam or emanation capable of carrying information. Via the network 209, a communication from one user may be transmitted to another user or users (via their respective user devices).

One or more user machines 201 used to implement an embodiment of the invention may be as illustrated with respect to the computing device architecture of FIG. 1, although there is no such limitation inherent in the invention. It is contemplated that an implementation of the invention will additionally or alternatively be used with any of a number of other communication device types, presently known and otherwise, including but not limited to wearable communication devices (203), cell phones (205), and PDAs (207).

[Fig. 3 image modified for size and/or readability]The calling card itself will be described in greater detail, after which usage scenarios and exemplary implementation details will be discussed. In overview, a calling card according to an embodiment of the invention is passable between users over the network 209, so that users who are not previously directly acquainted may become familiar with each other. FIG. 3 illustrates one exemplary configuration of the calling card 300, with FIG. 3A showing the front side 301 of the card and FIG. 3B showing the rear side 303. The card is an exchangeable article that is only partially self-contained so that the card may update itself, as will be described in greater detail below. Also to be discussed hereinafter, the card does not simply provide contact information (it does not necessarily provide contact information in human-readable form at all), but rather serves as a point of contact from the card user to the card owner.

The calling card 300 preferably exhibits the same aspect ratio as a standard physical business card, although such is not required. Although the calling card 300 may be rendered at different scales, the card 300 is generally preferably shown at about the same size as a business card, such as at 175.times.100 pixels. The calling card 300 comprises a number of components in an embodiment of the invention, such as an owner's character 305 (24.times.24 pixels)(as selected or generated by the owner), owner's name 307 (as input by the owner), an indication of the owner's most recent mood 309 (as input or selected by the owner), a text area 311 for containing text entered by the owner, a background image or pattern 313 as created or selected by the owner, and affiliation symbols 315, also selected by the owner.

In an embodiment of the invention, affiliation symbols other than those also displayed by a card of the recipient are suppressed. Thus, the recipient would know what affiliations she and the card owner had in common, but would not be aware of the owner's other affiliations. Using this functionality, a card owner will feel less inhibited in their choice of affiliations, knowing that those affiliations will be made known only to others that share the particular interest or association in question.

In addition to the above-described informative items, a number of active controls may be also provided on the calling card 300 as well. For example, a "close" control 321 placed in the upper right hand comer of the front face 301 of the card 300 may be used to close the calling card 300, so that it is no longer open and no longer rendered on the display. An "Add" control 323 situated on the front 301 of the card 300 is usable to add the card owner to a list of contacts, such as for a group interaction application. A "Chat" button 325 allows the recipient to contact the owner and open an online conversation. Such contact may be made via a central server as discussed below. The recipient may elect to pass the card to another party via a "Pass" control 327, although cards may be passed through other mechanisms, such as for example drag and drop, as well. When the owner displays his or her own calling card, an "Edit" control 329 is preferably displayed so that the owner can change the appearance and content of their card. As discussed below, any changes will be reflected in a most recent version of the calling card stored on a central server so that each time any party opens the card 300 they have access to the latest version thereof. In the bottom right hand corner of the front side 301 of the card 300, a flip control 319 is displayed. By selecting the flip control 319, the user can flip the card to view the reverse side 303 as shown in FIG. 3B. On the reverse side 303 of the card 300, the primary feature is a depiction 317 of the owner's social network. Finally, a "Help" item 331 allows a user to access information about what the calling card is and how to use it.

It can be seen that the card 300 provides its owner with a number of avenues through which to express his or her interests and affiliations. Upon opening their calling the card, the user can change their character 305 appearance, their background image or pattern 313, and the font size and color for the text on the card 300. In addition, the user can add or edit text within the text area 311. The text within the text area 311 may be any text desired by the owner, such as a phone number and/or address as with a traditional business card, or a quote, recipe, short poem, etc. The text preferably wraps, such as by word, within the text area 311, and also preferably becomes scrollable should the amount of text exceed the size of the text area 311. Preferably the text area 311 allows for rich text formatting, such as through a subset of HTML tags (e.g. font, link, center, paragraph, horizontal rule, numbered list, bulleted list, right justified, and heading). In the illustrated embodiment, the text area 311 is not formatted to optimally accommodate images or other media, although such may be accommodated if desired in an embodiment of the invention.

The owner can also add or remove affiliation symbols 315. Such symbols can be generated by the user, either by importing the image from another source or through the use of a drawing application, or can be prepackaged and provided by the distributor of the calling card application. The symbols should be such as to respect any proprietary rights, such as copyrights or trademark rights, that third parties may have. For symbol providers, a sufficient number and variety of symbols should be provided so as to enable a wide range of expression via selection. Appropriate symbol categories include without limitation: Greek letters, foods (bananas, apples, etc.), household items (phones, couches, etc.), cars, elements (earth, air, fire, water), tools (hammers, scythe, etc.), plants (flowers, trees, etc.), astronomy, folklore (e.g. alchemy, astrology), mathematics, medicine, music, recreation, religion, and safety.

With respect to the reverse side 303 of the card 300, the owner can also change the appearance of their social network. For example, the owner may opt not to display their network at all, or may opt to display information related to only those friends that the card owner and card recipient have in common. Thus, the card would appear differently depending upon the identity of the recipient. The information regarding the social network is gleaned at both the owner's machine and the recipient's machine from a respective list of contacts on each, such as for an online group experience application, or from another computer accessible listing of contacts or friends.

With respect to implementation, the calling card is preferably an XML entity, or "blob." The XML blob is stored on a central store connected preferably to the Internet, directly or indirectly, or to another network over which both the card owner and recipient can communicate at some point in time, although not necessarily at the same time. The contact information for the owner is a Passport address in an embodiment of the invention, but such is not required. Any other suitable contact information or format usable to connect the user to the card owner directly or indirectly may also be used without departing from the scope of the invention. The calling card can be accessed on the central store using a locator derived from the contact information via a one-way hash. Thus the owner's contact information preferably cannot be derived from the locator, although a party already having the owner's contact information could hash that information to create a locator to retrieve the owner's calling card. As will be described in greater detail hereinafter, the passing of a calling card from an owner or other person to a recipient comprises the passing of the locator, which is then automatically used to retrieve the calling card itself.

The calling card owner can update the calling card by updating the appropriate calling card file at the central server. The calling card locator and the XML blob are cached at the owner's machine (and at each recipient's machine). Thus, every time the calling card is rendered, the central server is checked to determine whether the calling card has been updated since the cache was populated, and if so, the latest version of the calling card is downloaded. Similarly, when the card is "passed," the version retrieved via the locator is the most recent version. Because a particular calling card may be retrieved by a number of recipients, the updating of the calling card is preferably not signified via a simple flag. However, multiple flags associated with multiple recipients may be used, or, more preferably, the recipient cache date and the server most recent version date can be compared to determine whether an update has occurred for the calling card in question.

Thursday
Aug212008

SciAm: Privacy in an Age of Terabytes and Terror

The following is an introduction to Scientific American's August, 2008 issue focusing on privacy: 

"Our jittery state since 9/11, coupled with the Internet revolution, is shifting the boundaries between public interest and "the right to be let alone"

A cold wind is blowing across the landscape of privacy. The twin imperatives of technological advancement and coun­terterrorism have led to dramatic and possibly irreversible changes in what people can expect to remain of private life. Nearly 10 years ago Scott McNealy of Sun Microsystems famously pronounced the death of privacy. “Get over it,” he said. Some people, primarily those younger than about 25, claim to have done just that, embracing its antithesis, total public disclosure. And of course in many cases—determining the whereabouts of a terrorist or the carrier of a disease—public interest has an overwhelming claim on information that is usually private.

Yet in many contexts—banking, commerce, diplomacy, medicine—private com­­munications are essential. The founding fa­­thers of the Republic put great stock in personal privacy; privacy is embodied (though, as we are often reminded, not stated) in the Bill of Rights. In her keynote essay Esther Dyson clarifies what “privacy” means by reminding us what it is not: several important issues commonly labeled dilemmas of privacy are better understood as issues of security, health policy, insurance or self-pre­sentation ...."

For the full introductory article, and for links to the other privacy articles in this issue of the Scientific American, go to Privacy in an Age of Terabytes and Terror.

Wednesday
Aug202008

US Patent 5,862,325: Computer-based communication system and method using metadata defining a control structure (Intermind Corporation)

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):

[Original image modified for size and/or readability]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]