用于实时系统控制的组件模型技术方案

技术编号:4130964 阅读:205 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了用于实时系统控制的组件模型。一种基于组件的软件程序,其中每一组件基于一种组件类型。从包括插槽定义的基本类创建组件类型。标识该插槽定义并将其存储在组件类型对象中。创建相同组件类型的一个或多个组件,每一组件包括到组件类型对象的引用,和包括与组件类型对象中属性插槽定义相关联的值的存储位置的槽映象。属性插槽值通过被放置到存储位置中而进入组件。也公开了一种自动指定唯一名称给组件的方法。创建一个根组件。进一步将非根组件放置到根组件中或其它非根组件中,从而所有组件形成一个树结构。分配一个唯一标识串给组件,其包括所有该组件的前辈组件的名称和该组件名称的顺序列表。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
用于实时系统控制的组件模型本专利申请是优先权日为2002年2月15日、国际申请日为2003年2月18日、国际申请号为PCT/US03/04803、国家申请号为03803852. 8、专利技术名称为用于实时系统控制的组件模型的专利技术专利申请的分案申请,其在此全部引入作为参考。根据35U. S. C. 119(e),本专利申请要求序列号为60/357329,申请日为2002年2月15日,标题为用于实时系统控制的组件模型的美国临时专利申请的优先权,其全部内容在此引入作为参考。
技术介绍
许多不同的努力需要客户软件来解决他们的问题。通常各领域专家非常了解这些问题,诸如建筑自动化专家、工厂自动化专家和交通管制专家。然而很少有领域专家具有普通程序设计技术所需要的技能,诸如面向对象的程序设计。如今,各领域专家必须试图将他们的要求详细说明给程序员,然后由程序员来构建所需要的系统。该过程容易出现错误、费时并且伴随着错误传达。所需要的是理解问题空间的领域专家具有能够自己构建软件系统的能力。期望领域专家有时间或倾向能够变成专业程序员是不可行的。因此有必要提供一种工具,其使得外行也能够创建客户软件。理想的这些工具会让软件系统的配置参数、执行逻辑和数据是图形可视化的。图形工具会让领域专家能够创建、监控和改变软件系统,而不需要理解神秘的程序设计语言语法。 面向组件的系统是一种新概念,其通过将软件功能封装在组件中,可以连接组件来构建应对现实世界需要的应用,从而提供某些特征。然而为了实现实际的系统,已知的现有技术仍然需要程序设计语言的知识。软件组件,到现在为止,仍然需要程序设计技巧将组件连接在一起创建功能性系统。而且,现有的组件技术并不允许领域专家将整个系统图形可视化,和在运行时作出改变。例如,领域专家可能会希望在运行时改变执行流程、或添加新的行为,并且希望能够立即看到这对软件系统有什么影响。这种探索性的程序设计方式与当前方案不一致,当前方案需要软件停止、重新编译、然后重新启动。而且,为了改善性能添加特征等,可能会需要添加修改或更新该软件。对于任何更新、添加或修改,当前方案再次需要软件停止、重新编译并重启。在正在控制关键过程的某些环境中,停止软件可能会特别困难。提供这种方案所存在的另一个具体困难是,需要允许领域专家能够增强或扩展软件组件,使它们适应特定应用领域的独特需要。从历史来看,这些添加或扩展需要常规的程序设计技巧和知识。本专利技术意欲解决这些问题和其它需要。
技术实现思路
本专利技术的一个方面是软件程序,其代码包括用于在机器上执行的相同组件类型的一个或多个组件。该软件程序的组件通过特定方法产生。在该方法中,将包括一个或多个插槽定义(slot definition)的基本类(base class)提供给一个框架(framework),其中最少有一个插槽定义是属性插槽定义。基本类中的所有属性插槽定义都被标识。对于每一属性插槽定义,都定位获取(getter)和设置(setter)过程。生成一个组件类型对象,其被配置用来存储插槽定义。被标识的属性插槽定义然后就被存储于该组件类型对象中。生成一个或多个组件。这些组件中每一个都有槽映象(slotm即)对象,它是从槽映象类中被实例化的。每一槽映象对象也包括存储于组件类型对象中的每一属性插槽定义的值,每一值与单个组件关联,因而提供了存储每一组件所独有的数据的能力。 在该方面的进一步发展中,组件被设计为允许通过动态插槽来扩充它们的属性和数据字段。 另一个方面提供有一种用于为基于组件的软件系统的扩充自动指定名称的方法。在该方法中,创建了一个根组件。该根组件没有父组件。 一个或多个非根组件被置于该根组件内,并且一个或多个其它非根组件则被置于非根组件内,这样所有的非根组件都有父组件,并且整个结构形成了树型。在该点上,组件分配有唯一标识串,其包含该组件的所有前辈组件和该组件的名称的顺序列表。 在该方面的进一步发展中,扩充命名方法来标识组件的各个插槽。 通过对附图和优选实施例的描述,可以进一步的理解本专利技术的这些和那些方面以及特征和优势。附图说明 图1所示为创建组件类型和该组件类型的多个组件实例的流程图; 图2所示为从相同的组件类型中生成的两个组件的框图; 图3所示为包括动态插槽的组件系统的框图; 图4所示为包括链接的组件系统的框图; 图5A所示为包括链接的组件系统的组件级抽象概念的框图,其中执行细节被隐藏; 图5B所示为图5A中所示组件系统的框图;其中链接已经被删除; 图6所示为已经重新编译以提高效率的组件系统的框图;禾口 图7所示为树型结构中组件系统的框图; 图8所示为是可视化界面的操作流程图。具体实施例方式本专利技术的组件模型提供一种软件组件的独特组件设计,其允许应用开发者在适合于非程序员的图形环境下扩展和修改软件组件。该组件模型设计允许将新的插槽,诸如属性、动作或主题,加入标准组件,而不需要通常所需要的软件编码步骤。 对于软件开发的组件模型方式允许创建与最终使用应用具有直接关系的软件组件,同时仍然利用了面向对象的软件设计的优点。同样的,组件比在纯面向对象的方式中提供更高层次的抽象概念。在对象封装了可以应用于软件功能(诸如串操作、提供缓冲管理等)的行为的地方,组件可组装对象以满足最终应用目标(诸如提供用户界面展示以改变时间表、检查警报和将确认命令传递回到发出警报的装置等)的需要。 这里有两个层次的抽象概念一个是面向对象的层次,其处理组件的实现;另一个是组件的层次,其隐藏面向对象的层次,并通过使用组件进行与特定现实应用有关的应用创建。至少也有两类人可以运行和修改本专利技术的软件开发者和用户。开发者使用面向对象的概念实现本专利技术的组件模型。可选的,开发者也创建在组件层次所定义的功能。用 户通常不会看到面向对象的实现。相反,用户几乎专门处理组件和监控器,在组件层次创建 和修改系统。当然,用户和开发者可以是同一个人。 根据组件类型创建软件程序内的组件。组件类型类似于面向对象的程序设计中的 类的概念,也就是,它是描述所有属于该类型的组件实例的共同特征的抽象概念。在优选实 施例中,组件类型的创建以及大多数其它有关组件的功能由构架来完成,有时候我们称其 为Niagara Framework。该构架是基于组件的软件中的软件模块,其完成一些与实现组件 模型相关的若干有用功能,诸如创建组件类型和组件、提供组件与外部软件模块之间的接 口,和提供通过向他们添加插槽来扩展组件的能力,等等。包括在初始化(引导装入)阶段 和在组件运行时,该构架也提供用于软件的执行流。 面向对象程序由类组成,其定义用来分配属于该类的实例的模板。每一类由称为 成员的子部件组成。成员可以是用来存储数据的字段,或可以是用来存储可执行行为的方 法。 本专利技术描述了使用面向对象的原型构建的组件模型。该组件模型然后可以被非程 序员使用来构建面向组件的程序。该组件模型由组件类型组成,其定义了用来分配属于该 类型(类似于面向对象的类)的实例的模板。每一组件类型由称为插槽(类似于面向对象 的成员)的子部件组成。插槽与成员之间的区别在于插槽存在于更高层次的抽象概念,从 而它们可以被非程序员或面向组件程序的终端用户直接使用。 在组件模型中有三种类型的插槽。属性是存储数据值的插槽。属性可以本文档来自技高网
...

【技术保护点】
一种用于对在自动化和控制系统的机器上的软件程序的执行流进行控制的方法,部分地通过具有组件类型的组件来定义软件程序的执行流,该组件类型由基本类来定义,在软件程序的运行期间产生所述组件,所述方法包括:在软件程序的运行期间标识所述基本类中的一个或多个静态插槽定义;在软件程序的运行期间产生组件类型对象,该组件类型对象被配置用来存储静态插槽;在组件类型对象中存储所述一个或多个静态插槽定义;在软件程序的运行期间产生一个或多个组件,每一组件具有一个槽映象和对该组件类型对象的引用,其中每个槽映象包括用于存储在该组件类型对象中的每一插槽定义的值的存储位置;在所述一个或多个组件中,在软件程序的运行期间将第一动态插槽添加到第一组件的槽映象,以及将第二动态插槽添加到第二组件的槽映象,同时保持第一组件的组件类型对象和第二组件的组件类型对象不改变,第一和第二动态插槽的添加与任何编译步骤无关;在软件程序的运行期间将源链接存储在第一动态插槽中以及将目标链接存储在第二动态插槽中,源链接和目标链接表示第一组件和第二组件之间的链接;以及在软件程序的运行期间根据源链接和目标链接改变软件程序的执行流。

【技术特征摘要】
US 2002-2-15 60/357,329一种用于对在自动化和控制系统的机器上的软件程序的执行流进行控制的方法,部分地通过具有组件类型的组件来定义软件程序的执行流,该组件类型由基本类来定义,在软件程序的运行期间产生所述组件,所述方法包括在软件程序的运行期间标识所述基本类中的一个或多个静态插槽定义;在软件程序的运行期间产生组件类型对象,该组件类型对象被配置用来存储静态插槽;在组件类型对象中存储所述一个或多个静态插槽定义;在软件程序的运行期间产生一个或多个组件,每一组件具有一个槽映象和对该组件类型对象的引用,其中每个槽映象包括用于存储在该组件类型对象中的每一插槽定义的值的存储位置;在所述一个或多个组件中,在软件程序的运行期间将第一动态插槽添加到第一组件的槽映象,以及将第二动态插槽添加到第二组件的槽映象,同时保持第一组件的组件类型对象和第二组件的组件类型对象不改变,第一和第二动态插槽的添加与任何编译步骤无关;在软件程序的运行期间将源链接存储在第一动态插槽中以及将目标链接存储在第二动态插槽中,源链接和目标链接表示第一组件和第二组件之间的链接;以及在软件程序的运行期间根据源链接和目标链接改变软件程序的执行流。2. 根据权利要求1的方法,其中,源链接是指第一属性插槽以及目标链接是指第二属 性插槽,以及其中,改变软件程序的执行流包括在检测到第一属性插槽< >的值的改变时以第 一属性插槽的值来更新第二属性插槽的值。3. 根据权利要求l的方法,其中,源链接是指属性插槽以及目标链接是指引用动作的 可执行代码的动作插槽,以及其中,改变软件程序的执行流包括在检测到属性插槽的值的 改变时执行所述动作的可执行代码。4. 根据权利要求3的方法,其中,动作的可执行代码使得耦合到自动化和控制系统的 设备的操作发生改变。5. 根据权利要求l的方法,其中,源链接是指属性插槽以及目标链接是指引用表示启 动事件的可执行代码的主题插槽,以及其中,改变软件程序的执行流包括在检测到属性插 槽的值的改变时执行表述启动事件的可执行代码。6. 根据权利要求l的方法,其中,源链接是指引用第一动作的可执行代码的第一动作 插槽以及目标链接是指引用第二动作的可执行代码的第二动作插槽,以及其中,改变软件 程序的执行流包括在执行第一动作的可执行代码时执行第二动作的可执行代码。7. 根据权利要求1的方法,其中,源链接是指引用动作的可执行代码的动作插槽以及 目标链接是指引用表示启动事件的可执行代码的主题插槽,以及其中,改变软件程序的执 行流包括在执行动作的可执行代码时执行表示启动事件的可执行代码。8. 根据权利要求l的方法,其中,源链接是指引用表示启动事件的可执行代码的主题 插槽以及目标链接是指引用动作的可执行代码的动作插槽,以及其中,改变软件程序的执 行流包括在执行表示启动事件的可执行代码时执行动作的可执行代码。9. 根据权利要求l的方法,其中,源链接是指引用表示启动第一事件的可执行代码的 第一主题插槽以及目标链接是指引用表示启动第二事件的可执行代码的第二主题插槽,以 及其中,改变软件程序的执行流包括在执行表示启动第一事件的可执行代码时执行表示启动第二事件的可执行代码。10. 根据权利要求1的方法,其中,目标链接包括 对第一组件的引用; 第一组件的源插槽的插槽名称;以及 第二组件的目标插槽的插槽名称。11. 根据权利要求1的方法,还包括在软件程序的运行期间显示软件程序的组件的图形表示,该图形表示包括第一组件和 第二组件之间的链接的表示;提供用户接口以操作该链接的表示;响应于对链接的表示的操作,在软件程序的运行期间将改变存储到第一组件和第二组 件的动态插槽。12. 根据权利要求1的方法,其中,所述组件具有名称,以及其中,所述组件包括根组 件,该根组件没有父组件,以及所述方法还包括将对一个或多个非根组件的引用置于根组件内;将对一个或多个非根组件的引用置于其它非根组件内,以使得这些组件形成一种树结 构,并且每一非根组件有一个父组件;以及给每个非根组件指定一个唯一标识串,该标识串包...

【专利技术属性】
技术研发人员:布赖恩S弗兰克约翰W萨布利特
申请(专利权)人:特里迪姆公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1