US 7,577,990 B2
Method and system for resolving disputes between service providers and service consumers
Michael D. Smith, Kirkland, Wash. (US); Miller T. Abel, Mercer Island, Wash. (US); Max G. Morris, Seattle, Wash. (US); John A. Maffei, Medina, Wash. (US); and Bruce E. Johnson, Bellevue, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Feb. 27, 2004, as Appl. No. 10/789,808.
Prior Publication US 2005/0193112 A1, Sep. 01, 2005
Int. Cl. G06F 7/04 (2006.01); G06F 12/00 (2006.01); G06F 12/14 (2006.01); G06F 13/00 (2006.01); G06F 17/30 (2006.01); G06K 19/00 (2006.01); G11C 7/00 (2006.01); H04L 9/32 (2006.01)
U.S. Cl. 726—21 15 Claims
OG exemplary drawing
 
1. A method in a computing device with a processor and a memory for requesting a service provider to provide services so that the service provider can demonstrate to a service intermediary that it provided services requested by a service consumer, the method comprising:
generating by the service consumer a start code and a sequence of codes starting with the start code and ending with an end code, each code being generated by applying a function to the previously generated code, the codes being generated in a forward order from the start code to the end code;
registering with the service intermediary an indication of an end code of the service consumer and an identification of the service provider wherein the intermediary provides the end code to the service provider;
when the service consumer requests the service provider to provide services, providing by the service consumer to the service provider the generated codes in reverse order of generation such that the service consumer only provides the next code in reverse order when a prior requested service has been provided by the service provider;
when the service provider can verify that the end code can be derived from the code provided with a request, providing the requested service to the service consumer;
providing by the service consumer to the service intermediary an indication of a consumer last code provided by the service consumer to the service provider;
providing by the service provider to the service intermediary an indication of a provider last code provided by the service consumer to the service provider;
when the service intermediary determines that the consumer last code and the provider last code are the same, indicating that evidence has been provided that the requested service was provided; and
when the service intermediary determines that the consumer last code and the provider last code are not the same,
applying the function to the provider last code to determine whether the end code can be generated;
when the end code can be generated, indicating that the service provider has provided evidence that the requested service was provided and thus establishing that the consumer last code was not the actual last code provided to the service provider or establishing that the provider last code was not the actual last code provided to the service provider by the service consumer; and
when the end code cannot be generated, indicating that the service provider has not provided evidence that the requested service was provided and thus establishing that the provider last code was not a code provided in a request to the service provider by the service consumer such that the service provider verified that the end code can be derived from the provider last code
wherein the method is performed by the computing device.