在用于智能物件的服务到设备中的映射的主动干预的制作方法

文档序号:6695115阅读:161来源:国知局

专利名称::在用于智能物件的服务到设备中的映射的主动干预的制作方法
技术领域
:本申请内容涉及智能物件(smartitem)技术。
背景技术
:存在为企业或其他机构提供各种服务的软件系统。这些软件系统在将收集的数据存储在集中化的后端系统时可能依赖于非集中化、手动的并且潜在易于出错的数据收集,商业逻辑执行也发生在所述集中化的后端系统中。通过使用智能物件(也称作智能设备)技术可以扩展这些以及其他软件系统,在智能物件技术中,通过添加或包含在本地提供或嵌入的技术,物理项目(例如货物、工具、房间、车辆、人员或货架)得到加强或增强。例如,可以用上述方式使用射频识别(RFID)系统、嵌入式系统、传感器微片(motes)和/或传感器网络来给商业软件应用提供对真实世界数据的快速访问。例如,可以使用智能物件技术来支持RFID标签的检测、读或写,以及支持与无线传感器网络和嵌入式系统的通信和对无线传感器网络和嵌入式系统的控制。在很多实例中,智能物件可以包括下面这样的设备,或者与这样的设备相关联所述设备具有本地处理能力、存储器和/或通信能力,并且能够提供关于设备及其属性的数据,或者提供关于智能物件设备的当前状态或环境的信息。因此,在后端或底层商业应用的服务组件的执行中可以使用一些这样的设备,具体来说,这样的设备可以以协作的方式做这些工作,例如通过形成移动自组织网络来收集、处理或传送商业数据。智能物件的例子可以包括RFID标签,RFID标签可以是无源的或有源的,并且它可以被附着到如上面提到的物理对象,并用来提供和所述对象有关的产品或处理信息。智能物件的其他例子可以包括各种传感器,例如环境传感器(例如温度、湿度或振动传感器),正如刚才所提到的那样,所述传感器能够进行通信,以便形成一个或更多个传感器网络。这些以及其他类型的智能物件也可以包括嵌入式系统,嵌入式系统一般指任何其中包括专用处理器和/或程序的系统,和/或所述系统封装在被控制的设备中的系统。通过自动实时对象跟踪和商业逻辑的本地现场执行,智能物件技术可以给企业提供关于商业运转的准确和及时的数据,并且也可以帮助使商业运转合理化和自动化。因此,可以获得成本降低以及额外的商业利益(例如提高的资产可视性、改善的响应性,以及扩展的商业机会)。
发明内容根据一个总的方面,开始将服务部署在传感器网络的设备上,多个服务被部署在所述传感器网络上。确定和所述部署相关联的部署条件不满足所述部署的可允许部署条件。更改所述部署条件以便获得经过修改的部署条件,并且基于所述经过修改的部署条件,所述服务被部署到所述设备上。根据另一个总的方面,一种系统包括系统监视器,该系统监视器可工作,以便监视传感器网络的多个设备,并且所述系统监视器可工作,以便确定和所述多个设备中的至少一个相关联的设备元数据。所述系统还包括服务映射器,该服务映射器可工作,以便基于所述设备元数据并基于和所述服务相关联的服务元数据,开始将服务部署到所述至少一个设备上,并且所述服务映射器还可工作,以便基于所述部署条件不满足可允许部署条件的确定,更改与所述部署相关联的部署条件以获得经过修改的部署条件。根据另一个总的方面,一种传感器网络的服务映射器包括映射系统,该映射系统可工作,以便基于部署条件开始将服务部署到所述传感器网络的至少一个设备上,所述映射系统还可工作,以便确定所述部署条件不满足可允许部署条件。所述服务映射器还包括要求降低逻辑(requirementreductionlogic)、网络重配置逻辑或组件去除逻辑中的一个或更多个,所述逻辑可工作,以便给所述映射系统提供用于更改所述部署条件以获得满足所述可允许部署条件的经过修改的部署条件的标准。在下面的附图和说明中给出了一个或更多个实施方案的细节。从说明和附图,以及权利要求,其他的特征将很清晰。图1是用于智能物件的服务到设备映射的主动干预的系统的框图。图2是流程图,示出了图1的系统的示例性操作。图3是框图,示出了图1的系统的运行时环境。图4是流程图,示出了图1和图3系统的操作的额外例子。图5是流程图,示出了在涉及化学品储罐的安全管理的例子中图1和图3系统的操作的例子。具体实施例方式图1是用于智能物件的服务到设备映射的主动干预的系统100的框图。如下面更详细地描述的那样,系统100可工作,以便执行映射功能,通过所述映射功能,服务被映射到从传感器网络102的多个智能物件中选择的最合适的智能物件上。作为映射的一部分,和/或其后发生的,开始将服务部署到智能物件上。但是,在某些情况中,所述部署可能失败,或者可能只部分地成功。在这种情况下,系统100可工作,以便更改一个或更多个部署条件,以使所述部署随后可以继续。结果,即使远程地或自动地执行所述部署时,系统100的操作者和用户也可以以迅速、便利和可靠的方式取得期望的结果,因而能够以期望的方式使用系统100。在图1的例子中,传感器网络102包括各种智能物件或智能设备104、106、108和110。即应该理解,在各种上下文中,能够将术语“智能物件”、“智能设备”、“智能物件设备”以及类似的术语类似地或可互换地使用。例如,术语“智能物件”或“智能设备”可以指示上面如所提到的那样具有本地处理、存储和通信能力的设备,或者可以指示这种设备和该设备所附对象(例如包含供销售的货物的托盘)的组合。作为传感器网络102的一部分,这些设备和/或设备/对象组合在某些上下文中也可以被称为“节点”或“网络节点”。在本说明书中,出于指示所描述的在传感器网络102内具有所述特征的设备的简洁和一致,使用了术语“设备”。因此,设备104、106、108、110以及传感器网络102(和其他的传感器网络)内潜在地其他设备可以以及时和准确的方式给一个或更多个商业数据处理系统、应用或过程提供真实世界数据。在下面参考图3到图5更详细地描述这些商业过程的例子,但是,例如这些例子可以包括库存管理系统、供应链管理系统、零售商店管理系统、仓库管理系统、产品寿命周期管理系统,以及可被用来针对真实世界对象执行商业过程的任何其他系统,其中,这些真实世界对象可以包括例如供销售的产品、托盘或其他装运单元(shipmentelement)、病人或制造材料/装备。因此,商业过程,包括所述商业过程在真实世界对象的本地水平部署和执行的那些部分,可被用来确定例如库存水平、设置价格水平、评估市场策略、评估制造或生产技术、降低失窃或维护安全。在图1中,设备104被示为包括中央处理单元(CPU112)以及存储器114。因此,设备104应该被理解为拥有各种水平的计算能力,例如包括处理或传送所感知的数据(在设备104包括传感器或与其相关联的情况下)。尽管为了清晰和简洁的目的在图1中没有特别示出,但是应该理解设备106、108和110也可以包括相同或不同的计算能力,例如包括形成和加入局域网102的能力,局域网102例如无线网络和/或对等网络。即应该理解,设备104、106、108和110可以包括为了简洁的目的而未在图1中特别示出的其他标准要素和特征,例如(无线电)收发机和本地电源/电池。因此,可以使用局域网102收集、处理、过滤、汇总或传送数据,所述数据对于相关的商业过程可能是有用的,更具体地,局域网102可被用来执行商业过程(例如商业逻辑)的一部分,这些部分最适于(或最得益于)本地执行。具体来说,在图1的例子中,部署在传感器网络上的商业过程/商业逻辑的所述部分包括部署在设备104上的服务116、118。下面参考图3举例更详细地描述例如服务116、118的服务的各个方面和特性。一般来说,应该理解服务116、118以及这里讨论的其他服务一般指示软件组件,所述软件组件支持被定义的功能,提供被定义的接口,通过所述接口可以调用服务,并且所述软件组件可以彼此组合以获得/提供额外的功能或更复杂的功能。例如,服务116、118可以代表实现服务,例如所述服务实现设备104、106、108、110中的两个或更多个之间的协作;或者,服务116、118可以代表管理服务,例如所述管理服务管理设备104的功耗;或者,服务116、118可以代表实际的商业服务,例如所述实际的商业服务执行特定于业务的逻辑(business-specificlogic)(例如,确定本地温度和本地温度是否超过定义值,以及响应于本地温度超过了所述定义值是否应该采取任何行动)。更具体地,服务116、118可以代表存储在服务库(servicerepository)120中的服务(或服务模板)的实例。因此,服务库120可以提供便利的位置,用于注册、存储和访问可被部署供在传感器网络102内使用的服务。服务库120存储服务可执行(serviceexecutable)122和服务元数据124,其中服务可执行122代表可被实例化到设备104、106、108、110上用于相关联的商业逻辑的实际执行的软件代码,而服务元数据124代表或包括例如各种服务描述和/或要求,它们涉及在传感器网络102的一个或更多个设备上是否可以或者怎样可以执行服务。例如,服务元数据可以包括服务行为描述,或者服务的技术约束。例如,技术约束可以包括要求的CPU类型或速度、所需要的(空闲)存储器的量、要求或首选的连接类型或速度、操作系统版本/名称/描述,或者电池或其他设备功率源的类型或状态。针对服务元数据124,在静态和动态服务要求,例如硬件要求之间可以有所区别。例如,可以包括例如总存储器或最大处理速度的静态值,以及动态值,例如可用存储器/处理/功率,和/或在所述服务的执行时间,可被允许和所讨论的服务在设备上一起同时运行的其他服务的数量或类型。在一些例子中,相同的服务可以被针对多个开发平台实施,例如可以被针对已知的基于C/C++编程语言或Java编程语言的开发平台实施。通过提供这种多样性的开发平台,给定的服务可部署于更宽范围或类型的可能正在使用的设备。可以包括关于所讨论的服务的开发平台的信息作为服务元数据124的一种类型。此外,描述相关联的服务可以被如何调入/调用的服务接口信息可以被包括在服务元数据124中,或者被与其相关联。系统100包括服务映射器126,该服务映射器126可工作,以便如图所示从传感器网络102的多个设备104、106、108、110中至少选择设备104作为被选择的设备,用于在其上部署服务116、118。例如,服务映射器126可以响应于来自管理员的请求工作,或者可以响应于来自相关联的商业过程的命令自动地行动。此后,服务映射器126可以访问服务库120,并且可以从服务元数据124和服务可执行122确定适当的信息(即适于所述请求或命令的信息)。在确定是否以及如何把服务从服务库120映射到传感器网络102的设备104、106、108、110中的一个或更多个时,服务映射器126可以和系统监视器128通信。系统监视器128可工作,以便检测或者确定和设备104、106、108、110有关的信息,所述信息整体上和传感器网络102有关(例如涉及设备104、106、108、110之间的交互作用),或者和设备104、106、108、110的环境或使用有关。因此,系统监视器128可以提供例如硬件健康诊断,或者可以为系统软件提供统计数据(例如有关服务116、118的名称和运行时信息)。在某些情况中,基于应用/服务的需要,可以实施特定于应用或服务的监视。尽管系统监视器128在图1中被示为与传感器网络102分开的组件,但是应该理解,一些或所有的系统监视器128可以在传感器网络102的设备104、106、108、110中的一个或更多个上在服务层实施。例如,服务118可以是本地部署的监视服务,该服务可工作,以便收集和报告关于CPU112或存储器114的当前状态的信息,或者信息的一些其他本地特性。因此,在图1的例子中,系统监视器128可工作,以便确定和提供设备元数据130。例如,设备元数据130可以包括设备104、106、108、110的对应设备的描述,其中,可以根据服务映射器126已知并为各个设备104、106、108、110公有的实体和/或模式构建所述描述。此外或者另外,设备元数据130可以被按特定于设备的格式或结构针对每一个设备所述104、106、108、110收集,并且此后可被转换为供服务映射器126使用的这样公有的模式。例如,设备元数据可以包括以基于可扩展标记语言(XML)的语言,例如根据定义的XML模式提供的对设备104、106、108、110的各种技术能力的描述。当然也可以使用其他的格式、语言和/或结构。更一般地,设备元数据130可以包括例如设备描述、软件描述、硬件描述和设备状态。例如,设备描述可以包括设备名称、标识符或类型,或者可以包括销售商信息,所述销售商信息包括销售商名称或销售商网站。软件描述可以包括操作系统描述,所述操作系统描述包括版本和/或销售商,或者,软件描述可以包括在设备平台上运行或允许运行的服务的描述。硬件描述可以包括关于CPU112的属性(例如名称或速度)、存储器114的属性(例如存储器总量)或设备的连接能力(例如连接速度或者连接类型)的信息。设备状态可以包括更多变的信息,包括设备位置、当前的CPU使用,或者剩余的功率或存储器。当然,如下面描述和/或将会明晰的那样,其他的设备方面或信息可以被包括在设备元数据130中。例如,设备元数据130可以包括关于其他设备的信息,例如设备104在那里包括RFID读取器(或与其相关联),并且设备元数据130可以包括对可被所述RFID读取器读和/或写的RFID标签的类型的描述。而且,尽管在图1中示出设备元数据130由系统监视器128确定,但是应该理解,至少静态设备约束(例如总存储器或销售商信息)可以被单独存储在类似于服务库120的设备(元数据)库(未在图1中示出)中。这样的设备库也可用来存储近来由系统监视器128收集的设备元数据(例如动态的但却缓慢变化的近来收集的设备元数据)至少使用服务元数据124和设备元数据130,服务映射器126可以将给定的服务映射到传感器网络102的设备104、106、108、110中的一个或更多个上。这样的映射被设计成不仅在必要的地方(例如将在服务元数据124中指定的需要的存储器与在设备元数据130中指定的设备存储器匹配)将服务元数据124和设备元数据130的各个方面进行值匹配(value-match),而且实现和优化所讨论的服务的部署和执行。例如,可能有设备104和设备110名义上或表面上都能够运行服务116的情况(例如设备104和110都拥有某些最低要求的存储器、处理能力或功率的值)。但是,可能有服务116对存储器的需求更甚于对功率的需求(或者反过来)的情况,所以如果设备104目前能够相对于另一候选设备110提供更多的功率,则即使设备110目前提供比设备104更多的空闲存储器,服务映射器126也可以将服务116映射到设备104。因此,服务映射器126可工作,以便确定(或尝试确定)哪个匹配或候选设备在质量和数量上最适于执行所讨论的服务的功能。例如,可以应用实现优先权(fulfillmentpriority),它将数值权重或其他优先权信息分配给服务元数据124和/或设备元数据130的一个或更多个属性,所以服务映射器126相应地可以执行相关联的服务的映射。当然,很多不同的标准可以和所述实现优先权相关联,例如,关于某个类型或品牌的设备或设备平台的信息,已知所述设备或设备平台在执行要被部署的服务时提供某种优点或益处,例如可靠性方面。因此,在这样的例子中,这种类型、品牌或平台的所有设备都可以被分配对应的优先权信息。系统监视器128也可以确定网络元数据132,例如各种网络参数,特别是在这些参数是动态的并且不一定可以从关于任何单个设备的信息中了解的情况下。网络元数据132的一个这样的例子可以包括传感器网络102上的可用带宽。其他的例子包括位置信息、网络整体的移动特性,以及网络连接的可靠性。在执行服务映射时,服务映射器126也可以访问其他被认为对映射有用或被要求的信息。例如,部署约束134可以包括各种可应用于一个或更多个服务、服务部署和/或传感器网络102自身的约束。例如,部署约束可以包括要求在传感器网络102中最大化电池寿命或电池使用的约束,或者可以规定多个服务和/或多个设备104、106、108、110可以通用的服务部署方面,这些将在下面更详细地讨论。因此,部署约束可以为执行给定的服务映射/部署提供全局策略或控制策略。一旦服务映射器126已经执行了适当的服务映射,则可以使用服务注入器136在设备104上安装和启动/激活被映射的服务(例如服务116)。更一般地,例如通过执行服务更新或者在有必要时停止服务,服务注入器136也可被用来管理服务的生命周期。因此,服务注入器136的一个任务是将具体的服务代码(例如服务可执行122中适当的一个)转移到被选择/映射的设备。因此,服务注入器136接收并安装所讨论种类的代码。像服务注入器136这样的安装组件可以被安装在设备侧,例如作为单个独立的软件组件,或者可以和其他的安装组件配合,以便分布(被映射的)服务可执行122的实例。在安装了服务可执行122的实例以后,服务116可以被保持处于非活动状态,直到服务注入器136发送将服务116改变到活动状态的启动信号为止。以类似的方式,服务注入器136可被用来组织服务的更新、停止和去除。一旦服务116的映射已经发生,并且服务116已经被在设备104上安装和启动,则服务116的执行可以按需要继续。在下列例子中,参考服务138,服务138要被部署到传感器网络102的一个或更多个设备上。即假设已经接收到映射和部署服务138的请求,所以相应地服务映射器126的后续映射可以继续下去。如此一来,并依据上面的解释,应该理解服务138最终可以被部署到设备104、106、108、110中被确定最适于执行服务138的任何一个。在下面的例子中,如图1中所示,一般将服务138作为至少被映射和部署到设备104来讨论。在执行刚才描述的映射时,服务映射器126可以包括映射系统140。如所描述的那样,映射系统140可工作,以便接收针对服务部署的请求(例如来自输入部署指定服务的请求的用户,或者与要求部署服务的商业过程相结合)。基于所述请求,映射系统140可以确定服务138应该被映射和部署到传感器网络102的至少一个设备上,并且相应地,可以从服务库120确定服务138的服务可执行以及相关联的服务元数据。然后,例如使用系统监视器128,可以从多个设备104、106、108、110中的一些或全部获得当前设备元数据130。然后,映射系统140可以基于服务元数据124和设备元数据130(和/或基于网络数据132)从多个设备04、106、108、110中确定被选择的设备(例如设备104)。但是,在某些情况下,可能有映射系统140所开始的这种映射和部署不成功或者只部分地成功的情况。例如,从上面的描述可以理解,为了让服务130的成功部署发生,在部署时可能要求存在可允许部署条件142。例如,可允许部署条件142可以包括部署约束134得到满足,或者与服务138相关联的服务要求(在服务元数据124中指定)可以被与传感器网络102的设备相关联的设备约束(在设备元数据130中指定)充分地满足。例如,在后一种情况中,服务138可以要求一定量的空闲存储器,或者一定的处理器速度,所以和给定设备,例如和设备104相关联(例如和存储器114或CPU112相关联)的设备约束可能不足以满足服务要求,特别是如果服务116、118已经由设备104承载和运行的话。当被开始的映射和/或部署至少部分失败或者被预计要失败时,映射系统140可工作,以便在失败时更改现有的部署条件,从而获得经过修改的部署条件144,并基于经过修改的部署条件144部署服务138。例如,通过改变(例如降低)服务138的要求、通过重新配置传感器网络102、通过从传感器网络102中去除当前部署的服务,或者通过改变一个或更多个部署约束134,映射系统140可以更改初始的部署条件。因此,通过更改现有的或初始的部署条件以便获得经过修改的部署条件144,映射系统140可被允许继续进行服务138的映射和部署。通过在服务映射和部署期间的这种主动干预,可以以更可靠的方式制订商业过程。例如,服务映射器126可工作,以便克服部署障碍和失败,否则它们可能妨碍将服务(例如服务138)部署到传感器网络102上。这样在图1的例子中,应该理解术语“部署条件”、“经过修改的部署条件”、“可允许部署条件”,或者类似的术语至少可以部分地指示针对传感器网络102存在(或者期望/要求存在)的物理条件中的条件,例如在传感器网络102上部署的服务的数量和类型,存在或可供部署额外的服务的存储器114的量,或者部署约束。换句话说,在特定时间的特定部署的上下文中,这些部署条件可能重叠,或者可能包含服务元数据124、设备元数据130、网络元数据132,或者部署约束134中的一些或者全部。因此,这些部署条件可能代表服务元数据124、设备元数据130、网络元数据132或部署约束134之间的匹配或者实现(或者缺乏匹配或者实现),用于(在这种情况下)将服务138部署到传感器网络102上。这样,这些部署条件可以全部或者部分地由例如XML文档代表,所述XML文档描述供映射系统140使用的相关联的物理条件(由图1的可允许部署条件142和经过修改的部署条件144所代表),其中,给定时间的这些XML文档的参数可以从服务库120、系统监视器128和部署约束134确定。如刚才提到的那样,服务映射器126可工作,以便实施各种策略和技术,用于主动干预失败的部署,从而更改非可允许部署条件并获得可允许部署条件。例如,如上面提到的那样,在图1的例子中要部署的服务138可以与服务元数据124相关联,服务元数据124可以包括服务138的要求,为了成功地部署和执行服务138,需要这些要求。在服务库120内,每一个这样的要求均可以被作为一系列可接受的值(例如从最小到最大可接受值)而非单个值提供。例如,服务138可以和指定服务138应该只被部署到具有例如最小到最大范围的某个指定范围以内的可用存储器、电池功率和/或传输速度的设备的服务要求相关联。因此,服务映射器126可以包括要求降低逻辑146,或者与其相关联,要求降低逻辑146可工作,以便通过降低其相应范围内的服务要求更改当前的部署条件。例如,如果被开始的部署失败,则映射系统140可以访问所述要求降低逻辑,以便确定是否或者如何开始降低相关的服务要求。例如,在一个具体实施方案中,服务138可以和5个服务要求相关联。在服务138的映射或部署确定失败之后,映射系统140可以访问要求降低逻辑146,以便确定降低所述5个服务要求中的一个或更多个的顺序,以及确定每一个服务要求可以被降低的程度。由于每一个服务要求均可以和实现优先权相关联,所以要求降低逻辑146可以指定具有最低实现优先权的服务要求(即最不重要的服务要求)首先和/或最应该被降低。在要求降低过程期间,映射系统140可以周期性地尝试确定服务要求是否已经充分降低以允许部署服务138,并且如果是这样,映射系统140可以继续部署。否则,要求降低可以继续,直到相应的最小被允许值,并可能包括完全消除至少一些(例如较低优先权)要求。作为更改非可允许部署条件的额外或另外的策略,服务映射器126可以重新配置或者重新组织传感器网络102。例如,服务映射器126可以包括网络重配置逻辑148,该逻辑可工作,以便实施一个或更多个用于重新组织传感器网络102的算法,例如通过重新定位传感器网络102的服务以便实现服务138的部署。在图1中示出的一个例子中,可能有服务映射器126首先尝试将服务138部署到设备104上的情况,并且在这么做时,服务映射器126可以确定设备104是最有可能的用于接收服务138的候选设备(例如因为设备104的局部能力/功能,或者因为设备104(和相关联的设备约束)在所有可用设备中最接近和与服务138相关联的服务要求匹配)。尽管如此,如果当前部署条件包括其中例如存储器114的可用存储器不足以部署服务138的条件,则部署可能失败。因此,网络重配置逻辑148可以确定至少设备110可以适于执行服务116,然后映射系统140可以通过将服务116从设备104重新定位或重新映射到设备110来更改当前的部署条件,从而获得经过修改的部署条件144。结果,存储器114的对应量可以被释放,并且可以达到可允许部署条件142,其中,服务138可以被部署到设备104。网络重配置逻辑148执行的算法在类型和复杂度上可以变化。例如,在尝试部署服务138时,网络重配置逻辑148可以执行一种算法,在所述算法中,传感器网络102的所有被允许重新映射到其他设备的服务被从传感器网络102中去除,然后以被设计成有效使用传感器网络102的资源的方式重新映射到设备104、106、108、110,同时释放至少一个设备上,例如设备104上的空间,用于将服务138部署到该设备。作为另一个例子,网络重配置逻辑148响应于服务138的失败部署,起初可以不去除或重新映射任何来自传感器网络的服务,而是可以输入并分析来自系统监视器128的数据,以便确定设备104、106、108、110中哪个/哪些最接近能够满足可允许部署条件142。然后,可以获得传感器网络102的设备104、106、108、110的精简子集(reducedsubset),并且服务的实际重新映射可以只在所述子集中间发生。以这种方式,可以节约传感器网络102宝贵的通信和计算资源。在执行网络重配置逻辑148时,相关联的算法一般可以受部署约束134支配。如上所述,部署约束134一般指示全局适用的约束,即可以指示和传感器网络102相关联的全局约束。也如上面提到的那样,部署约束134的例子可以包括要求所有部署(或某个部署)最小化电池使用、最小化存储器使用或者最小化处理功率的使用的约束。和要求降低逻辑146一样,网络重配置逻辑148的算法可以将优先权信息与每一个部署约束相关联。例如,在部署服务138时,即使结果发生了次优的存储器使用或处理功率,部署约束134也可以指明最小化存储器使用更重要,或者指明最小化电池使用更重要。因此,例如在后一种情况中,网络重配置逻辑148可以选择设备104作为极端功率有效的,因此可以确定设备104潜在地适于部署服务138。同时,可能有服务116可以以很少的修改或无需修改在设备110上运行(例如服务116包括温度检测服务并且设备104和110都处于检测所讨论的温度的位置)的情况。因此,映射系统140可以将服务116重新映射到设备110,如所示那样,并且此后可以确定所产生的传感器网络102的(经过修改的)部署条件144现在和可允许部署条件142匹配,并且允许将服务138部署在设备104上。即服务116移动到设备110实际上释放了至少一个设备上,例如设备104上的资源(例如存储器114),然后映射系统140可以利用设备104被释放的资源,包括实际上将服务138部署在该设备上。尽管上述例子主要设想了仅服务116的移动,但是应该理解,网络重配置逻辑148可以负责重新组织更大集合的被部署的服务,以便获得用于部署服务138的经过修改的部署条件144。在这么做时,网络重配置逻辑148也可以考虑各种类别和类型的被部署的服务。例如,如上面所提到的那样,被部署的服务可以包括某些实现服务,不能将所述实现服务从相关联的设备去除却不严重限制相关联的设备和/或传感器网络102整体的操作。例如可能有服务118与服务注入器136的组件或功能相关联的情况,所以去除服务118随后将使得不可能将新的服务注入设备104。结果,网络重配置逻辑148和相关联的算法可以包括用于保障服务118不被从设备104去除或重新映射的逻辑。最后,在图1中示出的服务映射器126的实施方案中,组件去除逻辑150可以被映射系统140实施,以便从传感器网络102完整地去除服务或服务组件,从而再次更改初始部署条件(例如释放网络资源)以便获得经过修改的满足可允许部署条件142的部署条件144。例如,组件去除逻辑150可以实施确定要从传感器网络102的设备104、106、108、110中的一个或更多个中去除哪个(以及多少)这种服务的算法。在一些实施方案中,例如,组件去除逻辑150可以分配、关联或确定部署在传感器网络102上的每一个服务的优先权信息。这些优先权信息可以在服务元数据124、部署约束134中指定,或基于它们指定;或者可以由从系统100的用户接收到的输入确定;或者,可以基于后端商业逻辑确定。例如,这些优先权信息可以指定具有相对于其他服务较低的优先权的服务应该被去除,或者指示去除消耗相对较多存储器或相对较多功率的服务。映射系统140可以实施组件去除逻辑150,以便首先确定通过去除一个或更多个服务要释放的资源是否足以部署服务138。如果不是(并假设例如服务138要被以要么全有要么全无的方式部署),则没有服务被从传感器网络102去除,并且可以通知请求部署服务138的来源(例如系统100的用户,或者和系统100通信的应用)。如果要释放的资源将是充足的,则映射系统140和服务注入器136可以继续去除被确定的部分,并充分部署服务138。例如,可能有服务116不能在除了设备104以外的任何可用设备上被满意地运行,因此不能在传感器网络102内重新定位的情况。在这种情况下,如果服务116对于实施和传感器网络102相关联的商业逻辑来说并不关键,则设备116可以被从传感器网络102完全去除,并且服务138可以被部署在设备104上来代替它。如图1中所示,服务映射器126可以包括要全部或部分地在计算机152上或任何适当的计算设备上执行的软件,计算机152例如个人计算机、工作站。例如,用户或管理员可以将一些或全部的服务映射器126软件安装到计算机152上,并且可以使用在相关联的显示器观看的图形用户接口(GUI)与服务映射器126软件交互作用。在另一个例子中,可以通过例如国际互联网的广域网将一些或全部服务映射器126软件安装在远程计算机上,并且用户可以通过所述网络,例如作为基于网络的图形用户界面访问服务映射器126。例如,这些GUI,无论是本地的还是基于网络的,均可以包括允许用户设置部署约束134,更改服务元数据124,或者开发/修改和/或将服务可执行注册到服务库120的字段或其他输入/输出技术。用户也可以使用GUI或其他适合的用户接口,以便开始例如服务映射(例如选择服务和/或传感器网络用于期望的映射),或者设置与服务映射器126相关联的参数(例如,和要求降低逻辑146、网络重配置逻辑148或者组件去除逻辑150相关联的参数,包括优先权信息)。服务映射器126可以和全部或部分地在计算机152上执行或在远程计算机和/或网络上执行的商业过程通信。例如,所述商业过程可被置于公司总部,并且传感器网络102可以代表很多(类型)网络其中之一,可以跨过由广域网连接的广大地理区域散布所述网络。因此,后端商业过程、服务库120、系统监视器128、服务注入器136,或者传感器网络102中的任何一个或者全部,都可以被跨过由广域网连接的相对较大的地理区域散布,所述广域网可以包括例如国际互联网或者企业范围的私有网络。服务库120、部署约束134、服务注入器136,以及系统监视器128可以被全部或部分地安装在计算机152上,例如可以被存储在计算机152的存储器中。例如,系统监视器128可以包括在计算机152上执行的服务器组件,例如应用服务器。同时,如上面所提到的那样,例如至少服务映射器126、系统监视器128以及服务注入器的一部分可以被在例如便携式计算设备(例如膝上型计算机或个人数字助理(PDA))的单独的计算设备上存储/执行,或者可以被在传感器网络102的设备104、106、108、110中的一个或更多个上存储/执行。用于在计算机152(或其他刚才描述的例子或计算机152的变化)和传感器网络102的设备之间通信的技术可以随例如设备的类型改变。例如,设备和/或嵌入式系统可以代表从小规模、单片微型计算机一直到成熟的PC硬件的任何东西。因此,例如,对于具有移动电话或者更多(例如能够运行Java虚拟机TM(JavaVirtualMachineTM)或其他中间件平台)的能力的设备,实施方案可以被在JavaTM中执行和/或基于开放服务网关规范(OpenServicesGatewayinitiative,OSGi),OSGi代表用于实施用于应用和/或应用组件的远程安装和管理的组件模型的已知框架。图2是流程图200,示出了图1的系统的示范性操作。在图2中,如上面所提到的那样,相关联的过程和操作可以由用户或希望使用传感器网络102的特定(例如当前未在运行)服务(例如注册到服务库120的服务)的商业应用开始或请求。仍如上面所提到的那样,在传感器网络102内的变化也可以开始图2的过程和操作,其中这些变化可以包括例如软件更新、从传感器网络102去除或添加设备(或服务),或者传感器网络102(服务)的负载平衡。因此,在图2中,如上面所提到的那样,确定服务元数据(202)可以包括或反映服务要求(例如处理器类型、可用存储器或被请求的带宽),潜在的设备应该满足所述服务要求以便能够承载指定的、相关联的服务(例如承载来自服务库120的服务可执行122的对应可执行代码组件)。如上所述,至少这些要求中的一些可以定义可测量属性,例如可用的存储器的可接受/容忍范围。类似地,可以收集部署约束(204),例如部署约束134,它可以包括例如更多的全局约束,例如期望数量的优先选择或被要求承载所讨论的服务的设备(换句话说,传感器网络102的期望覆盖)。即,例如尽管服务138在图1中被示为部署在单个设备104上,但是从传感器网络102的本质和可能的使用应该理解,在很多情况下,服务138的实例可以被部署到传感器网络102的多个设备104、106、108、110。以这种方式,例如,用于检测温度(或其他的物理或环境参数)的服务可以被部署在充分宽广的物理区域之上。又例如,服务138的多个实例可以被部署到不同的设备,以便获得系统100的期望的冗余水平。一般来说,服务元数据124(和相关联的服务要求)以及部署约束134代表可被存储在适当的存储器或数据仓库中并从所述存储器或数据仓库访问的信息。例如,服务要求以及任何对应的数据可以由服务组件的开发者指定,并存储在服务映射器126可用的正确格式的文件或数据库中。例如,尽管图1示出服务元数据124存储在服务库120中,和部署约束134分开存储,但是应该理解,任何适当的存储方案可被使用,例如服务元数据124和部署约束134可以被一起(或彼此相关联)存储在与一般的要求数据存储相关联的存储器中。无论如何存储,服务要求和部署约束134,或者其他的要求,可以和上面提到的实现优先权相关联,所述实现优先权被设计成指示每一个相关联类型的要求的重要性。例如,这样的实现优先权可以指示在安装服务138以后,使用某种处理器类型(例如CPU112)可能比剩余的存储器更重要。仍如上面所提到的那样,一般被应用于传感器网络102的服务(及其部署)的这些实现优先权信息在对失败(或要失败)的部署的主动干预中可能是有用的,并且可被用于例如(在一个范围内)降低服务要求、重新配置传感器网络102,或者从传感器网络102去除服务组件。还是在图2中,第二种类型的基本输入数据包括关于传感器网络102中的设备的当前可用能力的信息,或者关于传感器网络自身的当前可用能力的信息。因此,设备元数据130可以被收集(206),例如它可以包括传感器网络102的设备104、106、108、110中的一个或更多个设备的各种静态参数(例如销售商名称、CPU类型,或安装/运行的服务组件的列表),以及各种动态改变的参数(例如剩余电池或存储器)。更进一步,网络元数据132可以被收集(208),例如它可以包括关于传感器网络102的拓扑的信息(例如相邻关系,或设备之间可用的带宽)。如从图1的描述理解的那样,设备元数据130和网络元数据132可以被系统监视器128收集。例如,在一个实施方案中,系统监视器128的监视过程可以假设目标设备104、106、108、110具有关于其能力和当前状态的信息。例如,设备104、106、108、110可以存储、连续更新(如果要求)和检索与监视相关的数据。系统监视器132可以主动从设备104、106、108、110请求相关的数据,和/或设备104、106、108、110可以自动地指示当前配置中的变化。例如,设备104可以包括服务118,服务118可以是系统监视器128的一部分或与其相关联,并且它可以指示设备104的电池状态(或者实际上(virtually)任何其他参数)达到了预先定义的水平,例如被确定是极其低的水平。基于上述输入数据(202-208),服务映射器126可以执行一组关于传感器网络102的哪些设备应该承载和运行哪个服务(可执行)的决策(210)。然后,可以确定(当前或初始)部署条件是否和可允许部署条件匹配(212)。如果匹配,则例如所有服务(组件)的所有被指定的服务要求,以及部署约束134,可以被当前可用的设备实现。换句话说,在服务(或其实例或组件)和可用的设备104、106、108、110之间可以找到恰当的匹配。例如,映射过程可以具有设备104应该承载服务138的结果,或者,在多个可能的解决方案的情况下,服务映射器126可以选择一个恰当的配置,例如通过(例如在网络范围)选择具有最多剩余空闲资源的配置。然后,服务映射的输出可以包括一组用于执行代码注入的指令(214)。具体来说,在成功映射服务以后,服务注入器136可被用来将可执行服务组件转移到相应的被选择设备。取决于和服务网络102相关联的可用网络基础设施,例如,代码注入可以被以逐个设备的方式执行,其中,服务注入器136将包含适当命令的消息发送到目标节点,所述命令例如“去除服务116并安装服务138”。在这种情况下,适当的服务可执行可以被从服务库120传送到设备104。一旦设备从服务注入器136接收到某组命令和服务,则服务可以被激活(216)。这种激活可能部分地取决于和所述设备相关联的具体相关联的硬件平台,这在下面参考图3更详细地提及。但是,预期的服务要求和设备约束可能不能被可用的设备满足,即当前或初始部署条件实际上可能不和可允许部署条件匹配(212)。在这种情况下,如这里所描述的那样,部署条件可以被更改,以便获得经过修改的部署条件(218)。例如,服务映射器126,例如映射系统140,可以应用这里描述的资源分配过程,例如包括在被允许范围内降低服务要求的值、重新配置传感器网络102,和/或从传感器网络102去除已经部署的服务。例如,映射系统140可以执行要求降低逻辑146、网络重配置逻辑148,和/或组件去除逻辑150。例如,要求降低逻辑146可以包括用于基于相关联的实现优先权信息,在指定的可接受范围内降低服务元数据124的服务要求的算法。在将某个服务要求设置为新的被降低的值以后,即在更改了现有部署条件以获得经过修改的部署条件144以后,映射系统140可以尝试再次找到恰当的匹配/映射(210)。然后,在映射成功以后或者所有可用的服务要求都已经被降低到其相应最小被允许值以后,可以停止这个降低过程。如果经过修改的部署条件仍不和可允许部署条件匹配(212),则可以根据实现优先权信息从映射中排除单个服务要求。在更改部署条件(218)时,映射系统140也可以执行网络重配置逻辑148,例如当新的服务被导入/插入饱和网络和/或当刚才描述的降低服务要求(和/或部署约束134)失败时,可能发生这种情况。换句话说,映射系统以特定服务-设备配置开始,例如没有服务138,并且此后可以确定也包括新的服务138的新的、可允许服务-设备配置设置。在这种操作期间,映射系统140可以再次执行要求降低逻辑146,以便找到恰当的匹配/映射。结果,可以得到设备的某个子集的经过改变的配置,其中新的/不同的设备承载不同的服务。作为用于保证成功的将服务部署到传感器网络102上的主动干预的最后一个例子,映射系统140可以实施组件去除逻辑150。例如,映射系统140可以确定要完全从传感器网络102去除的服务(例如服务116),以便为要被部署的新服务(例如服务138)分配所请求的/必要量的空闲资源。因此,不仅所讨论的服务116的单个实例将从传感器网络102消失,而且和给定类型的组件相关的所有实例/服务都可以被从系统100的执行环境完全地去除。为了获得期望的结果,执行映射(210)、确定(经过修改的)部署是否满足可允许部署条件(212),以及更改部署条件(218)的循环可以被执行期望的次数或必要的次数。因此,可以按各种不同的顺序或者组合实施各种干涉技术。例如,从传感器网络102去除服务可以被结合传感器网络102的网络重配置执行。又例如,干涉策略可以被按预先定义的顺序执行,例如,要求降低,跟着是网络重配置,跟着是服务(组件)去除。干涉策略的这些以及其他的顺序或组合可以被使用,这在给定的场景中将是适当的,或者这将会是清楚的。图3是示出图1的系统100的运行时环境300的框图。这样,例如图3示出了图2的流程图200的操作在图1的系统100上的可能结果,并且为下面参考图4和图5讨论的更详细的示范场景(scenarios)提供了上下文(context)。在图3的例子中,商业过程302应该被理解成指示工作流,该工作流包括节点304、306、308和310a-310c,所述节点可用包括或代表例如工作流的逻辑相关的任务或者活动,或者工作流的控制节点,其中所述工作流一般被用来变换输入资源(例如材料、能量或信息),以便获得和商业相关的结果(例如产品,或者对产品或服务的生成和交付有贡献的组件)。例如,商业过程302可以包括供应链管理(SupplyChainManagement,SCM)过程,或者有害化学品管理过程。在现有的企业软件解决方案(即后端解决方案)的上下文中存在很多这样的商业过程,但是,如这里所描述的那样,例如图1的分布式、面向服务的体系结构提供了将这些现有的商业过程(以及其他的商业过程)无缝集成为分布式、基于智能物件的传感器网络。因此,商业过程302可以被分解为分立的服务,并使用分立的服务表示,然后这些服务可以被灵活地和(至少部分地)自动地部署在传感器网络102上。结果,商业过程302可以被更快和更可靠地执行,并且信息可以被基本上实时地从企业的业务进行的地点提供,而且,这些信息可以被以基本上独立于平台和/或独立于语言的方式提供。在商业过程302中,节点304可以代表被后端商业软件系统执行的任务,而节点306可以代表商业过程302的被重新定位到传感器网络102的任务(例如通过这里描述的服务到设备映射技术)。节点308代表控制或决策点,在该处商业过程302可以采取由节点310a、310b和310c代表的至少三个可能的行动路线其中之一。在图3中,服务层312示出各种被部署的服务,没有特别示出传感器网络102的设备104、106、108、110之间的具体关系(例如部署)。则可以看出,商业过程302可以被看作被分割成至少两个部分,即线314之上在后端企业系统执行的第一部分,和线314之下的部署到传感器网络102上供在设备104、106、108、110上执行的第二部分。因此,线314可以代表后端系统和传感器网络102之间的技术和语义边界。换句话说,节点306的被重新定位的过程任务被服务层312的服务执行,在图3的例子中,服务层312的服务包括图1的服务116、118和138,以及服务316和318。如图3中所示,服务可以被实施为在其执行中基本上是自包含的单个服务或原子服务,或者可以被实施为复合服务或组合服务,所以在传感器网络102的不同设备上运行的服务可以协作,以便形成单个服务/设备不能以恰当或有效的方式提供的复合服务。例如,图3的服务318被示为利用服务116和服务316,其中这三个服务中的每一个均可以被在传感器网络102的不同设备上执行。作为一个具体的例子,服务318可以收集和汇总传感器数据,例如室温,服务116和316中的每一个均可以测量和发送所述传感器数据。仍是在图3中,服务层312的服务可被用来跨过线314给商业过程302提供实时数据320和/或过程控制322。例如,在这个例子中,服务118可以包括监视服务,该服务报告包括相关联的设备的当前状态的实时数据(例如设备或相关联的对象的位置或温度)。然后,如图所示,可以在任务304中使用该数据。此外,过程控制322可以被提供给(控制)节点308,所以基于过程控制322,商业过程302可以前进到可能的节点310a、310b、310c中适当的一个或更多个。如上面所提到的那样,服务层312的服务可以被分割为两个部分,即描述部分(包括例如服务元数据124)和实施部分(例如服务可执行122)。所述描述可以指定相关联的接口、协议、端口、消息,或服务类型中的一个或更多个。所述实施部分一般应该以和所述描述一致的方式执行,特别是供在不同种类的平台之间使用。可在服务层312中使用的一个类型的服务包括网络服务。尽管也可以使用其他类型的分布式服务(下面提供例子),但是针对网络服务提供了描述,要理解在其他类型的服务的上下文中,可以应用类似或相似的概念和实施方案。例如刚才所提到的那样,服务一般提供统一的描述,用于帮助保证成功的交互作用,并且在网络服务的情况下,这种描述可以基于网络服务描述语言,或者说WSDL(WebServicesDescriptionLanguage)。然后,描述可以被一个服务用来调用另一个,例如通过发送简单对象访问协议(SimpleObjectAccessProtocol,SOAP)消息或者执行远程过程调用(RPC)。和WSDL一样,SOAP可以被用XML表示,并且使用上面的技术,服务可以以从具体平台抽象的方式交互作用,同时仍保证协同工作的能力。在一些实施方案中,一组可能的服务描述可以被限制,以便节约传感器网络102的有限资源。例如,通用即插即用(UniversalPlug-n-Play,UPnP)标准也可以用XML描述服务(例如采用SOAP作为RPC的实施方案),它可以通过在可能的服务调用上施加某些约束,和/或通过允许优化执行环境来降低复杂性,所述优化是通过只支持在所述环境中实际上可能需要的那些服务。尽管作为例子提供了上面的实施方案,但是应该理解,所述例子不应被视为限制性的。例如,除了UPnP以外,可以使用任何适当的用于协同环境中的协同工作能力的开放标准。更一般地说,实际上任何设备和/或平台都可以被在系统100和/或环境300中使用,例如环境300提供充足的计算能力来运行商业逻辑,可编程用于接收新的服务,提供感知能力以获得数据(用于输入和所述商业逻辑相关联的过程),并且包括通信接口以实现服务的协同。应该理解,图1和2的主动干预技术可被用来帮助保证服务层312的服务可靠地包括被判断为对商业过程302的执行最为重要的服务,并且这些服务被以使系统100的用户或管理员费力最少的方式部署到传感器网络102的设备上。图4是流程图400,示出了图1和图3的系统的操作的额外例子。在图4中,接收到对服务部署的请求(402)。例如,在服务映射器126可以接收到服务映射请求。例如,管理员或其他用户,或者另外的系统组件(例如系统监视器128)可以请求将指定的服务映射到适当的设备。这种请求可能具有各种形式。例如,管理员或其他系统组件可以请求将特定服务映射到一个或更多个明确标识的设备,或者可以请求部署服务到所有(可用)设备上。管理员或其他系统组件也可以请求将服务映射或和部署到某个指定数量或百分比的设备。此外或者另外,管理员或者其他系统组件可以指定服务应该被在“最佳”的设备上或用于给定的上下文的设备上指定,例如根据指定的优先权信息,包括部署约束134。根据后一个例子,部署约束134可以被确定(404)。例如,映射系统140可以访问部署约束134,其和服务元数据124以及设备元数据130类似,部署约束134也可以通过XML文档的方式指定,所述XML文档具有预先确定的XML模式并指定部署约束134。类似地,服务要求和设备约束(以及可能的网络配置信息)可被确定(406)。例如,如刚才提到的那样,映射系统140可以访问服务元数据124,包括来自服务库120的作为XML文档的服务要求,并且也可以类似地获得设备元数据130,包括目前存在于传感器网络102中的静态和动态的设备约束(由系统监视器128确定)。应该清楚,网络元数据132也可以被以类似的方式访问/确定。然后可以开始将指定服务部署到传感器网络102的设备上(408)。例如,映射系统140可以继续匹配被确定的服务要求和设备约束。例如,如果服务要求和设备约束被根据预先确定的XML模式以相应的XML文档提供,则例如存储器、功率和处理功率的参数和值可以被相互匹配(并对照和部署约束134相关联的XML文档匹配),以便确定传感器网络102的能够接收和执行所讨论的服务的设备的某个子集。因此,部署条件可以被确定(410)。例如,作为刚才描述的匹配操作的结果,可以形成复合XML文档,并且从这样的文档(或者只从部署的实际失败)可以确定部署条件不满足可允许部署条件142(412)。这样的确定可以是二元决策,其中只确定成功或失败。在其他的例子中,可能有成功或失败的程度,例如只有一定数量或百分比的期望设备能够(或被允许)接收服务的部署。在其他的例子中,确定部署条件不满足可允许部署条件142可以包括分析每一个代表每一个潜在设备的设备约束的XML文档,以及选择最接近符合部署所讨论的服务的设备的某个子集。因此,部署条件可以被更改,以便获得经过修改的部署条件144(414)。例如,映射系统140可以执行要求降低逻辑146、网络重配置逻辑148,和/或组件去除逻辑150。结果,例如服务元数据124(例如服务要求)可以被更改,或者,在其他的例子中,当前部署的服务的位置可以被改变(但是同时维持传感器网络102上当前部署的服务),此外或者另外,可以从传感器网络102简单地去除一个或更多个当前部署的服务。换句话说,对传感器网络102的资源的要求可以降低,和/或资源的可用性可以被增加,以使经过修改的部署条件满足可允许部署条件。在一些实施方案中,如下面参考图5所描述的那样,映射系统140可以执行上述策略,用于按预先定义的顺序或组合主动干预服务到设备映射,或者可以只实施可用策略的一个子集。通过可能是逐个部署地访问部署约束134,映射系统140可以确定这些策略或其他策略的顺序、组合或(不)包含。一旦可允许部署条件142被满足,则基于经过修改的部署条件144,所讨论的服务可以被部署到设备上(416)。例如,服务注入器136可工作,以便注入所讨论的服务并稍后将其激活。在一些实施方案中,利用服务的服务可执行,可以基于和开发平台的兼容性选择服务注入器136。图5是流程图500,示出了在涉及化学品储罐的安全管理的例子中图1和图3系统的操作的例子。具体来说,例如在油气工业中可以使用化学品储罐或其他容器来存储和运输潜在危险的化学品。例如,某些化学品在一定温度或压力之上可能燃烧。在另一个例子中,可能有由于和化学品的潜在混和物相关的危险,某些化学品对或化学品组不应该被彼此太接近的存储的情况。此外,辐射性材料也应该被严密监视,以便保证附近工人或参观者的安全和健康。则在这些场景中,设备104、106、108、110可以包括附着到化学品储罐或与其相关联的设备。例如,服务116、118、138可以代表温度/压力收集服务,并且更一般地,每一个设备均可被装备成存储、检索或提供关于其相关联的储罐的具体内容的信息(例如化学品成分或总体积),以及自动识别潜在的危险情况。因此,服务116、118、138可以代表图3的节点306的被重新定位的商业任务的例子,所以服务116、118、138的功能可以被理解成提供例如安全紧迫的警告,以便触发由相关联的后端系统实施的手动或自动过程。在图5的例子中,在上面的场景中温度检测服务要被映射和部署到传感器网络102上。在这种情况下,用于温度检测服务的服务元数据被确定(502)。例如,服务映射器126可以和服务库120通信,以便确定服务元数据124的相关子集。在这个例子中,服务元数据124可以包括温度检测服务的服务要求,例如传感器网络102的要接收所述服务的设备的数量或百分比,以及传感器网络102的设备的一系列可能的值(例如处理功率、存储器、带宽或电池功率的范围),在给定的设备上实施所述服务需要这些值。服务元数据124也可以包括和每一系列值相关联的优先权信息,指示每一个类型的值的重要性的相对水平。例如来自部署约束134的相关部署约束也可以被确定(504)。例如,服务映射器126可以确定部署约束就绪,指定了用于使用某个硬件或软件平台的全局性优先选择或要求,所述硬件或软件平台可以与传感器网络102的设备104、106、108、110中的某些相关联。这种相关部署约束的其他例子可能包括在传感器网络102上存在一定量的可用带宽用于部署任何新的服务的要求,或者新的服务应该被部署到具有一定的可用电池功率水平(例如被指定为数字阈值,或者具有最高可用功率水平的设备)的设备的要求。尽管图5的例子示出在确定部署约束之前确定服务元数据,但是应该理解,这些操作可以被按不同的顺序执行,或者被同时执行(类似的注释适用于图5的剩余部分,并且贯穿本说明,除非上下文做出相反规定)。然后,可以确定当前运行所讨论的服务的设备的数量,如果有的话(506)。例如,可能有这样的情况在区域中很多设备/储罐在运行温度检测服务,但是将额外的或不同的化学品运输到该区域中可以开始温度检测服务的额外实例的可能的映射/部署(例如保证区域的充分覆盖)。在这种情况下,也许使用系统监视器128,服务映射器126可以轮询设备104、106、108、110以便确定温度检测服务的当前部署状态。如果证明足够数量的设备目前正在运行所述服务(508),则可能无需额外的映射/部署,并且映射/部署过程可以结束(510)。但是,如果没有足够的当前在运行要被部署的所述服务的设备(508),则未运行所述服务的设备可以被确定(512)。例如,服务映射器126可以指令系统监视器128查询传感器网络102,或者系统监视器128可以作为其正常计划的操作的一部分来这么做。在这么做时,系统监视器128可以确定相关的设备和相关联的设备约束,例如作为设备元数据130的一部分。当然,系统监视器128也可以确定网络元数据132的相关部分。如果发现足够的设备能够满足承载和运行温度检测服务的设备要求和部署约束(514),则服务映射器126可以执行其正常映射任务,把服务映射到设备中合适的那些,所以可用设备的某个子集可被选择,供将服务部署到该子集(516)。如果不存在足够的设备(514),则服务映射器126可以确定对于当前服务部署是否要求原子性(518)。即,一些服务被与“要么全有要么全无的”部署或原子部署相关联,所以例如,服务部署可以指定一定数量的设备接收服务(例如4个),并且只有该数量的设备当前可用才部署所述服务。在其他的非原子部署中,服务可以被部分地部署,所以在上面的例子中,服务可以只被部署到一个、两个或三个设备,或者可用于部署的任意多的设备(520)。如果要求原子性(例如由服务要求和/或部署约束134),则服务映射器126不可以被允许在当前部署条件下部署服务,并且相反,可用继续尝试执行对在部署中获得成功进行主动干预。在图5的例子中,主动干预从确定降低要求是否被允许开始(522)。例如,映射系统140可以执行要求降低逻辑146来确定(例如从服务元数据124和/或部署约束134)在尝试减轻传感器网络102的设备104、106、108、110所要求的负载时是否允许降低所讨论的服务的服务要求。如果是,则要求可以被相应地降低(524)。例如,要求降低逻辑146可以指定三个不同的服务要求(例如电池功率、处理功率和存储器)可以被降低的顺序(即优先级),所述三个服务要求均和服务元数据124内值的最小-最大范围相关联。在某些情况中,给定的服务要求的被要求的值可以被降低到最小被允许的值,或者降低到高于最小值的某个水平,或者在某些情况下,所述服务要求可以被完全去除。例如,在后一种情况下,可能存在这样的服务要求即除了被部署的温度检测服务以外,设备应该能够运行至少一个(或更多个)其他的服务。但是,如果没有这样的设备满足这个要求,则可以消除所述要求。因此,映射系统140可以继续降低要求(524),并且周期性地或者在每一次降低之后(或某个其他间隔和事件),服务映射器126可以再次使用系统监视器来确定现在是否存在足够的设备满足(剩下的)要求(526)。如果是,则服务映射器126可以执行其正常的映射过程来选择可用设备中适当的那些,用于将温度检测服务部署到所述设备(516)。如果不是,并且如果还没有到达被降低的要求的最小值(528),则映射系统140可以继续执行要求降低逻辑146,例如可以继续降低当前或下一个较高优先权的要求(524)。如果已经达到最小要求(集合)(528),例如每一个服务要求都已经被降低到最小值和/或被去除(如果允许),则服务映射器126再次确定是否要求原子性(530)。如果不要求,这已经描述过,则服务映射器126可以将温度检测服务部署到可用设备(532)。在那以后,或者如果要求原子性,并且此后,在流程图500中在这一点按定义,仍不存在足够的满足所有要求的设备,则过程继续,确定网络重配置是否被允许(534)。当然,如果早先在过程中降低要求不被允许(522),则过程可以直接前进到确定是否使用网络重配置,如图5的例子中所示。如果网络重配置被允许(534),则例如,映射系统140可以执行网络重配置逻辑148以便重新组织传感器网络102(536)。例如,如已经描述的那样,映射系统140可以去除一些或全部当前部署的服务,并且可以执行网络重配置逻辑148以便确定改善的分布,用于(重新)部署服务,其中,所述改善的分布包括在至少一个(或某个被要求的数量)用于接收温度检测服务的设备上释放足够量的资源。在其他的例子中,映射系统140可以使用系统监视器128确定传感器网络102的设备的某个子集,所述设备子集最接近能够承载和执行温度检测服务(例如只在单个区域中不足的设备,或者缺乏最少的量)。然后,映射系统140可以使用被确定的设备子集,执行网络重配置逻辑148。在用这种方式重新配置/重新组织传感器网络102以后,服务映射器126(例如再次结合系统监视器128)可以确定现在是否存在足够的满足要求的设备(538)。如果是,则服务映射器126可以执行其正常的映射过程来选择可用设备中适当的那些,用于将温度检测服务部署到所述设备(540)。如果不是,则服务映射器126再次确定是否要求原子性(542)。如果不是,则如已经描述的那样,服务映射器126可以将温度检测服务到可用设备(544)。这以后,或者如果要求原子性,并且此后,在流程图500中在这一点再次按定义,仍不存在足够的满足所有要求的设备,则过程继续,确定组件去除是否被允许(546)。当然,如果早先在过程中重新配置传感器网络102不被允许(534),则过程可以直接前进到确定是否使用组件去除,如图5的例子中所示。在其他的实施方案中,尽管在图5中没有示出,流程图500也能够从不允许要求降低(522)直接前进到确定是否允许组件去除(546)。如果组件去除不被允许(546),则在图5的例子中,到达异常(548),并且对于温度检测服务,部署可以被停止。但是,如果允许组件去除(546),则服务组件,包括整个服务,可以被基于相关联的优先权去除(550)。例如,映射系统140可以执行组件去除逻辑150,以便确定传感器网络的哪些服务最容易被去除。例如,给定的服务可能具有多个被部署的实例(例如为了冗余),并且组件去除逻辑150可以指定这种冗余的实例具有较低的优先权并且可以被去除。在其他的实施方案中,相对于被执行的商业过程/逻辑(例如,当化学品储罐的加速度通常未被预期,或者通常未被预取是特别危险或有问题的时候,用于检测相关联的化学品储罐的加速度的服务),给定的服务可以简单地具有较低的优先权。在以这种方式从传感器网络102去除服务组件之后,服务映射器126(例如再次结合系统监视器128)可以确定现在是否存在足够的满足要求的设备(552)。如果是,则服务映射器126可以去除被确定的服务(组件),然后执行其正常的映射过程来选择可用设备中适当的那些,用于将温度检测服务部署到所述设备(554)。如果不是,则服务映射器126再次确定是否要求原子性(556)。如果不是,则服务映射器126可以去除被确定服务/组件,如果有这样的服务/组件的话,然后将温度检测服务部署到可用设备(558)。此后,或者如果要求原子性(556),则可以返回异常(560),指示没有实现完整的部署。当然,很多其他的实施方案是可能的。例如,不是返回异常(560),图5的过程可以返回初期干预策略,例如降低要求和/或重新配置传感器网络102。即,作为网络重配置和/或服务组件去除的结果,要求的降低可以变得足以实现温度检测服务的完整部署。如这里所描述的,服务到设备映射/重新映射算法实现了服务到适当设备的自动智能映射,所述设备例如智能物件设备,以便随后可以将服务部署到所述设备。在某些情况下,映射和/或部署可能至少部分失败,或者可以预计要失败,所以当前部署条件不和被部署的服务的可允许部署条件匹配。在这种情况下,可以实施各种主动干预,用于更改当前部署条件以获得经过修改的部署条件,所述经过修改的部署条件实际上满足所述可允许部署条件。例如,这些主动干预可以包括通过降低或消除和服务或部署相关联的要求(例如服务要求或设备约束),重新配置传感器网络以便释放传感器网络的一个或更多个设备的资源,或者从传感器网络(整体地或部分地)去除当前部署的服务来更改当前部署条件。因此,可以用简单、可靠的方式获得期望的服务部署,并且可以使得传感器网络的功能更灵活并且更可预计。这里描述的各种技术的实施方案可以被实施在数字电子电路中,或者实施在计算机硬件、固件、软件或它们的组合中。实施方案可以实施为计算机程序产品,即实实在在地具体实施在信息载体中的计算机程序,例如在机器可读存储设备中或者在传播的信号中,供数据处理装置执行,或者控制其操作,所述数据处理装置例如可编程处理器、计算机、多个计算机。计算机程序,例如上面描述的计算机程序,可以被用任何形式的编程语言书写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使用的单元。计算机程序可以被部署成被在一个计算机上或在位于一个地点或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。方法步骤可以被一个或更多个可编程处理器执行,可编程处理器执行计算机程序,通过对输入数据操作和产生输出来执行功能。方法步骤还可以被专用目的逻辑电路执行,或者装置可以被实施为专用目的逻辑电路,所述逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。作为例子,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任意一个或更多个处理器。一般来说,处理器将从只读存储器或随机访问存储器接收指令和数据,或者从两者都接收指令和数据。计算机的物件可以包括至少一个用于执行指令的处理器,和用于储存指令和数据的一个或更多个存储器设备。一般来说,计算机还可以包括,或者被可操作地耦合成从一个或更多个用于储存数据的海量储存设备接收数据,或把数据转移到海量储存设备,或者二者皆有,海量储存设备例如磁盘、磁光盘或光盘。适于具体实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为例子,包括半导体存储器设备,例如EPROM、EEPROM和快闪存储器设备、磁盘,例如内置硬盘或可移动磁盘、磁光盘和CD-ROM以及DVD-ROM盘。处理器和存储器可以被专用目的逻辑电路补充,或被包含在专用目的逻辑电路中。为了提供和用户的交互作用,实施方案可以在具有显示设备和键盘以及指向设备的计算机上实施,显示设备例如CRT(阴极射线管,cathoderaytube,CRT)或液晶显示器(LCD)监视器,用于向用户显示信息,键盘和指向设备(pointingdevice)例如鼠标或轨迹球,用户利用指向设备可以给计算机提供输入。其他种类的设备也可以被用来提供和用户的交互作用,例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈,并且,来自用户的输入可以被以任何形式接收,包括声音、语音或触觉输入。实施方案可以被在包括后端组件或中间件组件或前端组件的计算系统中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面,或Web浏览器的客户端计算机,通过Web浏览器,用户可以和实施方案进行交互作用。可以利用数字数据通信的任何形式或介质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括局域网(localareanetwork,“LAN”)和广域网(wideareanetwork,“WAN”),例如国际互联网。虽然如这里所描述的那样已经示出了所描述的实施方案的某些特征,但是本领域普通技术人员现在将想到很多修改、替换,变化或等同物。因此要理解,所附权利要求应当覆盖落入实施例的范围内的所有这些修改和变化。权利要求1.一种方法,包含开始将服务(138)部署到传感器网络(102)的设备(104)上,在所述传感器网络(102)上部署了多个服务(116、118);确定和所述部署相关联的部署条件不满足所述部署的可允许部署条件(142);更改所述部署条件以便获得经过修改的部署条件(144);和基于所述经过修改的部署条件(144),将所述服务(138)部署到所述设备(104)上。2.如权利要求1所述的方法,其中,开始将所述服务(138)部署到所述传感器网络(102)的所述设备(104)上包含基于将所述服务(138)映射到所述设备(104)而开始所述部署,所述映射基于和所述服务(138)相关联的服务元数据(124),并基于和所述设备(104)相关联的设备元数据(130)。3.如权利要求1所述的方法,其中,确定和所述部署相关联的部署条件不满足所述部署的可允许部署条件(142)包含至少确定所述部署的部分失败。4.如权利要求1所述的方法,其中,确定和所述部署相关联的部署条件不满足所述部署的可允许部署条件(142)包含确定所述部署和与所述服务相关联的服务要求以及与所述设备相关联的设备约束相关联;和确定所述服务要求未被所述设备约束满足。5.如权利要求1所述的方法,其中,确定和所述部署相关联的部署条件不满足所述部署的可允许部署条件(142)包含确定所述部署条件不满足和所述传感器网络(102)相关联的部署约束(134)。6.如权利要求1所述的方法,其中,更改所述部署条件以便获得所述经过修改的部署条件(144)包含确定所述部署和与所述服务相关联的服务要求以及与所述设备相关联的设备约束相关联;和相对于所述设备约束,降低所述服务要求。7.如权利要求6所述的方法,其中,相对于所述设备约束,降低所述服务要求包含基于分配给多个服务要求中的每一个的优先权,从与所述服务(138)相关联的所述多个服务要求中选择服务要求。8.如权利要求1所述的方法,其中,更改所述部署条件以便获得所述经过修改的部署条件(144)包含更改和所述传感器网络相关联的网络配置以便获得所述经过修改的部署条件。9.如权利要求1所述的方法,其中,更改所述部署条件以便获得所述经过修改的部署条件(144)包含将服务组件(116)从所述设备(104)重新定位到所述传感器网络(102)的另一个设备(110)。10.如权利要求1所述的方法,其中,更改所述部署条件以便获得所述经过修改的部署条件(144)包含从所述传感器网络(102)中去除被部署的服务组件(118)。11.如权利要求1所述的方法,其中,更改所述部署条件以便获得所述经过修改的部署条件(144)包含更改和所述传感器网络(102)相关联的部署约束(134)。12.如权利要求1所述的方法,其中,基于所述经过修改的部署条件(144)将所述服务(138)部署到所述设备(104)上包含将所述服务(138)注入到所述设备(104)上;和激活所述服务(138)。13.一种系统,包含系统监视器(128),所述系统监视器可工作,以便监视传感器网络(102)的多个设备(104、106、108、110),并且所述系统监视器可工作,以便确定和所述多个设备(104、106、108、110)中的至少一个相关联的设备元数据(130);和服务映射器(126),所述服务映射器可工作,以便基于所述设备元数据(130)并基于和所述服务(138)相关联的服务元数据(124),开始将服务(138)部署到所述至少一个设备(104)上,并且所述服务映射器(126)还可工作,以便基于所述部署条件不满足可允许部署条件(142)的确定,更改与所述部署相关联的部署条件以获得经过修改的部署条件(144)。14.如权利要求13所述的系统,包含服务库(120),该服务库可工作,以便存储包括所述服务(138)的多个服务,每一个服务均包括相关联的服务可执行(122)和相关联的服务元数据(124)。15.如权利要求13所述的系统,包含要求降低逻辑(146),所述要求降低逻辑可工作,以便更改所述部署条件来获得所述经过修改的部署条件(144),包括在预先定义的范围内降低所述服务元数据(124)的服务要求。16.如权利要求13所述的系统,包含网络重配置逻辑(148),所述网络重配置逻辑可工作,以便更改所述部署条件来获得所述经过修改的部署条件(144),包括将至少一个被部署的服务(116)从所述至少一个设备(104)重新定位到至少一个其他设备(110)。17.如权利要求13所述的系统,包含组件去除逻辑(150),所述组件去除逻辑可工作,以便更改所述部署条件来获得所述经过修改的部署条件(144),包括从所述传感器网络(102)去除至少一个被部署的服务(118)。18.如权利要求13所述的系统,其中,所述服务映射器(126)可工作,以便响应于确定所述部署条件不满足所述可允许部署条件(142),来执行所述服务(138)的部分部署。19.一种用于传感器网络(102)的服务映射器(126),所述服务映射器(126)包含映射系统(140),该映射系统(140)可工作,以便基于部署条件开始将服务(138)部署到所述传感器网络(102)的至少一个设备(104)上,所述映射系统(140)还可工作,以便确定所述部署条件不满足可允许部署条件(142);和要求降低逻辑(146)、网络重配置逻辑(148)或组件去除逻辑(150)中的一个或更多个,这些逻辑可工作,以便给所述映射系统(140)提供用于更改所述部署条件以获得满足所述可允许部署条件(142)的经过修改的部署条件(144)的标准。20.如权利要求19所述的服务映射器,其中,所述映射系统(140)可工作,以便按预先定义的顺序执行要求降低逻辑(146)、网络重配置逻辑(148)或组件去除逻辑(150)中的一个或更多个,直到获得所述经过修改的部署条件(144)为止。全文摘要本发明的系统和方法允许服务到设备映射,通过所述映射,服务被映射到从传感器网络(102)的多个智能物件中选择的最适合的智能物件(104、106、108、110)上。作为映射的一部分,和/或其后发生的,开始将服务部署到智能物件(104、106、108、110)上。但是,在某些情况中,所述部署可能失败,或者可能只部分地成功。在这种情况下,一个或更多个部署条件可以被更改,以便获得经过修改的、可允许的部署条件(142、144),以使所述部署随后可以继续。结果,即使在远程地或自动地执行所述部署时,用户也可以以迅速、便利和可靠的方式取得期望的结果。文档编号G08C17/00GK101051977SQ20071009190公开日2007年10月10日申请日期2007年3月30日优先权日2006年3月31日发明者佐尔塔·诺克塔,露西亚娜·M·萨德苏扎,斯蒂芬·哈勒,帕特里克·施皮斯申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1