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

| 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.
|