专利名称:事件驱动的计算机系统和用于事件驱动的解决方案的方法
技术领域:
本发明通常涉及设计和操作事件驱动的嵌入式解决方案
(solution)的方法和系统;并且更具体地涉及对用于可视编程的事件 驱动的嵌入式系统的软件进行可视分布式部署和管理的方法和系统。
背景技术:
事件驱动的嵌入式解决方案由许多不同部件(例如,嵌入式计算 平台、传感器、致动器(actuator)、软件设备适配器、软件控制器 和其它软件应用)组成,并且由来自各种传感器形态(例如,运动、温 度、光、振动、重量)的"现实世界,,事件驱动。因而,事件驱动的嵌 入式解决方案是硬件和软件部件的组合,其中硬件通常与现实世界交 互作用,软件监视硬件的操作并且处理由硬件产生的数据和事件。
事件驱动的嵌入式系统是包括事件驱动的嵌入式解决方案的系 统。这种系统在我们的社会中越来越普遍。例如,超市中销售点终端 (POS)自助结帐应用是事件驱动的嵌入式系统,其中每个自助结帐通 道代表一个事件驱动的嵌入式解决方案。每个结帐通道解决方案通常 由在基于嵌入式微处理器的计算平台上运行的软件和包含条码扫描 仪、现金/信用卡读取器、扬声器、秤和触摸板的若干传感器/致动器 组成。
顾客与条码扫描仪交互以扫描每件物品的价格,与触摸板交互以 选择付款方法,并且接着与付款传感器中的一个交互以完成商品支付。 嵌入式软件计算所扫描的物品的总价格,提醒顾客任何问题(例如,不 可识别的物品),提醒顾客何时进行支付,并且接着验证顾客的支付是 否有效。
虽然概念上简单,但实现这种应用可能是非常复杂的过程,其依 赖于系统中包含设备提供商、系统集成商、系统开发人员和顾客的信
息技术(IT)职员的所有相关成员之间的相互依赖的关系。
系统集成商必须把硬件和软件部件集成到设备中,系统开发人员 必须为特定于顾客的需求编写应用程序代码,系统开发人员(和可能的 IT职员)必须测试和验证系统,并且IT职员必须把系统部署到IT基础设 施中并且把系统作为IT基础设施的 一部分进行管理。
在提供在整个过程中使用的各层专家的情况下,实现这种事件驱 动的嵌入式系统的复杂性是显然的。在这个过程的每个阶段,当前方 法通常涉及建立定制(并且通常专用)应用程序、中间件和/或设备适配 器软件。这个完全定制的方案通常导致灵活性不足以适应改变的需求 (例如支持新用例而无需重新设计应用软件)的一次性系统。此外, 虽然不同系统可以使用相似的设备,但是当前的定制方案不利于软件 重用。
在异构事件驱动的嵌入式系统(其中解决方案具有不同体系结 构)中,IT职员的职责尤其使人为难。这是由于在系统内不存在同时 部署和管理所有事件驱动的嵌入式解决方案的可伸缩系统化方法。例 如,考虑仓库规模的超市(或百货商店),其中所有结帐通道是自助结 帐通道。这种系统可能包含数十个自助结帐通道,每个通道均可能由 不同硬件和软件部件组成。
部署和管理每个自助结帐通道解决方案的软件部件的传统方案 是每次一个地部署和管理每个解决方案。由于这个方案不能很好地适 应由大量不同解决方案组成的系统的规模,所以这个方案是笨重和耗 时的。此外,传统方案不适合作为系统来对待所有结帐通道解决方案 的组合。因而,使用传统方案在整个系统上编程分布式管理能力是不 可行的。
因而,需要一种分布式部署和管理技术,其有效地解决包括多个 事件驱动的嵌入式解决方案的事件驱动的嵌入式系统的同时和可伸缩 部署和管理的问题。
发明内容
一种事件驱动的计算机系统,用于同时管理和部署软件到包括一
或多个计算解决方案的应用平台,该系统包括处理器,用于执行计 算机代码并且处理信息;存储器,用于存储计算机代码和信息,该计 算机代码包括软件工具,该软件工具包括行为模型编辑器,用于构 造代表应用平台的行为的系统模型;行为模型编辑器包括行为部件, 每个行为部件表示应用平台的一个方面;用于构造可视拓朴模型的拓 朴模型编辑器,包括顶层节点和下层节点,并且表示应用平台的逻辑 拓朴,其中拓朴模型中的每个顶层节点表示至少一个计算解决方案; 映射算法,用于把一或多个部署单元转换成执行单元,并且把一或多 个执行单元映射到至少一个计算解决方案;和部署协议,用于通过网 络把一或多个执行单元分配到至少一个计算解决方案。
为了描述上述和其它示例性目的、方面和优点,我们参考附图使
用本发明的示例性实施例的详细描述,其中
图l是图解事件驱动的嵌入式系统的实施例的模块图。
图2是用于支持本发明的实施例的软件工具200的系统的模块图。
图3是用于支持本发明的另一个实施例的软件工具300的系统的
第二示例性模块图。
图4是实践本发明的另一个实施例的方法400的流程图。
具体实施例方式
参考图l,描述事件驱动的嵌入式系统IOO。系统100针对在超市 中POS(销售点终端)自助结帐图解本发明的一个实施例,其中许多自 助结帐解决方案(终端)可以彼此接着排列。其它实施例也是可能的; 例如,仓库智能货架系统,其中许多智能货架解决方案可以彼此接着 排列;电子收费系统,其中许多收费通道解决方案可以彼此^着排列;
和零售供应链物流系统,其中许多装栽点解决方案可以彼此接着排列。
图l描述了性质为事件驱动的多个自助结帐解决方案140, 141...149。商店顾客通过按下按键或在结帐传感器上移动商店物品来 启动与解决方案140的交互。
系统100是可伸缩的;因此,可以根据需要添加其它解决方案。 与每个解决方案140-149相关的分别是至少一个嵌入式计算平台150, 151...159。在这个实施例中,每个嵌入式计算平台也充当系统100的部 署平台。嵌入式计算平台是市场上可获得的,并且由各公司制造,包 含Arcom Control Systems 、 Rockwell Automation 、 ThingMagic和 Applied Data Systems 。
与每个自助结帐解决方案140-149相关的分别是传感器160, 161...169,和致动器170, 171...179。传感器160-169提供用户接口并且 启动在这个例子中是通过自助结帐终端进行超市购买的事件。传感器 160-169可以包含运动检测器、条码扫描仪、射频标识读取器、现金/ 信用卡读取器、秤、触摸板、话筒和/或成像系统。致动器170-179是 每个解决方案150-159响应用户输入的设备。致动器可以包含扬声器、 显示器、传送带和/或零钱分配器(change dispenser )。
针对每个自助结帐解决方案,相关的传感器160-169和致动器 170-179与相关的嵌入式计算平台150-159通过有线或无线连接交互, 连接可以包含串行、通用串行总线、火线、以太网、蓝牙、ZigBee或 其它适当连接。也被称为部署平台的嵌入式计算平台150-159通过控制 输入-输出(1/0)设备(传感器和致动器)并且通过处理设备产生的事件 和数据来提供每个自助结帐解决方案140-149的,,大脑"。嵌入式计算平 台150-159也为部署和管理工具与POS自助结帐应用平台103交互而 提供扩展点。扩展点被用于定义嵌入式计算平台150-159的新功能点。 其它插件可以插入这些扩展点以增加平台150-159的通用性和可伸缩 性。
至少一个计算系统101被用于运行部署、管理和编程工具,并且 用于通过网络102与POS自助结帐应用平台(或系统)103通措。网络 102可以是有线或无线的,包含4壬何以太网、蓝牙、Wi-Fi、 Zigbee或 其它网络。计算系统101也可以通过广域网104与其它计算机系统交互。
计算系统101可以是任何适当的计算单元,包括例如处理器、系 统存储器、大容量存储设备的基本部件和连接到网络102的输入/输出 子系统。系统101被配置为基于本发明的一个实施例进行操作。通过软 件工具或通过例如专用集成电路(ASIC)的、包括执行软件工具的功能 的逻辑的专用硬件来完成。网络102可以是局域或广域网。现在我们讨 论用软件工具完成适当配置的实施例。
图2是存储在计算系统101中的一组软件工具200的模块图。软件 工具200包含均在下面详细描述的行为模型编辑器205、拓朴模型编辑 器210、映射算法215、部署协议220和存储介质225。
行为模型编辑器205被用于构造表示图l的POS自助结帐应用平 台103的行为的可视系统模型。通过互连可通过存储介质225访问的部 件来构造可视系统模型,其中每个部件表示应用平台103行为的某个方 面(例如,每个解决方案的相关传感器和致动器的设备适配器)。如果 系统模型需要不能从存储介质225得到的新部件,则这个部件使用编辑 器行为模型编辑器205来创建,并且接着持久地存储在存储介质225中 以便以后重用。
一旦在系统模型中规定了全部系统行为,则行为模型编辑器205 被用于选择模型中的一或多组部件并且把每个组指定为部署单元。再 次参照图l,对于POS自助结帐应用平台103,可以规定10个部署平台 150-159,对于每组部件指定一个(包括每个自助结帐解决方案 140-149)。接着,包含行为部件和相关部署单元结构的互连的系统模 型被持久地存储在存储介质225中以便以后重用。
拓朴模型编辑器210被用于构造表示POS自助结帐应用平台103 的逻辑层次拓朴的可视拓朴模型。通过互连可通过存储介质225访问的 结构部件来构造拓朴模型,其中每个部件表示系统体系结构中的节点。
在拓朴层次结构的最下层,拓朴模型规定连接到每个嵌入式计算 平台150-159的传感器和致动器的类型和数量。在这个实施例申,这相
当于规定每个自助结帐解决方案140-149的内部拓朴。
在拓朴层次结构的顶层,拓朴模型规定每个自助结帐解决方案 140-149与谁互连以及如何互连以组成POS自助结帐应用平台103。拓 朴层次结构的顶部的每个节点包含至少一个部署平台150-159(例如, 嵌入式计算平台)。 一旦规定了拓朴模型,它被持久地存储在存储介质 225中以4更以后重用。
这个层次模型是可扩展的。例如,传感器(或致动器)可以表示传 感器(或致动器)的组合。因此,传感器(或致动器)也可以具有拓朴结构。 类似地,在这个实施例中我们称作系统的可能实际上只是某些其它实 施例中的子系统,并且因此只是拓朴结构中的叶节点。
映射算法215把系统模型转换成执行单元并且然后它把执行单元 映射到拓朴模型中的部署平台以产生部署模型。因而,部署模型表示 特定行为到拓朴模型中的每个顶层节点的绑定。部署模型的结构具有 三个主要部分模型标识符、 一或多个执行单元和一或多个映射。
模型标识符是彼此区分部署模型的唯一标识符。它可以是适于索 引和搜索的任意标识符,例如通用资源定位符(URL)。
执行单元是适于在目标部署平台上执行的部署单元。因而,构成 每个部署单元的行为部件被转换成可执行部件。这个转换通常通过编
译行为部件的源代码来完成。
映射是每个执行单元到拓朴模型中每个顶层节点的具体部署平 台的绑定。作为第一逼近,映射算法通过在拓朴2元组(子节点的数量, 子节点的类型)和行为2元组(设备适配器部件的数量,设备适配器部件 的类型)之间进行最佳匹配,来执行每个绑定,其中最佳匹配可以通过 任何适当度量(例如,元组之间的欧几里德距离)来定义。
如果考虑每个顶层拓朴节点的资源(例如存储器、处理器速度和 通信接口),则可能进一步改进映射。如果未找到具体部署单元的最佳
匹配,则需要通过可视接口的用户千预以执行人工映射。
映射算法215具有两个主要操作模式自动和半自动。,在自动模 式中,算法215假定其映射是正确的并且把部署模型传递到部署协议
220。半自动模式提示用户覆盖由算法确定的多个映射。映射算法215 通过可视接口向用户呈现这个人工覆盖特性。部署模型也被持久地存 储在存储介质225中。
部署协议220使用部署模型通过网络102向POS自助结帐系统 103内的适当部署平台150-159分配相应执行单元。部署平台150-159接 着载入执行单元。
虽然图2将本发明的一个实施例的软件工具200的系统图解为相 同计算系统101的一部分,但这不排斥其它结构。每个工具可以分布在 不同计算系统上。实际上,这个实施例的一个关键优点是其任务域的 固有分立特性。例如,构造系统模型的任务独立于构造拓朴模型。因 而,在可选实施例中,在两个或更多计算机系统上工作的两个或更多 用户可以并行而不是顺序地执行这2个任务。
为了进一步图解任务域的分立性的优点,图3图解了工具的第二 示例性实施例。使用工具300的这个系统构造系统、拓朴和部署模型与 图2中描述的工具的系统相同。然而,部署过程通过拉来(pull)语义 而不是推送(push)语义来完成。
现在在新软件工具、模型执行管理器320和POS自助结帐应用平 台103的至少一个嵌入式计算平台150-159之间分配部署协议软件(未 示出)。模型执行管理器320通过经由网络102向POS自助结帐应用平 台103发送模型标识符来启动部署。POS自助结帐应用平台103通过经 由网络102从存储介质225拉来与模型标识符相关的执行单元来进行响 应。在这个实施例中,像在图2中参考的实施例中那样,行为模型编辑 器205、拓朴模型编辑器210和映射算法215全部以相同方式运行并且把 其结果存储在存储介质225中。使用模型执行管理器320工具的好处是 它支持应用程序的远程管理。
图4是实践本发明的实施例的方法400的流程图。图4中描述的方 法补充了图2中描述的工具的第一示例性系统。该方法的处珲流程从步 骤405开始。使用行为模型编辑器205,用户在步骤410构造岢视系统模 型。通过直观地互连连接行为部件来构造系统模型。用户在步骤415
验证系统模型行为。这可以通过用户选择的方法来完成,包含模拟、 实验或形式分析。
如果系统模型无效(例如,在步骤415为"否"),则用户重新设计, 接着重构模型。否则,如果系统模型有效(例如,在步骤415为"是"), 则用户前进到下一个步骤,指定部署单元416。
用户可以使用若干方法指定部署单元。 一种方法如下。使用鼠标 或类似输入设备,用户通过围绕部件绘制矩形框来选择可视系统模型 中的一组部件。接着通过在模型框图内点击鼠标右键并且选择适当的 上下文菜单项,用户可以指定矩形区域中包含的部件为部署单元。
在另 一种示例性方法中,用户可以同时使用鼠标左键和控制键逐 个选择在系统模型框图中的一或多个部件。所选择的部件接着通过使 用工具条按钮能够被指定为部署单元。本领域的技术人员明白,可以 使用其它指定部署单元的示例性可视方法。
用户不必向部署单元分配系统模型框图中的所有部件。未明确分 配给部署单元的任意部件被认为是自主部件。即,对于其部署,它可 以独立于其它部件被部署。 一旦用户指定部署单元,则系统模型在步 骤420被存储以便以后使用。
使用拓朴模型编辑器210,用户在步骤425构造可视系统模型。通 过直观地互连连接结构部件来构造拓朴模型。每个结构部件可以可选 地用规定其资源(例如,存储器容量、处理器速度、通信接口)和特性(例 如,网络地址、符号名称)的参数来注释。
用户在步骤430验证拓朴模型结构。这可以通过用户选择的方法 来完成,但是最通常的是仅在模型的逻辑结构和系统的物理结构之间 进行可视比较。如果详述系统特性和资源的系统描述文件有效,则用 户可以可选地向拓朴模型输入这个文件。该文件也可以充当有效性检 查。
如果拓朴模型无效(例如,在步骤430为"否"),则用户重新设计, 接着重构模型。否则,如果拓朴模型有效(例如,在步骤430为,,是"), 则在步骤435存储拓朴模型以便以后使用。
当用户在步骤440调用映射算法时,进行系统模型和拓朴模型到 部署模型的映射。在一个示例性方法中,用户通过使用拓朴编辑器把 系统模型从工作区视图拖动到可视拓朴模型中来调用映射算法。这个 操作调用映射算法,以把部署单元转换成执行单元,并且找到在系统 模型中的部署单元和自主部件之间的最优匹配,以到拓朴模型中的每 个顶层节点的每个部署平台。
在自动模式中,映射算法独自操作以产生部署模型。然而,存在 一种需要用户支持的情形。如果在步骤445映射算法寻找一或多个部署 单元或自主部件的匹配不成功,则需要用户干预以在步骤450执行人工 映射。
在半自动模式中,算法正常地执行映射,但是在自动映射之后, 提示用户手动地覆盖多个映射。部署模型未被产生,直到用户完成覆 盖过程。拓朴编辑器可以具有触发按钮,其允许用户允许或禁止映射
算法的自动模式。
执行人工映射的一个示例性方法是向用户呈现包含系统模型的
部署单元的可视选项板。当用户选择选项板上的部署单元时,它映射 到拓朴模型中的相应顶层节点被高亮度显示。用户接着可以通过从选 项板向拓朴模型中的适当顶层节点拖放部署单元来覆盖映射或创建新 映射。映射算法接着产生部署模型。
一旦映射算法产生部署模型,则部署模型在步骤455被存储以便 后续使用。
用户接着在步骤460通过网络向POS自助结帐系统103内的适当 部署平台150-159部署部署模型的执行单元。在一个示例性方法中,用 户通过使用鼠标(或其它输入设备)点击拓朴编辑器内部署模型视图上 的"部署"工具条按钮来执行这个操作。
在另 一示例性方法中,用户通过使用鼠标(或其它输入设备)从拓 朴编辑器中打开部署窗口来执行这个操作。部署窗口为用/提供可视
接口以选择部署模型、编辑部署配置参数并且接着部署模型。
虽然已经根据若干示例性实施例描述了本发明,但本领域的技术
人员应当明白,可以在所附权利要求书的精神和范围内对本发明进行 修改。示出和讨论的是对可编程计算机装置的高度简化的描述。本领 域的技术人员会理解,计算机装置的任何实际应用需要其它低级部件 和连接。
因此,虽然已经描述了当前考虑的优选实施例的内容,但是本领 域的技术人员会理解,可以在本发明的精神内进行其它修改。
权利要求
1.一种事件驱动的计算机系统,用于同时管理和部署软件到包括一或多个计算解决方案的应用平台,该系统包括处理器,用于执行计算机代码并且处理信息;存储器,用于存储计算机代码和信息,该计算机代码包括软件工具,该软件工具包括行为模型编辑器,用于构造代表应用平台的行为的系统模型;行为模型编辑器包括行为部件,每个行为部件表示应用平台的一个方面;用于构造可视拓扑模型的拓扑模型编辑器,包括顶层节点和下层节点,并且表示应用平台的逻辑拓扑,其中拓扑模型中的每个顶层节点表示至少一个计算解决方案;映射算法,用于把一或多个部署单元转换成执行单元,并且把一或多个执行单元映射到至少一个计算解决方案;和部署协议,用于通过网络把一或多个执行单元分配到至少一个计算解决方案。
2. 如权利要求l所述的系统,还包括存储介质,用于存储系统的 软件工具,以及存储系统模型、拓朴模型和行为部件。
3. 如权利要求l所述的系统,还包括执行模型管理器,用于通过 向应用平台发送模型标识符来启动软件工具的部署。
4. 如权利要求l所述的系统,其中通过用户响应用户接口的呈现 而直观地互连行为部件,来构造系统模型。
5. 如权利要求l所述的系统,还包括用于接收部署单元的用户指 定的接口。
6,如权利要求1所述的系统,还包括用于接收拓朴模型的接口。
7.如权利要求1所述的系统,其中所述一或多个计算解决方案是 事件驱动的系统,包括嵌入式计算平台,用于部署输入/输出设备,该嵌入式计算平台 包括用于管理输入/输出设备的逻辑; 用于启动用户交互的传感器;和 用于响应系统的用户的致动器。
8. 如权利要求1所述的系统,其中映射算法把来自系统模型的部 署单元转换成执行单元,并且然后它把执行单元映射到拓朴模型中的 部署平台以产生部署模型。
9. 如权利要求8所述的系统,其中映射算法以半自动模式工作, 其中用户能够通过从选项板向拓朴模型中的适当顶层节点拖放部署单 元来覆盖映射或创建新映射。
10. 如权利要求9所述的系统,其中部署模型包含三个主要部分 模型标识符,用于唯一标识部署模型; 一或多个执行单元,用于在部署平台上执行;和 一或多个映射,用于把每个执行单元绑定到拓朴模型中的每个顶层节点的具体部署平台。
11. 如权利要求8所述的系统,其中映射算法通过在拓朴2元组和行 为2元组之间进行最优匹配来执行每个绑定,其中最优匹配由任何适当 度量来定义。
12. 如权利要求11所述的系统,其中拓朴2元组指示子节点的数量 和子节点的类型;并且行为2元组指示设备适配器部件的数量和设备适 配器部件的类型。
13. 如权利要求7所述的系统,其中嵌入式计算平台还包括扩展点。
14. 如权利要求6所述的系统,其中拓朴模型是可扩展的层次构造。
15. —种用于至少一个应用平台中的事件驱动的解决方案的方 法,包括互连每个事件驱动的解决方案的行为部件并且为所述部件指定部署单元; 接收包括所互连的行为部件的系统模型的设计; 接收向每个部署单元分配至少某些部件的部署单元的指定; 允许构造可视拓朴模型和可视部署接口 ; 接收并且存储拓朴模型;在用户调用映射算法时,把系统模型和拓朴模型映射到部署模型;接收并且存储部署模型;以及 向应用平台部署执行单元。
16. 如权利要求15所述的方法,其中通过网络部署执行单元。
17. 如权利要求15所述的方法,其中构造系统模型的任务独立于构 造拓朴模型。
18. 如权利要求15所述的方法,其中映射算法通过在来自拓朴模型 的2元组(子节点的数量,子节点的类型)和来自行为模型的2元组(设备 适配器部件的数量,设备适配器部件的类型)之间进行最优匹配来执行 每个绑定。
19. 如权利要求15所述的方法,其中映射算法以自动和半自动的模 式工作。
20. 如权利要求15所述的方法,其中在互连步骤前面,该方法还包 括呈现用于直观互连每个事件驱动的解决方案的行为部件的用户接口 和为所述部件指定部署单元的步骤。
21. 如权利要求15所述的方法,其中呈现允许构造的步骤,该方法 包括呈现拓朴模型编辑器的用户接口的步骤。
全文摘要
公开了事件驱动的计算机系统和用于事件驱动的解决方案的方法。该系统同时管理和部署软件到包括一或多个计算解决方案的应用平台,包括执行计算机代码并处理信息的处理器;存储计算机代码和信息的存储器,计算机代码包括软件工具,包括构造代表应用平台的行为的系统模型的行为模型编辑器,包括均表示应用平台的一个方面的行为部件;构造可视拓扑模型的拓扑模型编辑器,包括顶层节点和下层节点,并表示应用平台的逻辑拓扑,每个顶层节点表示至少一个计算解决方案;把一或多个部署单元转换成执行单元,并且把一或多个执行单元映射到至少一个计算解决方案的映射算法;和通过网络把一或多个执行单元分配到至少一个计算解决方案的部署协议。
文档编号G06F9/44GK101114227SQ20071013671
公开日2008年1月30日 申请日期2007年7月25日 优先权日2006年7月26日
发明者乔纳桑·M.·里森, 周保罗, 王乾庸, 郑敞宇, 金圭铉, 金秀娟, 涵 陈 申请人:国际商业机器公司;信息技术推进研究所