用于解决服务提供商和服务消费者间争议的方法和系统的制作方法

文档序号:6664194阅读:204来源:国知局
专利名称:用于解决服务提供商和服务消费者间争议的方法和系统的制作方法
技术领域
所述技术一般涉及基于服务提供商所提供的不可否认的证据来解决服务提供商和服务消费者之间的争议。
背景技术
可以通过互联网从服务提供商得到许多种服务。例如,一些服务提供商提供了地图信息、天气信息、股票信息等等。服务消费者(例如个人电脑)向服务提供商的web服务器发送对服务的请求。Web服务器执行服务(例如检索所请求的信息)并且经由网页把服务结果提供给正在请求的服务消费者。许多这类服务提供商免费将他们的服务提供给服务消费者。然而,服务提供商一般通过在网页上出售广告空间来获得收入,所述网页提供了服务消费者所请求的信息。
随着计算设备变得越来越小,它们用于显示信息的屏幕也变得越来越小。例如,手机是一计算设备,它允许web接入,但仅有一个非常小的屏幕,该屏幕不能显示包括广告的典型网页。这样,向手机提供服务的服务提供商也许不能通过广告来获得收入。于是希望有一种方式使服务提供商能够在向这种计算设备提供服务时获得收入。
尽管这些计算设备变得越来越小,然而它们的处理能力增加。结果,这些计算设备(例如手机和个人数字助理)能成为许多不同应用程序的主机。例如,手机可以成为提供电子邮件、地图信息、位置信息、年历信息等应用程序的主机。这些应用程序可以在购买计算设备时已预先安装,或由用户在购买后安装。例如,手机用户可能希望在他们的手机屏幕上显示关于他们当前位置的地图。如果地图应用程序未预先安装,则手机用户可能从互联网下载一地图应用程序,并将其安装在他们的手机上。地图应用程序可能需要使用位置服务提供商和地图服务提供商的服务。地图应用程序可能用位置服务提供商基于从手机附近各个小区获得的读数来标识手机的当前位置,或者把该当前位置提供给地图服务提供商以便获得可向用户显示的适当地图。
在这种计算设备上使用应用程序时可能会遇到几个困难。一个困难是服务提供商所使用的广告收入模型在使用这类计算设备时也许不能很好地起作用。一种解决方案会是使服务提供商对每个被请求的服务收取一笔费用。例如,位置服务提供商可能对每个被请求的位置收取$.02。然而,位置服务提供商对每个被请求的服务都向信用卡收费是不实际的,因为收费的交易成本过高。尽管位置服务提供商可以总计对一服务消费者的费用并且仅按月向信用卡收费,然而服务消费者(或计算设备的用户)在对这一费用有争议时并没有效能成本划算的方式。例如,总计费用可能是$10,该费用几乎不能包含信用卡公司为解决争议所需的调查的交易成本。可能希望有一种方式来自动解决这种争议。
即使争议解决没有相关的交易成本,费用总计仍会对服务提供商造成许多缺点。特别是,一个缺点在于,服务提供商可能会冒服务消费者不支付的风险。即使服务提供商可能有服务消费者的信用卡号码,然而收费可能会被拒绝,例如因为持卡人最近取消了该信用卡。为了限制受不支付的影响,服务提供商可能希望较频繁地向信用卡收费,但是这种频繁收费的缺点是每笔收费都有一最低交易成本,该最低交易成本可能比所收取的费用还要高。于是会希望使服务提供商能在受不支付影响和服务收费的交易成本之间指定一个可接受的平衡。
使用这类计算设备的另一困难在于被下载和安装在计算设备上的应用程序可能不能正确地运作。例如,应用程序可能包含一病毒,该病毒每隔10秒向位置服务提供商请求位置信息。这种请求对于服务消费者是未知的,直到接收到的信用卡账单上表明位置服务提供商在该月的服务费用中向服务消费者收取了超过$5,000。可能希望有一种方式来自动检测这一应用程序是否正确地运作。此外,可能希望服务提供商根据应用程序的行为历史来指示特定的应用程序是否可信,使服务消费者能在安装这一应用程序时作出更好的决定。
通常会希望有一种效能成本划算的方式使服务提供商来提供服务,以及使服务消费者在参与者(即服务提供商、服务消费者以及应用程序和它们的创作者)可能不可信的环境中使用各种应用程序。

发明内容
一种争议解决系统提供了一种机制,服务提供商通过这种机制能向服务消费者提供服务,并且具有服务已被请求的不可否认的证据。在一实施例中,服务消费者首先向一服务中介注册一代码序列的尾代码,该服务中介是服务消费者和服务提供商都信任的。代码序列通过向由前一应用生成的代码逐次应用单向函数来生成,以一起始代码开始,以尾代码结束。服务中介向服务提供商提供了尾代码。然后,服务消费者向服务提供商发送对服务的请求,在每个请求中都包括一代码,该代码是以从倒数第二个代码开始的反向生成顺序而选择的。在服务提供商接收一请求时,它可以向请求的代码应用单向函数,看它是否能用来导出尾代码。如果是,服务提供商就能把该代码提供给服务中介,作为它被服务消费者请求来执行服务的不可否认的证据。


图1是说明一实施例中争议解决系统的组件的框图。
图2是说明一实施例中,在服务消费者、服务中介和服务提供商之间的示例信息流的示意图。
图3是说明一实施例中,注册一代码序列的服务消费者的组件的处理流程图。
图4是说明一实施例中,产生一序列的组件的处理流程图。
图5是说明一实施例中,向服务提供商请求一服务的组件的处理流程图。
图6是说明一实施例中,当从服务消费者接收一注册请求消息时被调用的服务中介的组件处理的流程图。
图7是说明一实施例中,当从服务中介接收到一注册通知消息时被调用的服务提供商的组件处理的流程图。
图8是说明一实施例中,当从服务消费者接收到一服务请求消息时被调用的服务提供商的组件处理的流程图。
图9是说明一实施例中,处理争议的服务中介的组件处理的流程图。
图10是说明一实施例中服务消费者的组件的框图。
图11是说明一实施例中,服务消费者的用户怎样为应用程序建立授权限制的显示屏说明。
图12是说明一实施例中,运行时间组件的安装子组件的处理的流程图。
图13是说明一实施例中,运行时间组件中请求服务提供商执行一服务的子组件的处理的流程图。
具体实施例方式
提供了一种争议解决方法和系统,用于请求服务提供商提供服务,使服务提供商能向服务中介证明它已提供了服务消费者所请求的服务。在一实施例中,希望开始请求服务提供商的服务的服务消费者向服务中介注册一尾代码。该尾代码表示了通过向起始代码应用单向函数生成的代码序列中的最后一个代码。(单向函数是相对容易计算的函数,但其求逆相对难以计算。)单向函数的应用产生了一代码序列,该序列以起始代码开始,以尾代码结束,之间是一些中间代码。在接收到服务消费者的注册后,服务中介把尾代码提供给服务提供商。然后,服务消费者能开始请求服务提供商提供服务。服务消费者发送到服务提供商的每个请求都包括与生成反序的代码序列。由于函数是单向的,因此服务提供商应用一反函数以便生成比从服务消费者接收到的代码更接近于起始代码的代码是不切实际的。这样,如果服务提供商具有该序列的一个代码,则可视其为它是从服务消费者接收到的不可否认的证据。此外,由于单向函数相对容易计算,因此服务提供商能通过应用该函数以确定是否能正确导出尾代码,从而容易地确认从服务消费者接收到的代码是否为该序列的有效代码。这样,在服务提供商接收一请求时,它在提供服务前确认该请求的代码能用来导出尾代码。如果确认成功,则服务提供商向服务消费者提供所请求的服务。服务提供商能使用经确认的代码作为不可否认的证据,该证据表明它在接收到经确认的代码前已经提供了服务消费者所请求的所有服务。如果确认不成功,服务提供商就会拒绝提供服务,因为他没有服务消费者已请求该服务的不可否认的证据。如果服务消费者没有被提供所请求的服务,或者对所提供的服务不满意,服务消费者就无须请求该服务提供商的任何其它服务。在这种情况下,服务提供商仅对于第一请求后的请求有代码(即不可否认的证据),对于所述第一请求,服务消费者对所提供的服务不满意。这样,服务提供商能确保它有不可否认的证据,服务消费者能在对所提供的服务不满意的任何时刻停止请求服务。
在接收一代码后,服务提供商能对所提供的服务向服务消费者收费。费用可以被提交给诸如信用卡服务这样的第三方金融实体。如果服务消费者对费用有争议,则服务提供商或服务消费者之一是错误的。(实际上,在特定情况下两者都可能错误。)争议由服务中介解决,服务中介可能与金融实体联合。在服务中介接收到争议的指示时,服务中介能请求服务提供商把他从服务消费者接收到的一个代码作为它按收费提供服务的不可否认的证据。在服务中介从服务提供商接收到该代码时,它能从接收到的代码开始应用单向函数,以确定服务消费者在注册时所提供的尾代码是否能被正确导出。如果尾代码能被正确导出并且单向函数的应用次数符合收费的服务(例如每个应用程序以及每个代码都对应于一个服务),则服务中介宣布服务提供商成为争议的胜利者。服务提供商接收到的代码数目表示了被提供给服务消费者的服务数目。因此,如果服务消费者为了10个服务而被收费,则服务提供商需要导出一代码,在导出尾代码以前需要从该代码导出至少9个代码。通过从起始代码开始并以所提供的代码结束来导出代码,或者通过以所提供的代码开始并以尾代码结束而导出代码,服务中介能确认所提供的代码。在任一情况下,所生成的代码数目都表示了服务提供商能证明它已提供的服务数目。如果所提供的代码不能被确认,则服务中介会宣布服务消费者成为胜利者。这样,服务中介能自动并以低成本(即没有人为干预)来解决争议。
在一实施例中,服务中介首先尝试使用应用单向函数以外的其它方法来解决争议。尽管与其反函数相比较容易计算,然而应用单向函数在频繁应用时会是计算密集的。例如,服务中介每天要解决几千个争议。服务中介可能尝试通过要求服务提供商和服务消费者都提供与被收费的服务相对应的代码来解决争议。如果代码相同,则服务中介宣布服务提供商为胜利者,因为它所提供的代码表示服务消费者承认的是正确的不可否认的证据。然而,如果代码不同,则或服务提供商或服务消费者是错误的(或两者都是错误的)。在这一情况下,服务中介应用单向函数以确定服务提供商所提供的代码正确还是服务消费者所提供的代码正确。服务中介把提供正确代码的人宣布为胜利者。如果服务提供商或服务消费者都没有提供正确的代码,则因为两者都提供了不正确的信息,因此服务中介宣布不能解决争议。或者,服务中介可以把服务消费者宣布为胜利者,因为服务提供商不能提供证据来支持其收费原因。
作为在解决争议时要使用的进一步证据,服务提供商能在提供所请求的服务时将其自身的代码提供给服务消费者。服务提供商可以生成其自身的代码序列,并且将其注册到服务中介。服务中介可以把尾代码提供给服务消费者。服务提供商于是可以响应于每个服务请求,以生成的逆序将这些代码提供给服务消费者。在解决争议时,服务中介可能要求服务提供商和服务消费者提供曾由服务提供商和服务消费者两者所生成的相应代码。服务中介会以服务消费者代码被确认的几乎相同方式来确认这些代码。如果服务提供商提供了正确的服务消费者代码和正确的服务提供商代码,则服务中介把服务提供商宣布为胜利者。如果服务提供商提供了不正确的服务消费者代码而服务消费者正确地提供了两种代码,则服务中介把服务消费者宣布为胜利者。否则,服务中介可能宣布争议不能解决,因为双方都提供了最终是不正确的证据。使用服务提供商所生成的代码提供了另一种级别的确认,该确认是确认争议的解决与证据相一致。
本领域的技术人员会理解,该争议解决系统的许多变化都是可行的。例如,服务中介可能为服务消费者生成代码,并将它们提供给服务消费者,并且为服务提供商生成代码,并将它们提供给服务提供商。或者,服务中介可能选择起始代码并在注册过程期间将它们提供给服务消费者和服务提供商,以供生成它们自身的序列。如果服务消费者生成了代码序列,它就能在注册期间把起始代码、尾代码或两者提供给服务中介。如果服务中介仅被提供起始代码,它就能应用单向函数指定的次数,以导出可提供给服务提供商的尾代码。如果服务中介仅被提供尾代码,它就能把尾代码直接提供给服务提供商。在服务提供商提供了不可否认的证据时,服务中介就能应用单向函数以确定是否能导出尾代码。在服务提供商生成其自身的代码时,会出现一类似的过程。
本领域的技术人员还会理解,把代码从服务消费者发送到服务提供商的定时可以改变。例如,服务消费者可能仅在服务提供商提供了所请求的服务后才提供一代码。该代码可以在下一服务请求中提供,或是紧接着服务被提供后被提供。如果服务提供商未接收到该代码或者不能确认代码的正确性,则它会拒绝向服务消费者提供任何其它服务。当代码在提供所请求的服务前被发送时,服务消费者假设服务提供商不会提供服务的风险。相反,当代码在提供了所请求的服务后被发送时,服务提供商就假设服务消费者不会发送该代码的风险。本领域的技术人员会理解,当服务提供商接收到它能确认的代码时,它能使用该代码来证明服务消费者请求了一个服务。
序列长度或是序列中的代码数目表示能基于一次注册而请求的服务数目。例如,如果在序列中有101个代码,则可以请求100个服务。尾代码不用来请求服务,因为它直接从服务中介被提供给服务提供商。在一实施例中,序列中的代码数目表示一“记账单位”。一个记账单位表示服务提供商在单次收费交易中能收费的最小服务数目。当服务提供商从服务消费者接收到起始代码时,它就为该记账单位的所有服务向服务消费者收费。为了对受不支付负债影响和收费交易成本取得平衡的服务提供商可以指定一个记账单位内的代码数目。服务提供商可能希望通过一次仅对大量服务请求支付而降低其收费交易成本。一个请求中服务数目越多,需要作出的请求数目就越少,所提供的每个服务的收费交易成本就越低。然而,每次收费包含的服务数目越多,服务提供商就越容易受到服务消费者不支付的影响。例如,如果一个记账单位内的服务数目为1000,则如果服务消费者不能支付(例如已经破产),服务提供商就会冒1000个服务不支付的风险。然而,通过是每记账单位有大量的服务请求,收费交易成本中可能的节约数额就可能超过不支付的风险。
在一实施例中,服务消费者能检测它所运行的应用程序是否不正确地运作。例如,该应用程序可能尝试请求比它被授权更多的服务。当服务消费者检测到这种不正确的行为时,服务消费者会自动卸载该应用程序并通知服务提供商。服务提供商能分析各个服务消费者所提供的通知,以确定应用程序是否的确不正确地运作。如果是,则服务提供商能确保该应用程序没有被授权使用服务提供商。当另一服务消费者尝试安装该应用程序时,服务消费者就与服务提供商核对该应用程序是否被授权。如果没有,服务消费者就能取消该应用程序的安装。相反,如果服务提供商检测到一个服务消费者提供了表示许多应用程序都在不正确地运作的通知,而没有其它服务消费者提供这样的通知,则服务提供商可能推断出是服务消费者而不是应用程序正在不正确地运作。在这种情况下,服务提供商可能撤销使服务消费者能使用服务提供商的授权。这样,服务提供商能总计有关应用程序的信息以确定哪些应用程序或服务消费者正不正确地运作。
图1是说明一实施例中争议解决系统的组件的框图。服务消费者101、服务中介102和服务提供商103连到网络104。服务中介可以利用多种公知认证技术的任一种来确保声称来自服务消费者和服务提供商的通信的确是来自它们二者,而不是来自冒名顶替者。服务消费者可能包括任一类计算设备,比如个人数字助理、手机、全球定位系统设备、个人电脑等等。服务提供商可以向服务消费者提供许多种服务。例如,如果服务消费者是一手机,则服务提供商可能提供一位置服务,该位置服务提供了当前位置。
服务消费者、服务提供商和服务中介的计算机系统可能包括中央处理单元、存储器、输入设备(例如键盘和指示设备)、输出设备(例如显示设备)以及存储设备(例如磁盘驱动器)。存储器和存储设备是可能包含实现生成系统的指令的计算机可读介质。此外,数据结构和消息结构可能经由一数据传输介质被保存或被发送,所述数据传输介质比如通信链路上的信号。可以使用各种通信链路,比如互联网、局域网、广域网或点对点拨号连接。
图1说明了一适当工作环境的一例,该环境中可以实现争议解决系统。工作环境只是适当工作环境的一个例子,而不是对争议解决系统的使用范围或功能造成任何限制。可适于使用的其它公知计算系统、环境和配置包括个人电脑、服务器电脑、手持或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费者电子设备、网络PC、微型计算机、大型计算机、包括任一上述系统或设备的分布式计算环境等等。
争议解决系统可以在计算机可执行指令的一般上下文中描述,比如由一个或多个计算机或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。一般而言,程序模块的功能可以是组合的或是分布的,如各个实施例所述。
图2是说明一实施例中,在服务消费者、服务中介和服务提供商之间的示例信息流的示意图。在该例中,服务提供商203不提供其自身的代码序列。当服务消费者201希望请求一服务提供商的服务时,它选择一起始代码,并且在过程1生成和保存从该起始代码导出的一个代码序列。在一实施例中,序列中的代码数目可以是预定义的,例如在服务提供商和服务消费者之间签订的合同中预定义,该合同已向服务中介202注册。然后,服务消费者在过程2向服务中介发送一注册请求。注册请求可包括起始代码、尾代码、服务提供商的标识以及合同标识,其中服务要根据所述合同来提供。服务中介会确认该请求(例如确保服务提供商和合同是有效的)并且在过程3保存服务消费者的注册记录。服务中介可以向每次注册分配一个唯一的注册号,使得可以把有争议的收费跟踪到相应的注册。然后,服务中介在过程4向服务提供商发送一注册通知。该通知可以包括尾代码以及服务消费者和合同的标识。服务提供商可以确认该通知并且在过程5保存通知的信息供确认服务请求所使用。然后在过程6中,服务提供商响应于服务中介,确认它已接受注册通知。服务中介进而在过程7响应于服务消费者,表示注册已被接受。然后服务消费者在过程8向服务提供商发送一请求。每个请求都包括序列的一个代码。在接收到一请求后,服务提供商在过程9中检索前面从服务消费者接收到的最后一个代码——首先检索服务中介所提供的尾代码。服务提供商对接收到的代码应用单向函数以确定它是否与检索到的代码匹配。如果是,则确认接收到的代码是正确的,服务提供商在过程10保存接收到的代码并提供服务。服务提供商可以在过程11向服务消费者发送执行服务的结果。或者,服务消费者可以确认服务提供商以某些其它方式执行了该服务。例如,如果服务请求是向一自动售货机发送一授权以分发一产品,则用户能视觉上确认服务是否已被提供。对于服务消费者所请求的每个服务都重复步骤8-11,直到预定义的序列长度为止。在完成序列中的所有服务后,服务提供商可以向服务消费者收费。收费可以包括注册的唯一标识。如果服务消费者对收费有争议,服务提供商就能使用服务消费者所提供的起始代码作为它已提供服务的不可否认的证据。服务提供商能把起始代码提供给服务中介作为证据。服务中介可将其与服务消费者在注册时提供的起始代码相比较,以确定服务提供商是否在争议中胜出。
图3-9是说明本争议解决系统的服务消费者、服务中介和服务提供商所执行的处理的流程图。在所述的处理中,服务提供商不生成其自身的代码序列。图3是说明在一实施例中注册了一代码序列的服务消费者的组件处理的流程图。组件可以被调用,它传递服务提供商和合同的标识,其中服务要根据合同来请求。如果在服务消费者和服务提供商之间仅有一个合同,则它无须被标识。同样,合同可以被服务中介或服务提供商包含。在方框301,组件基于合同选择要请求的服务数目。在方框302,组件调用一函数来为所选数目的服务生成代码序列。在方框303中,组件向服务中介发送一注册请求消息。注册请求消息可以包括起始代码、尾代码以及服务提供商和合同的标识。在方框304,组件等待来自服务中介的响应。在判决框305,如果响应表明注册已被接受,则组件继续到方框306,否则该模式通过处理被拒绝的注册而继续。在方框306中,组件初始化一变量以便跟踪已经被提供的服务数目。组件然后完成。
图4是说明在一实施例中,生成一序列的组件处理的流程图。组件被传送要由序列表示的服务数目。在方框401中,组件设置一索引i来标识序列中的第一代码,该代码是起始代码,然后设置该起始代码。起始代码可由随机数发生器来选择。序列被存储在数组S中。在方框402-404,组件循环地应用单向函数来生成代码序列。在方框402中,组件递增索引以指向序列中的下一代码。在判决框403中,如果索引大于序列的服务数目,组件就返回该序列,否则组件继续到方框404。在方框404中,组件把通过向序列中前一代码应用单向函数而生成的代码保存在序列内索引的位置处。然后,组件循环到方框402以生成序列中的下一代码。
图5是说明一实施例中向服务提供商请求服务的组件处理的流程图。在判决框501中,如果序列中的服务数目已经被请求,则组件返回一个表示服务不能被请求的指示,否则组件继续到方框502。在方框502中,组件递减一变量,该变量用于跟踪已被请求的服务数目并且表示可以被请求的服务数目。在方框503中,组件向服务提供商发送一服务请求消息,该服务请求消息包括序列的索引代码,然后返回表示请求已被发送的指示。
图6是说明一实施例中,在从服务消费者接收注册请求消息时被调用的服务中介一组件的处理的流程图。向组件传送服务消费者、起始代码和尾代码、服务提供商以及合同的指示。在判决框601中,如果合同表示服务消费者和服务提供商之间的有效合同,则组件继续到方框602,否则组件返回一错误并且可能通知服务消费者该注册已被拒绝。在一实施例中,服务消费者和服务提供商可能向服务中介注册它们的合同。合同可能标识出要被包括在序列中的服务数目、以及诸如服务提供商会向每个所提供的服务收取的价格信息。服务中介在解决争议时使用所注册的合同信息。在方框602中,组件保存所传送的信息,使得它能在需要解决争议时被使用。在方框603中,组件向服务提供商发送一注册通知消息。该消息标识了服务消费者、合同以及尾代码。在方框604中,组件等待来自服务提供商的确认注册消息。在接收到确认响应时,组件在方框604中向服务消费者发送一注册响应消息,表示注册已被接受。然后,组件返回一指示,表明注册成功。
图7是说明一实施例中,在从服务中介接收到注册通知消息时调用的服务提供商一组件的处理的流程图。向组件传送服务消费者、合同和尾代码的指示。组件可确认服务消费者和合同的有效性。如果无效,组件就会向服务中介发送一未经确认的或拒绝响应消息。在方框701中,组件从合同中检索一序列内的服务数目。在方框702中,组件设置一变量以便通过从初始数字倒数来跟踪已请求的服务数目。在方框703中,组件把尾代码保存在数组S中,并且完成。
图8是说明一实施例中,在从服务消费者接收到服务请求消息时调用的服务提供商一组件处理的流程图。向组件传送服务消费者、合同和代码的指示。组件确认代码是否正确,如果正确就执行服务。在方框801中,组件接收一指示,该指示表示了要在服务消费者和合同的序列中被提供的其余服务数目。在判决框802中,如果没有其余要提供的服务,则组件返回一错误,否则组件继续到方框803。在判决框803中,如果向接收到的代码应用单向函数等于接收到的最后一个代码,则组件继续到方框804,否则组件返回一错误指示。在方框804中,组件递减一变量以跟踪其余要被提供的服务数目。在方框805中,组件保存接收到的代码,然后返回表示所传送的代码已被确认的指示。服务提供商仅需保存最后一个提供的代码供用作不可否认的证据,并且确认接收到的下一代码的正确性。
图9是说明一实施例中,处理争议的服务中介的组件处理的流程图。该组件在服务消费者对服务提供商的收费产生争议时被调用。该组件仅基于服务消费者所生成的代码序列来处理争议解决。向组件传送关于服务消费者、服务提供商以及有争议的序列的注册的指示。在方框901中,组件向服务消费者请求适当的代码。适当的代码表示服务消费者被收费的服务数目。在方框902中,组件请求服务提供商来提供适当的代码(即其不可否认的证据)。在判决框903中,如果接收到的代码一致,则组件宣布服务提供商为胜出者,否则组件继续到方框904。在方框904中,组件为该注册检索起始代码和服务数目。在方框905中,组件生成序列的代码。在判决框906中,如果服务提供商的代码与所生成的代码一致,则组件宣布服务提供商为胜出者,否则组件继续到方框907。在判决框907中,如果服务消费者的代码与所生成的代码一致,则组件宣布服务消费者为胜出者,否则组件就报告因为服务消费者和服务提供商都不能提供支持收费服务的代码,因此不能解决争议。
在一实施例中,当服务提供商和服务消费者都生成代码序列时,服务中介仅在一方正确提供了两种代码时才宣布一胜出者。为了解决争议,服务中介要求双方都提供服务提供商和服务消费者代码以便支持它们的位置。如果服务提供商所提供的代码正确,则服务中介把服务提供商宣布为胜出者。否则,如果服务消费者所提供的代码都正确,则服务中介把服务消费者宣布为胜出者。在所有其它情况下,双方都提供了至少一个不正确的代码,服务中介宣布没有胜出者。
图10是说明一实施例中服务消费者的组件的框图。服务消费者1000包括服务消费者代码组件1001、运行时间组件1002、应用程序1003、代码存储1004、合同存储1005和应用程序存储1006。服务消费者代码组件负责生成序列并且向服务中介注册序列。运行时间组件负责为应用程序提供一环境,应用程序通过该环境能接入服务提供商。运行时间组件确保了请求超出其授权的服务的应用程序被卸载,并且向服务提供商发送相应的通知。代码存储包含与注册有关的信息。每一条目都标识了每个所注册序列的服务提供商、合同、序列以及序列中的当前索引。合同存储包含描述服务消费者的合同的信息。合同存储中的每一条目都标识了服务提供商和合同项。应用程序存储包含了描述对每一应用程序的服务限制的信息。应用程序存储的每一条目都可标识该服务的应用程序、服务提供商、经授权的限制以及当前的使用。
图11是说明一实施例中,服务消费者的用户怎样为应用程序建立经授权的限制的显示屏说明。显示屏说明1100包括应用程序名称1101和授权表1102。授权表包含服务提供商、累积限制、授权限制和周期的列。服务提供商列标识了应用程序被授权访问的一列。累积限制指定了在所有应用程序中间已被授权的对该服务提供商的服务请求总数。授权限制表明了应用程序被授权请求服务提供商的服务请求数目。例如,该表格的第一行表示应用程序需要使用位置服务提供商,应用程序作为一个组能被授权每月请求500个服务,该应用程序被授权请求多达每月50个服务。该显示屏的信息被保存在应用程序存储中。
图12是说明一实施例中,运行时间组件的安装子组件的处理的流程图。在方框1201,组件从应用程序检索认证信息。认证信息可以是用应用程序的私钥进行加密的应用程序名称。组件可以使用应用程序的公钥来解密该名称。在判决框1202,如果组件确定应用程序是可信的(例如名称被正确解密),则组件继续到方框1203,否则组件继续到方框1208以退出安装并完成。在方框1203-1207中,组件循环地确定服务消费者是否已经订购了应用程序所需的服务提供商。在方框1203,组件向应用程序请求它所需要的下一服务提供商。在判决框1204,如果应用程序表明它需要另一服务提供商,则组件继续到方框1205,否则组件继续到方框1209。在判决框1205,如果服务消费者已经订购了该服务提供商,组件就继续到方框1206,否则服务消费者不能支持该应用程序,它在方框1208退出安装然后完成。在方框1206,组件询问服务提供商该应用程序是否被授权使用该服务提供商。在判决框1207中,如果应用程序被授权,组件就循环到方框1203以便向应用程序请求它所需要的下一服务提供商,否则组件在方框1208退出安装然后完成。在方框1209,服务消费者能提供应用程序所需的所有服务提供商,组件用图11的显示屏说明来输入每个服务提供商的服务授权限制。在方框1210,组件继续安装该应用程序,然后完成。
图13是说明一实施例中,请求服务提供商执行一服务的运行时间组件的子组件处理的流程图。在方框1301,组件从应用程序存储检索应用程序数据。在判决框1302,如果服务请求会超出该服务提供商的应用程序授权限制,则组件继续到方框1305,否则组件继续到方框1303。在方框1303,组件更新应用程序存储中的应用程序数据以表明该服务增加了的使用。在方框1304,组件向服务提供商发送请求,把下一代码包括在序列中。组件于是完成。在方框1305,组件向服务提供商发送一个报告,表示应用程序不正确地运作。在方框1306,组件卸载应用程序然后完成。
本领域的技术人员会理解,所述技术的许多变化都是可行的。例如,服务消费者可以在希望请求一服务序列时生成一公钥和私钥对。服务消费者可以向服务中介注册公钥,服务中介能把公钥提供给服务提供商。当服务消费者发送一服务请求时,它包括用私钥加密的序列号。当服务提供商接收该请求时,它就能用公钥来解密序列号,并确认它是正确的。如果是,服务提供商就能使用加密的序列号作为不可否认的证据。
本领域的技术人员会理解,服务消费者可以使用由服务提供商生成和提供的代码作为它曾请求并被提供特定数量的服务的不可否认的证据。这种证据是有用的,比如在服务消费者请求最小数量的服务时接收到一折扣时。
本领域的技术人员还会理解,运行时间组件能使用许多不同的技术来确定应用程序是否没有正确运作。例如,运行时间环境可以检测应用程序是否花费了过长时间来执行一任务(例如在无限循环中)、过于频繁地请求服务等等,作为错误行为的指示。运行时间环境还能接收关于用户对应用程序的操作是否满意的输入。运行时间环境能把这些错误行为报告给各个服务提供商,因此服务提供商能聚集来自多个服务消费者的报告以便提供应用程序是否不正确运作的准确评估。
从以上描述中可以理解,这里为说明起见描述了本发明的特定实施例,然而可以不脱离本发明的精神和范围作出各种修改。本领域的技术人员会理解,术语“服务”包括可以向服务提供商请求的任一类行为。例如,行为可以包括向用户销售物理或电子产品(例如音乐CD)、在自动售货机分发产品、定位一电话号码、授权支付、远程控制家庭灯管、流化视频等等。因而,本发明仅受所附权利要求的限定。
权利要求
1.一种请求服务提供商提供服务、使服务提供商能向服务中介证明它已提供了服务消费者所请求的服务的方法,其特征在于,所述方法包括向服务中介注册服务消费者的尾代码的指示以及服务提供商的标识,其中所述中介把所述尾代码提供给服务提供商;当服务消费者请求服务提供商提供一服务时,服务消费者把用一函数从起始代码导出的一个代码提供给服务提供商;以及当服务提供商能确认可以从一请求所提供的代码中导出尾代码时,把所请求的服务提供给服务消费者,其中,当一请求所提供的代码可用来导出尾代码时,服务提供商能向服务中介证明它已把所请求的服务提供给服务消费者。
2.如权利要求1所述的方法,其特征在于,所述尾代码的指示是服务中介从中能导出尾代码的起始代码。
3.如权利要求1所述的方法,其特征在于,所述注册包括提供一起始代码和一尾代码。
4.如权利要求1所述的方法,其特征在于,所述服务中介通过请求服务消费者提供相应的代码来确定是否可以从服务提供商所提供的代码中导出尾代码,当服务提供商和服务消费者所提供的代码相同时,确定服务提供商已经把所请求的服务提供给服务消费者。
5.如权利要求4所述的方法,其特征在于,当服务提供商和服务消费者所提供的代码不相同时,尝试从服务提供商所提供的代码中导出尾代码,当尝试成功时,确定服务提供商已经把所请求的服务提供给服务消费者。
6.如权利要求5所述的方法,其特征在于,当尝试不成功时,尝试从服务消费者所提供的代码中导出尾代码,当尝试从服务消费者所提供的代码中导出尾代码成功时,确定服务提供商尚未把所请求的服务提供给服务消费者。
7.如权利要求6所述的方法,其特征在于,当尝试从服务消费者所提供的代码中导出尾代码不成功时,指示服务提供商和服务消费者所提供的代码不能用来确定服务提供商是否已经把所请求的服务提供给服务消费者。
8.如权利要求1所述的方法,其特征在于,在服务提供商已经提供了最后一个请求的服务后,所述服务消费者请求服务提供商提供一服务。
9.如权利要求1所述的方法,其特征在于,所述服务消费者能限制服务的未决请求数目,以便控制对尚未被提供的所请求的服务的负债风险。
10.如权利要求1所述的方法,其特征在于,所述服务消费者使用一函数来生成一代码序列,以起始代码开始作为函数的输入。
11.如权利要求10所述的方法,其特征在于,所述服务消费者以生成的反序把序列的代码提供给服务提供商。
12.如权利要求1所述的方法,其特征在于,所述服务提供商通过把前面提供的代码与向所提供代码应用函数的结果相比较,从而确认可以从所提供的代码中导出尾代码。
13.如权利要求1所述的方法,其特征在于,所述服务消费者选择一起始代码。
14.如权利要求1所述的方法,其特征在于,所述代码序列具有一长度。
15.如权利要求14所述的方法,其特征在于,所述长度由服务提供商和服务消费者一致认可。
16.如权利要求14所述的方法,其特征在于,所述代码序列的长度设置可由服务提供商用来控制对未接收到其付款的所提供服务的负债风险。
17.如权利要求14所述的方法,其特征在于,所述服务中介把所述长度提供给服务提供商。
18.如权利要求1所述的方法,其特征在于,所述服务提供商向服务中介注册该服务提供商的尾代码的指示,并且向服务消费者提供一代码,在提供一服务时能从所述代码中导出服务提供商的尾代码。
19.如权利要求18所述的方法,其特征在于,服务提供商向服务消费者提供的代码可用于确定服务消费者是否请求了服务。
20.一种请求服务提供商提供服务、使服务提供商能证明它已提供了服务消费者所请求的服务的方法,其特征在于,所述方法包括使用一单向函数生成一代码序列,该代码序列包括一起始代码和一尾代码;通过提供所述序列的尾代码以及服务提供商的标识,从而向服务中介注册服务消费者会请求服务提供商来提供服务;以及对于要向服务提供商请求的每个服务,向服务提供商发送对服务的请求以及与生成反序的代码序列中一代码,使该服务提供商能使用该代码来证明它已提供了所请求的服务。
21.如权利要求20所述的方法,其特征在于,所述服务提供商从服务中介接收所述尾代码,当服务提供商从服务消费者接收一请求时,它确认是否能从请求的代码中导出尾代码。
22.如权利要求21所述的方法,其特征在于,所述服务提供商仅在它确认能从请求的代码中导出尾代码后才提供所请求的服务。
23.如权利要求21所述的方法,其特征在于,所述服务提供商向服务中介提供在服务请求中提供的一个代码,以证明它已把服务提供给服务消费者。
24.如权利要求20所述的方法,其特征在于,所述服务中介保存尾代码并把尾代码提供给服务提供商。
25.如权利要求20所述的方法,其特征在于,所述服务中介接收一指示,表明服务消费者对服务提供商已提供了其声称已提供的服务产生争议,并解决该争议。
26.如权利要求25所述的方法,其特征在于,在服务提供商提供从中能导出尾代码的一个代码、并且所提供的代码支持服务提供商有关所请求服务的声称时,所述服务中介支持服务提供商而解决该争议。
27.如权利要求26所述的方法,其特征在于,所述服务中介通过把所提供的代码与服务消费者所提供的相应代码相比较,而确定所提供的代码是否可用来导出尾代码。
28.如权利要求26所述的方法,其特征在于,所述服务中介通过重复地向所提供的代码应用函数而确定所提供的代码是否可用来导出尾代码。
29.一种提供服务消费者所请求的服务从而使服务提供商能证明它已提供所请求的服务的方法,其特征在于,所述方法包括从服务中介接收一指示以及一尾代码,所述指示表明服务消费者已经注册了服务消费者的请求服务;从服务消费者接收对服务的请求,所述请求包括一代码;当可以确定能从请求中包括的代码中导出尾代码时,提供所请求的服务;以及向服务中介提供一请求中包括的代码,以证明服务提供商已经把所请求的服务提供给服务消费者。
30.如权利要求29所述的方法,其特征在于,所述服务提供商通过向请求中包括的代码应用一函数而确定可以从该请求中包括的代码中导出尾代码。
31.如权利要求30所述的方法,其特征在于,所述函数是单向函数。
32.如权利要求30所述的方法,其特征在于,通过应用函数而生成的代码与服务消费者前面发送的代码相比较。
33.如权利要求32所述的方法,其特征在于,前面发送的代码是从服务消费者接收到的最后一个代码。
34.一种请求服务提供商提供服务的计算机系统,其特征在于,包括使用一单向函数生成一代码序列的组件,所述代码序列包括一起始代码和一尾代码;向服务中介注册服务消费者会请求服务提供商来提供服务的组件,所述注册包括向服务中介提供所述序列的尾代码以及服务提供商的标识;以及向服务提供商发送对服务的请求以及与生成逆序的代码序列中的代码的组件,使服务提供商能使用所述代码来证明服务消费者已请求了服务。
35.如权利要求34所述的计算机系统,其特征在于,所述代码从序列的倒数第二个代码开始被发送。
36.如权利要求34所述的计算机系统,其特征在于,所述服务提供商从服务中介接收尾代码,当所述服务提供商从服务消费者接收到一请求时,它确认是否能从该请求的代码中导出尾代码。
37.如权利要求36所述的计算机系统,其特征在于,所述服务提供商仅在它确认能从该请求的代码中导出尾代码后才能提供所请求的服务。
38.如权利要求36所述的计算机系统,其特征在于,所述服务提供商向服务中介提供一服务请求中提供的代码,以证明服务消费者请求了一服务。
39.如权利要求34所述的计算机系统,其特征在于,所述服务中介保存尾代码并且向服务提供商提供尾代码。
40.如权利要求34所述的计算机系统,其特征在于,当服务中介接收一指示,表明服务消费者对服务提供商提供了其声称已提供的服务产生争议时,服务中介解决该争议。
41.如权利要求40所述的计算机系统,其特征在于,当服务提供商提供了从中能导出尾代码的一个代码,并且所提供的代码支持服务提供商关于所提供服务的声称时,所述服务中介支持服务提供商而解决争议。
42.如权利要求41所述的计算机系统,其特征在于,所述服务中介通过把所提供的代码与服务消费者所提供的相应代码相比较,从而确定所提供的代码是否可用来导出尾代码。
43.如权利要求41所述的计算机系统,其特征在于,所述服务中介通过重复地向所提供的代码应用函数而确定所提供的代码是否可用来导出尾代码。
全文摘要
一种争议解决系统,用于请求服务提供商提供服务,使服务提供商能向服务中介证明一服务消费者已请求了服务。希望开始请求服务提供商的服务的服务消费者向服务中介注册一尾代码,该尾代码是用单向函数生成的代码序列的尾代码。服务中介把该尾代码提供给服务提供商。然后,服务消费者能使用序列中的代码来请求服务提供商提供服务。当服务提供商接收一请求时,它确认请求的代码是否可用来导出尾代码。如果确认成功,则服务提供商能把经确认的代码提供给服务中介,作为服务消费者所请求的服务的不可否认的证据。
文档编号G07F7/00GK1684083SQ20051005285
公开日2005年10月19日 申请日期2005年2月25日 优先权日2004年2月27日
发明者J·A·马费伊, M·G·莫瑞斯, M·D·史密斯, M·T·阿贝尔, B·E·约翰森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1