WO2001044965A1 - System and method for distributing content over a network - Google Patents

System and method for distributing content over a network Download PDF

Info

Publication number
WO2001044965A1
WO2001044965A1 PCT/US2000/034099 US0034099W WO0144965A1 WO 2001044965 A1 WO2001044965 A1 WO 2001044965A1 US 0034099 W US0034099 W US 0034099W WO 0144965 A1 WO0144965 A1 WO 0144965A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
content
agent
distribution
action
Prior art date
Application number
PCT/US2000/034099
Other languages
French (fr)
Inventor
Harold Aaron Ludtke
Original Assignee
Sony Electronics 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 Sony Electronics Inc. filed Critical Sony Electronics Inc.
Priority to AU25807/01A priority Critical patent/AU2580701A/en
Publication of WO2001044965A1 publication Critical patent/WO2001044965A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1043Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • a better method is needed to enable a first business to discover, negotiate with, and facilitate an arrangement with a second business that can provide some kind of service to the first business, and for the second business to receive appropriate compensation for those services.
  • the method is preferably based entirely on software technology such that no human intervention is required for the entire sequence from start to finish. It is further desirable for the method to take full advantage of the dynamic nature of the Internet in terms of new service providers becoming available on a continuous basis, that can also adapt to and span communications infrastructures beyond the Internet.
  • the present invention addresses these needs.
  • One aspect of the present invention includes a method of acting on content at a node. The method includes receiving a content agent from another one of the nodes, where the content agent includes content and terms of distribution for the content.
  • the terms of distribution include an action to be taken by the node such that successful completion of the action by the node entitles the entity operating the node to compensation.
  • the method includes the steps of automatically determining whether to perform the action based on the terms of distribution and automatically performing the action upon an affirmative result of the determination.
  • the method preferably also includes automatically accruing the entitlement to compensation in response to the node successfully performing the action. The accrual may be conditioned not only upon the node successfully performing the action, but also upon another one of the nodes performing another action contained in the terms of distribution. It is desirable that the terms of distribution describe the actual compensation.
  • the method performs the determination by comparing the compensation against the cost of performing the action, such as by analyzing the likelihood of the node accruing the entitlement to the compensation and the cost of the node performing the action.
  • the determination may also be made by comparing data contained in the content agent and the characteristics of the content with data contained in the node.
  • the method desirably includes notifying a clearinghouse node so the clearinghouse node can record the entitlement to compensation.
  • the notification may be made simply by sending the content agent itself to the clearinghouse node by using the address of the clearinghouse node supplied by the content agent. For example, if the compensation is a monetary payment, the clearinghouse node can then notify the entity responsible for actually making the payment that a payment has accrued.
  • the node contains a node agent that performs the determination step and the node agent first checks whether or not the node agent has previously received the content agent. If it has, the node agent would not perform the determination step or perform the action.
  • the method optionally includes evaluating whether the node satisfies eligibility criteria and not performing the determining and performing steps if the eligibility criteria is not satisfied.
  • the eligibility criteria may be a part of the terms of distribution and the content agent performs the process of evaluation by evaluating a description of the node that is received from the node.
  • the method include storing in the content agent the identity of the node and the manner which the node should be paid, such as bank account information.
  • One of many advantages of the present invention is that there are many potential actions that may be performed.
  • One potential action includes distributing the content agent to another one of the nodes in the set of nodes. If so, the nodes to whom the content agent is sent may be chosen based upon data contained in the content agent. Preferably, the foregoing method is then repeated at the next node.
  • Another potential action includes using the content, such as displaying it.
  • Yet another action includes downloading the content from the node to a device connected to the node.
  • Another aspect of the present invention provides a node operated by an entity such that the node includes a processor under the control of programs and one of the programs is a node agent.
  • the node agent is adapted to automatically access a content agent and automatically determine whether to perform the action based on the terms of distribution. Preferably, the node automatically performs the action upon an affirmative result of the determination.
  • the node agent is a distribution agent and the action to be performed is distribution of the content agent to other nodes upon the other nodes meeting predetermined criteria.
  • the node agent is a destination agent and the action further includes using the content of the content agent as described above, such as downloading the content to a personal data device or downloading a discount or award to an electronic version of a wallet.
  • the node optionally includes a description of the node and a unique identifier differentiating the node from any other node of the set of nodes. If the agent is associated with a web site, the description of the node may include a description of the data on the web site and an identification of the entity operating the node.
  • the content agent contains a data storage block for storing the unique identifier of the node and the node from which the content agent was sent. The content agent may also include a unique identifier.
  • Yet another aspect of the present invention provides node having a processor under the control of programs and one of the programs is a clearinghouse agent.
  • the clearinghouse agent creates content agents for further distribution to other nodes of the set and also automatically records the accrual of the compensation upon notification that the action has been successfully performed by another node.
  • the node may be a general purpose computer.
  • the nodes may distribute and receive content agents by any number of means, including via: a network; the Internet; a network where one of the nodes is a network server; wireless broadcast such as a digital television signal; or physical media such as DVD.
  • the content agents can vary in sophistication.
  • a content agent that is an electronic version of a document that does not contain executable functions or routines.
  • a content agent that is an executable program, such as a Java applet, containing data and functions where some of the data and some of the functions are accessible by the node agent only on a limited basis.
  • the terms of distribution may be in Extensible Markup Language.
  • the terms of distribution may also include a second action to be taken by the node whereby successful completion of the second action by the node entitles the entity to compensation.
  • the terms of distribution may further include an expiration date by which the action must be successfully completed in order to entitle the entity to compensation.
  • the second action may also include use of the content by either the current node or another node, and the compensation is conditional upon such use, regardless of whether there is any compensation owed to the other node as a result of such use.
  • the content is similarly flexible, such as including text, still images, video images, sound or a combination thereof.
  • the content comprises advertising such as a coupon for a monetary discount or award which is provided to a digital wallet.
  • a clearinghouse node creates a content agent, the content agent including content and terms of distribution.
  • the terms of distribution include a first action and a second action to be successfully completed by other nodes of the network.
  • the first action is to distribute the content agent to other nodes of the network and the terms of distribution contain a promise of compensation to nodes which successfully complete the first action.
  • the second action is to use the content.
  • the clearinghouse node then transmits a copy of the content agent to a first distribution node.
  • the first distribution node automatically receives the content agent, evaluates the terms of distribution, determines whether or not the node desires to perform the first action based on the terms of distribution, and, if it does, appends its identity to the content agent and distributes the content agent to a destination node or a second distribution node or both. If the content agent is distributed to the second distribution node, the second distribution node automatically performs the foregoing steps of receiving, evaluating, determining and, dependent upon the determination, the steps of appending and distributing.
  • the destination node automatically receives the content agent, evaluates the terms of distribution, determines whether or not the node desires to perform the second action based on the terms of distribution, and, if it does, uses the content and sends the appended identity or identities to the clearinghouse node with notification that the second action has been successfully completed.
  • the clearinghouse node automatically accrues compensation owed to the distribution nodes corresponding with the appended identity or identities.
  • the content is a coupon for receiving a monetary discount or award and the second action includes providing the coupon to an end user or retailer.
  • the methods are performed substantially automatically.
  • FIGURE 1 is a functional diagram of a system of one embodiment of the invention.
  • FIGURE 2 is a functional diagram of a content agent in accordance with one embodiment of the invention.
  • FIGURE 3 is a set of data in accordance with one embodiment of the invention.
  • FIGURE 4 is a functional diagram of a potential path of distribution between distribution nodes .
  • FIGURE 5 is a functional diagram of another potential path of distribution between distribution nodes.
  • FIGURE 6 is a functional diagram of a clearinghouse node in accordance with another embodiment of the invention.
  • FIGURE 7 is a functional diagram of a system of another embodiment of the invention.
  • a system 50 in accordance with one embodiment of the invention comprises a network 80 of nodes, including clearinghouse node 100, distribution nodes such as distribution node 200, and destination node 300. Although only a few nodes are depicted in FIGURE 1, it should be appreciated that a typical system can include a large number of distribution and destination notes, such as thousands of distribution nodes and millions of destination nodes.
  • the nodes comprise general purpose computers or network servers and the network 80 comprises the Internet, intranets, or a local area network.
  • the network may also comprise a wireless network of devices as described more fully below.
  • System 50 distributes and acts upon content.
  • Content may comprise any information which can be stored in electronic form including text, still images, video images, sound and combinations thereof.
  • the content may be an advertisement for a product or service.
  • the content may be an electronic version of a coupon comprising a set of data which, when presented to a retailer by an authorized recipient of the coupon, entitles the recipient to a discount or other award.
  • System 50 distributes the content by encapsulating it into a content agent and distributing the content agent.
  • content agent 150 comprises an electronic file containing a number of different components including content 159, identity information 160, terms of distribution 157, negotiation and communications functionality block 155 and dynamic data storage 162.
  • content agent 150 takes the form of an executable entity such as a software program written as a Java applet.
  • Content agents are distributed in accordance with a set of rules stored in terms of distribution data 157.
  • the terms of distribution inform a node what actions it is authorized, or not authorized, to take with respect to the content agent and also sets forth the compensation to be paid upon the successful completion of certain actions.
  • this data is stored in accordance with the requirements of Extensible Markup Language (XML) or some similar syntax.
  • XML Extensible Markup Language
  • An advantage of using XML is that the syntax of the system can be updated merely by periodically sending XML templates to the various agents.
  • a portion of the data in terms of distribution 157 contains a set of data defining whether a particular node of system 50 is eligible to perform any actions in connection with the content agent.
  • node eligibility data 165 may contain data specifying that if the network node is engaged in the distribution of adult content, then it is not permitted to take any action in connection with the content agent.
  • Node eligibility criteria data is expressed and stored in the terms of distribution 157 as a string of characters 166 having the form shown in FIGURE 3.
  • a node is authorized to act on the content agent if it meets all of the criteria listed between the " ⁇ eligible>" begin tag and the " ⁇ /eligible>” end tag.
  • One of the eligibility criteria in FIGURE 3 is that the current node is a member of the class defined by the " ⁇ class>” tags; specifically, the node is either a member of the "web server” or "end-user” class.
  • the node is not authorized to act on the content agent if it meets any of the criteria listed between the " ⁇ not eligible>” begin tag and the " ⁇ /not eligible>” end tag.
  • a node may be excluded from acting on certain content agents based on any number of reasons. Such reasons may be the fact that the node is involved with dissemination of adult material or is operated by a competitor of the content's creator. Such restrictions may also be based on business relationships or corporate goodwill.
  • a node is not eligible if it is the sort of node, i.e. class, which deals in adult content. It is also not eligible if it is operated by the company XYZ Corp.
  • terms of distribution 157 also include a set of data corresponding with actions which may be completed by a node.
  • the first action 167 comprises distributing content agent 150 to a different node of the network 50. This action is expressed as string 168 of FIGURE 3.
  • the tag " ⁇ distribute>" indicates that the action to be completed is further distribution of the content agent to other nodes.
  • the class of nodes that it can be delivered to is "any", which means that the content agent can be delivered to any node. Note that although successful completion of the action comprises delivering the content agent to any node, the next node cannot act on the content agent unless it meets the eligibility requirements as explained above.
  • the tags " ⁇ expires>” indicate that the action, i.e. the distribution, must be performed by December 31, 2005.
  • the terms of distribution further include the compensation to be received by the node in the event the node successfully completes certain actions.
  • the compensation to be received is provided between the " ⁇ payment>" tags, i.e. $0.05.
  • a compensation condition is expressed as a keyword or keywords between the " ⁇ condition>” tags such as “coupon redeemed”.
  • the keywords "coupon redeemed” indicate that the coupon contained in the content agent must be redeemed by an end user before any payments will be made to the node that distributed the content.
  • the terms of distribution may include more than one action per node. Since content agent 150 contains a coupon, the ultimate goal of the content agent is to have the coupon, quickly redeemed. Therefore, the terms of distribution pay a bonus for distributing the content agent directly to end users .
  • This action is represented by a string of characters 170 between another set of " ⁇ TOD>" tags that follow the ⁇ TOD> string 168.
  • the expiration date of this second action January 1, 2006, is different than the expiration of the first action, namely, December 31, 2005.
  • Each action has its own expiration date to enable individual actions to have individual lifecycles. This maximizes the flexibility of the overall system by allowing a single content agent to establish different action-compensation agreements with different nodes over different life cycles. For example, the payment rate is also different, namely $0.02.
  • the terms of distribution comprise a set of requirements and preferences that spell out how the content shall be distributed or used by entities in a distribution channel.
  • the actions permitted by the terms of distribution form the requirements of distribution.
  • Content agent 150 further comprises a set of data that reflects its identity.
  • the content agent identity data 160 contains the agent's unique identification code 172. Each instance of a particular content agent class of objects has a unique identification 172.
  • the content agent identification data 160 further includes the agent's class.
  • Agent class 173 comprises a general description of content 159, for example, agent class data 173 may comprise the key word "coupon" in the event content 159 contains an electronic coupon.
  • Target demographic information 174 sets forth goals of the content agent which do not necessarily rise to the level of a requirement for distribution.
  • target demographic information 174 may include the phrase "dairy products consumer" in the event the coupon can be redeemed by purchasing milk.
  • Target demographic information 174 may assist nodes in their decision of whether or where to further distribute content agent 150. This type of information could include enumerated class values (e.g. "marketing", “dairy products", etc.) or any other type of descriptive information.
  • Vendor identification 175 is also contained in content agent identification data 160. Vendor identification 175 contains the data necessary for the nodes of the system to determine the identity of the vendor who provided the content that is being distributed.
  • Content agent identification data 160 also includes the network address of the clearinghouse node 100. This address may be necessary for use by the other nodes of the system.
  • Negotiation and communications functionality block 155 contains the routines and algorithms used by the software that represents the content agent. These routines carry out negotiations with nodes and collect and analyze information. The routines are exposed via an API that can be invoked by the software contained on the nodes of the system. Various entities such as distribution or destination nodes will have access to only the information they need or are entitled to.
  • the function block 155 is responsible for maintaining the data access control policies of the content agent. The precise functions are explained in more detail in connection with the method of operation below.
  • the content agent 150 preferably takes the form of an executable entity such as a Java applet.
  • a Java applet may be executed by various processors on different computer platforms. Java applets are also good vehicles for hiding or exposing data, functions and methods.
  • an executable Java applet, transmitted in object code form can encapsulate its data.
  • the data contained in the content agent is not accessible by external programs unless certain criteria are met. Encapsulation also provides the advantage of maintaining the integrity of the data, i.e., the data contained in a content agent may only be modified by calling the functions and procedures of the content agent.
  • the content agent and its data structures are opaque, meaning that external entities such as the system's nodes do not have knowledge of how data is stored within the content agent. This enables the content agent to protect sensitive or copyrighted data or content in encrypted format while it is traveling down the distribution channel.
  • the dynamic data storage block 162 is a data structure that is managed by the content agent. This data block can be used, for example, to keep track of the nodes which have distributed the particular instance of the content agent 150. Content agents are created by clearinghouse node 100
  • Clearing house node 100 generally comprises a server computer which includes all of the internal components normally found in a personal computer or network server such as, for example, a central processing unit (such as processor 107), memory storage devices such as disc drives, and all of the components used for connecting these elements with one another. These internal elements of the server computer may be of any conventional type.
  • the clearinghouse node 100 communicates with other nodes of system 50 via communications mechanism 105.
  • the communication mechanism may be any mechanism typically used on a network server such as a modem or other telecommunications connection line.
  • the communication mechanism may use any particular format of communication, including Internet protocols, wireless or cellular signals .
  • Clearinghouse node 100 contains a number of programs and databases, such as clearinghouse agent 110, vendor database 116, distributor database 115 and transaction database 117.
  • Clearinghouse agent 110 like content agent 150, is an active data structure containing both data and programming routines. Clearinghouse agent 110, unlike the content agent 150, remains on the same node once installed. Clearinghouse agent 110 interacts with the databases and creates content agents as explained more fully below in connection with the operation of the system.
  • Vendor database 116 is a collection of data related to the vendors that the clearinghouse node is currently dealing with or has previously dealt with. Preferably, there is a separate vendor database for each vendor, past and present, but it is acceptable for a single database to accumulate all information about past and present vendors. For security purposes, portions of the information stored in a vendor database may be encrypted in order to prevent any one other than the associated vendor, including the operator of the clearing house, from accessing the information stored therein.
  • the distributor database 115 holds information regarding each node of the system 50 that has either been involved in a transaction with a content agent originating from the clearinghouse or is known to be immediately downstream of the clearinghouse. For example, distributor database 115 contains the information necessary to pay a node when a term of distribution of a content agent has been successfully completed.
  • Clearing house agent 110 stores records of all transactions facilitated by the clearinghouse in transaction database 117. Each time the clearinghouse node receives notification that compensation to a node has accrued because of the successful completion of an action in a term of distribution, the particular node, term of distribution and accrual are separately stored in database 117.
  • Distribution nodes Nodes of system 50 that receive and further distribute content agents are referred to as distribution nodes.
  • a distribution node such as node 200, is an entity that can implement those actions of a content agent which relate to distribution.
  • Distribution node 200 preferably comprises a computer such as those described above in connection with clearinghouse node 100 and includes a CPU processor 205.
  • Distribution node 200 communicates with the other nodes of the system via communication mechanism 215 which is similar to communication mechanism 105 of clearinghouse node 100.
  • Distribution agent 210 performs a number of functions including accessing and communicating with incoming content agents and checking to see if distribution agent 210 has already been associated with the content agent. These functions are discussed with more particularity in connection with the operation of the system.
  • distribution agent 210 is an active data structure containing functions which can be executed by the node's processor. Also like the clearinghouse agent 110, the distribution agent is not intended to be removed from the node once it has been installed.
  • Distribution agent 210 includes identification data 225 identifying the particular distribution agent or node. Each node and agent of system 50 has a unique identification code which can be queried by a content agent. If distribution node 200 is a server connected to the clearinghouse node 100 via the Internet and there is only one agent on the node, the unique identification code of both the node and the agent may comprise a URL.
  • the identification data 225 also includes a description of the distribution agent.
  • the distribution agent description contains keywords describing the characteristics of the distribution agent and the associated distribution node.
  • the node description may describe the platform with which the distribution agent 210 is associated, such as "web server”.
  • the distribution agent class description may include more information relating to the data associated with its web site, such as "food” or, more specifically, "food: dairy products”. Such data preferably includes the name of the entity or person operating the agent.
  • One of the functions of the identification data 225 is to enable the distribution agent 210 and/or content agent 150 to determine whether the distribution agent meets the eligibility requirements of the content agent.
  • Data storage area 220 is used by the distribution agent 210 to keep track of items such as past and pending transactions, payment histories, references to content agents with which it has dealt, contact information necessary for communication with the clearinghouse node 100, storage of security keys and other private data and other information necessary to the operation of the distribution agent 210.
  • the data in storage area 220 is secured such that it may only be accessed by the distribution agent 210. Because the data in storage area 220 is secured such that it may only be accessed by the distribution agent 210, content agents which pass through the node do not have direct access to such data. Rather, content agents are only provided with data contained in storage area 220 if distribution agent 210 provides such data to the content agent.
  • Destination node 300 may be any device capable of receiving content agents and acting on content.
  • the destination node 300 may be a typical personal computer used in a person's home which communicates with distribution node 200 via a communication mechanism 315 such as a modem.
  • Destination node 300 further includes a CPU 305.
  • Destination agent 310 like content agent 150, is an active data structure containing both data and programming routines. Destination agent 310, unlike the content agent 150, remains on the same destination node 300 once installed. The functions of the destination agent 310 are described more fully below. Destination node 300 further includes a back channel
  • Back channel 330 comprises a second communication mechanism which connects with peripheral devices to the destination node 330.
  • the peripheral device 340 may be a portable Digital Wallet or Personal Digital Assistant (PDA) that communicates with the destination node 300 via an infrared or other wireless connection such as those common to portable computers .
  • Destination agent 310 includes identification data 315 which identifies the particular destination agent 310. Each destination agent 310 has a unique identification code which can be queried by a content agent. If the destination agent is uniquely associated with a singe portable device 340, the identification code may be the device's Globally Unique Identifier (GUID) .
  • GUID Globally Unique Identifier
  • Identification data 315 also includes a description of the destination agent 310.
  • the destination agent description contains keywords describing the characteristics or class of the destination agent and the associated node.
  • the node description may describe the platform with which the distribution agent 310 is associated, such as "personal computer” or the class of operator such as "end user”.
  • the node description may describe the peripheral device 340 for which the content is ultimately intended, such as "Digital Wallet”.
  • One of the functions of the identification data 315 is to enable the destination agent 310 and/or content agent 150 determine whether the destination node meets the eligibility requirements of the content agent.
  • a vendor 75 desires to have content transmitted to one or more destinations throughout the network system 50.
  • the vendor 75 will transmit the content and terms of distribution to clearinghouse node 100.
  • This transmission may come in any form, including a phone call to personnel at the clearinghouse node who will key in the data in the syntax of the system.
  • the content is an electronic version of a coupon.
  • clearinghouse agent 110 creates a content agent 150 having the functionality of content agent 150 of FIGURE 2.
  • function block 155 provides the sole access to the data contained in content agent 150. Therefore, in order to store the content, clearinghouse agent 110 calls a function in the content agent 150 which has the name StoreCon ten t (File , s tring Description) .
  • the File parameter is set equal to the electronic file associated with the coupon itself and the Description parameter is a string of keywords which describes the content, i.e. "coupon”.
  • the StoreCon ten t function then stores the content file as data 159 and the description in content agent class data 173.
  • all data stored in the agents of the present invention is stored in the same manner, that is, calling a function or method of the associated agent and providing the data to be stored as a parameter of that function or method.
  • the eligibility criteria 166 and the terms of distribution 168, 170 of FIGURE 3 would be stored as data 165, 167 and 169, respectively, of FIGURE 2 in the same manner. If the coupon pertains to milk, the clearinghouse agent 110 provides the keywords "food : dairy products: milk" to be stored in target demographic information 174.
  • the clearinghouse agent 110 further assigns the content agent 150 a unique identification code 172 which is different from any other identification number assigned by the clearinghouse agent 110 to a content agent.
  • the identification number may be "255".
  • Clearinghouse agent 110 next obtains a list of distributors from distributor database 115 and transmits a copy, or "instance", of content agent 150 to each one of the distributors using the address locators associated with the distributors stored in database 115.
  • network 80 comprises the Internet and the addresses of the nodes correspond with a URL devoted to receiving content agents.
  • Each transmitted instance of the particular content agent 150 is identical to the other except for identification code 172.
  • the identification code is changed by appending another number to the end so that each instance has its own unique identification (although they may share the same prefix) .
  • the content agent 150 transmitted to distribution node 200 has the identification code "255:1" whereas the content agent 150 transmitted to distribution node 250 has the code "255:2".
  • the clearinghouse agent could append the distribution node's unique identification code to form a unique content agent identification code.
  • Distribution agent 210 queries the content agent's unique identification 172.
  • Distribution agent 210 keeps a list of all content agents it has previously received in database 220 and checks that list upon a content agent's arrival. If the prefix stored in content agent's identification 172 is already in database 220, then the distribution agent 210 will not take any further action in connection with the content agent.
  • the purpose of this step is to eliminate inefficiencies in distribution caused by multiple up-stream nodes trying to feed the same down-stream node, or by a loop in which several nodes get caught in a cycle of repeatedly passing the same content agent amongst themselves. As shown in FIGURE 4, distribution nodes 2 and 3 are both feeding the same content agent to distribution node 4.
  • distribution nodes 1, 2 and 3 continuously transmit the same content agent to one another.
  • This step also eliminates wasted processing of an item that has already been accepted or rejected.
  • distribution agent 210 If distribution agent 210 has not yet seen content agent 150, it queries the content agent to see if it is eligible to perform the actions desired by the content agent.
  • the distribution agent 210 calls the Submi tEligibili ty (Agen tSpec Dis tNodelD) function of content agent 150.
  • the DistNodelD parameter is set equal to the identification information 225 stored in distribution agent 210, such as: the distribution agent's identification number, the company operating the distribution node 200 and agent 210, and the distribution agent's class information.
  • the term "AgentSpec” requires that the identification information be provided in a predefined object format named "AgentSpec.”
  • the Submi tEligibili ty function returns a boolean value which indicates whether the distribution agent 210 has met the eligibility requirements of the content agent. Using the eligibility requirements 166 of FIGURE 3, the Submi tEligibili ty function determines whether any of the keywords contained in the distribution agent's class information equals the "class” keywords stored in the "eligible” criteria and the "class” keywords stored in the "non eligible” criteria. It also performs the same analysis with respect to the "operated by" criteria.
  • node 200 in this example is assumed to be a web server which does not deal in adult content and is not operated by XYZ Corp.
  • the Submi tEligibil i ty function will return the value "True” to distribution agent 210. This value is also stored internally in content agent 150 and, if set to "True", permits other functions in function module 155 to be called by distribution agent 210.
  • Distribution agent 210 next calls the Reques t ToD () function of content agent 150.
  • the Reques tToD () function returns a string containing actions 167, 169 of terms of distribution 157 (FIGURE 2), i.e. strings 168, 170 of FIGURE 3.
  • Distribution agent 210 then analyzes the proposed actions set forth in the terms of distribution to see if the compensation justifies the distribution agent undertaking the action. For example, terms of distribution 168 state that if the distribution agent distributes the content agent to any node of any class before December 31, 2005, then the distribution node will be paid $0.05 if the coupon contained in the content agent is ultimately redeemed.
  • the operator of the distribution agent will have provided the distribution agent with a formula which enables it to automatically make this decision.
  • the formula may be as simple as determining whether the proposed compensation for distribution exceeds a particular value. For example, if the distribution node's cost of distributing a content agent exceeds $0.05, then the term of distribution will be rejected.
  • the formula may be more sophisticated.
  • the formula may query database 220 and determine the percentage of times it has actually received payment when it has agreed to distribute a content agent for clearinghouse agent 110. The formula then multiplies that percentage against a predetermined amount that reflects the cost of distributing a single content agent. If that product exceeds the proposed compensation of $0.05, then the distribution agent would accept the proposed action. Otherwise, the proposed action is rejected.
  • An even more sophisticated formula would increase the percentage if a keyword in target demographic information 174 matches a target audience for which the distribution agent has a lot of information.
  • the target demographic information 174 includes the keyword "food:dairy products :milk" to reflect the fact that the coupon is for milk, and if the distribution node is a web site devoted to food products, then the foregoing percentage may be increased by a predetermined amount associated with class matching. Because of the bonus for distributing directly to end users in term of distribution 170, the formula may increase the percentage yet again if the distribution agent has a substantial number of electronic addresses of end users. The percentage may further factor in whether the clearinghouse agent associated with the content agent has a good record regarding prompt (or any) payment.
  • the formula may also cause the distribution agent to reject any content agent associated with a vendor who is a competitor to the distribution agent's operator.
  • the identification information shows that the vendor is a partner of the distribution agent's operator, then the distribution agent may agree to perform the action regardless of the percentage.
  • Distribution agent 210 may make such a determination by consulting a list of competitors and partners in database 220 and comparing that list with vendor identification 175 of content agent 150.
  • the operator of a distribution agent has the ability to create relatively sophisticated formulas to automatically accept or reject proposed actions based on calculations, compensation amounts and keywords. If the terms of distribution are accepted, this is considered an affirmative decision regardless of whether or not the actual formula yielded a true, false or other value.
  • the agent's identification and class information are powerful pieces of data that distribution agents can use as part of their decision making processes in the creation of a dynamic content distribution channel. If there is a match of some kind, then the likelihood of successful acceptance and use of the content is higher, and therefore the likelihood that the distribution node will actually receive compensation for its efforts is higher.
  • the distribution agent If the data is stored in a common and flexible language such as XML and the distribution agent is written in Java, such formulas can be created with relative ease by those of ordinary skill in the art in light of the foregoing disclosure.
  • the foregoing process occurs automatically, i.e. it occurs without human intervention once initiated.
  • the process may also be substantially automatic, i.e. the distribution agent's decision-making process may require the distribution agent in certain circumstances to confer with one or more entities that are external to the distribution agent.
  • Such an entity may be a human operator or some remote database. The content agent would not be aware of such consultation.
  • distribution agent 210 If distribution agent 210 agrees to distribute the content agent 150 in accordance with the terms of distribution, it calls the Regis terParticipan t (Agen tSpec dis tributionAgen t, ToDSpec thisToD) function of the content agent.
  • the dis tributionAgen t parameter is a data structure that includes the identification information 225 of the distribution agent 210.
  • the ThisToD parameter represents the particular terms of distribution, such as strings 168 and 170 of FIGURE 3, that the distribution agent has agreed to.
  • the This ToD parameter also includes any information pertaining to where the payments are to be sent by the clearing house. This can be a bank routing number to an account, or in some other format that is sufficient for online financial transaction processing.
  • the distribution agent may further identify an account that is managed by the clearing house, and the clearing house allocates credit and/or payments among its clients based on their unique identification values.
  • the Regis terParticipan t function also double-checks the distribution node identification information to ensure that there is nothing in the information which would indicate that the node is incapable of implementing the particular action.
  • content agent 150 modifies the data in storage 162. Preferably, it stores at least the distribution agent's unique identification code and the agreed-to term of distribution, i.e., either string 168 itself or a reference to the string. In either case, an official record is created in the content agent that associates the unique ID of the distribution agent, the terms of distribution and the necessary information for issuing payments in the event of successful completion of a term of distribution requiring compensation.
  • This acceptance of an action shall be referred to as a transaction, and the information associated with a transaction preferably includes the unique identity of the content agent, the unique identity of the distribution agent, the terms of distribution and information regarding where payment should be made .
  • Distribution agent 210 also keeps a record of the transaction information in data block 220 for later reconciliation against micropayment information or for other uses such as future business relationship management.
  • distribution agent 210 stores additional information in storage black 220 to increase the amount of data it can use to accept or reject terms of distribution.
  • the agent may choose to record even more details regarding the transaction so that it can look back on the data history with a given content agent class, vendor, content type and the like to determine if it is a wise decision to enter into a new transaction.
  • the information may also be used for future business relationship management. It is recommended that the distribution agents store at least a minimal amount of information regarding a transaction for later reconciliation against micropayment information.
  • the content agent 150 is then sent to the next node or nodes over network 80 and deleted from node 200.
  • Distribution agent 210 keeps a list of downstream node addresses in database 220 much like clearinghouse agent 110 keeps a list of distribution node addresses in distributor database 115.
  • the list of downstream nodes includes information about the nodes so that particular nodes can be targeted. Because transmitting content agents to distribution nodes which are likely to refuse results in inefficiency and waste of resources, it behooves the various entities in a dynamic distribution chain to exercise some judgment in the downstream partners they choose (assuming that the act of content distribution incurs some kind of overhead that must be weighed against the business advantages of participating) .
  • This judgment can be based on a variety of information such as shared data mining results, whereby various distribution agents share information with each other regarding the statistical success of the various contracts in which they participate. For instance, using the foregoing example, distribution agent 210 will certainly send the content agent to other web servers associated with food but may not send the content agent to web servers containing adult content.
  • This list of information may be compiled in any number of ways, including knowledge of business and distribution relationships, such as customer lists, which are not specific to the particular content agent. The information may also be updated based on prior, successful transactions.
  • each of the distribution nodes Upon receiving the content agent, each of the distribution nodes repeats the process associated with distribution node 200.
  • the content agent flows through a distribution channel, passing from node to node.
  • Content agents are transitory in nature; that is, they are not persistent objects in terms of remaining on a distribution node. Once a content agent has been sent to the next downstream node, only a record of transactions and rejections remains.
  • the channel is dynamic because the precise path of distribution may not be known until the content agent interacts with each distribution agent.
  • Distribution agents may send different content agents in different directions. Distribution agents may also have sent the same content agent in a different direction if the content agent had been received at a different time.
  • distribution agent 210 If distribution agent 210 refuses to accept any terms of distribution, it calls the Rej ectToD (Agen tSpec Dis tNodelD, ToDSpec thisToD) method of content agent 150.
  • the parameters are the same as discussed above in connection with the Regis terParticipan t function.
  • the Rej ect ToD function returns the address of the node which sent the content agent 150 to distribution node 200.
  • content agent 150 adds the identification information 225 of distribution agent 210 to database 162 and flags the information as relating to a refusal.
  • Distribution agent 210 then sends content agent 150 to the immediately adjacent, upstream node returned by the Rej ect ToD function.
  • the upstream node is clearinghouse node 100. However, if the upstream node is another distribution node, then the content agent immediately notifies the appropriate distribution agent that further distribution of that particular instance of the content agent has been halted. Once that distribution node indicates to content agent 150 that it understands, content agent 150 provides the distribution node with the next immediately adjacent, upstream node and the content agent 150 is sent upstream accordingly.
  • the distribution agent also takes any necessary steps for its own record keeping. The content agent thus dismantles the distribution chain for the content agent. Because the distribution chain is virtual and particular to each individual content agent, the same chain of nodes may still carry different content agents without disruption. Because content agent 150 may have been replicated many times after it leaves a particular distribution node, some of the other instances of the content agent may ultimately accrue payments in favor of the node. The process continues until the content agent reaches clearinghouse node 100.
  • content agent 150 will arrive at destination node 300.
  • the steps of detecting content agents, exchanging identification information, determining eligibility and accepting or rejecting terms of distribution follows the same process described above in connection with distribution node 200 and distribution agent 210.
  • the destination node 300 is the last node in the channel of distribution, it will not accept any terms of distribution relating to distribution such as terms of distribution 168 and 170 of FIGURE 3. Rather, if it accepts any terms of distribution at all, it would be terms of distribution 171 which specify that the content must be downloaded to devices in the "Digital Wallet" class.
  • the method of making decisions regarding the downloading of content may be no more complicated than destination agent 310 querying a list of portable devices 340 to see if one is a Digital Wallet.
  • destination agent 310 accepts the terms of distribution relating to downloading content, it calls the RegisterParticipant function in the same manner that distribution agent 210 calls the function.
  • Content agent 150 then verifies that, based on the information provided by the destination agent, the destination agent is capable of accepting the terms of distribution. If so, the identification information associated with destination agent 310 is stored in data storage 162 of content agent 150 and the content is made available for download from the content agent.
  • destination agent 310 instead requests the content from content agent 150 in accordance with the " ⁇ download content>" action of terms of distribution 171.
  • the destination agent calls the ieguestContent () function.
  • the function returns content 159 in decrypted form. Because the content is not decrypted until it is passed to the destination agent, copyright and security protection is enhanced. If desired, the content could also be passed in encrypted form to further enhance security; in such a case the destination agent or some other entity connected to the destination node must have the information necessary to decrypt the information.
  • Content agent 150 stores the transaction in data storage.
  • destination agent 310 next transfers the content to portable device 340 via backchannel communication mechanism 330.
  • Methods of transferring electronic information to portable devices are well known in the art. If the destination node 300 is a Windows-based personal computer with PalmOS compatible software and the portable device 340 is a PalmOS-compatible Digital Wallet connected to the computer via a wire-based or infrared connection, the PalmOS software on the personal computer handles the automatic synchronization of this new data with the device via the standard PalmOS conduit mechanism. In such a case, the destination agent can store the coupon in the Digital Wallet simply by storing the coupon in the appropriate folder on the Windows-based personal computer. This would trigger the automatic download of the coupon to the device ⁇
  • the destination agent asks the content agent -- by query -- whether it should be sent back to the clearinghouse. Because the only terms of distribution in FIGURE 3 that are associated with destination nodes comprises downloading content, content agent 150 will indicate that it is ready to be returned by providing the destination agent with the address of clearinghouse node 100. Destination agent 310 accordingly sends content agent 150 back to the clearinghouse node 100 over network 80.
  • clearinghouse agent 110 Upon receiving the incoming content agent, clearinghouse agent 110 removes all of the transactional information from the content agent and stores it in transaction database 117. A reference to all of the transaction information is also stored in vendor database 116. References to individual transactions based on the distribution agent's identity is next stored in distributor database 115. The content agent is then destroyed.
  • the operator of clearinghouse node 100 also manages the redemption of the electronic coupons it distributes. Accordingly, when the coupon which was contained in content agent 150 ultimately is redeemed, clearinghouse agent 110 is notified. Once clearinghouse agent 110 receives such notification, it searches transaction database 117 for all transactions associated with the content agent to which the coupon pertained, checks the terms of distribution to determine if compensation was conditional upon coupon redemption and, if so, makes a notification that compensation has accrued on behalf of and are owed to the operators of the applicable distribution nodes. Once all of the accrued payments owed to a particular operator exceed a predetermined threshold, payment is made to the operator in accordance with the payment terms provided by the downstream agents. For example, funds may be transferred to the bank accounts appended to the content agent by the distribution agent.
  • the present invention also has the advantage of permitting various configurations of the agents, terms of distribution and payments.
  • FIGURE 7 illustrates the channel of distribution over a number of different transmission mediums.
  • Channel 601 represents a similar network to that described above in connection with FIGURE 1.
  • Channel 603, on the other hand represents a one- directional channel.
  • the clearinghouse node may send a disk containing the coupon-oriented content agent 650 by conventional mail to distribution node 630.
  • Distribution node 630 is a digital television broadcaster that then broadcasts the content agent embedded in a broadcast signal to distribution node 640 which is actually a television set-top box containing a processor capable of executing a distribution agent.
  • Set-top box 640 then sends the content agent by infrared transmission to Digital Wallet 650.
  • the Digital Wallet 650 is not the destination node but, rather, a distribution node.
  • the ultimate destination node 670 is instead a store which is capable of redeeming the coupon contained in the content agent. Once the content agent is downloaded to the store 670, the last terms of distribution are implemented by the store.
  • the distribution node 670 instead sends the content agent 650 up through channel 603 which may comprise some other one-directional channel with a distribution node 660.
  • distribution node 670 could send the content agent 650 through bi-directional channel 601 if that channel is available. Because content agent 650 contains the payment information associated with distribution nodes 630, 640 and 650, there is no need to contact these nodes again to confirm the transaction before payment is made.
  • the present invention has the advantage of being capable of being implemented on any set of nodes which are capable of evaluating the terms of distribution of a content agent.
  • the content agent is stored in a DVD which is intended to be moved between different devices .
  • the content agent can be extracted from a DVD by a distribution agent built into the DVD device and then passed to a personal computer or digital television for further distribution and/or processing.
  • the present invention has the further advantage of not being limited to particular types of content.
  • the content may be an advertisement for display to end users which download a web page on the web site.
  • the terms of distribution could be expressed as string 171 of FIGURE 3 but the keyword "Digital Wallet” becomes "advertising banner” to reflect the fact that content should be downloaded and placed in an advertising banner as compared to a device.
  • the web page operator is reimbursed for displaying the advertisement by putting a payment amount between the " ⁇ payment>" tags .
  • the content may also comprise a questionnaire for users to fill out.
  • destination node 300 is a personal computer and display 325 is a computer monitor.
  • Content 159 contains the questionnaire.
  • the user could be reimbursed for filling out the questionnaire.
  • the content may comprise advertisements and requests for user feedback which are displayed on display 325.
  • the Reques t ToD function of content agent 150 is responsible for releasing the terms of distribution and only releases the terms of distribution after it has been provided with the identity of the destination agent or distribution agent. Accordingly, the Reques tToD function may optionally release different terms of distribution dependant upon the identity of the requesting agent.
  • vendor 75 may require that terms of distribution contain discounted or increased payments for certain distribution agents . These distribution agents could be identified either by their unique identification code or class. Alternatively, the distribution agent could query the content agent for private terms of distribution. Such private terms of distribution are likely to be created as a result of prior business arrangements between the vendor and the specified distribution agents.
  • the terms of distribution could require that the content agent be distributed only to particular nodes .
  • Such classes may be based not only on the platform (such as "web server") but also by demographics (such as "food : dairy products") .
  • the terms of distribution may specify specific distribution or destination agents by their address (such as certain web sites that must be involved in the distribution channel) .
  • the content may be stored at a remote site and content 159 contains a reference to the site.
  • One reason for this may be that the content is not yet ready to be handled, because an up-stream process is still working on it, but the content agent wants to prepare the subsequent down-stream nodes so that the full processing cycle proceeds as smoothly as possible with minimal delays.
  • Another reason may be to allow the content agent to establish a recurring service cycle, such as a monthly service, whereby the content is updated monthly but the content agent is only sent once a year. Content is delivered and processed periodically, each period being treated as an independently managed transaction, with all of those transactions being established by a single negotiation process. This maximizes efficiency of system resource consumption because a content agent does not have to be transmitted, stored and processed each month simply because the content changed.
  • the destination agent could transmit only the transactional information accumulated in storage 162 with a header indicating the identity of the content agent and the nature of the information.
  • the choice of sending a message or sending the content agent depends on the nature of the content and the terms of distribution. For example, if the content agent is to proceed further in a newly formed distribution channel (which begins with the existing destination node) , then it simply sends the transaction to the clearinghouse node and the content agent itself will proceed down the new distribution channel.
  • transactional information can be sent to the clearinghouse agent each time a content agent transacts with a distribution agent. This allows the content agent data structure to remain constant in size, rather than continuously growing.
  • a potential disadvantage of this alternative is that each distribution node must have a means of contacting the clearinghouse node. If both methods are implemented, namely, the continuous sending of transactional information and the final sending of the content agent, conflicting or missing information can be further processed.
  • the rejected content agent is not physically passed back through the system, but a simple "contract cancelled" message is sent back to each, or passed back among, the distribution agents instead. This message would ultimately reach the clearinghouse agent and the transactions analyzed. Rather than relying on the distribution agent, the content agent could also be instructed to "self destruct", i.e. simply delete itself from the destination node without modifying the downloaded content. In a one-way channel of distribution such as 602 of
  • FIGURE 7 it may not be possible for distribution node 670 to inform the upstream nodes of the refusal.
  • distribution simply stops and the natural expiration date of the terms of distribution eventually takes effect.
  • the distribution agents determine that the payment deadline has passed with no payment issued, they will then realize that the contract requirements were not met and can take the necessary steps to delete the transaction and/or store some related information as needed.
  • clearinghouse node 600 could create and transmit a new content agent which limits distribution to the particular addresses of the distribution nodes 630, 640 and 650. This second content agent would then contain information associated with the refusal.
  • the sophistication of the content agents can also vary from relatively unsophisticated to very sophisticated.
  • a content agent may comprise no more than an unencrypted document or email, where a part of the document contains the terms of distribution and the other part of the document is content in the form of text, an attachment or hyperlink to the content's location.
  • the distribution and destination agents do not call any functions in the content agent. Rather, the agents simply read the terms of distribution, append the transactional information to the document if they agree to the terms, and then distribute the document or use the content.
  • the content agents may actually perform the decision and performance functions rather than the distribution agent. For example, rather than the distribution agent downloading all of the terms of distribution, the distribution agent may tell the content agent what it is willing to do and the content agent would then agree or refuse the proposal.
  • the content agent could also call the API's of the distribution node itself, such as distribution and downloading of content.
  • the destination agent may have no responsibility other than providing a list of actions that the node is willing to enable to make available to the content agent.
  • both the content agent and the distribution and destination agents have the ability to propose and evaluate terms of distribution. Accordingly, if the distribution agent is not willing to accept the terms of distribution proposed by the content agent, it can propose alternative terms of distribution for the content agent to evaluate for acceptance or refusal. The content agent would then make the same sort of acceptance/rejection evaluations as the distribution agent.
  • the clearinghouse node includes a plurality of vendor agents to assist it with the actions occurring at the node.
  • the vendor agents store information such as completed distribution channels and associated content agents in the vendor database.
  • the vendor agents 520-22 are similar to the other agents described above inasmuch as each vendor agent includes a unique identity 525 and a set of functions 530. Any agents and programs external to the agent can only gain access to the data contained in the vendor agent by calling the appropriate function and providing the parameters required by the function.
  • Vendor agent identity structure 525 contains the agent's unique identification, which can be used by various entities to keep track of the particular vendor agent.
  • the clearinghouse assigns this value when a vendor agent is first created. Because there is preferably one vendor agent for a given vendor, this value is the only information needed to uniquely identify a given vendor agent. This is in contrast to content agents, which may have many simultaneous instances distributed among several nodes in a distribution channel.
  • Vendor agent 520 uses less internal storage than a content agent because most of the data that it needs to manage, such as the vendor contact information, references to content agents, terms of distribution and the like, are stored in the vendor database 511, 512 or 516 corresponding with the particular vendor. Because vendor agents reside permanently at clearinghouse node 500, it is not necessary to maintain the data internally to the agent. In the alternative, each vendor agent could maintain all of its data internally and the clearinghouse node 500 would keep a separate database that pointed to each vendor agent and clearinghouse agent 510 would query the vendor agents for the information.
  • Vendor agent 520 exposes functions 530 to clearinghouse agent 510, or content agent 550, for the purpose of performing the following steps: creation, management and eventual destruction of content agents; analysis of terms of distribution and allocation of micropayments to distributor database 515; secure communications with various entities in the system, based on the security mechanism in effect; and secure access to its vendor database in the clearing house.
  • clearinghouse agent 510 processes new content by passing the content to the vendor agent associated with the vendor which created the content. If no vendor agent exists, then one is created. The vendor agent then creates the content in a manner similar to the creation of content agent 150 by clearinghouse agent 110.
  • clearinghouse agent 510 queries the content agent for the identity of the associated vendor.
  • the content agent 510, or a reference to the content agent 510, is then provided to the appropriate vendor agent.
  • One of vendor agents 520-522 then processes the content agent and the payment information rather than clearinghouse agent 510. Specifically, the vendor agent queries the content agent for all data regarding terms of distribution and the distribution channel through which it passed. This information is stored in the vendor database and distributor database. The vendor agent then notifies the clearinghouse agent 510 regarding the appropriate payment information.
  • Vendor agents 520-522 also use vendor database 516 to store information regarding any active distribution channels and the associated terms of distribution of which they become aware. Some or all of the information in vendor database 516 may be exposed only to the vendor agent and the outside vendor whom it represents; even the clearinghouse, including clearinghouse agent 510, may be prevented from accessing entries in the database without going through a vendor agent.
  • vendor agents An advantage of using vendor agents is that there is a clean separation among vendors and their confidential data used by clearinghouse agent 510. Any number of content agents may report to a given vendor agent (assuming all of the content is from the same vendor) .
  • Clearinghouse node 500 may further include data mining database 515.
  • This database stores data mining rules and results.
  • An example of a data mining rule may be "find all distribution agents who successfully handled 10 or more agreements in the recent week".
  • the rules can be in the form of scripts or query specifications, each of which has a label and other attribute information. These rules can be presented in an administrative application for human use, or triggered automatically by scheduled actions managed by the clearing house agent.
  • Each distribution node may contain more than one distribution agent. For example, each distribution agent may specialize in a particular class of content agent or content, or the same distribution node may contain different distribution agents controlled by different entities. Accordingly, the same distribution node may carry the same content agent more than once.
  • a content agent's terms of distribution could enable or disable such an operation by requesting an identification of both the node and its associated agents and determining eligibility based on both such numbers .
  • a single web server may be serving several web sites, where each web site is a distinct distribution node.
  • an entire network of computers may be treated as a single distribution node.
  • a content agent may modify its terms of distribution on the fly depending on the information it received from a distribution agent.
  • distribution agent 210 accepts terms of distribution 170 from FIGURE 3 regarding direct distribution to an end user, then the content agent may modify its eligibility string 166 to delete the reference to "web server" so that only an "end-user" is eligible to receive the content agent from then on.
  • the Regis terAgent function performs this change by comparing the passed parameters with terms of distribution 170 and, if they are equal, the function modifies the string. Such a contingency would not be difficult to program for one of ordinary skill in the art in light of the foregoing disclosure.
  • the modification of terms of distribution may also be more sophisticated and based on any data made available to the content agent such as: contingencies provided by the vendor; contingencies encoded into the content agent by the clearinghouse agent; data learned from distribution agents; and any combination thereof.
  • the content agent can dynamically change the possible paths of distribution based on the formulas or intelligence built into the content agent.
  • the content agent could also periodically contact upstream nodes, such as the clearinghouse node, for additional information. Rather than transmitting the content agent to a downstream node first and then performing the step of eligibility testing, the steps could be somewhat reversed.
  • the distribution node (or the content agent) contacts the downstream node before sending the content agent to determine the node's eligibility.
  • the communication mechanism may be divided between separate input and output devices, particularly with respect to the destination node.
  • a PDA device for example, may have both a wired and a wireless communications capability. One of these may be used for incoming data under normal circumstances, and the other may be used to pass data along to another node.
  • destination node 300 was described as being a personal computer, the destination node may be any device capable of calling the functions of the content agent and logically processing the data to and from the content agent.
  • destination node 300 could be the Digital Wallet itself.
  • backchannel 330 would be a direct wireless link from the Digital Wallet to the clearinghouse node, a local wire/wireless connection to a personal computer, or a link by modem or the like.
  • back channel functionality is always available in a distribution node of this type. However, the channel can also be made available only occasionally, if at all.
  • a Digital Wallet may be a destination node, and in the embodiment it has wireless Internet connectivity for back channel communication.
  • the Digital Wallet when it is in proximity or otherwise connected to one of its partner devices which is a node of the system, it can make use of their back channel functionality or communication mechanisms to contact the clearing house. When it is not in proximity, it must wait until the user brings it into proximity. In either event, the user can be prompted to carry out
  • Destination nodes may also be distribution nodes depending on the nature of the content and the terms of distribution. In other words, the destination agent may establish a new distribution channel by passing the content agent on to another node of the system.
  • the destination agent associated with such a node would be provided with the same basic functionality as a distribution agent, but with additional responsibilities as a destination.
  • An example of such a destination node is a Digital Wallet where the terms of distribution pay distribution agents for both the downloading of the content agent into the wallet and the downloading of the content agent from the Digital Wallet to a retailer.
  • the present invention has the advantage of providing payment for actions which occur before the final downloading or use of the content.
  • the compensation associated with the terms of distribution may be also be varied in any number of ways. For example, each distribution agent may be paid the same fixed price as discussed above. If there is a concern regarding fraudulent distribution by churning, a fixed amount may also shared among all distributors in the chain. The sharing may be an even distribution or weighted against other factors such as business relationships, etc. Requiring destination agents to share the same fixed amount incents distribution nodes to get the content agent as quickly as possible to the destination.
  • the compensation be limited to payments.
  • the payments may be in the form of mileage, cross-advertising, points which are redeemable for some product or service or any other form of compensation.

Abstract

A system and method for acting on content at a node (200, 300) of a set (50) of nodes includes receiving a content agent (150) from another one (100, 200) of the nodes, where the content agent (150) includes content and terms of distribution for the content. The terms of distribution include an action to be taken by the node (200, 300) such that successful completion of the action by the node (200, 300) entitles the entity operating the node (200, 300) to compensation. The system and method includes automatically determining whether to perform the action based on the terms of distribution and automatically performing the action upon an affirmative result of the determination.

Description

SYSTEM AND METHOD FOR DISTRIBUTING CONTENT OVER A NETWORK
BACKGROUND ART
The move to a digital infrastructure, which includes not only the Internet but also digitally-recorded media as well as digital broadcasts (television, radio, etc.) has opened up a huge set of opportunities in direct marketing and advertising. Many companies have been quick to jump on the Internet bandwagon, using it to distribute advertisements and other promotional material to end users .
Initially, methods of such electronic advertising were through fixed, well-known channels with pre-arranged business agreements related to the nature of the content and the fees paid for distribution. For example, a vendor would provide advertising material to a specific web site, which would then display the advertisements to the user whenever that site, or specific web pages, were visited.
However, the problem that advertisers and other vendors face is the same as the problem that users face: there is such a huge amount of information on the Internet, and there are so many new service providers joining the Internet on a daily basis, that people would have a very hard time keeping aware of all possible business partners that they could deal with.
Some businesses have attempted to solve this problem by acting as a central location (such as a web site) where other businesses can go to look for service providers. However, the free-form nature of the Internet doesn't make this the best possible solution. It is unlikely that a single site will have all of the resources that could be available, especially since there is unlikely to be a single site to match all advertisers with those who are willing to advertise. For example, "click through" advertisements are currently offered on the Internet, whereby an advertisement is placed on one web site, which when clicked on by the user, will direct the web browser to another web site. The first web site receives some kind of fee, which is pre-arranged, for providing this click-through service to the second web site. Several variations of this basic model can be defined, such as an "advertising broker" who takes ads from a first vendor, and places them on the web sites of any number of second vendors. The problem with this system is that it still requires that the advertising broker have advance knowledge of the second vendors. In addition, such systems would typically be limited to the Internet, and would not include alternate forms of communication such as digital television broadcasting. DISCLOSURE OF THE INVENTION
A better method is needed to enable a first business to discover, negotiate with, and facilitate an arrangement with a second business that can provide some kind of service to the first business, and for the second business to receive appropriate compensation for those services. The method is preferably based entirely on software technology such that no human intervention is required for the entire sequence from start to finish. It is further desirable for the method to take full advantage of the dynamic nature of the Internet in terms of new service providers becoming available on a continuous basis, that can also adapt to and span communications infrastructures beyond the Internet. The present invention addresses these needs. One aspect of the present invention includes a method of acting on content at a node. The method includes receiving a content agent from another one of the nodes, where the content agent includes content and terms of distribution for the content. The terms of distribution include an action to be taken by the node such that successful completion of the action by the node entitles the entity operating the node to compensation. The method includes the steps of automatically determining whether to perform the action based on the terms of distribution and automatically performing the action upon an affirmative result of the determination. The method preferably also includes automatically accruing the entitlement to compensation in response to the node successfully performing the action. The accrual may be conditioned not only upon the node successfully performing the action, but also upon another one of the nodes performing another action contained in the terms of distribution. It is desirable that the terms of distribution describe the actual compensation.
Preferably, the method performs the determination by comparing the compensation against the cost of performing the action, such as by analyzing the likelihood of the node accruing the entitlement to the compensation and the cost of the node performing the action. In addition, the determination may also be made by comparing data contained in the content agent and the characteristics of the content with data contained in the node. When the node successfully performs the action, the method desirably includes notifying a clearinghouse node so the clearinghouse node can record the entitlement to compensation. The notification may be made simply by sending the content agent itself to the clearinghouse node by using the address of the clearinghouse node supplied by the content agent. For example, if the compensation is a monetary payment, the clearinghouse node can then notify the entity responsible for actually making the payment that a payment has accrued.
Most commonly, the node contains a node agent that performs the determination step and the node agent first checks whether or not the node agent has previously received the content agent. If it has, the node agent would not perform the determination step or perform the action. The method optionally includes evaluating whether the node satisfies eligibility criteria and not performing the determining and performing steps if the eligibility criteria is not satisfied. The eligibility criteria may be a part of the terms of distribution and the content agent performs the process of evaluation by evaluating a description of the node that is received from the node.
If the node decides to perform the action based on the terms of distribution, i.e. the determination is affirmative, then it is preferable that the method include storing in the content agent the identity of the node and the manner which the node should be paid, such as bank account information.
One of many advantages of the present invention is that there are many potential actions that may be performed. One potential action includes distributing the content agent to another one of the nodes in the set of nodes. If so, the nodes to whom the content agent is sent may be chosen based upon data contained in the content agent. Preferably, the foregoing method is then repeated at the next node. Another potential action includes using the content, such as displaying it. Yet another action includes downloading the content from the node to a device connected to the node.
Another aspect of the present invention provides a node operated by an entity such that the node includes a processor under the control of programs and one of the programs is a node agent. The node agent is adapted to automatically access a content agent and automatically determine whether to perform the action based on the terms of distribution. Preferably, the node automatically performs the action upon an affirmative result of the determination.
In one variant thereof, the node agent is a distribution agent and the action to be performed is distribution of the content agent to other nodes upon the other nodes meeting predetermined criteria. In another variant, the node agent is a destination agent and the action further includes using the content of the content agent as described above, such as downloading the content to a personal data device or downloading a discount or award to an electronic version of a wallet.
The node optionally includes a description of the node and a unique identifier differentiating the node from any other node of the set of nodes. If the agent is associated with a web site, the description of the node may include a description of the data on the web site and an identification of the entity operating the node. The content agent contains a data storage block for storing the unique identifier of the node and the node from which the content agent was sent. The content agent may also include a unique identifier.
Yet another aspect of the present invention provides node having a processor under the control of programs and one of the programs is a clearinghouse agent. The clearinghouse agent creates content agents for further distribution to other nodes of the set and also automatically records the accrual of the compensation upon notification that the action has been successfully performed by another node.
In any aspect of the invention, the node may be a general purpose computer. The nodes may distribute and receive content agents by any number of means, including via: a network; the Internet; a network where one of the nodes is a network server; wireless broadcast such as a digital television signal; or physical media such as DVD.
The content agents can vary in sophistication. One example is a content agent that is an electronic version of a document that does not contain executable functions or routines. Another example is a content agent that is an executable program, such as a Java applet, containing data and functions where some of the data and some of the functions are accessible by the node agent only on a limited basis.
Yet another advantage of the present invention is the flexibility of the terms of distribution. For example, the terms of distribution may be in Extensible Markup Language. The terms of distribution may also include a second action to be taken by the node whereby successful completion of the second action by the node entitles the entity to compensation. The terms of distribution may further include an expiration date by which the action must be successfully completed in order to entitle the entity to compensation. The second action may also include use of the content by either the current node or another node, and the compensation is conditional upon such use, regardless of whether there is any compensation owed to the other node as a result of such use.
The content is similarly flexible, such as including text, still images, video images, sound or a combination thereof. In one aspect of the invention, the content comprises advertising such as a coupon for a monetary discount or award which is provided to a digital wallet.
Yet a further aspect of the present invention provides a method of distributing content over a network of nodes. Specifically, a clearinghouse node creates a content agent, the content agent including content and terms of distribution. The terms of distribution include a first action and a second action to be successfully completed by other nodes of the network. The first action is to distribute the content agent to other nodes of the network and the terms of distribution contain a promise of compensation to nodes which successfully complete the first action. The second action is to use the content. The clearinghouse node then transmits a copy of the content agent to a first distribution node. The first distribution node automatically receives the content agent, evaluates the terms of distribution, determines whether or not the node desires to perform the first action based on the terms of distribution, and, if it does, appends its identity to the content agent and distributes the content agent to a destination node or a second distribution node or both. If the content agent is distributed to the second distribution node, the second distribution node automatically performs the foregoing steps of receiving, evaluating, determining and, dependent upon the determination, the steps of appending and distributing. If the content agent is distributed to a distribution node, the destination node automatically receives the content agent, evaluates the terms of distribution, determines whether or not the node desires to perform the second action based on the terms of distribution, and, if it does, uses the content and sends the appended identity or identities to the clearinghouse node with notification that the second action has been successfully completed. The clearinghouse node automatically accrues compensation owed to the distribution nodes corresponding with the appended identity or identities. Preferably, the content is a coupon for receiving a monetary discount or award and the second action includes providing the coupon to an end user or retailer.
In yet another aspect of the present invention, the methods are performed substantially automatically. BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 is a functional diagram of a system of one embodiment of the invention.
FIGURE 2 is a functional diagram of a content agent in accordance with one embodiment of the invention.
FIGURE 3 is a set of data in accordance with one embodiment of the invention. FIGURE 4 is a functional diagram of a potential path of distribution between distribution nodes .
FIGURE 5 is a functional diagram of another potential path of distribution between distribution nodes. FIGURE 6 is a functional diagram of a clearinghouse node in accordance with another embodiment of the invention.
FIGURE 7 is a functional diagram of a system of another embodiment of the invention. MODES OF CARRYING OUT INVENTION A system 50 in accordance with one embodiment of the invention comprises a network 80 of nodes, including clearinghouse node 100, distribution nodes such as distribution node 200, and destination node 300. Although only a few nodes are depicted in FIGURE 1, it should be appreciated that a typical system can include a large number of distribution and destination notes, such as thousands of distribution nodes and millions of destination nodes. Preferably the nodes comprise general purpose computers or network servers and the network 80 comprises the Internet, intranets, or a local area network. The network may also comprise a wireless network of devices as described more fully below.
System 50 distributes and acts upon content. Content may comprise any information which can be stored in electronic form including text, still images, video images, sound and combinations thereof. For example, the content may be an advertisement for a product or service. In one embodiment of the present invention, the content may be an electronic version of a coupon comprising a set of data which, when presented to a retailer by an authorized recipient of the coupon, entitles the recipient to a discount or other award. System 50 distributes the content by encapsulating it into a content agent and distributing the content agent. As depicted in functional form in FIGURE 2, content agent 150 comprises an electronic file containing a number of different components including content 159, identity information 160, terms of distribution 157, negotiation and communications functionality block 155 and dynamic data storage 162. Preferably, content agent 150 takes the form of an executable entity such as a software program written as a Java applet.
Content agents are distributed in accordance with a set of rules stored in terms of distribution data 157. The terms of distribution inform a node what actions it is authorized, or not authorized, to take with respect to the content agent and also sets forth the compensation to be paid upon the successful completion of certain actions. Preferably, this data is stored in accordance with the requirements of Extensible Markup Language (XML) or some similar syntax. An advantage of using XML is that the syntax of the system can be updated merely by periodically sending XML templates to the various agents.
A portion of the data in terms of distribution 157 contains a set of data defining whether a particular node of system 50 is eligible to perform any actions in connection with the content agent. For example, node eligibility data 165 may contain data specifying that if the network node is engaged in the distribution of adult content, then it is not permitted to take any action in connection with the content agent.
Node eligibility criteria data is expressed and stored in the terms of distribution 157 as a string of characters 166 having the form shown in FIGURE 3. In the syntax of the system, a node is authorized to act on the content agent if it meets all of the criteria listed between the "<eligible>" begin tag and the "</eligible>" end tag. One of the eligibility criteria in FIGURE 3 is that the current node is a member of the class defined by the "<class>" tags; specifically, the node is either a member of the "web server" or "end-user" class. The node is not authorized to act on the content agent if it meets any of the criteria listed between the "<not eligible>" begin tag and the "</not eligible>" end tag. A node may be excluded from acting on certain content agents based on any number of reasons. Such reasons may be the fact that the node is involved with dissemination of adult material or is operated by a competitor of the content's creator. Such restrictions may also be based on business relationships or corporate goodwill. In the example of FIGURE 3, a node is not eligible if it is the sort of node, i.e. class, which deals in adult content. It is also not eligible if it is operated by the company XYZ Corp.
In addition to eligibility criteria, terms of distribution 157 also include a set of data corresponding with actions which may be completed by a node. The first action 167 comprises distributing content agent 150 to a different node of the network 50. This action is expressed as string 168 of FIGURE 3. In the syntax of the system, the tag "<distribute>" indicates that the action to be completed is further distribution of the content agent to other nodes. The class of nodes that it can be delivered to is "any", which means that the content agent can be delivered to any node. Note that although successful completion of the action comprises delivering the content agent to any node, the next node cannot act on the content agent unless it meets the eligibility requirements as explained above. The tags "<expires>" indicate that the action, i.e. the distribution, must be performed by December 31, 2005.
The terms of distribution further include the compensation to be received by the node in the event the node successfully completes certain actions. As shown in FIGURE 3, the compensation to be received is provided between the "<payment>" tags, i.e. $0.05. In this example, however, there is also a condition to payment which extends beyond the actions to be performed by the particular node. In the syntax of the system, a compensation condition is expressed as a keyword or keywords between the "<condition>" tags such as "coupon redeemed". The keywords "coupon redeemed" indicate that the coupon contained in the content agent must be redeemed by an end user before any payments will be made to the node that distributed the content.
The terms of distribution may include more than one action per node. Since content agent 150 contains a coupon, the ultimate goal of the content agent is to have the coupon, quickly redeemed. Therefore, the terms of distribution pay a bonus for distributing the content agent directly to end users . This action is represented by a string of characters 170 between another set of "<TOD>" tags that follow the <TOD> string 168. The expiration date of this second action, January 1, 2006, is different than the expiration of the first action, namely, December 31, 2005. Each action has its own expiration date to enable individual actions to have individual lifecycles. This maximizes the flexibility of the overall system by allowing a single content agent to establish different action-compensation agreements with different nodes over different life cycles. For example, the payment rate is also different, namely $0.02.
Thus, the terms of distribution comprise a set of requirements and preferences that spell out how the content shall be distributed or used by entities in a distribution channel. The actions permitted by the terms of distribution form the requirements of distribution.
Content agent 150 further comprises a set of data that reflects its identity. The content agent identity data 160 contains the agent's unique identification code 172. Each instance of a particular content agent class of objects has a unique identification 172. The content agent identification data 160 further includes the agent's class. Agent class 173 comprises a general description of content 159, for example, agent class data 173 may comprise the key word "coupon" in the event content 159 contains an electronic coupon.
Content agent identification data 160 also includes target demographic information 174. Target demographic information 174 sets forth goals of the content agent which do not necessarily rise to the level of a requirement for distribution. For example, target demographic information 174 may include the phrase "dairy products consumer" in the event the coupon can be redeemed by purchasing milk. Target demographic information 174 may assist nodes in their decision of whether or where to further distribute content agent 150. This type of information could include enumerated class values (e.g. "marketing", "dairy products", etc.) or any other type of descriptive information.
Vendor identification 175 is also contained in content agent identification data 160. Vendor identification 175 contains the data necessary for the nodes of the system to determine the identity of the vendor who provided the content that is being distributed.
Content agent identification data 160 also includes the network address of the clearinghouse node 100. This address may be necessary for use by the other nodes of the system. Negotiation and communications functionality block 155 contains the routines and algorithms used by the software that represents the content agent. These routines carry out negotiations with nodes and collect and analyze information. The routines are exposed via an API that can be invoked by the software contained on the nodes of the system. Various entities such as distribution or destination nodes will have access to only the information they need or are entitled to. The function block 155 is responsible for maintaining the data access control policies of the content agent. The precise functions are explained in more detail in connection with the method of operation below. Because the content agent 150 includes both data and procedures, and because the content agent 150 may be distributed over worldwide networks such as the Internet, the content agent 150 preferably takes the form of an executable entity such as a Java applet. A Java applet may be executed by various processors on different computer platforms. Java applets are also good vehicles for hiding or exposing data, functions and methods. Thus, an executable Java applet, transmitted in object code form, can encapsulate its data. By encapsulation, the data contained in the content agent is not accessible by external programs unless certain criteria are met. Encapsulation also provides the advantage of maintaining the integrity of the data, i.e., the data contained in a content agent may only be modified by calling the functions and procedures of the content agent. This prevents outside programs or entities from making unauthorized or inadvertent changes to the data. Moreover, the content agent and its data structures are opaque, meaning that external entities such as the system's nodes do not have knowledge of how data is stored within the content agent. This enables the content agent to protect sensitive or copyrighted data or content in encrypted format while it is traveling down the distribution channel.
The dynamic data storage block 162 is a data structure that is managed by the content agent. This data block can be used, for example, to keep track of the nodes which have distributed the particular instance of the content agent 150. Content agents are created by clearinghouse node 100
(FIGURE 1). Clearing house node 100 generally comprises a server computer which includes all of the internal components normally found in a personal computer or network server such as, for example, a central processing unit (such as processor 107), memory storage devices such as disc drives, and all of the components used for connecting these elements with one another. These internal elements of the server computer may be of any conventional type.
The clearinghouse node 100 communicates with other nodes of system 50 via communications mechanism 105. The communication mechanism may be any mechanism typically used on a network server such as a modem or other telecommunications connection line. The communication mechanism may use any particular format of communication, including Internet protocols, wireless or cellular signals .
Clearinghouse node 100 contains a number of programs and databases, such as clearinghouse agent 110, vendor database 116, distributor database 115 and transaction database 117.
Clearinghouse agent 110, like content agent 150, is an active data structure containing both data and programming routines. Clearinghouse agent 110, unlike the content agent 150, remains on the same node once installed. Clearinghouse agent 110 interacts with the databases and creates content agents as explained more fully below in connection with the operation of the system.
Vendor database 116 is a collection of data related to the vendors that the clearinghouse node is currently dealing with or has previously dealt with. Preferably, there is a separate vendor database for each vendor, past and present, but it is acceptable for a single database to accumulate all information about past and present vendors. For security purposes, portions of the information stored in a vendor database may be encrypted in order to prevent any one other than the associated vendor, including the operator of the clearing house, from accessing the information stored therein.
The distributor database 115 holds information regarding each node of the system 50 that has either been involved in a transaction with a content agent originating from the clearinghouse or is known to be immediately downstream of the clearinghouse. For example, distributor database 115 contains the information necessary to pay a node when a term of distribution of a content agent has been successfully completed. Clearing house agent 110 stores records of all transactions facilitated by the clearinghouse in transaction database 117. Each time the clearinghouse node receives notification that compensation to a node has accrued because of the successful completion of an action in a term of distribution, the particular node, term of distribution and accrual are separately stored in database 117.
Nodes of system 50 that receive and further distribute content agents are referred to as distribution nodes. A distribution node, such as node 200, is an entity that can implement those actions of a content agent which relate to distribution. Distribution node 200 preferably comprises a computer such as those described above in connection with clearinghouse node 100 and includes a CPU processor 205. Distribution node 200 communicates with the other nodes of the system via communication mechanism 215 which is similar to communication mechanism 105 of clearinghouse node 100.
Each distribution node 200 has a software module referred to as distribution agent 210. Distribution agent 210 performs a number of functions including accessing and communicating with incoming content agents and checking to see if distribution agent 210 has already been associated with the content agent. These functions are discussed with more particularity in connection with the operation of the system. Like the content agent 150, distribution agent 210 is an active data structure containing functions which can be executed by the node's processor. Also like the clearinghouse agent 110, the distribution agent is not intended to be removed from the node once it has been installed.
Distribution agent 210 includes identification data 225 identifying the particular distribution agent or node. Each node and agent of system 50 has a unique identification code which can be queried by a content agent. If distribution node 200 is a server connected to the clearinghouse node 100 via the Internet and there is only one agent on the node, the unique identification code of both the node and the agent may comprise a URL.
The identification data 225 also includes a description of the distribution agent. The distribution agent description contains keywords describing the characteristics of the distribution agent and the associated distribution node. For example, the node description may describe the platform with which the distribution agent 210 is associated, such as "web server". The distribution agent class description may include more information relating to the data associated with its web site, such as "food" or, more specifically, "food: dairy products". Such data preferably includes the name of the entity or person operating the agent. One of the functions of the identification data 225 is to enable the distribution agent 210 and/or content agent 150 to determine whether the distribution agent meets the eligibility requirements of the content agent.
Data storage area 220 is used by the distribution agent 210 to keep track of items such as past and pending transactions, payment histories, references to content agents with which it has dealt, contact information necessary for communication with the clearinghouse node 100, storage of security keys and other private data and other information necessary to the operation of the distribution agent 210. The data in storage area 220 is secured such that it may only be accessed by the distribution agent 210. Because the data in storage area 220 is secured such that it may only be accessed by the distribution agent 210, content agents which pass through the node do not have direct access to such data. Rather, content agents are only provided with data contained in storage area 220 if distribution agent 210 provides such data to the content agent.
The last downstream nodes of system 50, such as those nodes that actually use the content 159 of content agent 150, are referred to as destination nodes. Destination node 300 may be any device capable of receiving content agents and acting on content. By way of example, the destination node 300 may be a typical personal computer used in a person's home which communicates with distribution node 200 via a communication mechanism 315 such as a modem. Destination node 300 further includes a CPU 305.
Destination agent 310, like content agent 150, is an active data structure containing both data and programming routines. Destination agent 310, unlike the content agent 150, remains on the same destination node 300 once installed. The functions of the destination agent 310 are described more fully below. Destination node 300 further includes a back channel
330. Back channel 330 comprises a second communication mechanism which connects with peripheral devices to the destination node 330. For example, the peripheral device 340 may be a portable Digital Wallet or Personal Digital Assistant (PDA) that communicates with the destination node 300 via an infrared or other wireless connection such as those common to portable computers . Destination agent 310 includes identification data 315 which identifies the particular destination agent 310. Each destination agent 310 has a unique identification code which can be queried by a content agent. If the destination agent is uniquely associated with a singe portable device 340, the identification code may be the device's Globally Unique Identifier (GUID) .
Identification data 315 also includes a description of the destination agent 310. The destination agent description contains keywords describing the characteristics or class of the destination agent and the associated node. For example, the node description may describe the platform with which the distribution agent 310 is associated, such as "personal computer" or the class of operator such as "end user". The node description may describe the peripheral device 340 for which the content is ultimately intended, such as "Digital Wallet". One of the functions of the identification data 315 is to enable the destination agent 310 and/or content agent 150 determine whether the destination node meets the eligibility requirements of the content agent. In operation, and referring to FIGURE 1, a vendor 75 desires to have content transmitted to one or more destinations throughout the network system 50. In this regard, the vendor 75 will transmit the content and terms of distribution to clearinghouse node 100. This transmission may come in any form, including a phone call to personnel at the clearinghouse node who will key in the data in the syntax of the system. In this example, the content is an electronic version of a coupon.
In response, clearinghouse agent 110 creates a content agent 150 having the functionality of content agent 150 of FIGURE 2. As described above, function block 155 provides the sole access to the data contained in content agent 150. Therefore, in order to store the content, clearinghouse agent 110 calls a function in the content agent 150 which has the name StoreCon ten t (File , s tring Description) . The File parameter is set equal to the electronic file associated with the coupon itself and the Description parameter is a string of keywords which describes the content, i.e. "coupon". The StoreCon ten t function then stores the content file as data 159 and the description in content agent class data 173. It is preferable for all data stored in the agents of the present invention to be stored in the same manner, that is, calling a function or method of the associated agent and providing the data to be stored as a parameter of that function or method. The eligibility criteria 166 and the terms of distribution 168, 170 of FIGURE 3 would be stored as data 165, 167 and 169, respectively, of FIGURE 2 in the same manner. If the coupon pertains to milk, the clearinghouse agent 110 provides the keywords "food : dairy products: milk" to be stored in target demographic information 174.
The clearinghouse agent 110 further assigns the content agent 150 a unique identification code 172 which is different from any other identification number assigned by the clearinghouse agent 110 to a content agent. By way of example only, the identification number may be "255".
Clearinghouse agent 110 next obtains a list of distributors from distributor database 115 and transmits a copy, or "instance", of content agent 150 to each one of the distributors using the address locators associated with the distributors stored in database 115. In one embodiment of the present invention, network 80 comprises the Internet and the addresses of the nodes correspond with a URL devoted to receiving content agents. Each transmitted instance of the particular content agent 150 is identical to the other except for identification code 172. Specifically, the identification code is changed by appending another number to the end so that each instance has its own unique identification (although they may share the same prefix) . For example, the content agent 150 transmitted to distribution node 200 has the identification code "255:1" whereas the content agent 150 transmitted to distribution node 250 has the code "255:2". Alternatively, the clearinghouse agent could append the distribution node's unique identification code to form a unique content agent identification code.
Once a content agent 150 arrives at distribution node 200, the distribution agent 210 queries the content agent's unique identification 172. Distribution agent 210 keeps a list of all content agents it has previously received in database 220 and checks that list upon a content agent's arrival. If the prefix stored in content agent's identification 172 is already in database 220, then the distribution agent 210 will not take any further action in connection with the content agent. The purpose of this step is to eliminate inefficiencies in distribution caused by multiple up-stream nodes trying to feed the same down-stream node, or by a loop in which several nodes get caught in a cycle of repeatedly passing the same content agent amongst themselves. As shown in FIGURE 4, distribution nodes 2 and 3 are both feeding the same content agent to distribution node 4. As shown in FIGURE 5, distribution nodes 1, 2 and 3 continuously transmit the same content agent to one another. By checking to see if the distribution agent 210 has received the same content agent in the past, these problems, which are common in a free-form network such as the Internet, are addressed. This step also eliminates wasted processing of an item that has already been accepted or rejected.
If distribution agent 210 has not yet seen content agent 150, it queries the content agent to see if it is eligible to perform the actions desired by the content agent. The distribution agent 210 calls the Submi tEligibili ty (Agen tSpec Dis tNodelD) function of content agent 150. The DistNodelD parameter is set equal to the identification information 225 stored in distribution agent 210, such as: the distribution agent's identification number, the company operating the distribution node 200 and agent 210, and the distribution agent's class information. As is common with languages such as Java, the term "AgentSpec" requires that the identification information be provided in a predefined object format named "AgentSpec." The Submi tEligibili ty function returns a boolean value which indicates whether the distribution agent 210 has met the eligibility requirements of the content agent. Using the eligibility requirements 166 of FIGURE 3, the Submi tEligibili ty function determines whether any of the keywords contained in the distribution agent's class information equals the "class" keywords stored in the "eligible" criteria and the "class" keywords stored in the "non eligible" criteria. It also performs the same analysis with respect to the "operated by" criteria. Because node 200 in this example is assumed to be a web server which does not deal in adult content and is not operated by XYZ Corp., the Submi tEligibil i ty function will return the value "True" to distribution agent 210. This value is also stored internally in content agent 150 and, if set to "True", permits other functions in function module 155 to be called by distribution agent 210.
Otherwise, the other functions would not be available for calling.
Distribution agent 210 next calls the Reques t ToD () function of content agent 150. The Reques tToD () function returns a string containing actions 167, 169 of terms of distribution 157 (FIGURE 2), i.e. strings 168, 170 of FIGURE 3.
Distribution agent 210 then analyzes the proposed actions set forth in the terms of distribution to see if the compensation justifies the distribution agent undertaking the action. For example, terms of distribution 168 state that if the distribution agent distributes the content agent to any node of any class before December 31, 2005, then the distribution node will be paid $0.05 if the coupon contained in the content agent is ultimately redeemed.
The operator of the distribution agent will have provided the distribution agent with a formula which enables it to automatically make this decision. The formula may be as simple as determining whether the proposed compensation for distribution exceeds a particular value. For example, if the distribution node's cost of distributing a content agent exceeds $0.05, then the term of distribution will be rejected.
Alternatively, the formula may be more sophisticated. The formula may query database 220 and determine the percentage of times it has actually received payment when it has agreed to distribute a content agent for clearinghouse agent 110. The formula then multiplies that percentage against a predetermined amount that reflects the cost of distributing a single content agent. If that product exceeds the proposed compensation of $0.05, then the distribution agent would accept the proposed action. Otherwise, the proposed action is rejected. An even more sophisticated formula would increase the percentage if a keyword in target demographic information 174 matches a target audience for which the distribution agent has a lot of information. For example, if the target demographic information 174 includes the keyword "food:dairy products :milk" to reflect the fact that the coupon is for milk, and if the distribution node is a web site devoted to food products, then the foregoing percentage may be increased by a predetermined amount associated with class matching. Because of the bonus for distributing directly to end users in term of distribution 170, the formula may increase the percentage yet again if the distribution agent has a substantial number of electronic addresses of end users. The percentage may further factor in whether the clearinghouse agent associated with the content agent has a good record regarding prompt (or any) payment.
Regardless of the percentage, the formula may also cause the distribution agent to reject any content agent associated with a vendor who is a competitor to the distribution agent's operator. On the other hand, if the identification information shows that the vendor is a partner of the distribution agent's operator, then the distribution agent may agree to perform the action regardless of the percentage. Distribution agent 210 may make such a determination by consulting a list of competitors and partners in database 220 and comparing that list with vendor identification 175 of content agent 150.
Accordingly, because data describing the content and its associated vendor is stored in the content agent, and by storing data describing the distribution node and agent in the distribution agent, the operator of a distribution agent has the ability to create relatively sophisticated formulas to automatically accept or reject proposed actions based on calculations, compensation amounts and keywords. If the terms of distribution are accepted, this is considered an affirmative decision regardless of whether or not the actual formula yielded a true, false or other value. The agent's identification and class information are powerful pieces of data that distribution agents can use as part of their decision making processes in the creation of a dynamic content distribution channel. If there is a match of some kind, then the likelihood of successful acceptance and use of the content is higher, and therefore the likelihood that the distribution node will actually receive compensation for its efforts is higher. If the data is stored in a common and flexible language such as XML and the distribution agent is written in Java, such formulas can be created with relative ease by those of ordinary skill in the art in light of the foregoing disclosure. The foregoing process occurs automatically, i.e. it occurs without human intervention once initiated. However, the process may also be substantially automatic, i.e. the distribution agent's decision-making process may require the distribution agent in certain circumstances to confer with one or more entities that are external to the distribution agent. Such an entity may be a human operator or some remote database. The content agent would not be aware of such consultation.
If distribution agent 210 agrees to distribute the content agent 150 in accordance with the terms of distribution, it calls the Regis terParticipan t (Agen tSpec dis tributionAgen t, ToDSpec thisToD) function of the content agent. The dis tributionAgen t parameter is a data structure that includes the identification information 225 of the distribution agent 210. The ThisToD parameter represents the particular terms of distribution, such as strings 168 and 170 of FIGURE 3, that the distribution agent has agreed to.
The This ToD parameter also includes any information pertaining to where the payments are to be sent by the clearing house. This can be a bank routing number to an account, or in some other format that is sufficient for online financial transaction processing. The distribution agent may further identify an account that is managed by the clearing house, and the clearing house allocates credit and/or payments among its clients based on their unique identification values.
The Regis terParticipan t function also double-checks the distribution node identification information to ensure that there is nothing in the information which would indicate that the node is incapable of implementing the particular action. In response, content agent 150 modifies the data in storage 162. Preferably, it stores at least the distribution agent's unique identification code and the agreed-to term of distribution, i.e., either string 168 itself or a reference to the string. In either case, an official record is created in the content agent that associates the unique ID of the distribution agent, the terms of distribution and the necessary information for issuing payments in the event of successful completion of a term of distribution requiring compensation.
This acceptance of an action shall be referred to as a transaction, and the information associated with a transaction preferably includes the unique identity of the content agent, the unique identity of the distribution agent, the terms of distribution and information regarding where payment should be made .
Distribution agent 210 also keeps a record of the transaction information in data block 220 for later reconciliation against micropayment information or for other uses such as future business relationship management. Preferably, distribution agent 210 stores additional information in storage black 220 to increase the amount of data it can use to accept or reject terms of distribution. For example, the agent may choose to record even more details regarding the transaction so that it can look back on the data history with a given content agent class, vendor, content type and the like to determine if it is a wise decision to enter into a new transaction. The information may also be used for future business relationship management. It is recommended that the distribution agents store at least a minimal amount of information regarding a transaction for later reconciliation against micropayment information.
The content agent 150 is then sent to the next node or nodes over network 80 and deleted from node 200. Distribution agent 210 keeps a list of downstream node addresses in database 220 much like clearinghouse agent 110 keeps a list of distribution node addresses in distributor database 115. Preferably, the list of downstream nodes includes information about the nodes so that particular nodes can be targeted. Because transmitting content agents to distribution nodes which are likely to refuse results in inefficiency and waste of resources, it behooves the various entities in a dynamic distribution chain to exercise some judgment in the downstream partners they choose (assuming that the act of content distribution incurs some kind of overhead that must be weighed against the business advantages of participating) . This judgment can be based on a variety of information such as shared data mining results, whereby various distribution agents share information with each other regarding the statistical success of the various contracts in which they participate. For instance, using the foregoing example, distribution agent 210 will certainly send the content agent to other web servers associated with food but may not send the content agent to web servers containing adult content. This list of information may be compiled in any number of ways, including knowledge of business and distribution relationships, such as customer lists, which are not specific to the particular content agent. The information may also be updated based on prior, successful transactions.
Upon receiving the content agent, each of the distribution nodes repeats the process associated with distribution node 200.
Thus, the content agent flows through a distribution channel, passing from node to node. Content agents are transitory in nature; that is, they are not persistent objects in terms of remaining on a distribution node. Once a content agent has been sent to the next downstream node, only a record of transactions and rejections remains. The channel is dynamic because the precise path of distribution may not be known until the content agent interacts with each distribution agent. Distribution agents may send different content agents in different directions. Distribution agents may also have sent the same content agent in a different direction if the content agent had been received at a different time.
If distribution agent 210 refuses to accept any terms of distribution, it calls the Rej ectToD (Agen tSpec Dis tNodelD, ToDSpec thisToD) method of content agent 150. The parameters are the same as discussed above in connection with the Regis terParticipan t function. The Rej ect ToD function returns the address of the node which sent the content agent 150 to distribution node 200. When the Rej ect ToD function is called, content agent 150 adds the identification information 225 of distribution agent 210 to database 162 and flags the information as relating to a refusal. Distribution agent 210 then sends content agent 150 to the immediately adjacent, upstream node returned by the Rej ect ToD function. As shown in FIGURE 1, the upstream node is clearinghouse node 100. However, if the upstream node is another distribution node, then the content agent immediately notifies the appropriate distribution agent that further distribution of that particular instance of the content agent has been halted. Once that distribution node indicates to content agent 150 that it understands, content agent 150 provides the distribution node with the next immediately adjacent, upstream node and the content agent 150 is sent upstream accordingly. The distribution agent also takes any necessary steps for its own record keeping. The content agent thus dismantles the distribution chain for the content agent. Because the distribution chain is virtual and particular to each individual content agent, the same chain of nodes may still carry different content agents without disruption. Because content agent 150 may have been replicated many times after it leaves a particular distribution node, some of the other instances of the content agent may ultimately accrue payments in favor of the node. The process continues until the content agent reaches clearinghouse node 100.
Eventually, content agent 150 will arrive at destination node 300. The steps of detecting content agents, exchanging identification information, determining eligibility and accepting or rejecting terms of distribution follows the same process described above in connection with distribution node 200 and distribution agent 210. However, because the destination node 300 is the last node in the channel of distribution, it will not accept any terms of distribution relating to distribution such as terms of distribution 168 and 170 of FIGURE 3. Rather, if it accepts any terms of distribution at all, it would be terms of distribution 171 which specify that the content must be downloaded to devices in the "Digital Wallet" class. The method of making decisions regarding the downloading of content may be no more complicated than destination agent 310 querying a list of portable devices 340 to see if one is a Digital Wallet. The determination could also be as complicated as the formulas discussed above in connection with distribution agent 210. If destination agent 310 accepts the terms of distribution relating to downloading content, it calls the RegisterParticipant function in the same manner that distribution agent 210 calls the function. Content agent 150 then verifies that, based on the information provided by the destination agent, the destination agent is capable of accepting the terms of distribution. If so, the identification information associated with destination agent 310 is stored in data storage 162 of content agent 150 and the content is made available for download from the content agent. However, whereas a distribution agent would next distribute the content agent in accordance with the "<distribute>" action of terms of distribution 168, destination agent 310 instead requests the content from content agent 150 in accordance with the "<download content>" action of terms of distribution 171. Specifically, the destination agent calls the ieguestContent () function. When called by the destination agent, the function returns content 159 in decrypted form. Because the content is not decrypted until it is passed to the destination agent, copyright and security protection is enhanced. If desired, the content could also be passed in encrypted form to further enhance security; in such a case the destination agent or some other entity connected to the destination node must have the information necessary to decrypt the information. Content agent 150 stores the transaction in data storage.
With the content in hand, destination agent 310 next transfers the content to portable device 340 via backchannel communication mechanism 330. Methods of transferring electronic information to portable devices are well known in the art. If the destination node 300 is a Windows-based personal computer with PalmOS compatible software and the portable device 340 is a PalmOS-compatible Digital Wallet connected to the computer via a wire-based or infrared connection, the PalmOS software on the personal computer handles the automatic synchronization of this new data with the device via the standard PalmOS conduit mechanism. In such a case, the destination agent can store the coupon in the Digital Wallet simply by storing the coupon in the appropriate folder on the Windows-based personal computer. This would trigger the automatic download of the coupon to the device^
Once the download of content is finished, the destination agent asks the content agent -- by query -- whether it should be sent back to the clearinghouse. Because the only terms of distribution in FIGURE 3 that are associated with destination nodes comprises downloading content, content agent 150 will indicate that it is ready to be returned by providing the destination agent with the address of clearinghouse node 100. Destination agent 310 accordingly sends content agent 150 back to the clearinghouse node 100 over network 80.
Upon receiving the incoming content agent, clearinghouse agent 110 removes all of the transactional information from the content agent and stores it in transaction database 117. A reference to all of the transaction information is also stored in vendor database 116. References to individual transactions based on the distribution agent's identity is next stored in distributor database 115. The content agent is then destroyed.
Preferably, the operator of clearinghouse node 100 also manages the redemption of the electronic coupons it distributes. Accordingly, when the coupon which was contained in content agent 150 ultimately is redeemed, clearinghouse agent 110 is notified. Once clearinghouse agent 110 receives such notification, it searches transaction database 117 for all transactions associated with the content agent to which the coupon pertained, checks the terms of distribution to determine if compensation was conditional upon coupon redemption and, if so, makes a notification that compensation has accrued on behalf of and are owed to the operators of the applicable distribution nodes. Once all of the accrued payments owed to a particular operator exceed a predetermined threshold, payment is made to the operator in accordance with the payment terms provided by the downstream agents. For example, funds may be transferred to the bank accounts appended to the content agent by the distribution agent.
Alternatively, payment may be made immediately, or after a certain period of time, using commonly-available micropayment management systems. In either event, by using a central clearinghouse, the vendor is insulated from the more complex tasks of handling the various distribution channels, thereby simplifying the vendor's responsibilities. In addition to the aforementioned advantages, the present invention also has the advantage of permitting various configurations of the agents, terms of distribution and payments.
It is not necessary that network 80 be a wired network or that distribution occur over a bi-directional transmission medium. FIGURE 7 illustrates the channel of distribution over a number of different transmission mediums. Channel 601 represents a similar network to that described above in connection with FIGURE 1. Channel 603, on the other hand represents a one- directional channel. For example, the clearinghouse node may send a disk containing the coupon-oriented content agent 650 by conventional mail to distribution node 630. Distribution node 630 is a digital television broadcaster that then broadcasts the content agent embedded in a broadcast signal to distribution node 640 which is actually a television set-top box containing a processor capable of executing a distribution agent. Set-top box 640 then sends the content agent by infrared transmission to Digital Wallet 650. In this instance, the Digital Wallet 650 is not the destination node but, rather, a distribution node. The ultimate destination node 670 is instead a store which is capable of redeeming the coupon contained in the content agent. Once the content agent is downloaded to the store 670, the last terms of distribution are implemented by the store.
Because it is impossible for the store / distribution node 670 to send the content agent all the way back up the one-way channel of distribution 602, the distribution node 670 instead sends the content agent 650 up through channel 603 which may comprise some other one-directional channel with a distribution node 660. Alternatively, distribution node 670 could send the content agent 650 through bi-directional channel 601 if that channel is available. Because content agent 650 contains the payment information associated with distribution nodes 630, 640 and 650, there is no need to contact these nodes again to confirm the transaction before payment is made. Thus, the present invention has the advantage of being capable of being implemented on any set of nodes which are capable of evaluating the terms of distribution of a content agent.
Another example of a one-way medium is physical media. In another embodiment of the present invention, the content agent is stored in a DVD which is intended to be moved between different devices . The content agent can be extracted from a DVD by a distribution agent built into the DVD device and then passed to a personal computer or digital television for further distribution and/or processing.
The present invention has the further advantage of not being limited to particular types of content. If destination node 300 is a web site, the content may be an advertisement for display to end users which download a web page on the web site. In this instance, the terms of distribution could be expressed as string 171 of FIGURE 3 but the keyword "Digital Wallet" becomes "advertising banner" to reflect the fact that content should be downloaded and placed in an advertising banner as compared to a device. The web page operator is reimbursed for displaying the advertisement by putting a payment amount between the "<payment>" tags .
The content may also comprise a questionnaire for users to fill out. In such an instance, destination node 300 is a personal computer and display 325 is a computer monitor. Content 159 contains the questionnaire. By including payment terms in the terms of distribution and making return of the questionnaire a condition of payment, the user could be reimbursed for filling out the questionnaire. Similarly, the content may comprise advertisements and requests for user feedback which are displayed on display 325. As explained above, the Reques t ToD function of content agent 150 is responsible for releasing the terms of distribution and only releases the terms of distribution after it has been provided with the identity of the destination agent or distribution agent. Accordingly, the Reques tToD function may optionally release different terms of distribution dependant upon the identity of the requesting agent. For example, vendor 75 may require that terms of distribution contain discounted or increased payments for certain distribution agents . These distribution agents could be identified either by their unique identification code or class. Alternatively, the distribution agent could query the content agent for private terms of distribution. Such private terms of distribution are likely to be created as a result of prior business arrangements between the vendor and the specified distribution agents.
Rather than permitting distribution to any class of node as represented in string 168 of FIGURE 3, the terms of distribution could require that the content agent be distributed only to particular nodes . Such classes may be based not only on the platform (such as "web server") but also by demographics (such as "food : dairy products") . Instead of requiring distribution to a particular class, the terms of distribution may specify specific distribution or destination agents by their address (such as certain web sites that must be involved in the distribution channel) . Similarly, it would also be acceptable to store the demographic information, like target demographic information 174, as a recommended rather than required term of distribution.
Rather than placing the actual content in the content agent, the content may be stored at a remote site and content 159 contains a reference to the site. One reason for this may be that the content is not yet ready to be handled, because an up-stream process is still working on it, but the content agent wants to prepare the subsequent down-stream nodes so that the full processing cycle proceeds as smoothly as possible with minimal delays. Another reason may be to allow the content agent to establish a recurring service cycle, such as a monthly service, whereby the content is updated monthly but the content agent is only sent once a year. Content is delivered and processed periodically, each period being treated as an independently managed transaction, with all of those transactions being established by a single negotiation process. This maximizes efficiency of system resource consumption because a content agent does not have to be transmitted, stored and processed each month simply because the content changed.
Similar to storing content by reference, it is not necessary to send the entire content agent back to the clearinghouse agent upon completion of the destination agent's actions. Rather, the destination agent could transmit only the transactional information accumulated in storage 162 with a header indicating the identity of the content agent and the nature of the information. The choice of sending a message or sending the content agent depends on the nature of the content and the terms of distribution. For example, if the content agent is to proceed further in a newly formed distribution channel (which begins with the existing destination node) , then it simply sends the transaction to the clearinghouse node and the content agent itself will proceed down the new distribution channel.
In addition, transactional information can be sent to the clearinghouse agent each time a content agent transacts with a distribution agent. This allows the content agent data structure to remain constant in size, rather than continuously growing. A potential disadvantage of this alternative is that each distribution node must have a means of contacting the clearinghouse node. If both methods are implemented, namely, the continuous sending of transactional information and the final sending of the content agent, conflicting or missing information can be further processed.
It is similarly not required that the actual content agent be sent back upstream in the event of a refusal. In another embodiment of the present invention, the rejected content agent is not physically passed back through the system, but a simple "contract cancelled" message is sent back to each, or passed back among, the distribution agents instead. This message would ultimately reach the clearinghouse agent and the transactions analyzed. Rather than relying on the distribution agent, the content agent could also be instructed to "self destruct", i.e. simply delete itself from the destination node without modifying the downloaded content. In a one-way channel of distribution such as 602 of
FIGURE 7, it may not be possible for distribution node 670 to inform the upstream nodes of the refusal. In this situation, distribution simply stops and the natural expiration date of the terms of distribution eventually takes effect. When the expiration date takes effect, and the distribution agents determine that the payment deadline has passed with no payment issued, they will then realize that the contract requirements were not met and can take the necessary steps to delete the transaction and/or store some related information as needed. However, if actual notification of refusal is required or preferred, clearinghouse node 600 could create and transmit a new content agent which limits distribution to the particular addresses of the distribution nodes 630, 640 and 650. This second content agent would then contain information associated with the refusal. The sophistication of the content agents can also vary from relatively unsophisticated to very sophisticated. At one end, a content agent may comprise no more than an unencrypted document or email, where a part of the document contains the terms of distribution and the other part of the document is content in the form of text, an attachment or hyperlink to the content's location. In such a case, the distribution and destination agents do not call any functions in the content agent. Rather, the agents simply read the terms of distribution, append the transactional information to the document if they agree to the terms, and then distribute the document or use the content.
At the other end of sophistication, the content agents may actually perform the decision and performance functions rather than the distribution agent. For example, rather than the distribution agent downloading all of the terms of distribution, the distribution agent may tell the content agent what it is willing to do and the content agent would then agree or refuse the proposal. The content agent could also call the API's of the distribution node itself, such as distribution and downloading of content. The destination agent may have no responsibility other than providing a list of actions that the node is willing to enable to make available to the content agent. In another embodiment of the present invention, both the content agent and the distribution and destination agents have the ability to propose and evaluate terms of distribution. Accordingly, if the distribution agent is not willing to accept the terms of distribution proposed by the content agent, it can propose alternative terms of distribution for the content agent to evaluate for acceptance or refusal. The content agent would then make the same sort of acceptance/rejection evaluations as the distribution agent.
In another embodiment of the present invention, the clearinghouse node includes a plurality of vendor agents to assist it with the actions occurring at the node. The vendor agents store information such as completed distribution channels and associated content agents in the vendor database. As shown in FIGURE 6, the vendor agents 520-22 are similar to the other agents described above inasmuch as each vendor agent includes a unique identity 525 and a set of functions 530. Any agents and programs external to the agent can only gain access to the data contained in the vendor agent by calling the appropriate function and providing the parameters required by the function.
Vendor agent identity structure 525 contains the agent's unique identification, which can be used by various entities to keep track of the particular vendor agent. The clearinghouse assigns this value when a vendor agent is first created. Because there is preferably one vendor agent for a given vendor, this value is the only information needed to uniquely identify a given vendor agent. This is in contrast to content agents, which may have many simultaneous instances distributed among several nodes in a distribution channel.
Vendor agent 520 uses less internal storage than a content agent because most of the data that it needs to manage, such as the vendor contact information, references to content agents, terms of distribution and the like, are stored in the vendor database 511, 512 or 516 corresponding with the particular vendor. Because vendor agents reside permanently at clearinghouse node 500, it is not necessary to maintain the data internally to the agent. In the alternative, each vendor agent could maintain all of its data internally and the clearinghouse node 500 would keep a separate database that pointed to each vendor agent and clearinghouse agent 510 would query the vendor agents for the information.
Vendor agent 520 exposes functions 530 to clearinghouse agent 510, or content agent 550, for the purpose of performing the following steps: creation, management and eventual destruction of content agents; analysis of terms of distribution and allocation of micropayments to distributor database 515; secure communications with various entities in the system, based on the security mechanism in effect; and secure access to its vendor database in the clearing house. In operation, clearinghouse agent 510 processes new content by passing the content to the vendor agent associated with the vendor which created the content. If no vendor agent exists, then one is created. The vendor agent then creates the content in a manner similar to the creation of content agent 150 by clearinghouse agent 110.
When a content agent 550 returns to the clearinghouse node 500, clearinghouse agent 510 queries the content agent for the identity of the associated vendor. The content agent 510, or a reference to the content agent 510, is then provided to the appropriate vendor agent. One of vendor agents 520-522 then processes the content agent and the payment information rather than clearinghouse agent 510. Specifically, the vendor agent queries the content agent for all data regarding terms of distribution and the distribution channel through which it passed. This information is stored in the vendor database and distributor database. The vendor agent then notifies the clearinghouse agent 510 regarding the appropriate payment information. Vendor agents 520-522 also use vendor database 516 to store information regarding any active distribution channels and the associated terms of distribution of which they become aware. Some or all of the information in vendor database 516 may be exposed only to the vendor agent and the outside vendor whom it represents; even the clearinghouse, including clearinghouse agent 510, may be prevented from accessing entries in the database without going through a vendor agent.
An advantage of using vendor agents is that there is a clean separation among vendors and their confidential data used by clearinghouse agent 510. Any number of content agents may report to a given vendor agent (assuming all of the content is from the same vendor) .
In another embodiment of the present invention, there is a single "master" vendor agent for all vendors with which the clearing house deals. In other words, there is a single vendor agent that acts on behalf of all vendors, maintaining separation and confidentiality of data per vendor, that manages all content agents. In yet another embodiment, there may be one vendor agent per content agent.
Clearinghouse node 500 may further include data mining database 515. This database stores data mining rules and results. An example of a data mining rule may be "find all distribution agents who successfully handled 10 or more agreements in the recent week". The rules can be in the form of scripts or query specifications, each of which has a label and other attribute information. These rules can be presented in an administrative application for human use, or triggered automatically by scheduled actions managed by the clearing house agent. Each distribution node may contain more than one distribution agent. For example, each distribution agent may specialize in a particular class of content agent or content, or the same distribution node may contain different distribution agents controlled by different entities. Accordingly, the same distribution node may carry the same content agent more than once. A content agent's terms of distribution could enable or disable such an operation by requesting an identification of both the node and its associated agents and determining eligibility based on both such numbers . This illustrates the flexible relationship between the logical notion of an agent and node. A single web server may be serving several web sites, where each web site is a distinct distribution node. Likewise, an entire network of computers may be treated as a single distribution node.
Because a content agent controls its own data, it may modify its terms of distribution on the fly depending on the information it received from a distribution agent. By way of example, if distribution agent 210 accepts terms of distribution 170 from FIGURE 3 regarding direct distribution to an end user, then the content agent may modify its eligibility string 166 to delete the reference to "web server" so that only an "end-user" is eligible to receive the content agent from then on. The Regis terAgent function performs this change by comparing the passed parameters with terms of distribution 170 and, if they are equal, the function modifies the string. Such a contingency would not be difficult to program for one of ordinary skill in the art in light of the foregoing disclosure. The modification of terms of distribution may also be more sophisticated and based on any data made available to the content agent such as: contingencies provided by the vendor; contingencies encoded into the content agent by the clearinghouse agent; data learned from distribution agents; and any combination thereof. Accordingly, the content agent can dynamically change the possible paths of distribution based on the formulas or intelligence built into the content agent. The content agent could also periodically contact upstream nodes, such as the clearinghouse node, for additional information. Rather than transmitting the content agent to a downstream node first and then performing the step of eligibility testing, the steps could be somewhat reversed. In another embodiment of the present invention, the distribution node (or the content agent) contacts the downstream node before sending the content agent to determine the node's eligibility. This eliminates wasted data transmission resources when eligibility is negative . The communication mechanism may be divided between separate input and output devices, particularly with respect to the destination node. A PDA device, for example, may have both a wired and a wireless communications capability. One of these may be used for incoming data under normal circumstances, and the other may be used to pass data along to another node.
Although destination node 300 was described as being a personal computer, the destination node may be any device capable of calling the functions of the content agent and logically processing the data to and from the content agent. For example, instead of destination node 300 being a personal computer and portable device 340 being a Digital Wallet, destination node 300 could be the Digital Wallet itself. In such a case, backchannel 330 would be a direct wireless link from the Digital Wallet to the clearinghouse node, a local wire/wireless connection to a personal computer, or a link by modem or the like. Preferably, back channel functionality is always available in a distribution node of this type. However, the channel can also be made available only occasionally, if at all. For example, a Digital Wallet may be a destination node, and in the embodiment it has wireless Internet connectivity for back channel communication. Alternatively, when the Digital Wallet is in proximity or otherwise connected to one of its partner devices which is a node of the system, it can make use of their back channel functionality or communication mechanisms to contact the clearing house. When it is not in proximity, it must wait until the user brings it into proximity. In either event, the user can be prompted to carry out
' the necessary steps to help ensure that the back channel is available, and therefore the overall system can operate as required. Either the destination agent or the content agent could continuously query the platform to determine when the back channel or communication medium is available. Destination nodes may also be distribution nodes depending on the nature of the content and the terms of distribution. In other words, the destination agent may establish a new distribution channel by passing the content agent on to another node of the system. The destination agent associated with such a node would be provided with the same basic functionality as a distribution agent, but with additional responsibilities as a destination. An example of such a destination node is a Digital Wallet where the terms of distribution pay distribution agents for both the downloading of the content agent into the wallet and the downloading of the content agent from the Digital Wallet to a retailer. The present invention has the advantage of providing payment for actions which occur before the final downloading or use of the content. The compensation associated with the terms of distribution may be also be varied in any number of ways. For example, each distribution agent may be paid the same fixed price as discussed above. If there is a concern regarding fraudulent distribution by churning, a fixed amount may also shared among all distributors in the chain. The sharing may be an even distribution or weighted against other factors such as business relationships, etc. Requiring destination agents to share the same fixed amount incents distribution nodes to get the content agent as quickly as possible to the destination. Due to the flexible and dynamic nature of the distribution channels in this system, it is not always possible to know in advance how much a distribution agent can expect to be compensated for participation in the case of a fixed payment value that is shared among all participants. For this reason, the existence of the clearing house, acting as an independent third party between the vendor and distributor, can help to ensure fairness and accurate payment settlement. This is yet another advantage of the clearing house being a central authority in this system.
It is not necessary that the compensation be limited to payments. For example, the payments may be in the form of mileage, cross-advertising, points which are redeemable for some product or service or any other form of compensation.
Most of the foregoing alternative embodiments are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the invention as defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the invention as defined by the claims. Unless stated to the contrary, use of the word
"included" herein or any variation thereof, means "including without limitation" and shall not be construed to limit any general statement that it follows to the specific or similar items or matters immediately following it.

Claims

CLAIMS :
1. A method of acting on content at a node (200, 300) of a set (50) of nodes, said node (200, 300) operated by an entity, said method comprising: receiving a content agent (150) at said node (200, 300) from another node (100, 200) of said set, said content agent (150) comprising content (159) and terms of distribution (157) for said content (159), said terms of distribution (157) comprising an action (167, 169) to be taken by said node such that successful completion of said action (167, 169) by said node (200, 300) entitles said entity to compensation; automatically determining whether to perform said action (167, 169) based on said terms of distribution (157); and automatically performing said action (167, 169) upon an affirmative result of the determination.
2. The method of claim 1 further comprising the step of automatically accruing said entitlement to compensation in response to the node (200, 300) successfully performing said action (167, 169) .
3. The method of claim 2 wherein said step of accruing is conditional upon another node (300) of said set of nodes (50) performing another said action (169) contained in said terms of distribution (157) .
4. The method of claim 2 wherein said step of determining comprises comparing said compensation with the cost of performing said action.
5. The method of claim 4 wherein said step of determining further comprises analyzing the likelihood of said node (200, 300) accruing said entitlement to said compensation and the cost of said node (200, 300) performing said action (167) .
6. The method of claim 4 wherein said step of determining further comprises comparing a description (173) of the characteristics of said content (159) with data (220, 380) stored at said node (200) .
7. The method of claim 4 wherein said step of determining further comprises comparing a description (225, 315) of said node (200, 300) with data stored in said content agent (150) .
8. The method of claim 2 further comprising sending notification to a clearinghouse node (100) in response to the node
(200, 300) successfully performing said action, wherein said clearinghouse node (100) is a node of said set and adapted to record said entitlement to compensation.
9. The method of claim 8 wherein said notification comprises said content agent (150).
10. The method of claim 9 wherein said content agent (150) contains the address of said clearinghouse node (100).
11. The method of claim 8 wherein said compensation comprises a monetary payment and said method further comprises the step of said clearinghouse node (100) notifying an entity (75) responsible for sending said payment to said (200) node that said payment has accrued.
12. The method of claim 1 wherein said node (200, 300) further comprises a node agent (210, 310), said node agent (210, 310) performing said step of determining.
13. The method of claim 12 further comprising the step of checking whether said node agent (210, 310) has previously received said content agent (150) and not performing said determining and performing steps if said node agent (210, 310) has previously received said content agent (150) .
14. The method of claim 1 further comprising the step of evaluating whether said node (200, 300) satisfies eligibility criteria (166) and not performing said determining and performing steps if said eligibility criteria (166) is not satisfied, said terms of distribution (157) further comprising said eligibility criteria (166) .
15. The method of claim 14 wherein said evaluating step comprises said content agent (150) receiving a description of said node (200, 300) from said node (200, 300) and said content agent .(150) performing said step of evaluating.
16. The method of claim 1 further comprising the step of storing in said content agent (150) the identity of said node (200, 300) upon said affirmative result.
17. The method of claim 16 further comprising the step of storing in said content agent (150) information regarding the manner by which said node (200, 300) receives said compensation upon said affirmative result.
18. The method of claim 17 wherein said information regarding how said node should receive said compensation comprises a bank account.
19. The method of claim 1 wherein said compensation comprises a monetary payment.
20. The method of claim 1 wherein said action (167, 169) comprises distributing said content agent (150) to another node (300) of said set of nodes (50) .
21. The method of claim 20 further comprising the step of determining which nodes to distribute to based upon data contained in said content agent.
22. The method of claim 20 further comprising repeating said steps at the node (300) of said set (50) that receives said content agent (150) from the node (200) distributing said content agent (150) .
23. The method of claim 1 further comprising the step of notifying the node (200) from which said content agent (150) was received of a non-affirmative result if the result of said determining step is not affirmative.
24. The method of claim 1 wherein said action (167) comprises using said content (159).
25. The method of claim 24 wherein said action (167) comprises displaying (325) said content (159) to an end user.
26. The method of claim 24 wherein said action (167) comprises downloading said content (159) from said node (300) to a device (340) connected to said node (300).
27. A node (200, 300) of a set of nodes (50), said node (200, 300) operated by an entity, comprising: a processor (205, 305) under the control of programs, a node agent (210, 310) comprising a program executable by said processor (205, 305) and adapted to: automatically access a content agent (150) received from another node (100, 200) of said set (50), said content agent (150) comprising content (159) and terms of distribution (157) for said content (159), said terms of distribution (157) comprising an action (167, 169) to be taken by said node (200, 300) whereby successful completion of said action (167, 169) by said node (200) entitles said entity to compensation; and automatically determine whether to perform said action
(167, 169) based on said terms of distribution (157).
28. The node of claim 27 wherein said node agent (210, 310) is further adapted to automatically perform said action (167, 169) upon an affirmative result of the determination.
29. The node of claim 27 wherein said node agent comprises a distribution agent (210) and said action (167, 169) comprises distributing (168, 170) said content agent (150) to other nodes of said set (50) .
30. The node of claim 29 wherein said distribution agent (210) distributes said content agent (150) to other nodes of said set dependent upon said other nodes meeting predetermined criteria .
31. The node of claim 27 wherein said node agent comprises a destination agent (310) and said action (167, 169) comprises using said content (159) of said content agent (150) .
32. The node of claim 31 wherein said action (167, 169) comprises displaying said content to an end user.
33. The node of claim 31 wherein said action (167, 169) comprises downloading (171) said content (159) from said node (300) to a device (340) connected to said node.
34. The node of claim 33 wherein said node (300) comprises a personal data device.
35. The node of claim 33 wherein said node (300) comprises an electronic version of a wallet and said content comprises a monetary discount or award.
36. A node of claim 27 wherein said node agent (210, 310) further comprises a description (225, 315) of the node.
37. A node of claim 36 wherein said agent (210, 310) is associated with a web site and said description (225, 315) of said node (200, 300) comprises a description of the data on such web site and an identification of said entity.
38. A node (100) of a set of nodes (50) comprising: a processor (107) under the control of programs, a clearinghouse agent comprising (110) a program executable by said processor (107) and adapted to: create content agents (150) for further distribution to another node of said set (50) , said content agent comprising content (159) and terms of distribution (157) for said content (159), said terms of distribution (157) comprising an action (167, 169) to be taken by said another node whereby successful completion of said action (167, 169) by said another node entitles the entity operating said another node to compensation; and automatically record the accrual of said compensation upon notification that said action (167, 169) has been successfully performed by said other node.
39. A node of claim 27 or 38 wherein said node (100, 200, 300) comprises a general purpose computer.
40. A node of claim 27 or 38 wherein said set of nodes (50) comprises a network (80) of nodes.
41. A node of claim 40 wherein said network (80) comprises the Internet.
42. A node of claim 40 wherein said node (100, 200,
300) comprises a network server.
43. A node of claim 27 or 38 wherein said content agent (150) is received or distributed via wireless broadcast.
44. A node of claim 43 wherein said wireless broadcast comprises a digital television signal.
45. A node of claim 27 or 38 wherein said content agent (150) is received or distributed via physical media.
46. A node of claim 27 or 38 wherein said physical media comprises DVD.
47. A node of claim 27 or 38 wherein said content agent
(150) comprises an electronic version of a document and a document comprises an electronic file which is not executable.
48. A node of claim 27 wherein said content agent (150) comprises an executable program containing data (157, 160, 159) and functions (155) .
49. A node of claim 48 wherein some of said data (157, 159, 160) and some of said functions (155) are not always accessible to said node agent (110, 210, 310) .
50. A node of claim 49 wherein said content agent (150) is a Java applet.
51. A node of claim 27 wherein said node (100, 200, 300) further comprises a unique identifier (225, 315) differentiating said node (100, 200, 300) from any other node of said set (50) of nodes.
52. A node of claim 51 wherein said content agent (150) further comprises a data storage block (162) for storing the unique identifier of said node and the node from which said content agent was sent.
53. A node of claim 27 or 38 wherein said content agent (150) further comprises a unique identifier (172) differentiating said content agent (150) from any other content agent at any other node of said set (50) of nodes.
54. A node of claim 27 or 38 wherein said terms of distribution (157) further comprise a description of said compensation associated with said action.
55. A node of claim 54 wherein said terms of distribution (157) are provided to said node in Extensible Markup
Language .
56. A node of claim 54 wherein said terms of distribution (157) further comprise a second action (169) to be taken by said node (200, 300) whereby successful completion of said second action (169) by said node (200, 300) entitles said entity to compensation.
57. A node of claim 54 wherein said terms of distribution (157) further comprise an expiration date by which said action must be successfully completed in order to entitle said entity to compensation.
58. A node of claim 27 or 38 wherein said content (159) comprises an electronic file comprising at least one of text, still images, video images or sound.
59. A node of claim 27 or 38 wherein said content (159) comprises advertising.
60. A node of claim 59 wherein said advertising comprises a coupon for a monetary discount or award.
61. A node of claim 60 wherein said advertising comprises a coupon and said action (167) comprises providing said content (159) to an electronic version of a wallet.
62. A node of claim 54 wherein said action comprises a first action (167), said first action (167) comprises distributing said content agent to another said node of said set (50) , said terms of distribution (157) further comprises a second action (169) to be taken by another said node, said second action (169) comprises using said content (159), and the entitlement to compensation associated with said first action (167) is conditional upon successful completion of said second action (169) .
63. A node of claim 62 wherein the successful completion of said second action (169) does not entitle the entity operating said another said node to compensation.
64. A method of distributing content (159) over a network (80) of nodes comprising the steps of:
(a) a clearinghouse node (100) creating a content agent (150), said content agent (150) comprising content (159) and terms of distribution (157);
(b) said terms of distribution (157) comprising a first action (167) and a second action (167) to be successfully completed by other nodes of said network (80) ;
(c) said first action (167) comprising distributing said content agent to other nodes of said network (80), said terms of distribution (157) further comprising a promise of compensation to nodes which successfully complete said first action (167);
(d) said second action (169) comprising using said content (159) ; (e) said clearinghouse node (100) transmitting a copy of said content agent (150) to a first distribution node (200); (f) said first distribution node (200) automatically receiving said content agent (150), evaluating said terms of distribution (157), determining if said node (200) desires to perform said first action (167) based on said terms of distribution (157), and, if so, appending its identity (225) to said content agent (150) and distributing said content agent (150) to a destination node (300) or a second distribution node (270) or both;
(g) if said content agent (150) is distributed to said second distribution node (270), said second distribution node
(270) automatically performing said steps of receiving, evaluating, determining and, dependent upon the determination, said steps of appending and distributing;
(h) said destination node (300) automatically receiving said content agent (150), evaluating said terms of distribution (157), determining if said node (300) desires to perform said second action (169) based on said terms of distribution (157), and, if so, using said content (159) and sending said appended identity or identities to said clearinghouse node (100) with notification that said second action (169) has been successfully completed; and
(i) said clearinghouse node (100) automatically accruing compensation owed to said distribution nodes (200, 270) corresponding with said appended identity (225) or identities.
65. The method of claim 64 wherein said content (159) comprises a coupon for receiving a monetary discount or award and said second action comprises providing said coupon to an end user or retailer.
66. A method of acting on content at a node (200, 300) of a set (50) of nodes, said node (200, 300) operated by an entity, said method comprising: receiving a content agent (150) at said node (200, 300) from another node (100, 200) of said set, said content agent (150) comprising content (159) and terms of distribution (157) for said content (159), said terms of distribution (157) comprising an action (167, 169) to be taken by said node such that successful completion of said action (167, 169) by said node (200, 300) entitles said entity to compensation; substantially automatically determining whether to perform said action (167, 169) based on said terms of distribution (157); substantially performing said action (167, 169) upon an affirmative result of the determination; automatically accruing said entitlement to compensation in response to the node successfully performing said action.
PCT/US2000/034099 1999-12-14 2000-12-14 System and method for distributing content over a network WO2001044965A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU25807/01A AU2580701A (en) 1999-12-14 2000-12-14 System and method for distributing content over a network

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17071899P 1999-12-14 1999-12-14
US60/170,718 1999-12-14
US47646299A 1999-12-30 1999-12-30
US09/476,462 1999-12-30

Publications (1)

Publication Number Publication Date
WO2001044965A1 true WO2001044965A1 (en) 2001-06-21

Family

ID=26866378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/034099 WO2001044965A1 (en) 1999-12-14 2000-12-14 System and method for distributing content over a network

Country Status (2)

Country Link
AU (1) AU2580701A (en)
WO (1) WO2001044965A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1286515A2 (en) * 2001-08-10 2003-02-26 Yamaha Corporation Network system of distributing protected contents through secured carrier server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148241A (en) * 1998-07-01 2000-11-14 Sony Corporation Of Japan Method and system for providing a user interface for a networked device using panel subunit descriptor information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148241A (en) * 1998-07-01 2000-11-14 Sony Corporation Of Japan Method and system for providing a user interface for a networked device using panel subunit descriptor information

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NEIBAUER ALAN: "Running microsoft outlook 98", 1998, MICROSOFT PRESS, XP002938653 *
TRYLLIAN MOBILE AGENTS: "Going beyond the Web", May 2000, A COMMERCIAL WHITE PAPER VERSION 1.0, XP002938654 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1286515A2 (en) * 2001-08-10 2003-02-26 Yamaha Corporation Network system of distributing protected contents through secured carrier server
EP1286515A3 (en) * 2001-08-10 2005-03-16 Yamaha Corporation Network system of distributing protected contents through secured carrier server

Also Published As

Publication number Publication date
AU2580701A (en) 2001-06-25

Similar Documents

Publication Publication Date Title
US8280906B1 (en) Method and system for retaining offers for delivering targeted data in a system for targeted data delivery
US8266282B2 (en) System and method for enforcing advertising policies using digital rights management
US20190108556A1 (en) Content delivery systems and methods
US7975150B1 (en) Method and system for protecting queryable data
US8635244B2 (en) System and method for structured news release generation and distribution
US7584223B1 (en) Verifying information in a database
US5724521A (en) Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US20080103971A1 (en) Method and system for tracking conversions in a system for targeted data delivery
US20070088603A1 (en) Method and system for targeted data delivery using weight-based scoring
US7945585B1 (en) Method and system for improving targeted data delivery
US20040122730A1 (en) Electronic messaging system and method thereof
US20030009385A1 (en) Electronic messaging system and method thereof
US7945545B1 (en) Method and system for utilizing user information to provide a network address
CA2475603A1 (en) System for permission-based communication and exchange of information
US20080140838A1 (en) Electronic service system using main site server and partner site server
JP2006024234A (en) System which carries out tracking of user activity in electronic commerce
WO2001044965A1 (en) System and method for distributing content over a network
US8296181B1 (en) Method and system for offsetting printing costs in a system for targeted data delivery
O'Daniel A value-added model for e-commerce
JP2009545026A (en) Advertisement opportunity exchange system and method
Kannan et al. The internet information market: the emerging role of intermediaries
JP7189980B2 (en) Information communication system and information communication method
KR102270951B1 (en) P2p cartoon service system and method of providing service based on blockchain network advertisement
JP4647717B2 (en) A system for tracking user activity in electronic commerce
De API Monetization

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 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
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP