Patent Publication Number: US-2004059638-A1

Title: Systems and methods for bonding information and services

Description:
RELATED APPLICATION  
     [0001] This application claims priority under 35 U.S.C. § 119 based on U.S. Provisional Application Serial No. 60/189,034, filed Mar. 14, 2000, the disclosure of which is incorporated herein by reference. 
    
    
     
       BACKGROUND OF THE INVENTION  
       [0002] A. Field of the Invention  
       [0003] The present invention relates generally to surety systems and, more particularly, to systems and methods that bond information and services provided in a transaction.  
       [0004] B. Description of Related Art  
       [0005] Electronic commerce (“eCommerce”) has dramatically increased in recent years. In some conventional eCommerce systems, transactions occur over a network, such as the Internet, using protocols or mechanisms, such as the Hypertext Transfer Protocol (http://). A user may access a web site, or the like, of a server to seek out or research information, purchase or research goods and/or services, and communicate with other users, web sites, or services.  
       [0006] In other conventional eCommerce systems, a growing number of transactions are performed across intranets and internets, such as the Internet, by protocols or mechanisms other than the Hypertext Transfer Protocol (http://). Such non-http-based transactions use a myriad of different protocols and languages to encode the information, including Electronic Data Interchange (EDI), File Transfer Protocol (FTP), Extensible Markup Language (XML) send and receive, Standard Generalized Markup Language (SGML), etc. Furthermore, transactions such as these use transport mechanisms with protocols other than, or built upon, Transmission Control Protocol/Internet Protocol (TCP/IP), such as Internetwork Packet Exchange (IPX), Internet Protocol Security (IPSEC), Internet Protocol Version 6 (Ipv6), Secure Sockets Layer (SSL), etc. Also, these non-Web-based transactions can occur as a result of interconnections between systems through a common language specified by a metalanguage (e.g., specified by XML) or through direct binary communication between systems (e.g., via Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA), or other distributed object, procedural, or client-server architectures).  
       [0007] Uncertainties exist, however, in almost any conventional eCommerce transaction, such as the uncertainty of whether certain services and information will be provided as promised. With the vast amount of services and information available on the Internet, for example, users have no way to determine whether services will be performed as promised or whether provided information is accurate and valid.  
       [0008] As a result, a need exists for a mechanism to guarantee the performance of services and the accuracy and validity of information presented as part of an eCommerce transaction.  
       SUMMARY OF THE INVENTION  
       [0009] Systems and methods consistent with the present invention address this need by providing to participating servers a mechanism for supplying a guarantee to their customers, under a surety bond issued by a bona fide, financially competent bonding institution (or “bonding agent”), that certain services will be provided and that information provided by the server is accurate and valid.  
       [0010] In accordance with the purpose of the invention as embodied and broadly described herein, a system assures the accuracy of information and the performance of services. The system receives a request from an entity to bond the information and services corresponding to the entity and evaluates the accuracy of the information and the performance of the services. The system bonds the information when the information is determined to be accurate and the services when performance of the services is assured.  
       [0011] In another implementation consistent with the present invention, a method assures the accuracy of information and the performance of services provided by an entity. The method includes receiving a request from the entity to bond the information and the services provided by the entity; receiving a warranty from the entity, the warranty indicating to the bonding agent that the information is accurate or that the service performance is guaranteed; and bonding the information based on the warranty when the warranty indicates that the information is accurate and the services based on the warranty when the warranty indicates that the service performance is guaranteed.  
       [0012] In yet another implementation consistent with the present invention, a system guarantees the accuracy of a group of data and the performance of a series of services provided by an entity over a period of time. The system receives a request from the entity to bond the group of data and the series of services provided by the entity over the time period and analyzes the accuracy of the group of data and the performance of the series of services. The system bonds the group of data when the data is determined to be accurate and the series of services when performance of the series of services is assured.  
       [0013] In a further implementation consistent with the present invention, a method guarantees the accuracy or validity of information provided by an entity. The method includes analyzing a request from the entity to bond information provided by the entity; determining whether the information is accurate or valid; and assigning a bond to the information when the information is determined to be accurate or valid. The bond identifies an amount of indemnity to be paid when the information is later found to be inaccurate or invalid.  
       [0014] In another implementation consistent with the present invention, a method guarantees the performance of a service offered by an entity. The method includes analyzing a request from the entity to bond performance of the service offered by the entity; determining whether performance of the service is assured; and assigning a bond to the performance of the service when the performance of the service is determined to be assured. The bond identifies an amount of indemnity to be paid when the service is performed in a manner other than as offered. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0015] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,  
     [0016]FIG. 1 is a diagram of an exemplary system consistent with the present invention;  
     [0017]FIG. 2 is a detailed diagram of an exemplary device that may incorporate the client, server, and/or bonding agent entities of FIG. 1;  
     [0018]FIG. 3 is a flowchart of processing evaluating the accuracy and validity of information and/or services provided by a server;  
     [0019]FIG. 4 is a flowchart of processing for bonding information that is warranted to be accurate and valid and/or services that are warranted to be performed as promised; and  
     [0020]FIGS. 5A and 5B are flowcharts of processing for bonding information and/or services over a series of transactions.  
    
    
     DETAILED DESCRIPTION  
     [0021] The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and equivalents.  
     [0022] Systems and methods consistent with the present invention guarantee the accuracy and validity of information and guarantee that services will be performed as promised by providing an indemnity when the information turns out to be inaccurate or invalid or the services go unperformed or are performed in a manner other than as promised.  
     [0023] Exemplary System  
     [0024] An exemplary system consistent with the present invention includes various logical groupings of entities provided by one or more devices. An “entity” refers to a device, resource, data, or functionality that can be accessed by a user, program, device, or another entity, that can be computational, storage-related, communication-related, or related to providing access to another user. Examples of entities include software, such as application programs, threads, and processes; information, such as databases and files; objects as traditionally defined in the art, including, but not limited to, Component Object Model (COM), COM+, or Common Object Request Broker Architecture (CORBA)-compliant objects, or other objects that do not necessarily comply with an over-arching object model; and hardware, such as computer devices and components.  
     [0025] In an interaction between two entities within the exemplary system, the “client” entity requests information or services (directly or indirectly) from the “server” entity. The client and server entities may physically reside on a single computer or on multiple computers. In some instances, an entity may be both a client and a server entity. For example, in a business-to-business transaction, a first entity may request goods, services, and/or information from a second entity at one point, and provide goods, services, and/or information to the second entity at another point. In this case, the first and second entities may be considered both client and server entities.  
     [0026]FIG. 1 is a block diagram of the exemplary system  100  consistent with the present invention. The system  100  includes a client  110  communicating with a server  120  and a bonding agent  130 . The client  110 , server  120 , and bonding agent  130  may be implemented as one or more devices and may communicate via any communications medium (e.g., by wired, wireless, or optical communication; via a network, such as the Internet; via a storage device; etc.).  
     [0027] The client  110  is an entity that can communicate with the server  120 , such as a personal computer, a laptop, a personal digital assistant (PDA), a wireless telephone, some equivalent device, a thread or process running on one of these devices, or an object executable by one of these devices. The server  120  may include any conventional server entity. The server  120  provides goods, services, and/or information via an interface (e.g., a web site or the like) for use by users associated with entities, such as client  110 . A single client  110  and server  120  have been shown for simplicity. One skilled in the art would recognize that the system  100  may include any number of clients  110  and servers  120 .  
     [0028] The bonding agent  130  is an entity, possibly associated with a bonding institution. The bonding agent  130  issues a surety bond to a user that provides a substantial indemnity to be paid to any user who receives inaccurate or invalid information or a breach of a duty to perform a service from a bonded server. The indemnity may be paid by the server that provides, or fails to provide, the information or service to the user.  
     [0029] The amount of the indemnity may be pre-set for different categories of information or services. For example, the amount of the indemnity may vary for inaccurate financial information as compared to inaccurate entertainment information. The amount of indemnity may be set forth in support and explanatory material provided on the participating server in such a manner as to permit the server to promote the fact that the indemnity is of meaningful financial value. In such explanatory materials on the participating server, and as an element of the contract contained therein, the manner of establishing a claim by a user may be clearly set forth.  
     [0030] In this implementation, the information provided by a server  120  is guaranteed to be accurate and valid and the services provided by the server  120  are guaranteed to be performed as promised through a surety bond provided by the bonding agent  130 . In such an implementation, any information or service provided by the server  120  may be covered by a surety bond provided by the bonding agent  130 .  
     [0031] The bonding agent  130  ultimately defines the “bondable domain” (i.e., the types of information or services for which it will and will not issue a bond), though the assessment of whether information or services fall within the bondable domain may be performed by other entities. In one implementation consistent with the present invention, the bonding agent  130  announces what the bondable domain includes and a server  120  may only ask questions regarding information or services within the bondable domain, if it wishes to protect the information or services. In another implementation, the server  120  predetermines what its bondable domain will be. The bondable domain of the server  120  will be the same as or a subset of the bondable domain of the bonding agent  130 . In yet another implementation, the server  120  determines whether information or services fall within the bondable domain on a transaction-by-transaction, client-by-client, on-the-fly basis, etc.  
     [0032]FIG. 2 is an exemplary diagram of a device  200  that may incorporate client  110 , server  120 , and/or bonding agent  130  in one implementation consistent with the present invention. One skilled in the art would recognize that other configurations are possible.  
     [0033] The device  200  includes a bus  210 , a processor  220 , a session memory  230 , a persistent memory  240 , an input device  250 , an output device  260 , and a communication interface  270 . The bus  210  permits communication among the components of the device  200 . The processor  220  may include any type of conventional processor or microprocessor that interprets and executes instructions. The session memory  230  may include a random access memory (RAM) or another dynamic storage device that stores information and instructions to be executed by the processor  220 , and/or a read only memory (ROM) or another type of static storage device that stores static information and instructions for use by the processor  220 . The persistent memory  240  may include a hard disk, a floppy disk, a CD-ROM, a DVD-RAM, and/or some other type of magnetic or optical recording medium and its corresponding drive.  
     [0034] The input device  250  may include any conventional mechanism capable of inputting information into the device  200 , such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. The output device  260  may include any conventional mechanism capable of outputting information from the device  200 , including a display, a printer, a pair of speakers, etc. The communication interface  270  may include any transceiver-like mechanism that permits the device  200  to communicate with other devices and/or systems.  
     [0035] As will be described in detail below, a device  200 , consistent with the present invention, may assure the accuracy and validity of information and the performance of services provided by a server. The device  200  performs this task in response to processor  220  executing sequences of instructions contained in a computer-readable medium, such as session memory  230 . A computer-readable medium may include one or more memory devices and/or carrier waves. The instructions may be read into memory  230  from another computer-readable medium, such as the persistent memory  240 , or from another device via the communication interface  270 .  
     [0036] Execution of the sequences of instructions contained in memory  230  causes processor  220  to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.  
     [0037] System Processing  
     [0038] In essence, the system  100  attaches a bond to information or services provided by a server guaranteeing the accuracy and validity of the information and the performance of the services. The system  100  may do this in many different ways. With regard to information, for example, the system  100  may directly evaluate the accuracy and validity of information provided by the server either beforehand or during a transaction, using, for example, artificial intelligence (AI), online analytical processing (OLAP), or a statistical or heuristic assessment. In this case, the system  100  may previously establish what constitutes accurate and valid information. Alternatively, the system  100  may be presented with information that is warranted to be accurate and valid and bond the information based on the warranty.  
     [0039] With regard to services, the system  100  may evaluate evidence provided by the server that it has systems and/or methods in place to perform services as promised. For example, the server may provide evidence regarding the performance of services, such as the delivery of services (i.e., that it will be able to perform the promised services), the timeliness of the delivery of services (i.e., that it will be able to perform the services within or by a promised time), and/or the correct implementation and delivery of the services (i.e., that it will be able to perform the promised services in a correct and proper manner). In this case, the system  100  may bond the services based on the evidence. Alternatively, the server may warrant that it will perform services as promised. In this case, the system  100  may bond the services based on the warranty.  
     [0040]FIG. 3 is a flowchart of processing by which the system  100  evaluates the accuracy and validity of information and/or services provided by a server  120 . Suppose, for example, that a client  110  accesses the server  120  in a conventional manner to request information regarding a credit history report. Suppose further that the server  120  informs the client  110  that it will provide the credit report within twenty-four hours.  
     [0041] Processing may begin before the client  100  sends a request to the server  120  (e.g., at the time when the server  120  determines the types of information and/or services that it will provide). Alternatively, processing may begin at the time of the client request. In either case, the server  120  contacts the bonding agent  130 , using conventional techniques, to request bonding of particular pieces or types of information or services [step  310 ]. During the course of a transaction, the client  110  may also contact the bonding agent  130  to make certain that a bonded event is, indeed, occurring.  
     [0042] In the example, the server  120  may arrange beforehand with the bonding agent  130  to bond the credit histories that it maintains in its databases. The server  120  may demonstrate to the bonding agent  130  that it obtained its data from very reliable sources and may possibly show its systems for updating the data. The server  120  may also arrange to bond its twenty-four hour delivery service. The server  120  may demonstrate to the bonding agent  130  that it has systems in place that guarantee that it will be able to deliver a credit report within twenty-four hours. Based on the data provided by the server  120 , the bonding agent  130  may determine whether to bond the credit histories and/or the delivery service.  
     [0043] Upon receipt of data from the server  120  regarding the bonding of information and/or services provided by the server  120 , the bonding agent  130  may assess the bondability of the information and/or services [step  320 ]. In other words, the bonding agent  130  determines whether the information and/or services fall within the bondable domain of the bonding agent  130  (i.e., whether this is the kind of information and/or services that it wants to bond).  
     [0044] If the bonding agent  130  determines that the information and/or services fall outside the bondable domain [step  330 ], the bonding agent  130  informs the server  120  that it will not bond the information and/or services [step  340 ]. If, however, the bonding agent  130  determines that the information and/or services fall within the bondable domain [step  330 ], the bonding agent  130  may evaluate the accuracy and validity of the information, if possible, and/or assess the systems that the server  120  has in place to provide the services [step  350 ].  
     [0045] To determine whether information is accurate and valid, the bonding agent  130  may use predefined heuristics, AI, or OLAP. To determine whether performance of a service may be met, the bonding agent  130  may analyze data, such as past performance or test runs, provided by the server  120 . The bonding agent  130  then informs the server  120  of the result of the evaluation and/or the bondability assessment [step  360 ]. If the bonding agent  130  determines that the information is inaccurate or invalid, the bonding agent  130  may provide information that it determines to be accurate and valid, if possible, to the server  120 . If, instead, the bonding agent  130  determines that the information is accurate and valid and/or the server  120  will be able to meet the promised service performance, the bonding agent  130  may inform the server  120  that it will bond the information and/or service.  
     [0046]FIG. 4 is a flowchart of processing by which the system  100  bonds information that is warranted to be accurate and valid and/or services that are warranted to be performed as promised. Suppose again that a client  110  requests information regarding a credit history report and that the server  120  informs the client  110  that it will provide the credit report within twenty-four hours.  
     [0047] Processing may begin before the client  100  sends a request to the server  120  (e.g., at the time when the server  120  determines the types of information and/or services that it will provide). Alternatively, processing may begin at the time of the client request. In either case, the server  120  contacts the bonding agent  130 , using conventional techniques, to request bonding of particular pieces or types of information or services [step  410 ]. In this case, the server  120  warrants that the information it provides is accurate and valid and that the services it provides will be performed as promised [step  420 ]. The server  120  may do this by providing its own warranty or a warranty of a third (trusted) party.  
     [0048] The bonding agent  130  then assesses the bondability of the information and/or services [step  430 ]. In other words, the bonding agent  130  determines whether the information and/or services fall within the bondable domain of the bonding agent  130  (i.e., whether this is the kind of information-and/or services that it wants to bond). If the bonding agent  130  determines that the information and/or services fall outside the bondable domain [step  440 ], the bonding agent  130  informs the server  120  that it will not bond the information and/or services [step  450 ]. If, however, the bonding agent  130  determines that the information and/or services fall within the bondable domain [step  440 ], the bonding agent  130  may inform the server  120  that it will bond the information and/or services based on the received warranty or warranties [step  460 ].  
     [0049]FIGS. 5A and 5B are flowcharts of processing by which the system  100  bonds information and/or services over a series of transactions. Suppose, for example, that a client  110  desires to purchase supplies from a server  120  over a period of time and that the server  120  promises to deliver each purchase order to the client  1   10  for approval within two hours of receipt of a request. Suppose further that the client  110  wants to bond the accuracy of the data contained in each of its supply requests and the server  120  wants to bond the timeliness of its purchase order deliveries.  
     [0050] With regard to the purchase requests, processing might begin with the client  1   10  contacting the bonding agent  130 , using conventional techniques, to request bonding of the data included in a group of purchase requests that it will make during the time period [step  505 ] (FIG. 5A). The client  110  may warrant the accuracy of the data that it will provide in its future supply requests or may demonstrate that it has systems in place to guarantee the accuracy of the data [step  510 ].  
     [0051] The bonding agent may then assess the bondability of the data by determining whether the data falls within the bondable domain of the bonding agent  130  (i.e., whether this is the kind of information that it wants to bond) [step  515 ]. If the bonding agent  130  determines that the data falls outside the bondable domain [step  520 ], the bonding agent  130  informs the client  110  that it will not bond the data in its supply requests [step  525 ].  
     [0052] If, however, the bonding agent  130  determines that the data falls within the bondable domain [step  520 ], the bonding agent  130  may evaluate the accuracy of the data, if possible [step  530 ]. In this example, the bonding agent  130  may evaluate the data by simply accepting the warranty given by the client  110  or by assessing the systems that the client  110  has in place to guarantee the accuracy of the data. The bonding agent  130  then informs the client  110  of the result of the evaluation and/or the bondability assessment [step  535 ].  
     [0053] With regard to the purchase order delivery, processing might begin with the server  120  contacting the bonding agent  130 , using conventional techniques, to request bonding of the delivery of each of the purchase orders within two hours of receipt of a purchase request [step  550 ] (FIG. 5B). The server  120  may warrant the timeliness of its purchase order deliveries or may demonstrate that it has systems in place to guarantee the delivery of the purchase orders within two hours of receipt of a request [step  555 ].  
     [0054] The bonding agent may then assess the bondability of the delivery service by determining whether the service falls within the bondable domain of the bonding agent  130  (i.e., whether this is the kind of service that it wants to bond) [step  560 ]. If the bonding agent  130  determines that the service falls outside the bondable domain [step  565 ], the bonding agent  130  informs the server  120  that it will not bond its purchase order delivery service [step  570 ].  
     [0055] If, however, the bonding agent  130  determines that the service falls within the bondable domain [step  565 ], the bonding agent  130  may evaluate the service [step  575 ]. In this example, the bonding agent  130  may evaluate the service by simply accepting the warranty given by the server  120  or by assessing the systems that the server  120  has in place to guarantee the timeliness of its purchase order deliveries. The bonding agent  130  then informs the server  120  of the result of the evaluation and/or the bondability assessment [step  580 ].  
     [0056] Conclusion  
     [0057] Systems and methods consistent with the present invention guarantee under surety bond that information is accurate and valid and that services will be performed as promised and provide an indemnity when the information turns out to be inaccurate or invalid or the services go unperformed or are performed in a manner other than as promised.  
     [0058] The foregoing description of preferred embodiments of the present invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, although a series of steps have been provided with regard to the flowcharts of FIGS.  3 - 5 B, the order of the steps may vary in other implementations consistent with the present invention.  
     [0059] In addition, the preceding description identified the bonding agent  130  as the entity that determines the bondability of information and services. This need not be the case, however. In one implementation consistent with the present invention, the bonding agent  130  advertises the categories of information and services that it will bond and the server  120 , or possibly the client  110 , determines whether information or services it wants bonded falls within these categories.  
     [0060] Also, the preceding description identified the server  120  as the entity that requests the bonding services of the bonding agent  130 . In other implementations consistent with the present invention, the client  1   10  may request bonding services relating to information and/or services provided by the server  120 .  
     [0061] Furthermore, the preceding description identified a bond as the vehicle by which information and/or services are guaranteed. In other implementations consistent with the present invention, other forms of guarantees may be used.  
     [0062] The scope of the invention is defined by the claims and their equivalents.