首页> 中国专利> 异构环境中的组件的部署计划

异构环境中的组件的部署计划

摘要

可以确定到服务执行环境的与合成服务关联的组件服务的部署计划,该合成服务与由一个或多个数据源所生成的数据的分析相关联,该合成服务包括用于数据分析的关联组件服务的执行次序。可以基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中。可以基于所述评估确定包括一个或多个部署计划的推荐方案。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-10-02

    授权

    授权

  • 2009-09-30

    实质审查的生效

    实质审查的生效

  • 2008-12-10

    公开

    公开

说明书

技术领域

本发明涉及包括用于在异构环境(heterogeneous environment)中处理源数据到主机的组件的部署计划的技术。

背景技术

组件可以包括例如提供服务的软件组件,而异构环境可以包括智能物件环境。智能物件(smart item)技术包括例如射频识别(RFID)系统、嵌入式系统、传感器微粒(sensor mote)、和/或传感器网络,并且可以用于例如提供对真实世界数据快速访问的业务软件应用。例如,智能物件技术可以用于支持RFID标签的检测、读取或写入,以及支持与无线传感器和嵌入式系统的通信并且支持它们的控制。在许多实例中,智能物件可以包括具有本地处理能力、存储容量、和/或通信能力的设备,能够提供有关该设备及其属性的数据或者有关智能物件设备的当前状态或环境的信息。例如,物理对象可以包括产品内嵌信息设备(product embedded information device,PEID),其可以包括例如嵌入式计算单元、RFID标签等等,用于使真实世界事件能够紧密地耦接到后端信息系统。因此,一些这样的设备可以在用于采集、处理或者发送业务数据的后端或基础业务应用的服务组件的执行中使用。

智能物件设备的例子包括RFID标签,其可以是有源的或者无源的,并且其可以粘附到对象上并且用于提供产品或与该对象相关的处理信息。智能物件设备的其它例子包括各种传感器,诸如环境传感器(例如,温度、湿度或振动传感器),其可能能够通信以形成一个或多个传感器网络。这些和其它类型的智能物件设备还可以包括嵌入式系统,该嵌入式系统通常可以指代其中包括专用处理器和/或程序的任意系统、和/或其中系统被封装在被控制或被监视的设备中。

通过自动实时对象跟踪,智能物件技术可以提供具有有关业务执行的精确而且及时的数据的业务,并且还能够帮助使业务运行流水线化和自动化。因此,可以获得成本的降低以及额外的业务收益(例如,增加的资产可见性、提高的回应度、和拓展的业务机会)。

举一个示例情况,业务可能需要跟踪一项产品的寿命周期。产品的寿命周期可以包括寿命初期(例如,设计、成品)、寿命中期(例如,使用、维修)、寿命终止期(例如,循环利用、废物处理)。与产品寿命周期管理相关的示范业务目标可以包括设计改进、产品参数的调整、弹性维修计划和有效的循环利用。为了实现这些业务目标,业务可能需要获取与实际行为和产品状况相关的信息。举例来说,附有传感器的PEID能够在产品的整个寿命周期期间监视产品的使用和它们的环境,并且使所记录的数据对后端系统可用,诸如维修计划、车队管理(fleet management)和产品数据管理(PDM)系统。例如,根据产品中内嵌的传感器的数量以及各自的采样率,单个产品可能就会产生大量数据。当多个产品需要监视时(例如,在货车队中)这会变得非常难以解决。而且,如果产品是移动的,它们可能有很低的带宽网络或者断续的网络连接。因此,将原始字段数据传送到后端系统可能在许多情况下都行不通。

一些系统可以使用面向消息的中间件来使得诸如PEID这样的智能物件与后端系统之间能够通信。例如,中间件可以被配置为将来自PEID的数据传输到后端系统,然后可以在那里对数据进行处理。例如,在无线传感器网络的区域内,中间件可以用于无线传感器网络的无线传感器节点的连接,既可以是节点本身相互之间的连接,也可以是连接到后端应用,以供进一步的评估以及数据的处理。在本上下文中,可能存在断续的连接,例如,由于用于实现通信的节点的运动而造成的断续连接。因此,数据或结果可能要么丢失、要么需要存储在节点上。

例如,对于一些需要大量实时数据被处理的智能物件来说,节点的存储容量和/或处理能力不足以处理这些数据,从而结果的可靠性和完整性可能会受到损害。例如,尽管使用PEID记录产品真实世界的数据使得能够进行更加准确的分析,但是这也会带来这样的问题:由于从传感器周期性进行记录(例如,采样)而产生大量数据。例如,根据传感器的类型和特定应用所需要的数据分辨力(resolution),可以定义采样频率。例如,由于可以在若干分钟范围内预期温度变化会逐渐发生,因此可以以预定的分钟数间隔读取室外温度传感器。相反地,可以每秒数百次地读取用于检测振动模式的加速度传感器,因此如果不这样的话,可能就无法检测到相关振动。假设对于每次记录存储4个字节数值,那么温度传感器每天会产生5.625K字节的原数据(即,每分钟采样1次),而加速度传感器则每天产生33750K字节的原数据(即,每秒采样100次)。

由于PEID可能具有有限的存储容量,因此它们不能长时间存储记录数据。因此,需要将数据传送到其它系统以供分析,或者根据需要通过发送到后端系统的结果进行本地处理。但是,对产品执行所有必要分析以及仅发送结果可能行不通,因为PEID可能具有非常有限的资源和/或电源和/或连接能力。而且,例如,一些数据处理步骤可能需要来自次级(secondary)数据库或其它产品的额外输入,这在单独产品上可能无法达到。但是,仅仅对可执行用于执行数据处理的网络中的布局进行确定可能导致效率低下,例如包括不可接受的吞吐量级别。其它异构环境的例子可以包括在线订单系统,其中用户可以经由诸如个人数字助理(PDA)这样的具有与服务器断续连接能力的设备来提交数据。

发明内容

根据一个总的方面,一种系统可以包括中间件层,该中间件层包括请求处理层和设备处理层,并且该中间件层与应用以及包括一个或多个设备的设备层通信。所述请求处理层可以包括服务储存库,其被配置为存储与服务元数据相关联的至少一个合成服务,该服务元数据描述合成服务的组件服务的执行次序。所述请求处理层还可以包括分布管理器,该分布管理器被配置为确定到服务执行环境的与合成服务关联的组件服务的一个或多个部署计划,该合成服务与由一个或多个数据源所生成的数据的分析相关联,该合成服务包括用于数据分析的关联组件服务的执行次序、位于包括在设备层中的第一网络节点处的至少一个服务执行环境、以及位于包括在中件间层中的第二网络节点处的至少一个其它的服务执行环境。所述分布管理器还被配置为基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中。所述分布管理器还被配置为基于该评估确定包括一个或多个部署计划的推荐方案。

根据另一个一般方面,分布管理器可以被配置为确定到服务执行环境的与合成服务关联的组件服务的一个或多个部署计划,该合成服务与由一个或多个数据源所生成的数据的分析相关联,该合成服务包括用于数据分析的关联组件服务的执行次序、位于包括在设备层中的第一网络节点处的至少一个服务执行环境、以及位于包括在中件间层中的第二网络节点处的至少一个其它的服务执行环境。所述分布管理器还可以被配置为基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中,并且基于该评估确定包括一个或多个部署计划的推荐方案。

根据再一个一般方面,可以确定到服务执行环境的与合成服务关联的组件服务的一个或多个部署计划,该合成服务与由一个或多个数据源产生的数据的分析相关联,该合成服务包括用于数据分析的关联组件服务的执行次序、位于与设备层相关联的第一网络节点处的至少一个服务执行环境、以及位于与中件间层相关联的第二网络节点处的至少一个其它的服务执行环境,该中间件层包括请求处理层和设备处理层。可以基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中。可以基于所述评估确定包括一个或多个部署计划的推荐方案。

在附图以及下面的描述中阐明了一个或多个实施方式的详细情况。从这些描述和附图以及从权利要求书中,其它特征将变得清楚。

附图说明

图1是用于处理由智能物件设备获得的数据的示范系统的框图。

图2是示出了示范合成服务的框图。

图3是示出了用于处理由智能物件设备获得的数据的示范系统的示范基础设施视图的框图。

图4是示出了示范合成服务的框图。

图5是示出了用于组件部署计划的示范技术的框图。

图6示出了描述示范基础设施的示范无向(undirected)图。

图7a-7b示出了描述示范合成服务的示范无向图。

图8是示出了图1的用来确定用于映射合成服务的组件的示范推荐方案的系统的示范操作的流程图。

图9是示出图1的系统的示范操作的流程图。

图10示出了示范比特率需求到网络链接的示范映射。

图11a-11b示出了描述示范断续连接的示范时间间隔。

图12是示出了示范网络链接的示范使用的框图。

图13是示出了图1的用于产品寿命周期管理的系统的示范操作的流程图。

图14示出了在图3的示范基础设施上的图4的示范合成服务的示范分布。

图15示出了在图3的示范基础设施上的图4的示范合成服务的示范分布。

具体实施方式

图1是用于处理由智能物件设备获得的数据的示范系统100的框图。在图1的例子中,各种智能物件设备,例如包括产品嵌入信息设备(PEID)104和智能射频识别(RFID)阅读器106的产品102,使用用于对从智能物件设备接收到的数据进行预处理的中间件层110,以及时并且准确的方式提供真实世界数据到一个或多个应用108。例如,智能RFID阅读器106可以阅读带有RFID标签的对象,例如,带有RFID标签114和116的产品112。例如,产品112可以包括带有粘在其底座上的RFID标签114以及粘在微型鼠标上的RFID标签116的便携计算机。从而,例如,当搬运该便携计算机的人搬着底座和鼠标经过附有智能RFID阅读器在其上的地点时,智能RFID阅读器106就可以阅读或者感测RFID标签114和116。另举一个例子,PEID 104可以从传感器118接收数据,该数据可能存储在本地数据存储器120中。例如,传感器118可以感测与产品102相关的温度、振动、和/或压力。例如,产品102可以包括带有PEID 104附在其上的引擎,并且传感器118可以被配置为例如,检测温度、湿度、和/或紧邻的引擎的振动。

诸如PEID 104的PEID可以包含有关产品的数据并且可以在请求时发送该数据。可以通过从诸如本地数据存储器120这样的本地存储器中读取或者通过访问集成在产品中的传感器(例如,传感器118)来提供数据。如果PEID是一个嵌入式系统,则它可以包含本地数据处理,例如,用于传感器数据的连续记录或者统计计算。PEID可以是移动的,例如,可以是内嵌在机车(vehicle)中,并且可以经由无线连接而连接到设备处理机(诸如设备处理层1130)。

在图1中,PEID 104和智能RFID阅读器106中的每一个均包括中央处理单元(CPU)和存储器(未示出)、以及其它标准组件。而且,PEID 104可以包括服务执行环境(SEE)122,并且智能RFID阅读器106可以包括服务执行环境(SEE)124。从而,PEID 104和智能RFID阅读器106应当被理解为具有各级计算能力,包括例如处理或发送感测数据的能力。服务执行环境122、124可以包括容器(container),其中服务可以以自适应并且灵活的方式执行。从而,服务执行环境122和服务执行环境124可以用于服务重新定位,例如,重新定位可能预处理由智能物件设备接收到的原数据的服务,以使得仅预处理结果可以被发送到应用108,而不是需要将所有原数据发送到应用108,以供在后端系统进行处理。

因此,可以被重新定位到服务执行环境122和服务执行环境124的示范服务可以被配置为计算例如数据值的线性回归、数据值的移动平均数、阈值监视、通知单、或事件或事项的发生数量。举例来说,可以利用开放服务网关规范(OSGi)服务平台来实现服务执行环境122、124。这样的OSGi服务平台可以提供用于动态可部署应用、图书馆和服务的组件管理能力。使用诸如OSGi这样的平台,可以容易地部署、启动、停止服务以及从服务执行环境中移除服务。因此,服务、应用和面向服务的应用程序接口(API)可以被例如远程下载到移动设备、从移动设备上传、或者从移动设备移除。。根据一个示范实施例,还可以使用诸如Sun微系统的Jini这样的平台。根据一个示范实施例,统一标准服务执行环境可以被嵌入中间件节点、PEID、和智能RFID阅读器中,以使服务能够灵活分布。根据一个示范实施例,服务可以在PEID及中间件节点上部署并执行。

因此,PEID 104和智能RFID阅读器106可以被配置为采集、处理、过滤、聚合(aggregate)或发送可能对于应用108有用的数据,应用108例如为业务数据处理应用。例如,应用108可以包括存货管理、供应链管理、零售店管理、仓库管理以及任何其它可以用于执行关于真实世界对象的业务处理处理或应用,其中,这样的真实世界对象包括,例如,用于销售的产品、托盘或其它航运元件、顾客或制造材料/设备。通过跟踪和分析这样的真实世界对象,应用108可以用于例如确定存货水平、设定价格水平、评估市场策略、评估制造或生产技术、减少偷盗或维护安全。应用108还可以用于产品寿命周期管理(PLM),例如,用于确定随着时间的流逝产品的使用、位置和状态。

通过在诸如PEID 104和智能RFID阅读器106这样的智能物件中包含预处理能力,可以在数据采集过程中非常早地执行处理,从而可以减轻或消除置于应用108上的负载量。而且,预处理可以减少将要从设备发送到中间件层的数据量。例如,应用108可以安放在公司总部,而PEID 104和智能RFID阅读器106可以散布在通过广域网连接的较广的地理区域上,其可以经由无线连接而连接。为此,例如,应用108可以只需要特定的子集或由PEID 104和智能RFID阅读器106采集到的数据的特征描述,而且可以不需要或不想要所有采集到的原数据。

在一些实施方式中,应用108可以包括复合的或合成的应用,它们是通过可回收利用的软件组件或者被设计用于执行一些已定义好的任务的服务而形成的。而且,在这些或其它实施方式中,应用108可以包括继承(legacy)应用,该继承应用可能不容易与数据采集设备(或者与其它业务数据处理系统)通信,并且在这种情况下,服务或服务组件可以被提供为继承应用和数据采集设备和/或其它系统之间的接口。系统100可以使这些或其它应用和服务能够直接部署在PEID 104和智能RFID阅读器106上,例如,经由服务执行环境122和124,从而,例如,服务可以以及时的、高效的、可靠的、自动化的、经济有效的、可扩展的方式在设备上执行。

因此,例如复杂业务处理或合成服务,可以被分解为轻量级的、便携的个人服务并且可以被部署在不同设备上。例如,服务s5 126(例如,服务s5126a和服务s5 126b)可以在PEID 104的SEE 122中以及智能RFID阅读器106的SEE 124中部署并执行。举例来说,合成服务可能需要对每小时由诸如PEID 104或智能RFID阅读器106执行的阅读次数进行的计数。例如,服务s5 126可以被配置成为PEID 104或智能RFID阅读器106中的每一个计算这样的计数。然后,预处理结果例如可以由合成服务的分解服务(decomposed services)来使用。再例如,服务s4 128可以在智能RFID阅读器106的SEE 124中部署和执行。但是,例如,PEID 104和智能RFID阅读器106可能不包括足够的处理或存储能力用于处理应用108可能需要用来处理数据的所有这些分解服务。

中间件层110可以包括:设备处理层1 130,其可以包括服务执行环境132;和设备处理层2 134,其可以包括服务执行环境136。设备处理层1 130和设备处理层2 134中的每一个均可以被配置为管理位于设备层的设备,例如,PEID 104和智能RFID阅读器106。如先前所讨论的那样,服务执行环境132和136可以各自包括容器,在该容器中服务可以以自适应的、灵活方式执行。如图1的示范系统100中所示,服务执行环境132和136可以各自分别包括连接管理器138和140。例如,连接管理器138和140可以被配置为中间件层110和诸如PEID 104和智能RFID阅读器106这样的设备之间的管理连接,例如,无线连接。因此,如果连接是断续的,例如由于设备的行进或者由于信号中的噪声干扰所造成的断续连接,即使连接是断续的情况下,或者被配置为报告到应用108的连接的中断,连接管理器138和140也可以被配置为尝试保持与设备的连接。因此,来自设备的数据传输可以是偶发性的(sporadic)。

如图1所示,服务执行环境132和136可以包括设备s3 142、s4 128、s8 144、和s9 146,这些设备可以自适应性地并且灵活地布置并执行在设备处理层130和134中的每一层上。从而,例如,服务s5 126a可以被部署到PEID 104,以便经由本地数据存储器120从传感器108获得一系列温度并且为预定数量的温度值计算平均温度值。例如,服务s4 128可以被部署到服务处理层1 130,以便从PEID 104获得结果平均温度值,并且,例如,以便为连续值计算斜率。然后,服务s3 142可以获得结果斜率并且将该斜率值与预定的阈值进行比较,并且,如果斜率值超过阈值的话,则生成将发送到请求处理层150的警告消息。例如,可以经由允许通过服务中的参数值的服务调用机制,通过初始化服务s3 142的执行、其接着可以初始化服务s4 128的执行、其接着可以初始化服务s5 126a来实现这些处理。按照所调用的服务的执行次序,通过每一个服务逐个地返回经预处理的结果值。

从而,例如,可以如此执行对来自传感器118的数据的大量预处理:首先在设备层处的PEID 104处,然后在中间件层110中的设备处理层1 130处,从而减轻应用108上的处理负担,应用108可能需要接收这些关于产品102的温度水平的警告消息。而且,通过在PEID 104处将温度值预处理为平均值,只需要将平均值从设备层发送到中间件层110,从而明显降低从设备层发送到中间层件110的数据量,并且被发送到可能位于后端系统的应用108。

请求处理层150可以包括请求处理机152、分布管理器153和服务管理器154。分布管理器153可以包括资源消耗管理器155和连接可用性管理器156。请求处理机152可以被配置为从后端系统或其它诸如应用108之类的应用接收对信息的请求,例如,对与PEID相关的分析结果或其它设备的请求。一方面,请求处理机152可以作为请求/响应机制运行。但是,请求处理机152可以扩展为提供有关信息请求的订购,以使得请求应用108可以接收例如通过值的变化或通过定期的预定义间隔触发的订购信息。例如,应用108可以请求每当温度波动超过预定量时或每分钟的关于产品102的温度的分析结果。例如,如果产品102的温度在一分钟内或不到一分钟内增加大于10度,那么应用108可以请求报警。

根据一个示范实施例,分布管理器153可以被配置为确定到服务执行环境的与组件服务相关联的合成服务的一个或多个部署计划,该合成服务与一个或多个数据源所生成的数据的分析相关联。该合成服务可以包括执行用于数据分析的关联组件服务的次序、位于包含在设备层中的第一网络节点处的至少一个服务执行环境以及位于包含在中间件层中的第二网络节点处的至少一个其它的服务执行环境。分布管理器153可以被配置为基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中,并且基于该评估确定包括一个或多个部署计划的推荐方案。

根据一个示范实施例,资源消耗管理器155可以被配置为基于第一度量来评估每一个部署计划,如下面进一步讨论的那样。

根据一个示范实施例,连接可用性管理器156可以被配置为基于第二度量来评估每一个部署计划,如下面进一步讨论的那样。根据一个示范实施例,连接可用性管理器156可以至少从连接管理器138和140接收与连接性相关的信息。

根据一个示范实施例,请求处理层150可以包括:请求缓冲器157,被配置为存储从应用108接收到的请求;和结果缓冲器158,被配置为存储用于应用108的、来自请求处理机152的结果,例如,以便实现到只有断续连接的应用和PEID的通信。来自应用108的请求可以至少包括:产品标识符,其对特定产品例如产品102进行确认;和InfoItemID值,其对请求和用于满足该请求的服务进行确认。例如,如果应用108请求有关引擎的温度的更新,例如,产品102,那么请求就可以包括产品102的产品标识符以及规定例如像“当前引擎温度”这样的服务的InfoItem。

服务管理器154可以被配置为处理与服务的管理相关的服务任务,服务的管理可以包括注册和未注册服务、部署服务到其它节点、将它们下载到服务执行环境中以及对服务合成的支持。服务管理器154可以与服务储存库(repository)160和服务元数据存储器162以及服务注入器(injector)(未示出)通信,以便实现这些任务。

服务储存库160可以被配置为存储所有可以被部署并执行在系统100中的可用服务,包括例如用于每一个服务的可执行体。此外,每个服务的元描述,包括硬件需求和其它属性,可以被存储在服务元数据存储器162中。

合成服务也可以被存储在服务储存库160中,该合成服务可以包括用于专用应用的、原子服务的组合。服务元数据存储器162可以将InfoItem列表(例如信息实体)作为与PEID(例如,PEID 104)相关的确认信息或属性信息进行维护,该列表可以从PEID被访问。例如,这些InfoItem可以包括来自PEID的简单信息,诸如产品102的生产日期和总里程,或者通过分析得到的信息,例如每天的平均里程或运行期间的引擎温度趋势。当产品102注册在系统100中时,可以从PEID 14检索到由例如PEID 104所提供的InfoItem。可以利用管理工具(未示出)来对通过中间件110中的预处理从其它信息得到的InfoItem进行注册。

在一些示例中,可以实施相同的服务用于多个开发平台,例如,可以实现用于已知的基于C/C++编程语言或Java编程语言的开发平台。通过提供开发平台的这种多样性,给定服务可以被部署在更宽范围或类型的、可能在使用中的设备。根据服务元数据162的类型、以及例如任意不同种类的服务要求或用于执行该服务的优选项,可以包括有关正在讨论的服务的开发平台的信息。

服务注入器可以用于安装和启动PEID 104的SEE 122上已部署的服务(例如,服务s5 126a)。此外,服务注入器还可以用于例如通过执行服务更新或在必要时停止该服务来更普遍地管理服务的寿命周期。从而,服务注入器的一项任务可以包括将具体的服务代码(例如,服务储存库160的服务可执行体中适当的一个)传送到选定的设备。从而,服务注入器接收并安装所讨论的这类代码。尽管在图1中未示出,但是诸如服务注入器这样的安装组件可以安装在设备端上,作为一个单独的软件组件或者也可以与其它安装组件合作,以便分发服务储存库160的服务可执行体。在后一种情况下,例如,如果所有用于所请求的服务安装的选定设备例如由于在与设备连接过程中的中断而没有到达,那么例如,可以保存当前未到达的、意欲接收服务的设备的列表,以使得当它们变为可到达设备时,可以向服务注入器报警以完成安装。在安装之后,例如,服务s5 126a、服务s5 126a可以保持处于停用状态,直到服务注入器发送用于将该服务变为激活状态的启动信号。以类似的方式,服务注入器可以用于组织服务的更新和停止。

如前所讨论的那样,服务管理器154还可以包括分布管理器153,其可以被配置为确定所请求的组件服务的有效部署计划、对部署计划建模、评估部署计划、以及生成一个或多个部署计划的推荐方案,该推荐方案用于将所请求的组件服务映射到位于网络基础设施中的节点上的服务执行环境。模型数据存储器163可以被配置为存储网络基础设施的、合成服务的推荐方案或模型以及由分布管理器153使用的负载模型,以便确定例如组件服务的可能部署计划,该组件服务用于映射用于执行的服务执行环境。

资源消耗管理器155可以被配置为利用与包含在网络中的每一个网络节点相关联的一个或多个相应资源的每一个部署计划的消耗量,确定基于与一个或多个加权值关联的一个或多个度量(metrics)所进行的对组件服务的部署计划的评估。

连接可用性管理器156可以被配置为利用与包含在网络节点之间的通信路径中的一个或多个网络链接的连接可用性的测量,确定基于与一个或多个加权值关联的一个或多个度量所进行的对组件服务的部署计划的评估。

请求处理层150还可以包括设备元数据存储器164,该存储器包括与例如位于设备层的智能物件设备以及位于设备处理层130和134的设备这样的设备相关的信息,智能物件设备诸如PEID 104和智能RFID阅读器106。这些信息可以包括例如可以由服务管理器154使用的制造商信息、制造日期、电源类型、电源使用情况、电源成本、电源容量、CPU类型、CPU的使用率等等,同时结合服务元数据162,用于确定部署来自服务储存库160的服务到服务执行环境122、124、132、136以及服务执行环境(SEE)166中,服务执行环境(SEE)166可以例如接收用于在请求处理层150处执行经部署的服务s1 168和s2 170。设备元数据164可以包括例如设备描述、软件描述、硬件描述和设备状态。例如,设备描述可以包括设备名称、标志符或类型,或者可以包括卖方信息,该信息包括卖方名字或卖方网站。软件描述可以包括执行系统描述,包括版本和/或卖方,或者包括在设备平台上正在运行或允许运行的设备的描述。硬件描述可以包括关于设备的CPU的属性的信息(例如,名称或速度)、设备的存储器(例如,存储器的总量和/或空闲量)或设备的连接性能(例如,连接速度或连接类型)。设备状态可以包括更多易失性信息,包括设备位置、当前CPU使用率或剩余电力或存储空间。当然,其它设备方面或信息可以被包括在设备元数据163中,如将变得清楚的那样。例如,设备元数据164可以包括关于其它设备的信息,诸如在哪里设备106包括RFID阅读器,并且设备元数据164可以包括可以由智能RFID阅读器106读和/或写的RFID标签114、116的类型的描述。

而且,服务元数据162可以包括服务行为描述、服务的技术限制、或关于服务的输入、输出、前提条件的信息或效果(IOPE)的信息。例如,技术限制可以包括所需求的CPU类型或速度、需要的(空闲)存储器的量、需要或优选的连接的类型或速度、操作系统版本/名称/描述、或电池或其它电源设备的类型或状态。

从而,通过设备元数据164,可以在静态和动态服务需求之间做出区别,诸如硬件需求。例如,静态值可以与动态值一起被包括,静态值诸如总存储空间或最大处理速度,动态值诸如可用存储空间/处理/功率(power)和/或在服务的执行时间被允许与所讨论的服务一起同时在设备上运行的其它服务的数量或类型。

服务元数据162的构造和使用可以根据服务是否被视为复合(或合成)服务和/或原子服务而不同。在这点上,原子服务可以指代运行在单个设备上的分立服务,而复合服务或合成服务可以指代包括以及合并一个或多个原子服务的较高级别的服务。例如,可以为了提供累积功能或集合功能而部署合成服务,而原子服务可以指代将部署给个体服务102、106的服务。例如,产品102可以包括散布在已定义区域中的温度传感器118,以便确定该区域中的温度分布或梯度,在这种情况下PEID 104可以执行温度-采集服务(例如,PEID 104上的服务s5 126a),同时在设备处理层1 130上的合成服务s4128可以聚合若干设备的温度数据并且确定有关温度分布或梯度的信息。从而,例如,应当理解,用于复合服务或合成服务的部分服务元数据162可以包括有关包含复合服务或合成服务的原子服务的信息。

再例如,合成服务可以包括多个组件服务。合成服务的执行初始化可以包括对该合成服务的调用,其会导致对组件服务其中之一的调用,还会导致对另外的组件服务的调用。每一个服务均接收和/或返回参数值,而可以经由执行各个服务的入口点对服务的调用进行初始化。例如,请求处理机152可以从应用108接收对与例如与产品相关的信息的请求,产品诸如产品102。

举例来说,产品102可以包括引擎,并且请求可以包括对每当引擎温度上升太快时的通知的请求。因此,可以通过执行合成服务“温度监测器”来实现提供该请求,该合成服务“温度监测器”可以至少包括诸如下列的四个组件服务:

(1)数据采集器服务,被配置为以预定的时间间隔从温度传感器读取温度并且生成时间序列;

(2)趋势服务,被配置为接收该时间序列,对其执行线性回归,并且返回斜率;

(3)阈值服务,被配置为将该斜率与预定阈值进行比较,并且如果斜率超过阈值则返回“真”值,否则返回“假”值;和

(4)消息服务,被配置为如果阈值服务返回“真”值则生成温度警告消息,该消息被作为结果发送到应用108。

组件服务中的每一个可以被实施为轻量级、可重定位的可执行体,这些可执行体可以被容易地部署到各种服务执行环境中以供执行以及与其它设备协同工作。从而,例如,数据采集器服务可以被配置为可执行体并且通过存储在服务元数据存储器162中相应的描述性元数据(例如,功能性描述以及输入和输出参数)被存储在服务储存库160中。类似地,趋势服务、阈值服务和消息服务可以各自被配置为可执行体并且通过存储在服务元数据存储器162中相应的描述性元数据(例如,功能性描述以及输入和输出参数)被存储在服务储存库160中。而且,描述合成服务“温度监测器”的信息可以被存储在服务元数据162中,例如,合成服务的名字、组件服务的指示符以及执行组件服务的次序的指示,以便达到想要的处理结果。

从而,举例来说,应用108可以将对用于产品102的“温度监测器”的请求发送到请求处理机152。如前面所讨论的那样,请求可以包括专用于特定产品102的信息,以及识别所请求的服务的InfoItem。如果产品102当前没有连接到中间件110,如可能由例如连接管理器确定的那样,则请求可以被存储在请求缓冲器157中,直到产品102被连接。例如,当产品102连接到设备处理层1130时,连接管理器138可以发送用于传送“已连接”指示符的请求到请求处理机152。

当确定了产品102被连接时,请求处理层152可以发送“温度监测器”请求到服务管理器154,服务管理器154可以访问服务元数据162,以获得关于合成服务“温度监测器”的信息。服务管理器154可以确定合成服务包括至少四个组件服务s5 126(例如,数据采集器服务)、s4 128(例如,趋势服务)、s3 142(例如,阈值服务)、和s2 170(例如,消息服务),其中,用于每个服务的可执行体可以包括在服务储存库160中,并且关联元数据可以包括在服务元数据162中。基于合成服务元数据,服务管理器154还可以确定用于处理的入口点、执行和处理用于组件服务s5 126、s4 128、s3 142、s2128的数据的次序、以及与用于执行服务、递送(pass)和返回条目(item)的参数相关的信息。

然后,服务管理器154可以访问服务元数据164,以获得设备信息,从而确定有多少组件服务处理可以在例如产品102处(例如,在SEE 122处)被部署和执行。因为执行的示范次序可以指示需要执行服务s5 126,以便处理来自传感器118的数据(在服务s4 128处理那些处理的结果之前),所以服务管理器154可以确定组件服务s5 126a可以被部署到SEE 122,以供在产品102(例如,需要温度监测的引擎)处执行。由于服务s4 128将便利地简化数据到应用108的进一步传输以及例如缩减应用108的后端系统处的数据处理量,因此服务管理器154可以基于服务元数据162和设备元数据165确定服务s4 128是否还可以被部署并执行在产品102处。

如果SEE 122不能便利地适应服务s4 128,则服务管理器154可以确定例如服务处理层1130的SEE 132可以被用于下一个(例如,通过执行排序)服务s4 128和s3 142的部署和执行。然后,服务管理器可以确定服务s2 170可以被部署并执行在请求处理层150的SEE 166处,以使得请求管理器152可以通过对位于服务s2 170中的入口点处的执行初始化,例如,造成从服务s2 170到阈值服务(例如,s3 142)的调用,从而,如果阈值服务(例如,s3 142)返回结果为真,则服务s2 170可以生成温度警告消息以返回至应用108,由此对合成服务的执行初始化。如果已部署,那么服务s5 126a、s4 128、s3 142、和s2 170可以使能对设备层的传感器118的原数据的预处理,其预处理的结果被返回到中间件层110以用于进一步处理,其处理的单一分析结果(例如,警告消息)返回到应用108。从而,通过在诸如设备层和中间件层110这样的较低层上实现更多处理,在应用108层上实现数据传输和处理上的显著降低。而且,组件服务可以被实施为轻量级、可重复利用和可重新定位的服务,可以根据系统100中的条件改变来动态地部署和重新定位这些服务。

而且,服务元数据162可以包括与InfoItem相关联的组件服务s2 170、s3 142、s4 128、和s5 126的列表,该InfoItem与合成服务“温度监测器”相关联,并且可以与用于每一个组件服务的可执行体一起被存储在服务储存库162中的、用于组件服务s2 170、s3 142、s4 128、和s5 126中的每一个的元数据,可以包括与用于每一个组件服务的入口点相关的信息以及与预期将被传递到每一个组件服务或作为组件服务的执行结果被返回的参数相关的信息。例如,可以包括前面所讨论的趋势服务的服务s4 128,可以具有与其相关联的服务可执行体以及元数据,该元数据指示服务s4 128输入包括时间序列的参数、并且输出包括斜率在内的参数,该参数通过对该斜率执行线性回归而得来。

请求处理层150还可以包括连接数据存储区域165,其可以被配置为存储与网络链接相关的信息。例如,连接数据存储区域165可以存储连接管理器138、140报告并且由连接可用性管理器156使用的信息。

图2是示出了示范合成服务200的框图。如前面所讨论的那样,合成服务可以包括多个组件服务,以使得该合成服务可以通过调用进行初始化,该调用包括对所定义的合成服务的入口点处的指令执行的初始化。对合成服务的调用可以包括传输参数的指示符和/或参数值,以便使能服务之间的数据交换。可以安装组件服务。组件服务可以具有通过如前面的例如针对合成服务“温度监测器”所讨论的服务的执行次序所定义的次序。如图2所示,组件服务s3 142(例如,阈值服务)可以初始化组件服务s4 128(例如,趋势服务)的执行,该组件服务s4 128可以初始化组件服务s5 126a(例如,数据采集器服务)的执行,该组件服务s5 126a例如可以被部署到设备层的PEID104的SEE 122,以便减小在应用108的后端系统中传送的数据量,并且缩减在后端系统处的数据处理量。

而且,例如,组件服务s5 126a可以返回其数据采集器处理的结果(例如,时间序列)到组件服务s4 128,该组件服务s4 128可以被部署到中间件层110的设备处理层1130的SEE 132。然后,例如,组件服务s4 128可以返回其对于时间序列(例如,斜率)的趋势处理的结果到组件服务s3 142,该组件服务s3 142也可以被部署到中间件层110的设备处理层1130的SEE132。组件服务s3 142可以返回其对于斜率(例如,布尔(Boolean)值“真”或“假”)的阈值处理的结果到可能已经调用了组件服务s3 142的服务,该服务例如为服务s2 170(例如,消息服务),该服务s2 170可以被部署到请求处理层150的SEE 166,以便响应于对合成服务“温度监测器”调用而返回警告或无消息。然后,该分析结果可以由请求处理机152放入结果缓冲器158中,并且可以通知应用108从结果缓冲器158进行检索的可用性。

从而,例如,对分析结果的请求可以被分解为根据它们的执行次序所设置的组件服务的部署,以使得在设备层或者与设备层相邻处对原数据进行处理,其中间结果将经由设备处理层130、134,通过从设备层传递预处理结果到中间件层110并且继续传递至请求处理层150来处理。从而,可以在边缘设备(例如,PEID 104)处启动对传感器118的原数据的处理,其对中间结果的渐近的进一步处理在经过许多层的服务执行环境中执,直到使应用108能够接收分析结果,所述分析结果可能被彻底地处理以用于例如产品寿命周期管理中。

将能够理解,尽管在图2中服务s3 142、s4 128、和s5 126中的每一个图示为仅与单个的被调用组件服务通信时,任意一个服务均可以调用多于一个被调用的服务(即,一对多),并且,再例如,多个组件服务也可以调用单个服务(即,多对一)。

诸如智能物件环境的示例环境的特征可以被描述为:

1)基础设施的异构性:智能物件环境中的基础设施节点范围可以是从资源受限嵌入式系统到传统的组装个人计算机和具有丰富资源的中间件服务器。连接这些节点的网络链接也可以具有不同的容量。

2)断续连接:PEID可以经由非永久性可用的无线连接与中间件通信,这可能是由技术上的限制(例如,移动电话网络没有完全覆盖)或应用的特定性所造成。例如,如果货车上的PEID使用无线LAN连接到车站(depot)中的中间件接入点,该连接在货车没有进入连接范围的时间期间可能就是不可用的。

3)分布式的数据源:智能物件环境的示范应用包括采集和分析产品所提供的数据。该数据可以包括静态的产品信息、产品结构、产品的工作状态,或者所有者、用户的历史记录、维修操作等等。可以从PEID的本地存储器提供这些数据中的一些,而从可能集成在该产品中的传感器中读取一些。数据源的其它示例可以包括用于数据分析的规则储存库和阈值,它们可以被存储在中间件服务器中。这些数据源可以在基础设施中位于预定的位置,并且当它们被查询时可以发送预定大小的响应。

根据一个示范实施例,用于智能物件环境的部署计划技术可以考虑这些特征,并且部署计划技术可以:

1)考虑资源的成本:该技术可以考虑基础设施中不同主机中的资源成本。虽然可能有多种资源,但是该技术可以至少考虑CPU、存储空间、比特率,因为这些资源在网络边缘中可能是稀缺的。例如,嵌入式系统可能只包括较小存储空间、有限的CPU功率(power),并且可能只具有低比特率的连接性,诸如通用分组无线业务(GPRS)或电气和电子工程师协会802.15.42(IEEE 802.15.42)。

2)评估断续连接的影响:断续连接可能影响在智能物件环境中数据的可用性。由于组件部署计划可以提供更好或更差的可用性,所以示例技术可以有利地评估断续连接在可用性上的影响。

3)分布式数据源的显式建模:资源消耗可能依赖于组件之间、并且由此也依赖于基础设备中它们的主机之间传输的数据量。因为数据传输量可以产生于分布式数据源,因此示例技术可以提供用于对数据源的位置和消息大小进行显式建模的装置。

传统的组件部署技术尚未对分布式数据源进行建模,并且尚未基于单个评估准则。例如,在一些方法中已经利用基于无成本的资源消耗评估考虑了资源限制,即,已经对所有主机上的资源进行了相同的评价。这种传统技术已经涉及这样的情况:其中,异构性的程度较低,从而基于成本的评估不被视为所期望的。

根据一个示范实施例,通过考虑智能物件环境的特定性,可以提供基于资源成本、断续连接的影响、和分布式数据源的显式建模的考虑的、针对组件设置问题的解决方案。根据一个示范实施例,计划技术可能有助于在确定用于新的组件组的良好初始部署计划方面的中间件管理。示例技术可以在设计时使用,或者可以通过更多精确的输入参数在运行时使用,这是因为可以从实际的基础设施中的测量中确定这些参数。示例技术可以创建候选部署计划,并且通过评估它们的所估计的资源消耗的成本以及它们的可用性来对它们进行排序(rank)。可以基于指定的负载模型来确定预期的资源需求,并且可以作为注解将该需求添加到合成服务模型中。根据一个示范实施例,基于示范部署计划,这些资源需求然后可以被映射到基础设施模型,以便将该需求与相应的成本联系起来。例如,成本可以包括用于表现有关基础设施元件的资源的价值。例如,嵌入式系统中的存储空间可能远小于台式计算机的存储空间。从而,嵌入式系统的存储空间可以被视为更有价值的资源。该概念可以通过设置有关基础设施模型元件的成本关系来表现,该关系可以反映相应资源的价值中的对应差异。如果没有违犯资源限制,那么可以计算系统的可用性以及所用资源的成本并且将其与迄今为止所发现的最佳计划相比较。根据一个示范实施例,当已经对所有候选部署计划进行了评估、或者已经逝去了针对计划者的最大运行时间时,那么可以提供最高级别的部署计划给用户,以供用户选择,从而初始化实际部署。

图3是示出了图1的示范实施例系统100的示范基础设施视图300的框图。设备处理机,例如,设备处理层1 130,可以包括中间件110的设备专用部分,其可以处理设备检测和接入。设备处理层1 130可以在检测到PEID时通知请求处理层150,并且可以根据PEID专用协议翻译并执行所接收到的请求。包括设备处理机的功能的网络或基础设施节点可以被视为用于PEID的接入点,该PEID可以被设置在智能物件附近,例如,车库、车站、仓库等等。根据应用场景,可能存在大量设备处理机节点,这些节点可能支持不同的PEID协议。设备处理机,例如,设备处理层1 130,可以经由一个或多个网络连接,例如经由LAN或WAN,连接至例如位于请求处理层150处的请求处理机。

位于请求处理层150的请求处理机可以包括中间件的设备无关部分,其可以管理来自后端应用的进入请求。如前面所讨论的那样,请求处理机152可以存储该进入请求,例如,存储在请求缓冲器157中,直到PEID可用于网络上,并且请求处理机152可以将请求递送到PEID可以被连接到其的设备处理机节点。由于请求处理机152可以包括用于后端应用的主入口点,所以请求处理机152可以物理地位于后端系统的附近。

示范场景可以包括用于货车的维修计划。可以由被内置于货车上的PEID,例如PEID 104,采集有关诸如货车这样的机车的执行状态的数据。当从后端的维修应用(例如包含在应用108中)接收到请求时,数据可以被发送到基站。示范设备处理机可以位于车站中,并且可以连接至位于数据中心的请求处理机节点,该数据中心可以接受来自应用108的请求并且可以在结果可用时通知应用108,该结果例如是在结果缓冲器158中的结果。在更为复杂的情况中,可能在不同位置有多个设备处理机节点。PEID 104可以包括机车中的嵌入式系统,例如车载计算机。PEID 104可以包括多个数据源,诸如计数器以及所附传感器,例如传感器118。数据源可以包括例如传感器或用于测量机车的里程、引擎温度、每分钟转数(RPM)或速度、和油压的计数器,如图3的示例所示。根据一个示范实施例,数据源还可以包括诸如个人数字助理(PDA)这样的设备,其可以经由无线的、断续的连接与服务器通信,例如,与在线订购系统通信,其中PDA与服务器通信,作为利用位于用于在线定购系统的主服务器中的应用的部分通信路径。数据处理领域的技术人员将理解,有许多其它设备例子可以作为数据源,它们能够经由断续的连接在异构系统内进行通信。

为了获得机车运行状态综合视图,应用108可以请求:1)当前里程;2)引擎速度,根据时间分布分类为慢速、中速、快速;3)指示引擎温度是否保持在给定限制范围内;和4)趋势和最大/最小油压。

如前面所讨论的那样,在中间层110内,服务储存库160可以提供组件服务,其可以被灵活地设置在用于处理新需求的合成服务中。对于上面所讨论的货车队的情况,可以采用包括用于数据分析的通用组件服务的合成服务。图4是示出了包括通用组件服务的示范合成服务400的框图,通用组件服务诸如聚合402、线性回归404、最小/最大数406、分类408和阈值410。它们的分类限制、阈值等等,可以通过成为部分合成服务描述的配置参数进行设置,这些描述可以被存储,例如存储在服务元数据162中。

通用组件服务可以要求输入数据,以便以通用格式提供。由于每一个PEID可能不同地提供其数据,因此可以使用一套PEID专用组件服务将来自PEID的数据表示变换为所需要的通用格式。该变换可以通过例如组件服务格式OP 412、FormatRPM 414、和FormatET 416来执行。

数据缓冲器组件服务,例如,数据缓冲器1 418、数据缓冲器2 420、或数据缓冲器3 422,可以用于将组件合成服务400的调用之间的传感器数据进行缓冲。示范聚合组件服务402可以收集组件服务的部分结果和里程数据,并且将它们合并为最终结果,该结果可以返回至应用108,例如,作为执行运行状态结果。

因此,可能需要确定合适的部署计划,以便将这些组件服务部署到基础设施800。部署计划可以包括例如一套组件设置,其中每一个组件服务可以被分配给基础设施300中的节点。组件服务到节点的可能映射的数量、以及影响部署计划的因素的数量可能有助于识别良好部署计划的复杂度。

对于一个包含N个节点的基础设施和一个包括C个组件服务的合成服务,可能有NC个部署计划待考虑。例如,如果N=3并且C=11,则有311=177,147种可能组合。但是,这些组合的子集可能由于违犯约束条件而造成是无效的。因此,可以在质量方面对有效部署计划的剩余集合进行评估,以确认最适合的部署计划。关于有效部署计划的选择和评估,可以考虑资源限制、资源需求、数据的可用性和性能测量。

例如,网络的各个节点可以具有不同的硬件容量。这样的资源限制可能排除特定的部署计划,例如,如果节点上的存储空间不足以支持所有分配给其的组件服务,或者如果网络连接的比特率吞吐量太低而无法处理大量待发送的数据。

而且,包含在组件合成服务中的组件服务可以设置对基础设施300的特定资源需求。这些需求在组件服务之间可以各不相同,并且可以依赖于其它因素。例如,特定组件合成服务的比特率要求可以既依赖于负载,又依赖于每个组件服务的输入/输出比。

从而,示范组件服务部署计划决策可能由于下列原因而变得复杂:1)组件服务和节点的大量可能组合;2)在节点和网络连接之间可能区别很大的资源限制;3)根据组件服务而不同的资源需求并且可能部分地与负载相关;和4)由于其对部署计划、负载模型以及组件服务和基础设施二者的特性的依赖性而造成的复杂性能估计。

尽管组件部署的手动计划对于简单情况是可能的,但是对真实世界的情形就不合理了。当组件或组件合成服务被部署到网络节点上时,至少可以考虑两个目标:要么针对性能对部署最优化,要么履行资源依赖性所造成的限制。第一个目标可以包括确定性能要求,诸如响应时间和吞吐量。第二个目标则依赖于技术环境的特征,诸如操作系统、执行环境、数据库连接、存储空间需求、网络链接的可用性等等。

但是,如前面所讨论的那样,在智能物件环境中,诸如OSGi或Jini这样的标准执行环境可以被安装在包含智能物件的所有节点上。从而,符合这样的环境的组件可以在网络或基础设施中的任意节点上执行。如前面所讨论的,资源可能是稀缺的,尤其是在接近网络的边缘处。但是,可能需要将节省资源这一目标与性能要求相平衡,以便在合理的时间提供所请求的数据。

用于智能物件环境中的组件服务的示范部署计划方法可以包括:1)对每个节点的资源限制以及网络连接的考虑;2)不同负载的考虑;3)资源需求评估,例如,存储空间、网络比特率、CPU和能量(energy);4)性能评估,例如,响应时间和吞吐量;和5)性能和资源消耗整合到单个测量中,以供部署计划的比较和排序。

基于大量可能的组件设置以及可能影响部署计划的质量的因素,组件服务部署的计划可能变成一项复杂任务。如果对组件设置的决策受结构化方法支持,那么该任务的复杂度可以被降低,而且部署计划所需要的时间也可以被缩减。由此,示范解决方案可以专门针对智能物件环境的特定性,特别是针对异构节点和网络连接以及不同的负载参数,来评估组件部署计划。

用于组件部署计划的示范技术可以包括例如可交互使用的决策支持工具。用户,例如管理者,可以选择用于基础设施和组件服务合成的模型以及负载模型和最大执行时间。示范技术可以例如提供大量是用于良好部署计划的推荐方案,用户可以从其中选择一个来启动实际的部署过程。可替换地,可以根据不同的参数设置来执行示范技术。

如图5所示,用于组件部署计划的示范技术500可以包括三个元素:建模502、评估504和推荐方案506。例如,建模502可以描述基础设施以及合成服务的表示,基础设施例如为基础设施300,合成服务例如为合成服务400。评估504可以为给定的部署计划计算质量测量或得分,例如,基于负载模型508、资源成本510和可用性512,可用性诸如连接的可用性。推荐方案506可以包括生成可能的部署计划、利用列表中的最佳结果维持部署计划,如下面将进一步讨论的那样。组件服务到节点的映射可以例如由分布管理器153基于分配514来执行,分配514由组件服务的部署计划的推荐方案506产生。

如前面所讨论的那样,建模502可以用于描述基础设施以及组件合成服务,二者均可表示为注释图。此外,负载模型可以表现预期的模型。例如,图6示出了描述示范基础设施的示范无向(undirected)图。尽管为每一个节点进行图示,但是图6的图中的每一个节点均可以用一组示范属性来注释,如下面所讨论的那样。在图6中,节点或主机1602包括数据池。如图所示,主机1 602可以例如位于图3的请求处理层150中。节点或主机2 604可以经由边缘连接到主机1 602。主机1 602可以与一组节点属性606相关联,该组属性可以表示例如可以被映射到主机1 602的组件服务可用的存储器容量、CPU容量、存储器成本和CPU成本。

主机3608可以经由边缘连接到主机1 602,该边缘可以与一组连接属性相关联,这些属性可以表示例如与该连接相关联的比特率容量和比特率成本,以及与该连接相关联的可用性。对于图6的例子来说,基础设施模型中所指定的资源可以表示组件服务实际可用的容量,而非节点的一般硬件配置。主机2 604可以位于图3的设备处理层130中。

主机4 612可以包括数据源1和数据源2,它们可以包括例如传感器,比如图1的传感器118。主机4 612可以例如位于图3的PEID 104处。

根据一个示范实施例,尽管数据源和数据池被作为图6的示范基础设施的部分示出,但是它们不可以表示为示范基础设施图600中的节点。因为数据源和数据池不能被移至其它基础设施节点,所以可以使用静态分配来对它们进行建模。静态分配可以包括组件图的节点,可以将组件图分配给基础设施的节点,而在生成部署计划变量中不予考虑。从而,静态分配可以用于数据源和数据池,并且还可以用于用户定义的组件分配,即,用户可以手动地分配组件到节点。静态分配可以表示为重数(touple)Aij=(Ci,Nj)的集合As,其中Ci表示来自组件服务集合的元素,而Nj表示来自基础设施集合的元素。

再举例来说,图7a示出了被表示为有向非循环图的示范组件服务合成700,由此其边缘指向合成服务700的示范组件服务c1 702、c2 704和c3 706调用方向。从而,这些边缘可以表示特定组件服务依赖于哪些组件服务,例如,作为数据输入或者用于提供特定功能。根据一个示范实施例,如果组件服务依赖于数据源和数据池,则也可以将数据源和数据池包括在组件图中。类似于基础设施图600,组件合成服务700图的节点可以用属性来注解,属性诸如组件属性708,例如,存储器、CPU和可用性,如下面进一步讨论的那样。

根据一个示范实施例,示范负载模型可以包括每小时的调用数目,以及用于基础设施中的每个数据源的消息大小。由于可以以安排好的时间间隔来执行从产品获得监测数据,因此该示范负载模型可以是满足需要的。但是,该负载模型也可以被扩展为统计分布的调用。

在一个示范评估中,可以计算用于给定部署计划的得分。可以类似于静态分配,将部署计划表示为(组合、节点)重数。在执行实际评估之前,可以计算负载相关的资源需求。之后,资源需求可以被分配给基础设施并且与资源限制相比较。根据一个示范实施例,然后,可以评估所消耗的资源,以计算部署计划关于资源消耗的得分。

根据一个示范实施例,为了评估部署计划,可以定义示范质量测量,其可以方便不同部署计划变量之间的比较。例如,可以特别地考虑资源消耗。但是,组件合成服务的资源消耗可以仅依赖于负载模型,并且可以不随不同的组件设置而改变。而且,部署计划的质量可以由组件的实际设置决定,因此单独进行资源消耗的分配是不够的。

示范目标可以包括节省基础设施元件上的资源,在这些元件上资源可能是特别稀缺的。为了将该原则并入示范质量测量方案中,可以分配成本用于对在基础设施的单个节点和连接处的不同资源的使用进行加权。例如,一兆比特的存储空间可以表现为:与中间件节点例如包括在设备处理层1 130中的节点相比,在例如PEID 104这样的嵌入式系统中要昂贵得多。

由于在PEID与设备处理机之间(例如在PEID 104与设备处理层1 130之间)的GPRS连接上发送相同的数据量所引起的费用要比在设备处理机与请求处理机之间(例如,在设备处理层1 130与请求处理层150之间)的LAN连接上发送相同的数据量所引起的费用高,因此可以将类似类型的加权应用于网络链接上。成本可以例如由用户分配到任意资源,并且可以表示不同资源之间的“交换速率”。从而,用户可以指示在何速率下其愿意为数据处理投入更多的CPU功率以降低比特率需求,因为预处理后的数据可能要小于其相应的原数据。

再举例来说,图7b示出了被表示为有向非循环图的示范组件服务合成750,由此其边缘指向合成服务700的示范组件服务c1 702、c2 704和c3 706的调用方向。从而,边缘可以再次注解特定的组件服务依赖于哪些组件服务,例如,作为数据输入或用于提供特定的功能。根据一个示范实施例,可以利用诸如组件值752这样的组件参数值来注解包括组件服务c1 702、c2 704和c3 706的组件服务,该组件值752可以包括与组件服务702相关联的存储器需求和CPU需求。根据一个示范实施例,可以利用诸如相关性参数值754这样的相关性参数值来注解连接组件服务c1 702、c2 704和c3 706的边缘,该参数值指示与连接组件服务c1 702和c2 704的边缘相关联的比特率需求。

图8是示出图1的系统的示范操作的流程图。具体来说,图8是示出了示范性确定推荐方案的流程图,该推荐方案用于映射用来处理来自系统100的应用108的请求的合成服务的组件。

在图8的例子中,可以确定与由一个或多个数据源所生成的数据的分析相关联的合成服务的关联组件服务的到服务执行环境的一个或多个部署计划,该合成服务包括用于数据分析的相关联的组件服务的执行次序(orderingof execution)、位于与设备层相关联的第一网络节点处的至少一个服务执行环境以及位于与设备处理层相关联的第二网络节点处的至少一个其它的服务执行环境(802)。例如,数据源可以包括智能物件环境中的传感器,或者可以包括诸如个人数字助理(PDA)这样的与服务器通信的设备,或者可以包括诸如机车上的车载计算机这样的、可以提供针对与机车相关的状况而积累的数据的设备。例如,合成服务“聚合(aggregation)”可以被确定用于包括至少10个如前面关于图4所讨论的组件服务。例如,分布管理器153可以访问服务元数据162,以确定与InfoItem相关联的合成服务的关联组件服务的列表,InfoItem例如为组件服务线性回归404、最小/最大数406、分类408、阈值410、FormatOP 412、FormatRPM 414、FormatET 416、数据缓冲器1418、数据缓冲器2420和数据缓冲器3422。分布管理器153可以访问服务储存库160,以便为每一个组件服务获取元数据,该元数据指示例如组件服务的执行次序、用于执行每一个组件服务的入口点以及关于将在这些组件服务中传递的参数的信息。

如果期望实现对于例如机车外壳PEID 104的“聚合”,那么分布管理器153还可以访问设备元数据164,以获取关于例如PEID 104以及SEE 122和本地数据存储器120这样的信息。在对与PEID 104相关联的服务元数据162和设备元数据164进行分析之后,分布管理器153还可以针对关于设备处理层1 130和SEE 166的信息访问设备元数据164,以确定下列组件服务的可能部署计划:线性回归404、最小/最大数406、分类408、阈值410、FormatOP412、FormatRPM 414、FormatET 416、数据缓冲器1418、数据缓冲器2 420和数据缓冲器3 422。

可以基于第一度量以及第二度量来确定组件服务的每一个部署计划的评估,该第一度量将一个或多个加权值与一个或多个相应资源的每一个部署计划的消耗量相关联,所述相应资源与第一和第二网络节点中的每一个节点相关联,该第二度量将一个或多个加权值与一个或多个网络链接的连接可用性的测量相关联,所述网络链接包含在第一和第二网络节点之间的通信路径中(804)。例如,可以首先确定每一个候选部署计划为有效,而且可以确定负载模型。例如,可以如关于图6所讨论的那样对示范基础设施进行建模。而且,例如,可以如关于图7a-7b所讨论的那样对组件服务的合成进行建模。

然后,可以基于评估确定包括一个或多个部署计划的推荐方案(806)。例如,分布管理器153可以确定推荐方案。该推荐方案可以例如如下面进一步所述的那样来确定。如果推荐方案包括多于一个的部署计划,那么可以从推荐方案中选择“最佳”部署计划,然后,服务管理器154可以根据选定的部署计划来部署组件服务,并且可以初始化执行,如下所述。

由此,可以经由轻权重(lightweight)组件服务可执行体来灵活和动态地分配预处理,以使得例如可以利用较少的需要从PEID 102发送的数据在设备层预处理由传感器118所生成的原数据,还包括在中间结果被传递到请求处理层150之前对中间件的设备处理层中的数据的进一步处理,其完全处理的结果返回到后端应用108。可以经由加权的或基于成本的技术来确定动态分配,例如,用于确定执行分配的可接受水平。

根据一个示范实施例,示范系统的核心可以包括组件设置问题(CPP)模型,其可以包括下列元素:

1)组成模型(CM),其可以指定组件的合成、它们的依赖关系以及资源需求。它还可以包含数据池和所有数据源。

2)基础设施模型(IM),其可以描述网络的结构、资源的容量、以及每一个主机和网络链接上的资源的成本。

3)用于描述组件到主机的分配的部署计划,其可以形成用于将CM中的资源需求映射到IM中的资源容量和相应成本。可以包括使部署计划有效的限制条件。

4)评估函数,用于计算有效部署计划的质量测量(例如,所需资源的成本和可用性)。

这些模型可以包括大量参数,可以在初始化模型的时候提供这些参数。根据一个示范实施例,这里所讨论的示范技术可以确定基于示范负载模型的参数。

根据一个示范实施例,可以使用用于每个组件的输入/输出关系的线性方程来确定组件的比特率需求。根据一个示范实施例,一种描绘从数据池到数据源的依赖关系以及它们的消息大小的算法可以为这些示范线性方程提供输入。

根据一个示范实施例,可以以线性方程对组件的CPU需求进行建模,该线性方程与被表示为比特率需求的CPU的利用率百分比以及进入数据相关。

根据一个示范实施例,网络链接的可用性可以被表示为成功接入的概率,该概率可以通过连接的平均连接持续时间和平均中止持续时间来确定。根据一个示范实施例,增强的方法可以考虑传输所需要的时间。由于这些用于确定参数的方法可以从CPP模型中解耦(decouple),所以它们可以被容易地由其它合适的参数替换。

图9是示出图1的系统的示范操作的流程图。更具体来说,图9的流程图示出了根据一个示范实施例的、至少基于资源需求和网络链接可用性来确定和评估部署计划的示范操作。

在图9的例子中,利用负载模型902和合成服务模型904,可以为合成服务模型确定资源需求(906)。在908中,可以生成部署计划910。在914中,可以将资源需求从合成服务模型904映射到基础设施916。

在916中,可以确定计划是否有效。如果计划被确定为不是有效的,那么在918中,可以确定时间值是否小于maxTime(最大时间)值以及是否有更多的计划可用。如果在918中确定为肯定,那么控制前进到908,否则显示推荐方案(920)。

如果在916中计划被确定为有效,那么可以确定网络链接可用性(922)。然后可以确定系统可用性和成本(924)。

在926中,可以确定计划是否是所确定的最佳计划中的一个。如果计划被确定为最佳计划之一,则部署计划被加入到推荐计划列表中,否则控制前进到918,以供进一步的处理。

根据一个示范实施例,诸如合成服务模型904这样的合成服务模型可以被表示为已连接的、有向合成图G,其可以包括一组节点C和一组依赖关系(例如,边缘)DC×C.集合C可以包括可以被重新部署在不同的主机上的一组节点CR以及对特定主机来说可以是固定的一组节点CF。可重新部署的组件C的数量及依赖关系D可以被视为相应集合C=|CR|和D=|D|的基数。

根据一个示范实施例,每个组件可以接收一个输入并且产生数据的一个输出。因此,每个组件可以依赖于一个或多个其它组件。除过组件之外,在合成图中还有其它节点类型。例如,一个或多个数据源可以只提供数据的输出。再举例来说,每个合成服务模型中只有正好一个数据池可以接收数据输入。这些不同类型的示范节点-组件、数据源、和数据池-可以用合成图中的不同符号来表示。示范数据池和示范数据源可以表示合成图中的终点并且可以属于集合CF,这是因为它们对特定主机来说可以是固定的。

对于c∈C的所有组件,资源需求为Rz(c),其中z={mem,cpu}可以依赖于存储空间和CPU功率。类似地,对于合成图中d∈D的所有依赖关系,所需要的比特率Rbr(d)可以被分配用于相应两个组件之间的通信。尽管存储空间需要可能是恒定的,但是可以基于指定的负载来计算CPU需求和所需要的比特率,如下面将进一步讨论的那样。

根据一个示范实施例,可以使用已连接的、无向基础设施图I来对组件可以部署于其上的基础设施进行建模。示范模型可以包括一组主机H和一组网络链接LH×H.

根据一个示范实施例,对于h∈H的每一个主机,存储空间和CPU的可用容量Sz(h)可以被存储,z={mem,cpu}。这还可以应用于网络链接,每一个网络链接可以保持描述其链接l的可用比特率的值Sbr(l)。

根据一个示范实施例,可以使用基于成本的资源消耗的评估,以便处理基础设施中主机和网络链接的异构性。从而,成本Wz(h)可以被分配用于存储单元和CPU功率消耗,并且成本Wbr(l)可以被分配用于所需要的带宽单元。

根据一个示范实施例,基础设施中的每一个网络链接l可以被分配一个描述网络链接l的可用性的值0≤a(l)≤1。根据一个示范实施例,该测量可以用于评估关于给定部署计划的系统的总体可用性,如下面进一步所讨论的那样。

对于部署计划,任意组件cj均可以被分配给一个主机hi,并且该分配可以被表示为组件设置:cj→v(cj)=hi

根据一个示范实施例,部署计划v:C→H可以包括一组组件设置,以使得每个组件C都可以被分配为正好一个主机H。相反地,任意主机均可以具有0..C个可重新部署的组件分配给主机。所有部署计划的集合可以用V来表示并且具有基数V=|V|=HC

根据一个示范实施例,合成图中节点的子集可以被静态地分配给主机,即,在所有部署计划中这些分配可以是相同的。可以主要使用静态分配,例如,用于数据源和数据池,因为它们属于预定的主机并且不可以被重新部署。但是,对于用户来说,也可能定义其它的静态分配,例如,如果组件必须被设置在特定主机的情况。用户定义的静态分配可以减少将被考虑用于评估的部署计划的数量。

根据一个示范实施例,除过静态分配之外,还可能存在对于资源的需求不超过基础设施元件的容量的总体需求。对于主机来说,该需求可能意味着资源需求不超过容量

Σj,v(cj)=hiRz(cj)Sz(hi)

此外,可以将对有关网络链接的最大比特率需求的示范限制条件公式化。由于任意一对组件之间的通信可能影响基础设施中的多个网络链接,如图10中所示,所以这可能会更为复杂。

如图10中所示,组件c1 1002可以位于主机h1 1004。主机h1 1004可以经由链接l1 1008直接连接到主机h2 1006。主机h2 1006可以经由链接l2 1010直接连接到主机h3 1010。

组件c2 1012可以位于主机h3 1010上,从而可以经由这两个网络链接l11008和链接l2 1010连接到组件c1 1002,这可能增大断开的概率。如图10所示,与组件c1 1002和组件c2 1012之间的连接相关联的比特率需求可以被映射到网络链接即链接l1 1008和链接l2 1010中的每一个,这是因为在这两个组件之间传递的数据可以经过这两个链接即链接l1 1008和链接l2 1010。

根据一个示范实施例,可以通过考虑在给定的部署计划v中的、基础设施内两个组件ci和cj之间的通信路径(例如,路线)P来将该限制条件公式化。该路径可以包括连接主机v(ci)和v(cj)的一组网络链接,在主机v(ci)和v(cj)的一组网络链接可以驻留(reside)组件。根据一个示范实施例,路径可以依赖于路线策略。

根据一个示范实施例,对有关网络链接l的最大比特率需求的限制,可以要求所有使用网络链接l的相邻组件之间的通信的总量必须小于链接l的容量:

Σ<i,j>Ql(P(ci,cj))·Rbr(d(ci,cj))Sbr(l)

根据一个示范实施例,可以引入示范投影,如下:

下面所示的表I提供了通用模型的示范参数的总表。

表I

模型的示范参数

根据一个示范实施例,如果发现了有效部署计划,那么既可以评估它的资源消耗的成本,也可以评估它的可用性。根据一个示范实施例,尽管可以独立地使用两种测量来评估部署计划,但是高可用性就意味着资源消耗的高成本。

根据一个示范实施例,用于给定部署计划v的资源消耗的成本可以用所有主机和网络链接上累积而得的、资源需求的总成本来表示。从而,可以基于包括依照下式的部署计划的质量测量来确定示范评估:

K(v)=Σi=1HΣzResz(i)·Wz(i)+Σj=1LResbr(j)·Wbr(j)---(1)

其中

H表示基础设施中的主机或节点的数量,

L表示网络链接的数量,

Resz(i)表示对主机或节点i上的资源z的总需求,

Resbr(j)表示网络链接j上的总比特率需求,

Wz(i)表示主机或节点i上的资源z的成本或权重,以及

Wbr(j)表示网络链接j上的带宽单元的成本或权重。

可以表示主机或节点i对资源z的示范总需求的Resz(i),可以表达为

Resz(i)=Σj,v(cj)=hiRz(cj)

类似地,可以表示网络链接j上的总比特率需求的Resbr(k)可以被表示为

Resbr(k)=Σ<i,j>Qk(P(ci,cj))·Rbr(d(ci,cj))

根据一个示范实施例,在成本方面优选的部署计划vk*具有最低成本的示范部署计划:

vV|K(vk*)K(v)

对于示范部署计划的可用性的评估,可以合计单个网络链接的所有可用性。根据一个示范实施例,可用性可以被视为组件对之间沿网络链接a(l)上的通信的成功的概率。根据一个示范实施例,部署计划的可用性可以被确定为产品,以使得与一个或多个网络链接的连接可用性相关联的质量测量可以依照下式来表示

A(v)=Πi=1La(l)---(2)

其中

L表示包括在基础设施中的网络链接的数量,以及

a(l)表示网络链接l上的通信的成功的概率的质量测量。

根据一个示范实施例,链接可用性a(l)的确定可能不是微不足道的;下面进一步说明使用示范模型的示范例示。根据一个示范实施例,在可用性方面的最佳部署计划va*可以包括具有最高可用性的计划:

vV|A(va*)A(v)

根据一个示范实施例,通用模型可以独立于量纲单位和取值范围;但是,为了示范例示的目的可以指定量纲单位和取值范围。根据一个示范实施例,量纲单位和取值范围可以如下定义:

1)存储空间:需求和容量可以包括正实数,以兆比特(MB)表示存储空间。

2)CPU:测量不同计算系统上的CPU需求可能是复杂的。例如,由于一项任务的完成所需要的CPU周期的数目因不同的CPU架构和指令集而不同,因此诸如时钟速率或每秒钟的指令数(例如,每秒百万条指令(MIPS)或每秒钟的浮点运算(FLOPS))这样的量纲是不可比的。因此,需求可以被表示为参考系统上的CPU负载百分比,该参考系统具有100%的CPU容量。可以确定对于参考系统的主机的CPU容量,例如,如果系统具有比参考系统高3倍的CPU功率,那么其容量可以被确定为300%。

3)比特率:需求和容量可以包括正实数,以千字节(KByte)每秒(KB/s)为单位来指定比特率。

4)成本:成本可以只表示不同资源的值之间的关系并且可以始终为正,因此可以用自然数来表示。可以使用正实数但是可能会使计算变慢。

5)可用性:系统的可用性可以被确定为可能完成对信息的给定请求的概率。因此,可用性可以被确定为0到1之间的实数,表示成功请求的百分比。

根据一个示范实施例,一些资源需求可以依赖于其它输入并且可以在评估部署计划开始之前来对其进行计算。例如,对组件的CPU需求可以依赖于组件必须处理的数据量(例如,负载)。根据一个示范实施例,可以基于“资源简档”对组件的资源需求进行估计,其通过在不同作业量之下的测量来“离线”地创建。

根据一个示范实施例,为了计算除了存储空间之外的所有组件级别的资源需求,可能需要用于设置于合成服务上的值。根据一个示范实施例,负载可以指代用户(例如,自然人或者另一个系统)可以设置在组件合成上的请求的数量。根据一个示范实施例,时间上的请求可以是泊松分布(Poisson-distributed)。根据一个示范实施例,示范技术可以只考虑静态部署计划,从而该部署计划的平均值(例如,λ参数)可以足以对时间上的请求进行特征描述。示范参数可以被表示为iph(每小时调用量)并且逻辑上可以属于数据池。根据一个示范实施例,除了调用数量之外,还需要在负载模型中确定待发送的消息大小。根据一个示范实施例,由于数据可以源自数据源,所以消息大小在逻辑上可以分配给数据源。根据一个示范实施例,对于每一个数据源,可能需要在负载模型中指定当消息被查询时所返回的该消息的大小。

对组件之间的通信的示范比特率需求Rbr(d)可以依赖于用于处理的消息大小以及负载。根据一个示范实施例,通过将用于处理的消息大小乘以每小时的调用数量iph,可以得到进入的比特率。在每一个调用处,进入数据可以被处理为输出(outgoing)数据。因为组件处理这些数据,所以输出数据的大小可以不相同。根据一个示范实施例,针对构建自动化的相对简单的功能块对此进行建模的技术可以使用示范放大因子(gain,(增益)),以便描述处理设备中输入到输出的关系。根据一个示范实施例,可以通过使用线性函数oc来扩展该方法,该线性函数可以为每个组件描述输入/输出关系

IORel:oc(ic)=ec·ic+fc

其中,oc可以表示组件的输出c,其依赖于用于该组件的输入ic以及放大因子ec和偏差fc。在该示范模型中,输入ic可以用Dbr(c)表示,其可以表示所有用于一个组件的进入比特率的总量。根据一个示范实施例,放大因子ec和偏差fc在计算期间可以是常量。

根据一个示范实施例,由于可以描述依赖于输入大小(ec>0)的输出大小,以及不依赖于输入大小(ec=0)的输出,因此可以使用线性函数表示对用于数据处理的小组件进行建模。由于输出大小正比于输入数据大小,因此用于第一种情况的例子可以包括从时间序列产生移动平均数的组件。在这些情况中,ec可以作为数据的放大因子,如果数据量被减小则可以将其设置为ec<1,如果数据量被增大则将其设置为ec>1。由于结果的大小(例如,输出)不能根据时间序列的长度变化,所以第二种情况可以通过对给定时间序列(例如,输入)的线性回归来图示。

根据一个示范实施例,为了计算对整个合成服务模型的比特率,示范的递归算法(例如,算法1)可以遍历从数据池到数据源的合成服务图,可以从其中检索它们的大小。根据一个示范实施例,然后,这些被乘以时间因子,以便将以比特率变换消息大小。在每个组件c中,来自所有所属地(dependencies)的进入比特率的和可以被存储在Dbr(c)中,其可以用作用于计算输出比特率的自变量(argument),该输出比特率用于使用oc的该组件。输出比特率可以被传递到示范调用栈中的先前的呼入方,直到数据池再次到达。

根据一个示范实施例,为了计算比特率需求,如下所示,示范递归算法1可以遍历从数据池到数据源的组件图,例如,图7的组件图700。示范算法可以将进入数据负载乘以(步骤14)输入/输出比(例如,GAIN,(增益)),以便基于负载模型确定每个边缘上的负载并且可以将每个负载存储在与边缘相关联并且包括在组件图中的属性映射图,如在下面的示范算法1(calculateBitrateDemands())所示。

算法1:calculateBitrateDemands(comp)

                                                 

Require:comp≠0

1:timeFactor ←iph÷3600

2:while comp has more dependencies do

3:d←nextDependency()

4:inputComp ←d.opposite(comp)

5:if NodeType of inputComp is“component”then

6:load=calculateBitrateDemands(inputComp)

7:else if NodeType of inputComp is“datasource”then

8:load ←inputComp.messageSize

9:Rbr(d)←load×timeFactor

10:end if

11:sumLoad←sumLoad+load

12:end while

13:Dbr(comp)←sumLoad

14:return ocomp(sumLoad)

根据一个示范实施例,可以用一种方法来计算CPU需求Rcpu(c),该方法类似于也可以用于在用于最大吞吐量的服务器组中分配组件使用的方法。例如,CPU需求可以被描述为线性函数,由此独立的变量可以表示负载。根据一个示范实施例,可以通过对不同负载下的一系列CPU利用率测量进行的线性回归得到系数pc和常数gc

Rcpu:pc(ic)=ac·ic+gc

根据一个示范实施例,该技术可以使用将由相应组件Dbr(c)作为负载ic进行处理的数据量。

根据一个示范实施例,每秒钟的请求数量可以被用作负载,尤其是如果对每个请求来说消息的大小都相对类似的情况下。但是,根据一个示范实施例,消息大小可能是变化的,从而当确定CPU需求函数时可能不知道消息大小。对于每个组件来说,可以通过不同的数据量而不是通过每秒钟的请求来计算这样的线性函数。

根据一个示范实施例,使用用于确定资源需求和数据的可用性的传统技术,各种基础设施的异构性上的区别可以提供不同的执行结果。例如,尽管服务器组可能包括多个相同的机器,智能物件环境中的CPU功率可以是多样的。为了得到不同主机上CPU需求的可接受估计,可能需要一组针对分配给每个组件的每个可用处理器的CPU需求函数、或者对实际可用CPU功率的适应方法。根据一个示范实施例,可以在参考系统上计算基于测量的CPU需求函数,并且可以将CPU容量设置在每个主机上,该容量反映该主机相对于参考系统的CPU功率。例如,如果一个嵌入式系统只有相对于参考系统5%的CPU功率,那么其CPU容量可以被设置为5。尽管该示范技术可以只提供对CPU需求的粗略估计,但是它可以有利地提供模型复杂度和精确度之间的示范平衡。如果其它场景需要更加精确的CPU需求计算,那么可以使示范技术适应于示范环境的需要中。

图11a-11b示出了描述示范断续连接的示范时间间隔。根据一个示范实施例,对于系统的可用性的评估(方程(2)),可能需要基础设施中所有网络链接的可用性。根据一个示范实施例,为了对断续网络链接进行特征描述,可以引入两个参数:1)平均连接持续时间dC802,和2)平均中止持续时间dP804,如图11a中所示。

下面讨论三种可以计算网络连接的可用性的不同示范技术,它们可以提供成功概率的例子。例如,如下的概率:a)网络链接可用性,b)请求的即刻成功执行,和c)在给定时间帧内请求的成功执行,它们可以相互区别。例如,对这些概率来说可用性可以表示为a(l),并且示范上下文可以阐明特定可用性的含义。

根据一个示范实施例,网络链接的可用可以被定义为连接持续时间dC与两个连接建立之间的持续时间(dC+dP)之比:

a=dCdC+dP---(3)

根据一个示范实施例,通过考虑传输所请求的数据量所需要的时间,请求的即刻成功执行的概率可以扩展为网络链接可用性的概率。如图11b所示,基于数据量msg和网络链接的容量Sbr,示例的所需要的传输时间dT可以确定为:

dT(l)=msgSbr(l)

根据一个示范实施例,如果连接可用并且传输在连接终止之前及时启动传输,那么所请求的数据量的传输可以被确定为成功,如图11b所示。

a=dCdC+dP·dC-dTdC=dC-dTdC+dP---(4)

示范方程(4)可以是有意义的,其意为所需要的传输时间dT小于平均连接持续时间dC。例如,如果dC<dT,那么请求可能不成功并且整个系统的可用性可能变为0。如果dT相对于dC很小,那么dT的影响可能非常小,从而网络链接的可用性可以收敛于上面的方程(3)中所定义的概率。

limdT0dC-dTdC+dP=dCdC+dP

根据一个示范实施例,在给定时间帧内请求的成功执行的根据可以在即刻成功执行上建立。从而,可以指定最大时间dmax。计算可以基于互补事件(例如,“未成功的传输”)的n倍(n-fold)重复的概率,其中,n=dmaxdC+dP:

a=1-(1-dC-dTdC+dP)n,其中n≥1  (5)

根据一个示范实施例,在示范方程(5)的评估中,可以区别三种限制情况:1)如果dmax<<dC+dP则a→0,表示可能没有成功请求;2)如果dmax>>dC+dP则a→1,其可以表示传输基本上确定;和3)dmaxdC+dP的情况可以对应于n=1并且示范方程(5)可以从方程(4)简化为a→(dC-dT)/(dC+dP)。

上面所讨论的示范方程可以确定对于单个使用来说的网络链接的可用性。但是,如果链接被用于多个时间,则链接的可用性可以改变。根据一个示范实施例,在这种情况下的可用性可以被表示为所有单独使用的产物,如图12中所示的例子所示。如图12中所示,示范组件c1 1202和c2 1204可以位于第一主机上,而示范组件c3 1206可以位于连接到第一主机的第二主机上。如图12(a)中的情况所示,连接组件c2 1204到组件c3 1206的单个网络链接使用可以包括值dT=1。如果示范方程(4)用于可用性的计算,则对于图12(a)中dC=10,dP=2并且dT=1的情况,可以得到结果

a=dC-dTdC+dP=10-110+2=0.75

但是,对于如图12(b)中多个使用的情况,由于数据量可能随着处理的进行而改变,因此对于每个使用来说所需要的传输时间dT可能不同(例如,对于两个不同的网络链接使用,dT1=2,dT2=1)。因此,可以通过下式考虑对于使用i的示范传输时间dTi,以确定多个使用的可用性

a=Πi(dC-dTidC+dP)

在示例中,dT1=2和dT2=1可以用来得到示范可用性

a=10-210+2·10-110+2=812·912=0.69.

类似地,可以通过方程(3)和方程(5)来计算可用性。在各种情况中,示范可用性可能由于网络链接使用数目增加而降低。

当需要提供初始化模型时,可以考虑用于输入参数的数据来源。根据一个示范实施例,大多数数据可以通过它们的可执行体、即组件而被作为服务描述存储在服务储存库。根据一个示范实施例,服务描述可以包括有关示例的资源需求的基本信息,诸如所需要的存储空间。根据一个示范实施例,可以通过对自动化测量情况的回归来确定描述CPU需求的线性函数和输入/输出比,并且可以将它们存储在服务描述中。根据一个示范实施例,可以基于该信息和处理描述来构造合成服务模型。

根据一个示范实施例,可以使用示范技术来获得与基础设施相关联的数据,以便检测硬件性能,包括可用存储空间、平均CPU以及网络链接上所用的比特率。使用该获得信息,可以生成示范基础设施模型。根据一个示范实施例,由于示范基础设施模型可能依赖于具体的应用场景,所以可以通过用于网络链接的可用性的输入来扩展示范基础设施模型,该输入可以由用户提供。根据一个示范实施例,用户还可能需要指定用于组件的静态分配以及所预期的负载,这是因为这些项目可能无法自动获取。

根据一个示范实施例,在确定资源输入参数的成本中,用户可以使用真实成本,即价格;但是,如果用于资源消耗的单位的成本多半是未知的,那么这可能就行不通了。因此,期望对所有不同基础设施元件的资源确定一套一致的成本设置,以便获得更有意义的结果。根据一个示范实施例,用户可以估计资源之间粗略的交换率,并且从而可以设置成本参数。在确定这些交换率中,用户可以得到可用容量。例如,嵌入式系统中的存储空间可以被视为比其它资源更有价值,因为其受限更多。因此,根据一个示范实施例,可以从不同基础设施元件上的容量之比来得到示范成本。根据一个示范实施例,用于使该处理更为简易的技术包括为特定类型的基础设施元件设置简档并且将这些简档分配给主机和网络链接的具体实例,特定类型的基础设施元件例如“嵌入式设备”、“LAN连接”、“中间件服务器”或“GPRS连接”。

如图4中所示的示范合成服务模型描述了一组检索有关货车的运行状态的报告的组件,其可以包括下列信息:(a)当前里程;(b)引擎速度,根据时间分布分为慢速、中速、快速;(c)引擎温度是否保持在给定限制之内;以及(d)油压的趋势和最小/最大数。在下面表II中示出了用于示范合成服务模型的示范参数。

表II

示范合成服务模型参数

  组件  Rmem  IORel  RCPU  聚合  0.15  1.1ic+0.5  0.15ic+0.2  线性回归  0.2  0ic+0.05  0.85ic+0.1  最小/最大数  0.07  0ic+0.02  0.27ic+0  分类  0.4  0ic+2  0.55ic+0  阈值  0.15  0ic+0.02  0.3ic+0.1  FormatOP  0.2  1.4ic+0  0.22ic+0.05  FormatRPM  0.2  1.5ic+0  0.24ic+0.03  FormatET  0.2  1.4ic+0  0.22ic+0.05  数据组件器1-3  0.08  1.0ic+0  0.13ic+0

示范合成服务可以被部署到图3中所示的基础设施中。示范设备处理机可以位于车站中并且可以连接到请求处理机节点,该节点可以接受来自客户应用(例如,由数据池来表示)的请求并且当结果可用时可以通知该客户应用。示范PEID可以包括机车中的嵌入式系统,例如,车载计算机。示例PEID可以包括多个数据源,诸如计数器和所附的传感器。在下面表III中示出了用于基础设施的示范参数。

表III

示范基础设施模型参数

表II和表III的示范参数设置iph=30,dmax=600,和msgSize=(150,150,200,10)可以表示基线设置。根据一个示范实施例,在基线设置上参数的数量可以不相同,以便分析它们对解空间(solution space)的影响。根据一个示范实施例,该分析的结果可以验证CPP模型的正确构造。

根据一个示范实施例,成本与可用性之间的相关性必须是正的(positive)这一需求,可以作为用于竞争的条件提供。例如,如果较高的可用性只能以较高的成本来实现,就可能存在竞争。从图上看,用于最佳部署计划的成本和可用性的线性回归可能导致正斜率。

根据一个示范实施例,在这些参数的影响的评估中,用于传输和设置的成本与每小时的调用数之比可能对可用性与成本之间的竞争可能有重要影响。

根据一个示范实施例,如果已经确认了一组候选部署计划并且在它们之间存在着关于成本和可用性的竞争,那么可以使用下面进一步讨论的示范技术来选择这些计划中的一个。

根据一个示范实施例,至少可以使用三种技术来解决竞争:

1)最小/最大数:如果用户能够指定该用户所需要的最小可用性,那么可以选择达到该可用性的最廉价的部署计划:

v*=min(K)|A≥minAvail

类似地,可以由用户定义最大成本,并且可以选择具有最高可用性的部署计划,该成本不超过成本最大额:

v*=min(A)|K≤minCost

2)最佳比:如果可用性的最小数或成本的最大数未知,则最佳比选择策略可以选择具有可用性与成本的最佳比的部署计划(例如,“资金最best value for money(大价值化)”):

v*=max(A/K)。

3)加权:根据一个示范实施例,用户可以对评估准则进行加权以解决竞争。该权值可以用于为所有候选计算得分,并且可以选择具有最高得分的候选。在简单情况下,只有一条准则可以在0..1范围内加权:

v*=max(wA·A+(1-wA)·K)

根据一个示范实施例,用于解决竞争的技术的选择可以依赖于在选择时系统的具体状况。

根据一个示范实施例,如下所示的试探算法可以用来确定合适的部署计划而无需扫描整个解空间。如图9中所示,先前所描述的示范技术可以创建大量用于评估的部署计划,并且可以存储通过示范技术找到的、被确定为最佳计划的部署计划。利用示范试探法:其中小数量的网络使用可以提供良好部署计划的特征,该示范试探法可以只在同一主机上或在相邻主机上设置相邻组件(例如,由合成服务模型中的单个边缘连接的组件)。因此,合成服务模型的每个相关性可以仅映射到0或1个网络链接。如下示为递归算法的试探算法可以通过数据池被初始调用作为自变量,如下面的算法2所示。

算法2:placeDependentComp(start)

                                              

1:find host h on which start is placed

2:find all hosts Hn which are direct neighbors of hd

3:find all components Kn on which start depends

4:for all kj in Kn do

5:randomly select host hi from(Hn∪h)

6:place kj on hi

7:placeDependentComp(kj)

8:end for         

                            

示范结果可以示出利用试探算法找到的候选部署计划可能比几乎所有随机组件设置更接近于最优部署计划。而且,示范结果可以表示可以在不评估大量的部署计划的条件下实现良好结果。但是,由于通过将所有组件设置在嵌入式系上可以实现最高可用性,所以可以无法达到最优部署计划。因此,在数据源和第一组件之间可以存在多于两个的主机。示范试探算法2可以通过在任意相邻组件对之间只允许一个主机的最大距离来避免这种情形。

图13是示出了图1的用于产品寿命周期管理的系统的示范操作的流程图。两种用于使用中间件访问来自PEID的数据的应用的示范场景可以包括请求/响应场景和订购场景。在请求/响应场景中,例如,可能接收到单一请求并且可能返回单一结果,而在订购场景中,请求可以是正在进行的。例如,订购请求可以在触发事件发生时请求响应,诸如,例如检测到在产品温度的突然峰值,或者请求对每5分钟被发送的、关于产品的状态的数据。

图13示出了图1的用于产品寿命周期管理的系统的、根据请求/响应场景的示范操作。因此,可以经由请求缓冲器从应用接收对与指定产品相关联的信息请求(1302)。例如,如前面所讨论的那样,应用108可以将其中可以指定与产品102相关的信息(例如,制造日期、序列号、操作状态等等)以及产品102的标识符的请求放入到请求缓冲器157中。根据一个示范实施例,可以指定期满时间间隔,在这之后请求可以终止。。

可以对产品、例如产品102是否可以连接到网络进行确定(1304)。例如,可以查询连接管理器138,以确定产品102当前是否被连接。如果指定产品未连接到网络,则可以将请求缓冲(1306),例如经由请求缓冲器157。

如果指定产品被连接到网络,则可以基于设备元数据164和服务元数据162确定例如所请求的信息是否在PEID、例如PEID 104上直接可用(1308)。

如果不是的话,则可以从服务储存库、例如服务储存库160检索服务描述(1310),这是因为所请求的信息可以要求使用数据处理组件进行数据处理。如前面所讨论的那样,服务描述可以包括例如哪些原子服务或组件服务被包含在合成服务中。描述还可以包括:用于服务的入口点,例如,用于首先将被调用的合成服务的组件服务的入口点;以及各种用于所涉及的组件服务的参数设置,例如,阈值、分类限制、采样频率、缓冲器容量等等。

然后可以基于入口点调用合成服务(1312),例如,由请求处理机152调用。如前面所讨论的那样,如果所调用的组件服务依赖于其它组件,则那些组件可以被随后调用。从而,可以调用组件服务(1314)。可以重复步骤(1314),直到所调用的组件服务依赖于外部输入(1316),诸如(例如,来自传感118的)传感器值、存储在产品102上的计数器值或来自产品102的其它数据。

可以从产品102检索所请求的原数据,并将它们返回到请求方(1318),该请求程序可以是请求处理机152或调用组件服务。如果在步骤(1308)中所请求的信息在PEID上直接可用,则执行步骤(1318)。

如果请求程序是一个调用组件服务(1320),则可以处理检索到的数据并且将其返回到调用方(1322)。重复步骤(1322),直到到达合成服务的入口点(1324)。

当到达合成服务的入口点(1324)时,或者如果在步骤(1320)中请求方不是一个调用组件服务,则可以由例如请求处理机152来检索所请求的结果、例如分析结果,并且将其存储在结果缓冲器中(1326),例如,存储在结果缓冲器158中。可以通知请求应用(例如应用108)所请求的结果(例如分析结果)在结果缓冲器中(1328),例如在结果缓冲器158中。然后,可以从请求缓冲器(例如,请求缓冲器158)中删除该请求,例如对分析结果的请求(1330)。

作为对涉及货车车队的示范场景识别适合的部署计划的进一步示例,可以像在前面针对图3-7所讨论的模型那样分配所需要的参数。图14中所示的示范分布可能会产生,例如如果没有无效的部署计划的话。示例中的所有组件被分配到位于请求处理层150中的节点。该示例中的负载如此之低,以至于组件被设置在具有最廉价的资源的节点上,该节点也是包括数据池的节点。

如果例如货车司机报告了某些技术问题,那么可以做出这样的决定:请求应用更加频繁地检查机车的执行状态,例如,现在可以每分钟请求它进行检查。从而,可能提高所有传感器的采样频率,以便获得更加详尽的结果并且允许早些识别问题以避免损害。如果分布管理器153实际上在以例如每小时更多调用数执行,以便推荐部署计划,那么分布管理器153可以推荐如图15所示的示范分布。

当只有有限时间可用或者组合的数目可能较大时,对所有可能的部署计划进行评估可能是行不通的。在示范实施例中,可以限制执行时间。从而,所生成的结果可以包括最佳部署计划,该部署计划可以是在给定时间量之内找到的。该示范实施例可以检测当所有可能的部署计划中只有一部分被评估时哪些结果是可实现的。为此,可以使用“随机”策略和“穷举”策略二者通过时间限制来对示范场景进行评估。

尽管示范实施例的先前讨论未明确地包括CPU负载的评估以及响应时间的计算,但是,举例来说,应当注意的是,可以将CPU需求表示为一个数字,其在之后可以与容量进行比较。另一种示范技术可以使用线性函数来表示CPU利用率,例如,根据每秒种的请求。这些技术可能在例如节点具有相似的CPU功率的环境中、例如在网格(grid)环境中可以良好工作。

在智能物件环境中,示范中间件节点的示范CPU可能是例如比示范PEID的CPU强大20倍,这可能导致在表达每次组件服务的调用时的CPU需求上有困难。因此,用于处理给定数据量的组件服务的CPU需求可以表示为在参考环境上CPU容量的百分比。然后,任意基础设施的CPU容量可以表示为对参考环境的CPU功率的比值。通过该比值以及组件的参考CPU需求,可以对给定的待处理数据量确定实际的CPU需求。

可以将对一个调用的示范响应时间确定为用于处理、传输和排队等候的部分时间的总和。在性能分析领域中,确定响应时间的方法是已知的。例如,可以使用网络演算(Network Calculus)来计算延迟。

已经针对智能物件环境中的分布式组件具体讨论了用于这里所描述的组件的示范部署计划方法。用可用硬件资源方面的高度异构性对这些网络进行了特征描述。此外,可能存在例如系统被大量从智能物件发送到后端系统的数量过载的危险。这里所描述的示范部署计划技术使用基于成本的资源消耗分配,以便确定良好的组件部署计划。该示范方法可以包括表示不同资源的代换率,包括响应时间。

从而,使用这里所描述的技术,来自异构环境中的数据传感器中的、具有断续连接性的数据,例如传感器数据或智能设备数据,可以通过适当使用可用计算功率、网络带宽和网络链接的可用性,在它们通往网络的途中被处理。换句话说,可以通过考虑网络的边缘处的PEID的硬件限制,将数据的处理设置在尽可能接近数据源的地方,从而可以在数据被传递到消费性(consuming)后端应用之前有效地降低数据量。

除了降低大量数据传输和存储之外,还有一个好处包括对可能存在于例如涉及产品寿命周期管理的系统中的不同应用场景进行灵活的数据分析。但是,这里所讨论的系统并不局限于产品寿命周期管理,这是因为系统可以应用于其它示例,诸如供应链管理或家庭自动化。通常,这里所讨论的系统可以用于大多数场景,其中软件系统需要被连接到例如嵌入式系统。

根据一个示范实施例,在这里提供了用于组件的示范部署计划方法,其可以具体处理智能物件环境中的分布式组件。这些网络可以用可用硬件资源方面的高度异构性来进行特征描述。如前面所讨论的那样,提供示范技术用于就可用性和资源消耗成本两方面的部署计划进行评估。这两种准则可以在示范解空间中的候选部署计划中间相互竞争。此外,提供了示范综合模型用于组件部署。如前面所讨论的那样,通过两种准则来评估部署计划可以有助于确定部署计划的质量,这是因为具有基本相同成本的计划实际上可能具有不同的可用性。此外,已经将网络链接使用的数量作为示范部署技术的质量的关键驱动因素(key driver)进行了讨论,并且提供了由该结果(finding)得到的示范试探法。根据一个示范实施例,该试探法的应用可以有利地有助于在只检测所有可能计划中的小部分之后寻找良好的部署计划。

这里所描述的各种技术的实施方式可以在数字电路中、或者在计算机硬件、固件、软件或者它们的组合中实现。实施方式可以作为计算机程序产品、即可以有形地具体实施在信息载体中计算机程序来实现,例如在机器可读存储设备中或在传播信号中,以便由数据处理装置来执行或者控制数据处理装置的执行,数据处理装置例如可编程处理器、计算机、或多个计算机。计算机程序,例如上面描述的计算机程序,可以用任何形式的编程语言编写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使用的单元。计算机程序可以被部署成在一个计算机上或在位于一个地点或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。

方法步骤可以被一个或更多个可编程处理器执行,所述可编程处理器执行计算机程序,通过对输入数据操作和产生输出来执行功能。方法步骤还可以被专用逻辑电路执行,或者装置可以被实施为专用逻辑电路,所述专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

作为例子,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任意一个或更多个处理器。一般来说,处理器将从只读存储器或随机访问存储器接收指令和数据,或者从两者都接收指令和数据。计算机的要素可以包括至少一个用于执行指令的处理器,和用于储存指令和数据的一个或更多个存储器设备。一般来说,计算机还可以包括一个或更多个用于存储数据的海量储存设备,或者被可操作地连接到一个或更多个用于存储数据的海量储存设备,以从海量储存设备接收数据,或把数据传送到海量储存设备,或者二者皆有,所述海量储存设备例如为:磁盘、磁光盘或光盘。适于具体实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为例子,包括半导体存储器器件,例如:EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动磁盘;磁光盘和CD-ROM以及DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充,或被包含在专用逻辑电路中。

为了提供和用户的交互,实施方式可以在具有显示设备和键盘以及定点设备的计算机上实施,显示设备例如阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息,键盘和指示设备例如鼠标或轨迹球,用户利用它们可以提供到计算机的输入。其他种类的设备也可以被用来提供和用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且,来自用户的输入可以被以任何形式接收,包括声音、语音或触觉输入。

实施方式可以被在包括后端组件或包括中间件组件或包括前端组件的计算系统中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面或Web浏览器的客户端计算机,通过图形用户界面或Web浏览器,用户可以和实施方式进行交互。可以利用数字数据通信的任何形式或介质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括:局域网(LAN)和广域网(WAN),例如因特网。

虽然如这里所描述的那样已经示出了所描述的实施方式的某些特征,但是本领域普通技术人员现在将想到很多修改、替换、变化或等同物。因此应当理解,所附权利要求旨在覆盖所有这些诸如落入本发明的实施例的真实精神内的修改和变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号