CN101031883A - 用于移动装置的对等网络的服务发现和服务提供 - Google Patents

用于移动装置的对等网络的服务发现和服务提供 Download PDF

Info

Publication number
CN101031883A
CN101031883A CNA2005800327559A CN200580032755A CN101031883A CN 101031883 A CN101031883 A CN 101031883A CN A2005800327559 A CNA2005800327559 A CN A2005800327559A CN 200580032755 A CN200580032755 A CN 200580032755A CN 101031883 A CN101031883 A CN 101031883A
Authority
CN
China
Prior art keywords
service
computer processor
processor unit
request
devices
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CNA2005800327559A
Other languages
English (en)
Inventor
法布里斯·特里斯坦·皮埃尔·萨夫尔
阿瓦尔·拉斯特·布罗克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN101031883A publication Critical patent/CN101031883A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及用于移动装置的对等网络的服务发现和服务提供。一组计算机处理装置被设置成相互合作以作为彼此使用的服务的主机。每一装置都存储与已知安装了这种服务(38)的装置有关的信息。当所述一组计算机处理装置之一需要其尚未安装的服务时,它发送针对所需服务的请求(32、35)。如果相邻装置能够提供所述服务,则该相邻装置因此进行响应(33、34、36、37)并提供所请求的服务(391)。如果一装置不能识别到足够合适的相邻主机装置,则该装置可以在识别到安装这种服务的机会时自己安装这种服务(392)。

Description

用于移动装置的对等网络的服务发现和服务提供
技术领域
本发明涉及用于共享数据处理资源的处理。
背景技术
在现代软件开发中,存在一种趋势,即倾向于增加模块性和对共享组件的远程访问,以便能够依靠在较低性能机上运行的所谓的“瘦客户端(thin client)”作为网关来访问复杂业务。传统原理趋向于假设集中式方法将依赖于服务的用户与该服务的提供者之间的不对称客户端-服务器关系,来形成支持远程访问的架构基础。
这种传统设计原理基于两个主要假设。第一,假定“高级”硬件(用于处理、用于存储、或用于两者)的成本是这样的,即可通过限制过提供(over-provisioning)来实现实质的节约。第二,需要终端用户能够并自愿利用低端终端装置有效地工作。显然,由于用户利用更多受限终端装置工作的自愿性取决于要获得更高级硬件的成本是多少,以及操作并维护它们有多困难,因此,这些假设是互补的。
然而,由于硬件资源成本下降的趋势快于针对它们的需求的增长,因此,过提供的成本实际上相当低。而且,100%的远程访问方法需要非常高的业务质量(差错率、中断时间等)和可实用的大带宽。期望可预测的使用模式,以便为资源的分配作计划。
许多商家可能愿意以分散方式管理合作软件和/或浮动许可证,以避免维护专用服务器基础设施的成本。在分散环境下,当可经由便携式设备来访问服务时,出现了特殊问题,这导致连通性方面的高度动态变化。
可以设想这样一种架构,其中,个体用户仅依赖针对被认为不关键的服务的远程访问。然而,这种远程访问因此限制了个体终端用户判定什么是他们最关键的需求和动作的自由。另选的是,如果个体用户被允许由他们自己来判定哪个服务是关键的,则需要一些副本,使得所有服务即使对于不这样判定的那些用户也不得不是重要可用的。而且,这种设置将导致如下一种架构,其中服务的有效性易受到少量核心机的损坏的影响。
因此,对于每个个体用户来说,存在可用资源在多数时间欠利用的趋势。有利的是,当机会出现时提高这些资源的利用率,同时避免依赖于它们的可利用性。
所谓的“网格”计算的开发允许将“空闲”处理能力再分配给耗时长的计算密集型作业。Haas,R.et.al.(Autonomic service deployment innetworks.IBM Systems Journal,Vol.42,No.1,2003)提出了一种基于终端客户端的请求在可配置或可编程网络中对服务进行自主调度的机制。这种方法使用分级网络,在该分级网络中,路由器、网关、隧道、代码转换器等向具体服务提供端到端应用,即边缘结点本身不受影响。然而,这主要适用于允许按照需要来使用可用处理能力的系统,在该系统中终端的可用性以及它们的连通性和能力是预定的。这种设置不太适用于包括移动装置的遍布式(普适)环境,这是因为这种环境对诸如空间定位、移动、无线链接的附加约束需要基于个体装置的当前可利用性和连通性进行专门(ad hoc)设置。
数据还可以分布在众多用户之间,这使得个体用户可能需要从其它用户获得数据。
Mikic-Rakic,M.和Medvidovic,N.(Support for Disconnected Operationvia Architectural Self-Reconfiguration.Proceedings of ICAC 2004,May 2004,New York)论证了在移动环境下可以怎样把软件组件分配给具有受限资源的装置。实际上,他们关注于以自主方式对组件进行监控、评估以及再调度,怎样在整体上增加系统的可利用性。个体装置向对服务调度的评估进行处理的服务器返回报告,该服务器允许装置与相邻装置共享组件并由此为彼此提供所需服务。该服务器使用许多算法,这些算法试图解决对寄驻在硬件主机上的软件组件的调度。由服务器执行的这种处理需要监管功能,这种监管功能使得所述处理不适应在个体用户的需求和可用性方面易于动态变化的网络。
发明内容
根据本发明,提供了一种计算机处理装置,所述计算机处理装置具有对安装在合作装置上的服务进行访问的能力,和从数据库检索数据以允许安装这种服务从而供其自己使用并且供合作装置使用的能力,所述计算机处理装置包括对一个或更多个服务的当前提供范围进行识别的装置,所述计算机处理装置还包括:针对所述计算机处理装置所需的服务来识别是否存在欠提供状态(under provision condition)的装置;和用于从所述数据库检索数据,以便将针对其识别出这种欠提供状态的一个或者更多个服务安装在所述计算机处理装置上的装置;以及响应于来自合作装置的请求而允许通过这种合作装置对存储在所述计算机处理装置上的服务进行访问的装置。
根据另一方面,提供了一种多个计算机处理装置相互合作以作为彼此应用的服务的主机的方法,其中,所述计算机处理装置相互合作来对指定服务的提供范围进行识别,其中,当需要尚未安装的服务时,第一装置尝试对可以提供所需服务的相邻装置进行识别,并且如果所述第一装置识别到欠提供状态,则它通过检索适于执行所述服务的服务数据来尝试安装所需服务。
要访问的服务可以是数据库,或者是被设计成对数据进行操纵的程序。
装置可以自己作为服务的主机,然而在其它方面,针对任何指定装置的服务的可用性却依赖于是否存在能够向它提供服务的相邻装置。这个能力依赖于相邻装置是否作为服务的主机。然而,虽然请求装置可以具有指示出其相邻装置之一作为服务的主机的信息,但是该相邻装置可能当前无法提供所述服务。该相邻装置可能因向其它装置提供服务而已经被完全占用,或者它可能无法有效地与请求装置进行通信。有效通信依赖于当前都连接到网络连接的两个装置是否都具有适于该任务的带宽。诸如中间链路数的其它因素也可能影响连接的效果。因为针对不同服务而导致的需求上的波动,而且因为随着移动装置在网络中来回移动而导致的网络连通性上的变化,所以这种状态会随着时间而改变。可以进行一些刺激以鼓励用户在他们不使用他们的装置时保持该装置在线,使得其他用户可以使用其容量。然而,有时,个体装置(无论是否移动)仍然可能因许多原因(如电力或通信故障),或需要以安全模式进行操作而选择离线。当它离线时,由该装置作为主机的任何服务都是不可用的。
个体装置可以通过预定的绝对标准(诸如标识为服务的当前主机的装置的编号)来识别欠提供状态。然而,优选的是使用动态标准,诸如当装置需要使用服务时,装置对能够提供服务的主机的失败识别。这可以通过向一范围内的所有装置广播一请求来完成。然而,如果主装置已经记录了作为服务主机的任何相邻设备,则可以首先以这些相邻装置作为目标发送具体请求。如果这些目标装置因某些原因而不能履行该请求(或许因为它们已经因为作为用于其它方的服务的主机而被完全占用,或者当前不在范围内),则可以接着进行广播请求。可以从一个装置向另一装置转发请求,使得彼此不直接联系的装置可以利用中间装置作为中继来为彼此提供服务。由于采用这种方式的中继影响传送质量(尤其是延迟),并且需要利用中继装置中的资源,因此,希望限制可能使用的级数。在要描述的实施例中,将该级数限定为两级,即,仅使用一个中间装置作为中继。
如果没有识别出合适的主机,则可以从中央数据库访问操作该指定服务所需的程序数据,或者如果已经作为所述指定服务的主机的另一装置可用,则从该另一装置访问用于操作所述指定服务所需的程序数据。用户可替代地此时不选择使用该服务,而是稍后进行另一尝试。可以根据对数据进行访问的不成功尝试的次数或比例来定义欠提供。可以使用随机处理,其中,将可调随机组件应用于欠提供状态的识别,由此,对安装(或卸载)概率上的一个进行选择。不同用户可以针对该定义选择不同阈值。通过利用在以这种方式运转的装置的全体中出现的随机波动,可以针对需求逐步动态地调节可利用性。
如果装置不具备作为服务的主机的数据存储能力,其可以利用类似标准来删除针对其识别出过提供状态的服务。
如果要这样做的设施是不可用的,则不必立即下载用于运行额外服务所需的数据模块。例如,用户可以改为借助于利用固定终端,或延迟希望的操作直到能够下载服务数据时为止。当下载的机会出现时(例如,当移动装置直接有线连接到网络中或无线连接至本身就是这样连接的基站时),装置(或用户)根据尝试失败的绝对次数、装置的容量、以及描述过去经验的所存储信息,进行关于是否安装该数据模块的判定,从而选择要安装的模块。
如果装置一天仅有一次直接网络访问,则系统在可变时段内(可能是几天)进行自组织。例如,移动装置可以具有提供内部连接和电池充电功能的关联托架,当用户不使用该移动装置时可以将该移动装置放置到该关联托架中。最初,系统中没有装置支持普遍存在的访问,由此,用户需要下载他们需要的任何程序数据。然而,只要检索该数据,用户就将其存储在他们的移动装置上。这允许用户在下一次需要该程序数据的时候,在不需要针对固定终端的资源的情况下操作该处理。而且,如果另一用户处在范围内并且需要相同的信息,那么第一装置可以回答该请求,以使其他用户不必从固定终端下载该程序数据。随着时间的过去,更多通用的服务将变得“遍布地”可用,并且仅不常用的请求不被答复从而需要用户转到固定终端。
因此,本发明通过在资源利用不足的情况下对合作的机会进行检测,将交互协议与本机判定规则相结合,以允许对等式(P2P)团体利用装置之间的处理差别,以便在限制过提供的同时实现服务的可接受质量。通过反复试验,个体装置识别并且专用于作为它们所需的全部服务中的适当子集的主机。它们需要的其它服务因寄驻在所述团体的其它成员上,所以不形成此子集的部分。对需求提供调节并考虑不可预测的动态环境下的隐含约束,结果获得自组织为一个整体的团体。
因此,本发明在机会出现时允许提高可用资源的利用率,同时避免依赖性并且不会限制用户选择作为哪个服务的主机的能力,并且无需用户针对可利用性具有明确的定量知识。通过反复试验来进行对“欠提供”情况的识别,这允许系统在缺少任何明确的关于活动模式(包括在无线情况下的物理移动)的信息时,能够实现足够的服务覆盖和负载平衡。因为决定的进行方式是完全分散方式,所以用于识别不充分可利用性的标准是个体标准。例如,用户可以判定,如果服务的可利用性降到指定阈值之下则应当下载相应的服务模块,该阈值例如可以根据个体用户所需该服务的频率或急迫性而在一个用户与另一用户之间有所不同。由此,个体用户将倾向于安装他们本人认为重要的、可能缩减加入团体的可知成本的模块。
为了使这种系统有效地运转,管理的、经济的、合同的或其它框架需要各得其位,从而要求或说服方案中的个体成员在任何可能的时候,尽量始终如一地使服务可用。虽然,这种考虑具有非技术性质并且将不详细讨论,但是,本发明的优势在于包括用于对个体参与者使用根据本发明提供的服务的使用情况进行监控的监督功能,并且包括对个体参与者自己为了其它成员的使用而提供这种服务的提供情况进行监控的监督功能。
附图说明
下面,参照附图,以示例的方式对本发明的例示性实施例进行描述,其中:
图1是数据处理装置的互连组的示意图;
图2是个体数据处理装置的功能组件的示意图;
图3是例示了从另一装置请求服务的本发明的实施例的操作的流程图;
图4是例示了接收来自另一装置的服务请求的本发明的实施例的操作的流程图;
图5是保持在图2中的数据存储部231中的数据记录的图示;
图6是例示本发明的使用中的工作示例的九种情况的图示。
具体实施方式
图1是移动计算装置(未引用全部个体)的网络100的示意图,在移动计算装置之间存在通信介质,该通信介质允许任何个体单元(例如,14)与范围内的任何其它单元(例如,12、13、15、16)交换信息。每个单元14都可以利用较近的单元(13、15)作为中继与较远的单元(例如,10、17、18)通信。(针对当前的目的,假定最大允许两个“中继段(hop)”(即,单一中继),但实际上可以使用更多中继段)。通信可以使用任何合适的介质,如无线(无线电、红外线等)数据传输。
每个装置还可作为装置可能需要使用的整个服务集合的子集的主机。(个体单元有时可以作为全部这些服务的主机或者不作为任何服务的主机)。这些服务可包括数据和允许操纵数据的程序。每个成员装置携带唯一标识码,该成员装置利用标识功能部28(见图2)定期通告该标识码,以确保每一个单元14都获知其第一相邻单元12、13、15、16。实际上,如同装置11所示,当个体装置和它的相邻装置到处移动、或者通/断切换时,可以把该个体装置添加至组100或从组100去除,并且这也影响服务的供需。即使装置之间的连接和它们的网络存在不随时间变化(如果它们始终连接,则会成为用于固定装置的情况),它们作为主机的各种服务的可利用性和针对该服务的需求也会改变。
如同装置16所示,个体装置可时常停放在允许访问服务存储部的连接部19处。
图2详细例示了图1中所示的数据处理装置16之一。所述数据处理装置16之一包括:通信接口21,其用于与其它装置(如,相邻移动装置14和固定停放站19)建立并保持通信;操作系统22;服务搜索功能部23,其包括数据存储装置231,所述数据存储装置231用于存储与来自其它类似装置的可用服务有关的数据;服务访问装置24,其用于与服务主机进行合作;服务下载功能部25;存储装置26,其用于存储该装置本身作为主机的服务;服务传递装置27,其用于向请求这种服务的远程终端传递这种寄驻的服务;以及已经讨论过的标识功能部28。尽管本发明的范围没有排除在网络中提供仅专用于作为其它相邻用户装置使用的服务的主机的装置,但是,大部分这种装置也可以包括用户接口29。
在下面的说明中,需要对请求服务的根据图2的第一装置与提供该服务的类似的第二装置的组件进行区别,后者的组件将用“单引号(’)”来标识。因此,经过相应的通信功能部21’、21,借助于主机装置的服务传递功能部27’和客户端装置上的服务访问功能部24,把存储在该主机装置的服务存储装置26’上的服务传递给接收装置上的操作系统22。
图3所示处理在专用的P2P环境下提供对遍布服务的分配。该处理是自组织区别之一,其中,类似单元团体中的个体成员获得不同能力,这使得它们各自能够执行团体作为整体运转所需的全部功能中的子集功能。在导致相互依赖和合作的处理中,这种专门化是以牺牲单元执行其它任务的能力为代价的,而所述其它任务随后由选择了不同特性的其它单元来处理。这种专门化可在没有中央控制的情况下,通过个体成员之间的大量正反馈和负反馈来实现。
将个体单元的专门化触发到指定任务中的信号是性能的缺乏或累积,所述性能的可利用性可由候选单元来度量。在此实施例中,针对服务的失败请求的累积(表示对于进行请求的资源共享团体的成员,服务具有较差的可利用性)很可能启动可解决这种状况的动作过程。结合随机时空波动和逐步的、至少部分可逆的转换处理,提供了用于把合适数量的单元的专门化调配到每个所需功能中的基础。下面,将更详细地说明这种处理。
在加入对这种处理进行操作的资源共享对等的团体的时候,新成员将从可用选项列表中选择许多服务。该新来者还将值v(0<v≤1)赋予每个所选服务,此值专用于对察觉的服务的本地质量进行评估,并且对是否安装新的组件进行判定。最后,为了“引导(bootstrap)”该合作处理,该新成员安装所需的软件组件,以从其选择的选项中选择至少一个服务作为其主机。这种软件是从源数据库下载的,该源数据库可以是对等装置或指定专用数据库之一。
当需要服务时,装置将处于以下三种可能情况中的一种,如图3所示。它可能已经安装了全部所需软件组件(结果390),或者它能够识别具有全部所需软件组件并可以作为服务的主机的相邻装置(结果391)。第三种情况是该主装置和相邻装置中的任一个都没有安装软件的情况(结果392)。因此,该装置需要根据如图3所示处理来测试应用这些情况中的那一种。它首先检查是否本地安装了全部所需组件(步骤30)。如果是这种情况,则它可以充当其自己的提供者并且操作系统22可以自主运行该服务(步骤390)。
如果该装置没有作为该服务的主机,则搜索功能部23尝试识别可以作为所需服务的主机的伙伴装置。该搜索功能部23通过生成针对寄驻在相邻装置上的服务的请求来进行操作。在此实施例中,该搜索功能部23首先针对已知作为该服务的主机的任何装置,对数据存储部231进行检查(步骤31),并且以那些装置为目标进行请求(步骤32);否则,向所有相邻装置广播请求(步骤35)。
目标请求是包括对所需服务和一个或更多个预定接收者的列表的引用的请求。广播请求没有被特定目标化。始发装置向其所有相邻装置发送请求,但是,接收这种请求的装置(步骤40、41)将忽略任何目标请求,除非接收者的列表包括接收装置的ID(步骤42)或其自己的第一相邻装置之一的ID(步骤44)。
可以考虑以下几种结果:
如果该请求装置可以提供针对所需服务的一个或更多个已知提供者的ID(步骤31),则它发送目标请求和那些ID(步骤32)。如果那些已知提供者中的至少一个是一第一相邻装置,则该目标请求必需到达合适的提供者(步骤40、41、42)。而那个装置将通过用作所请求服务的主机(步骤49)、从其存储部26’检索所需程序数据、以及利用服务传递功能部27’传递该服务来响应该请求。然而,如果在该请求者的第一相邻装置中没有任何已知提供者,则仍存在第一相邻装置之一本身具有目标装置之一作为其自己的相邻装置的可能性。如果这种“第二中继段”相邻装置被识别为目标装置(步骤43、44),则该第一相邻装置向所述请求装置回报这个信息(步骤45),并且准备充当该请求装置与目标装置之间的中继。
所述请求装置等待对其目标请求的“就绪”响应(49)。如果该请求装置接收到这种响应(步骤33),则它向进行提供的装置请求服务(步骤391),该服务被传递至客户端功能部24,以控制操作系统22。如果该请求装置接收到多于一个的这种提供,则该请求装置随机地、或者根据诸如它们之间的通信连接质量的一些标准来选择其中之一。如果没有接收到“就绪”响应,则该请求装置检查间接响应(步骤45)。如果该请求装置接收到这种响应(步骤34),则它利用中间装置作为中继向所识别的装置请求服务(步骤391)。
如果因该请求装置不能提供任何已知主机的ID(步骤31),或者因目标消息不能对主机中的任一个进行定位(步骤33、34)而造成这个处理不能识别合适的主机,则进行广播请求(步骤35)。广播请求是包括针对所需服务的引用,但不包括对预定接收者的列表的应用的请求(以允许每一个装置都接收该广播请求并能够提供服务以进行响应)。广播消息是根据预定规则集沿现有连接传递的。特别的是,可以对广播请求的转发次数进行限制,以使得该广播请求从该请求装置起仅传播预定级数——在此示例中,最大两级。这样允许限制生成的通信量——而且,如果客户端与主机之间的链路不得不通过若干媒介,则所获得的服务的服务质量预期会下降。因此,目标请求与广播请求之间的主要差别在于接收它们的对等体解释并处理它们的方式,而非它们的范围。
如果装置接收到广播消息,则接收装置检查它本身是否可以提供所请求的服务(步骤46)。如果可以,则该接收装置向该请求装置发送响应(步骤49)。如果不能,并且传播的级数小于相对于始发装置的最大级数(步骤47),则该接收装置把该请求转发给其直接连接的任何其它装置(除了该接收装置接收到的该广播请求所来自的装置之外)(步骤48)。这些装置按相同方式进行响应。
如果始发装置接收到针对广播消息的响应(步骤36、37),则该始发装置请求该响应装置为了该始发装置而作为所请求的服务的主机(步骤391)。此外,如果多于一个的装置进行响应,则选择它们之一。需要最少中继段的那些装置很可能是最可靠的,并且通过在需要更多中继段的那些装置之前,先检查所述需要最少中继段的那些装置(步骤36)而优先地选择它们(步骤37)。
到达指定地址的请求(目标化请求或广播请求)的概率依赖于请求者和提供者的相应位置。下表列举了如果超过第一相邻装置就不进行传播的可能结果。能够看到,目标请求允许对装置已知的提供者(如果这种提供者存在)进行选择,并且,如果目标请求不能获得结果,则广播请求会对两个中继段范围内的任何其它合适的提供者进行识别。在两种情况下,优先于两个中继段处的装置而选择一个中继段处的装置,但要注意的是,优先于一个中继段处的未知装置而选择两个中继段处的已知装置。
一个中继段处的服务提供者
两个中继段处的服务提供者 结果 1、已知 2、未知 不存在
a:已知 使用1中继段处的已知提供者 使用两个中继段处的已知提供者
b:未知 使用一个中继段处的新服务提供者(更新记录) 使用两个中继段处的新提供者(更新记录)
c:不存在 不成功——尝试下载
参照图6对每一种情况的示例进行讨论。在每一个示例中,装置A要求服务x,而装置B、C、D以及F都作为服务x的主机。装置A知道装置B和C可以作为该服务的主机,但不知道装置D和F也能够作为该服务的主机。装置E不作为该服务的主机。除装置A与E之间的连接对于所有示例相同之外,其它连接在各个情况下是变化的。除非规定,否则每个装置距离装置A和装置E两者都多于一个中继段。
在情况1a、1b、1c下,装置B和E处于A的一个中继段内,在情况2a、2b、2c下,装置D和E处于装置A的一个中继段内。在情况3a、3b以及3c下,仅装置E与装置A通信。
而且,在情况1a、2a、3a下,装置C处于装置E的一个中继段内,而在情况1b、2b、3b下,装置F处于装置E的一个中继段内,而在情况1c、2c、3c下,装置C和装置F都不在装置E的一个中继段内。
在每一种情况下,装置A都遵循图3所示的过程,而接收来自装置A的请求的任何其它装置都根据图4中的处理作出响应。最初,装置A识别本身未作为所需服务的主机(步骤30),接着对所知道的作为该服务的主机的一些其它装置(B和C)进行识别(步骤31)。由此,它向其当前相邻装置发送消息,寻址已知主机(步骤32),并且等待响应。相邻装置接收到这些请求(步骤40)并且将这些请求识别为目标请求(步骤41)。由此,结果在各个情况下发生变化。
情况1a
B和E处于A的一个中继段内    A对B和C:“我需要服务x…”
C处于E的一个中继段内       B对A:“就绪”
                           E对A:“可以联系C”
                           A对B:“请求服务x…”
情况1b
B和E处于A的一个中继段内    A对B和C:“我需要服务x…”
F处于E的一个中继段内       B对A:“就绪”
                           A对B:“请求服务x…”
情况1c
B和E处于A的一个中继段内    A对B和C:“我需要服务x…”
                           B对A:“就绪”
                           A对B:“请求服务x…”
在这三种情况下,装置B接收直接来自装置A的目标请求。由于它本身就是目标之一(步骤42),因此,它发送响应(步骤49)。当接收到这个响应时(步骤33),装置A请求服务(步骤391)。装置E也接收该目标请求。装置E本身不是目标(步骤42),由此,装置E检查它是否处于距请求源(步骤43)和距任何目标装置(步骤44)为一个中继段的范围内。在情况1a下,它发现目标装置C,并且将此回报给装置A(步骤45)。然而,装置A因它已经识别出更近的目标而没有针对该信息有所行动。
情况2a
D和E处于A的一个中继段内    A对B和C:“我需要服务x…”
C处于E的一个中继段内       E对A:“可以联系C”
                           A(经由E)对C:“请求服务x…”
情况3a
E处于A的一个中继段内       A对B和C:“我需要服务x…”
C处于E的一个中继段内       E对A:“可以联系C”
                           A(经由E)对C:“请求服务x…”
在这两种情况下,在装置A的一个中继段内不存在目标装置(B、C)。要注意的是,在情况2a下,由于装置A初始时不知道装置D能够提供该服务,所以不管装置D。与情况1a下相同,装置E处于目标装置C的一个中继段内,因此将此消息回报给装置A。已经接收到没有直接的“就绪”消息(步骤33)的装置A通过请求来自装置C的经由装置E中继的服务,对来自装置E的“可以连接”消息进行响应(步骤34)。
情况2b
D和E处于A的一个中继段内    A对B和C:“我需要服务x…”
F处于E的一个中继段内       无应答
                           A对全体:“我需要服务x…”
                           E对全体:“A需要服务x…”
                           D对A:“我作为服务x的主机…”
                           F(经由E)对A:“我作为服务x的主机…”
                           A到D:“请求服务x…”
情况2c
D和E处于A的一个中继段内    A对B和C:“我需要服务x…”
                           无应答
                           A对全体:“我需要服务x…”
                           E对全体:“A需要服务x…”
                           D对A:“我作为服务x的主机…”
                           A对D:“请求服务x…”
在这两种情况下,不存在针对目标请求的响应(步骤33、34),所以,装置A发送广播请求(步骤35)。在两种情况下,装置D接收到该广播请求并对其进行响应(步骤46)。这个响应由装置A接收到(步骤36),装置A将装置D添加至服务提供者列表并且从装置D请求服务。装置E也接收到该请求,但不能够提供服务,于是对该请求本身进行转发(步骤47、48)。在请况2b下,转发的请求由装置F接收到,装置F经由装置E发回响应(步骤46、49),但装置A因已经接收到直接响应而忽略此间接响应。
情况3b
E处于A的一个中继段内      A对B和C:“我需要服务x…”
F处于E的一个中继段内      无应答
                          A对全体:“我需要服务x…”
                          E对全体:“A需要服务x…”
                          F(经由E)对A:“我作为服务x的主机…”
                          A(经由E)对F:“请求服务x…”
关于情况3b,目标消息不能到达所寻址的B或C中的任何一个(步骤33、34),所以装置A发送广播请求。在这种情况下,能够提供服务的装置没有直接接收到该广播请求,所以装置A没有接收到直接的响应(步骤36)。装置E接收到该请求,但不能够提供服务,而对该请求本身进行转发(步骤47、48)。转发的请求由装置F接收到,装置F经由装置E发回响应(步骤46、49)。装置A通过将装置F添加至服务提供者列表并且从装置F请求服务来响应这个间接响应(步骤37)。
情况3c
E处于A的一个中继段内     A对B和C:“我需要服务x…”
                         无应答
                         A对全体:“我需要服务x…”
                         E对全体:“A需要服务x…”
                         无应答
在这种情况下,装置A没有接收到针对目标消息(步骤32)或广播消息(步骤35)的应答,所以装置A不能从任何潜在的主机请求服务(步骤391),并且必须寻找一些另选的操作方法(步骤392)。
当请求者直接地(步骤36)或经由公共的第一相邻装置(步骤37),从在先未知的提供者接收到针对广播请求的应答时,它将该提供者的ID存储在用于这个服务的已知提供者的列表中(步骤38),以用于将来的目标请求和判定。在图5中示出了存储的数据。针对每一种服务,保持了已知提供者(511、512、513等)的列表51、52、53、54。每一个提供者511都具有与它相关联的相对应的“得分(score)”611等。如果添加新的唯一ID将导致列表超出其最大长度,则它代替地替换最后的条目(其中存储ID的顺序间接反映了所有已知提供者的相关可用性,见下文)。如果针对一个请求接收到几个应答,则随机选择应答装置之一。要注意的是,可在选择它们之一(步骤391)之前,对多于一个的ID进行存储(步骤38)。
每当已知提供者511等回答了请求时,其“得分”611增加一个值,所述值可以是整合了许多关系特定变量(信任、服务费、延迟…)的值。尽管每个预定列表(subscription)51仅存在针对指定提供者的一个引用511,但是,同一装置可以是几个服务52、53的已知提供者。在这种情况下,在每一个相对应的预定列表中具有独立的条目523、542。这也意味着,相同的装置针对正提供(或者已经提供)给另一成员的不同服务具有不同的得分623、642,或者如果相同的装置正用作(或者已经用作)几个其它对等成员的提供者时,针对相同的服务具有不同的得分。基本上,“得分”指两个成员之间针对一个服务的一种关系,并且由个体用户拥有/保持。
定期使用独立于每个预定列表51、52、53,得分来对提供者进行排序。结果是在选择时段内,最佳性能的提供者出现在列表的首位,而最差的出现在列表的最后。由于最差性能的提供者条目是在广播请求之后由最新识别的提供者的唯一ID所替换的最后条目(见上文),所以系统趋于通过“忘记”差的执行者(即,曾经尝试作为提供者但实际上在请求者的可达范围内没有经过较长周期,因而不适于长期关联的对等体)来随时间选择最佳(即,最频繁可用的)候选者。另选解决方案是在选择时段内,针对服务存储所有识别出的提供者的地址,对它们全部进行排序,接着“抛弃”超出者。从逻辑观点来看,两种方法非常类似,但前者具有需要较少存储和处理的优点,而后者很可能增加效率。
无论何时进行请求,都可以对该请求“立即”应答(通过已知目标提供者或者在广播之后通过一些其它对等体),或者不回答。在第二种情况下,将该请求添加至“未决”请求的列表中,并且定期进行“再检查”(即再发送),直到提供者变得可用,或者该请求达到“存在时间”限。在第二种情况下,该请求被假定成已经“失败”(即,该请求被放弃)并且不对这个预定列表的“成功”变量进行增加。
通过各个团体成员本地安装新软件模块来实现为需求提供的调节。每当针对相应服务的请求失败时,通过对等体来进行是否安装新模块的判定。根据分配给服务的值与其察觉的可利用性之间的平衡(与成功/请求比成比例),装置可以选择不再依赖远程访问,而可以采用必需的步骤来联系中央储存库,并且利用下载功能部25将模块下载/安装至其自己的程序数据存储部26。
如果通过这个处理识别了合适的伙伴,(步骤33、36、37),则请求装置利用该伙伴作为主机来运行程序(391)。如果没有潜在的合适伙伴作为服务的主机,或者这样做的任何装置已经服务于一些其它伙伴或者因诸如不足通信带宽的一些其它原因而不相容,则连接失败。接着,装置可以访问程序数据的源提供者,并且立即或者在数据变得可用时安装所需的软件组件本身(步骤392)。接着,该装置可以在不需要远程访问的情况下运行程序本身(步骤390)。(要注意的是,为了本地使用而进行的程序下载需要的带宽小于下载远程主机程序所需的带宽)。
因为已经下载了程序数据,所以这个装置随后可在其他装置需要这个程序时,用作提供者(主机)。(该装置将对它接收的针对这个服务的任何广播请求(步骤41)给出正响应(步骤46),并将及时被其它用户识别(步骤38),而且还成为目标请求的对象)。因此,主要旨在解决个体装置的问题的初始校正动作将在减少了对需要其他对等装置安装相对应的程序数据模块的需求的情况下,有效地增加所牵连的服务的可利用性,并且有助于提高总利用性。
假定作为程序的主机存在成本(否则,在共享模块或利用远程访问方面将不存在优点,而对于每一个用户的最佳解决方案是本地安装全部组件)。这个成本可以是财金方面的(例如,如果软件制造商对安装模块比从另一对等体访问相应服务收取更多费用),或者更可能包括多种不方便性(例如,较长下载时间、存储容量的浪费,或者需要找到固定网络接入点)。为了对团体成员“不情愿”履行安装处理进行模拟,每当考虑该安装选项时,针对固定阈值进行随机测试。根据针对该阈值选取的值,这典型地导致在实际开始该处理之前所需的几个失败的请求。重要的是应该理解,这种失败的原因并不重要,这意味着本发明原则上可以用于对其可利用性可变和/或不可预期的任何系统进行管理,而且所述管理独立于导致这种情况的原因。在模拟的遍布式服务环境下,这种失败的原因是移进和移出参与装置彼此的范围的所述参与装置的物理移动的结果,但是在其它情况下,这种失败的原因可能是:在另外的适当提供者上缺乏资源(例如,在GRID计算中的处理能力)。
本发明本征地适应于作为判定处理的“反复试验”的性质的微扰,这使得本发明自发地起作用,以改变供需之间的平衡。新对等体在它们检测到其可利用性已经变得不满足于它们自己的需要时,安装“缺少”的模块,从而恢复处理中的整个服务质量水平。

Claims (20)

1、一种计算机处理装置,所述计算机处理装置具有访问安装在合作装置上的服务的能力,并具有从数据库检索数据以允许安装这种服务从而供其自己使用并且供合作装置使用的能力,所述计算机处理装置包括对一个或更多个服务的当前提供范围进行识别的装置,所述计算机处理装置还包括如下装置:针对所述计算机处理装置所需的服务来识别是否存在欠提供状态的装置;和用于从所述数据库检索数据,以便将针对其识别出这种欠提供状态的一个或更多个服务安装在所述计算机处理装置上的装置;以及响应于来自合作装置的请求而允许所述合作装置对存储在所述计算机处理装置上的服务进行访问的装置。
2、根据权利要求1所述的计算机处理装置,所述计算机处理装置包括确定装置,所述确定装置在下载服务的机会出现时确定是否应当安装该服务。
3、根据权利要求2所述的计算机处理装置,所述计算机处理装置还包括删除装置,所述删除装置用于删除针对其识别出过提供状态的服务,以允许安装另一服务。
4、根据权利要求1、2或者3所述的计算机处理装置,所述计算机处理装置包括识别装置,所述识别装置尝试识别能够向所述计算机处理装置提供所需服务的相邻装置,其中由识别这种相邻装置的失败定义欠提供状态。
5、根据权利要求4所述的计算机处理装置,其中,所述欠提供状态被定义为识别这种相邻装置的预定失败次数。
6、根据权利要求5所述的计算机处理装置,其中,所述预定失败次数被定义为在预定时间上进行的尝试的比例。
7、根据权利要求4、5或6所述的计算机处理装置,所述计算机处理装置还包括应用装置,所述应用装置将可调随机组件应用于对过提供状态或者欠提供状态的识别。
8、根据权利要求1、2、3、4、5、6或7所述的计算机处理装置,所述计算机处理装置包括存储装置和发送装置,所述存储装置用于对与作为所需服务的主机的装置有关的信息进行存储,所述发送装置用于发送寻址到由此识别出的装置的针对所需服务的请求。
9、根据权利要求1、2、3、4、5、6、7或8所述的计算机处理装置,所述计算机处理装置包括广播装置,所述广播装置用于向范围内的全部装置广播针对服务的请求。
10、根据权利要求8或9所述的计算机处理装置,所述计算机处理装置包括转发装置,所述转发装置将从其它装置接收的任何这种请求转发预定级数。
11、一种多个计算机处理装置相互合作以作为由所述计算机处理装置彼此使用的服务的主机的方法,其中,所述计算机处理装置相互合作以对指定服务的提供范围进行识别,其中,第一装置在需要该第一装置尚未安装的服务时,尝试对能够提供所需服务的相邻装置进行识别,并且如果所述第一装置识别到欠提供状态,则它通过检索适于执行所述服务的服务数据来尝试安装所需服务。
12、根据权利要求11所述的方法,其中,存储与欠提供状态有关的信息,并且一装置在识别出安装这种服务的机会时安装这种服务。
13、根据权利要求11或12所述的方法,其中,欠提供状态是由针对能够向所述第一装置提供所需服务的相邻装置进行识别的失败来标识的。
14、根据权利要求13所述的方法,其中,所述欠提供状态被标识为对这种相邻装置进行识别的预定失败次数。
15、根据权利要求14所述的方法,其中,所述预定失败次数被定义为在预定时间上进行的尝试的比例。
16、根据权利要求13、14或15所述的方法,其中,将可调随机组件应用于对过提供状态或欠提供状态的识别。
17、根据权利要求11、12、13或14所述的方法,其中,每一个装置都存储与已经被识别为作为所需服务的主机的装置有关的信息,并且发送寻址到这样识别出的装置的针对所需服务的请求。
18、根据权利要求11、12、13、14、1516或17所述的方法,其中,所述装置向范围内的全部装置广播针对服务的请求。
19、根据权利要求17或18所述的方法,其中,把这种请求从一个装置向另一装置转发预定级数。
20、根据权利要求11、12、13、14、15、16、17、18或19所述方法,所述方法还包括监管功能,所述监管功能用于对个体参与者使用根据本发明提供的服务的使用情况进行监控,并且用于对个体参与者自己为了其它成员的使用而提供这种服务的提供情况进行监控。
CNA2005800327559A 2004-09-29 2005-08-04 用于移动装置的对等网络的服务发现和服务提供 Pending CN101031883A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0421646.1 2004-09-29
GBGB0421646.1A GB0421646D0 (en) 2004-09-29 2004-09-29 Sharing data processing resources

Publications (1)

Publication Number Publication Date
CN101031883A true CN101031883A (zh) 2007-09-05

Family

ID=33397459

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800327559A Pending CN101031883A (zh) 2004-09-29 2005-08-04 用于移动装置的对等网络的服务发现和服务提供

Country Status (5)

Country Link
US (1) US20080072220A1 (zh)
EP (1) EP1794676A1 (zh)
CN (1) CN101031883A (zh)
GB (1) GB0421646D0 (zh)
WO (1) WO2006035191A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104956700A (zh) * 2013-01-25 2015-09-30 佳能株式会社 通信设备及其控制方法和程序

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865616B2 (en) 2005-11-18 2011-01-04 British Telecommunications Public Limited Company Virtual networks
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US7950007B2 (en) * 2006-06-15 2011-05-24 International Business Machines Corporation Method and apparatus for policy-based change management in a service delivery environment
CN101562804B (zh) * 2009-05-12 2012-09-05 中兴通讯股份有限公司 一种基于移动p2p的区域管理服务器系统及其调度方法
US8275891B2 (en) * 2009-07-20 2012-09-25 At&T Intellectual Property I, L.P. Method and apparatus for social networking in a dynamic environment
US8856213B2 (en) * 2011-08-11 2014-10-07 Verizon Patent And Licensing Inc. Provisioning a moderated data service using a syndicated radio access network (RAN)
US9948731B2 (en) 2012-03-14 2018-04-17 International Business Machines Corporation Autonomic discovery and integration of complementary internet services
US9767198B2 (en) * 2014-08-25 2017-09-19 Excalibur Ip, Llc Method and system for presenting content summary of search results

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805897A (en) * 1992-07-31 1998-09-08 International Business Machines Corporation System and method for remote software configuration and distribution
US5949977A (en) * 1996-10-08 1999-09-07 Aubeta Technology, Llc Method and apparatus for requesting and processing services from a plurality of nodes connected via common communication links
US6604140B1 (en) * 1999-03-31 2003-08-05 International Business Machines Corporation Service framework for computing devices
US6546242B1 (en) * 2000-03-10 2003-04-08 Telefonaktiebolaget L.M. Ericsson Systems, methods and apparatuses for maintaining services within a telecommunications network having separate service providers and network providers
WO2002076003A2 (en) * 2001-03-19 2002-09-26 Imesh Ltd. System and method for peer-to-peer file exchange mechanism from multiple sources
US7539664B2 (en) * 2001-03-26 2009-05-26 International Business Machines Corporation Method and system for operating a rating server based on usage and download patterns within a peer-to-peer network
US7822860B2 (en) * 2001-12-11 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic reconfiguration of web services infrastructure
US6970444B2 (en) * 2002-05-13 2005-11-29 Meshnetworks, Inc. System and method for self propagating information in ad-hoc peer-to-peer networks
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US7171470B2 (en) * 2003-02-20 2007-01-30 International Business Machines Corporation Grid service scheduling of related services using heuristics
US7461166B2 (en) * 2003-02-21 2008-12-02 International Business Machines Corporation Autonomic service routing using observed resource requirement for self-optimization
GB0308736D0 (en) * 2003-04-15 2003-05-21 Hewlett Packard Development Co Providing a node of a peer-to-peer network with access to a resource
US7290086B2 (en) * 2003-05-28 2007-10-30 International Business Machines Corporation Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104956700A (zh) * 2013-01-25 2015-09-30 佳能株式会社 通信设备及其控制方法和程序
CN104956700B (zh) * 2013-01-25 2019-03-12 佳能株式会社 通信设备及其控制方法

Also Published As

Publication number Publication date
GB0421646D0 (en) 2004-10-27
EP1794676A1 (en) 2007-06-13
WO2006035191A1 (en) 2006-04-06
US20080072220A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
CN101031883A (zh) 用于移动装置的对等网络的服务发现和服务提供
CN1276368C (zh) 访问限制控制设备和方法
CN1627760A (zh) 用于无线多跳专门网络的协议
CN1532723A (zh) 服务注册表的聚合
CN1314240C (zh) 支持任务重构的无线传感器网络系统及方法
US8793680B2 (en) Apparatus and method for cooperatively updating firmware on wireless mesh network
CN104378391A (zh) 软件更新方法、系统及设备
CN1575582A (zh) 可配置的自适应全球通信控制和管理
CN1783851A (zh) 电子邮件事务系统和方法
CN101035040A (zh) 基于多代理协商的无线传感器网络数据收集方法
CN1711796A (zh) 无线通信网络资源的管理
CN1476697A (zh) 便于在电信网络和服务提供商之间交换实时信息的装置
CN101040486A (zh) 动态分布式环境中的自动拓扑形成方法、系统及程序产品
CN1159858A (zh) 规模可以改变的分布式计算环境
CN1647058A (zh) 协作服务器、协作系统和会话管理方法
CN1451116A (zh) 分布式高速缓存同步协议
CN1882166A (zh) 一种根据负载状况选择服务节点的方法
CN1381969A (zh) 向家庭网络装置提供服务及接收服务的系统和方法
CN102948120A (zh) 使用个人网络路由表配置个人网络的装置和方法
CN101053211A (zh) 用于配置和管理健壮覆盖多播树的方法和设备
CN106462593A (zh) 大规模并行处理数据库的系统和方法
CN112583875B (zh) 一种资产扫描方法及装置
CN105379317B (zh) 基于邻近的社交交互的方法和系统
CN1859785A (zh) 位置更新及用户归属的移动交换中心切换方法
CN101075904A (zh) 一种在p2p网络中保障服务资源性能的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070905