基于构件体系架构的嵌入式系统研究

   2023-09-13 互联网2250
核心提示:  引言  软件构件技术,可以高效、低成本地构筑嵌入式系统,满足当前的嵌入式的快速发展。在研究嵌入式系统构件体系架构的基

  引言

  软件构件技术,可以高效、低成本地构筑嵌入式系统,满足当前的嵌入式的快速发展。在研究嵌入式系统构件体系架构的基础上,提出了嵌入式构件开发的集成框架并对其关键技术进行了分析。

  嵌入式软件是嵌入式系统的灵魂,负责嵌入式系统全部资源的分配、调度和控制。嵌入式系统的发展重在嵌入式软件的发展。但是长期以来基于生命周期的软件开发技术本身的缺陷长期困扰着嵌入式软件开发人员,比如:整体开发周期长,模块化程度低,可复用性差,可移植性差,维护成本高等。因此,缩短软件开发周期、降低开发和维护成本、提高软件质量是嵌入式软件开发人员的迫切要求,也是嵌入式软件适应今天嵌入式技术飞速发展、应用领域急速扩大的要求。

  软件复用正是提高软件质量和开发效率的有效方法,是当前软件开发研究的热点之一。软件复用主要是基于构件的开发(Component-Based Development,简称CBD)或基于构件的软件工程(Component-Based Software Engineering,简称CBSE)。在使用构件技术的组合软件工程中,好的构件体系架构是决定软件系统开发成败的关键。一个软件系统的体系结构定义了组成系统的构件与构件之间相互作用的关系。体系结构是系统实现的蓝图,为构件的集成组装提供基础和上下文。

  1.构件体系架构研究

  目前对构件体系架构的研究方兴未艾,人们对构件体系架构的认识也不尽统一。主要分为3种不同的体系结构类型:对象连接式体系架构( Object Connection Architecture),接口连接式体系架构(Interface Connection Architecture)和插头插座式体系架构(Plug and Socket Architecture),反映了人们对体系结构的不同认识以及它们在支持构件集成时的不同方式。

  1.1.对象连接式体系架构

  在这种类型的体系结构中,构件的接口只定义了其对外提供的服务,而没有定义构件对外要求的服务,其中以面向对象中的对象接口为典型代表,所以称这种类型的体系结构为对象连接式体系结构。这种接口定义的非对称性使得构件在集成时,构件对外要求的服务被隐藏在代码的实现细节中,即构件之间的连接关系无法直接在接口出定义,只能是从一个构件的实现到另一个构件接口。于是:

  1)当一个构件接口发生改变时,必须检查系统中每个构件的实现细节,才能发现受此改变而影响到的构件;

  2)即时符合相同接口的构件也不能相互替换,因为新构件未必保持旧构件对其他构件的使用关系

  在这种类型的体系结构中,一个构件同其他构件的集成信息被固定在构件的实现中。构件难以适应环境的变化,因而难以复用。究其原因,对象接口对外隐藏了太多的有用信息,无法满足接口处集成的需求。

  1.2.接口连接式体系架构

  在这种类型的体系结构中,构件的接口不但定义了对外提供的功能,而且定义了其要求的外部功能,从而显示地表达了构件对环境的依赖,提高了构件接口规约的表达能力。构件的接口定义了所有对外交互的信息,构件在实现时不是直接使用其他构件提供的功能,而是使用它在接口处定义的对外要求的功能。构件之间的连接是在所要求的功能和所提供的功能之间进行匹配,因此,通过接口就可以定义系统中构件之间的所有连接。这样,就把上一种体系结构类型中构件之间的固定连接方式变成灵活的连接方式,降低了构件之间的依赖性,提高了构件的独立性和复用性。

  1.3.插头插座式体系架构

  在接口连接式体系结构中,接口定义满足通信完整性,可以较好地支持接口处的构件集成,但是当接口定义的功能数量很大时,带来了规模上的问题。在接口处标明构件要求的功能更是加剧了这种严峻的形势,而一个功能又往往同几个构件要求的功能连接起来,所以连接的数目也非常大。

  插头插座式体系结构是接口连接式体系结构的一个特例,为了解决构件接口中的功能和接口连接的规模问题,考虑到构件之间的通信往往涉及到构件接口中功能的成组连接,并且在这组功能之间通常存在着一定的语义约束关系,例如使用顺序和数据流协议等,通过把这样的彼此间关系紧密的功能组织成组,并封装为服务,使得接口中直接保护的内容减少,降低了接口中功能的规模。只有在两个对偶的服务之间才可以连接,对偶的服务是指两个服务所包括的功能完全相同,但其中提供的功能和需要的功能恰好方向相反,这样就进一步降低了接口连接的规模,并且易于检查两个对偶的服务之间的连接的正确性。

  从以上的讨论可以看出,第2种和第3种体系结构类型具有较好的性质,表现在构件集成时,不必关心内部的实现细节,而且支持构件在规约层次上的集成。

  2.嵌入式系统集成框架

  针对嵌入式系统领域,构件之间的大数据流和状态转变以及实时性特点,插头插座式的体系结构更适合嵌入式系统特点,因此本文提出了适合嵌入式系统的构件集成框架。如图1所示

  首先通过编辑器进行源代码开发,定义系统中的构件模型及构件描述语言,然后将其通过构件库管理器存入构件库,并可在可复用构件库中查找符合要求的构件。最后,通过配置器把这些满足需求的构件组装起来,生成新的应用系统。

  图1构件集成框架

  从上述分析可以看出,构件系统,构件及接口描述和构件库是构件集成框架中的主要组成部分,也是嵌入式构件研究的主要内容。

  3.关键技术分析

  1)构件定义及其结构

  构件中将构件定义为自包含的、可编程的、与语言无关的代码片段。它是由类组成的,和普通类不同的是构件对类进行了封装,并提供了一组接口,将实现与定义分离。构件与接口相互独立,是接口功能的具体实现者。构件之间通过接口通信,互相协作完成软件功能。而基于嵌入式系统的系统要求和通用构件模型的特点,将通用构件模型直接应用于嵌入式系统软件开发是不可能的,因此下面对嵌入式系统构件进行了形式化定义:

  一个嵌入式系统构件X可表示成一个五元组,其中: I(X)是服务响应接口,C(X)为客户请求接口,M(X)={m1 ,m2 ,m3 …., mn }是所包含的子构件集合,A(X)是属性特征信息,S(X)表示状态行为。如图2所示。

  图2 构件结构

  一个构件可以支持多个不同的接口,这些接口刻画了构件对外提供的服务以及要求的环境服务,体现了该构件同环境的交互。构件接收到外部事件消息后,根据当前所处的具体状态,在构件内部进行状态变迁,实现对事件的响应。构件实现的功能属性以及描述属性、约束属性、配置属性和服务质量(QoS)属性等非功能属性。

  2)构件描述基本原则

  构件描述语言是建立在构件模型上,通过描述构件接口的语法和语义向外界提供构件的结构和行为信息,使构件的使用者不必关心其内部细节。构件描述采用基于构件的系统描述语言。基于构件的系统描述语言将软件系统描述成一种是由许多以特定形式相互作用的特殊软件实体构造,组成的组织或系统。

嵌入式构件描述语言根据数控系统的功能任务和连接关系的复杂程度,将构件分为原子构件、复合构件和基于活动对象的构件三种,原子构件是在开发中无需再分的最小基本单元,复合构件是由一组关系紧密、相互协作的成员构件复合从而实现基本的功能单元。而活动对象构件是基于数控线程任务的描述语言层次上表达了成员构件之间的粗粒度构件组合。因此嵌入式系统构件的描述必需考虑到以下几个基本原则:

  n嵌入式系统构件的描述语言和实现相分离;

  n接口定义和构件描述语言相分离:构件和接口之间是多对多的关系,即一个构件可以提供一个或多个接口,而不同的构件又可以提供同样的接口;

  n数据流和信息流相分离;

  n构件描述语言的无嵌套:类似于C语言中的函数定义,而不象Pascal中的子程序嵌套定义,以此提高构件的独立性和可复用性;

  n对于嵌入式系统和组成系统的活动对象构件以至于原子构件进行统一的描述;

  n活动对象构件和复合构件的结构部分定义成员构件之间的连接关系。

  3)构件库模型结构

  嵌入式系统开发不仅和具体应用相关,而且和开发工具、开发环境、处理器等平台因素密切相关。而且随着复用实践的深入,产品开发企业内部将会积累大量自主开发的构件、购买的商业构件及其它组织开发的构件。这些可复用构件构成了庞大的企业资产,,而构件库提供的分类、管理、检索构件资产的基本功能为构件在领域应用中正确的实现和复用提供基础。

  目前,国内外学术界对构件库及其相关问题进行比较深入的研究,如北大西洋公约组织(North Atlantic Treaty OrgaNIzation, NATO)制定了《可复用软件构件库管理指南》、欧盟信息技术计划组织(European Strategic Program for Information Technology, ESPRIT)提出的REBOOT构件系统、卡内基梅隆大学软件工程研究所提出的Agora构件搜索引擎、国内北京大学软件工程研究所开发的青鸟构件库管理系统。这些组织都是针对通用领域构件库进行研究,尽管在构件库的体系结构、开发方法、构件的标识和检索方面都取得了不少成果,为构件库的实际应用奠定了基础。但是由于构件库的组织管理与领域构件的分类、表示和检索方法密切相关,通用构件库往往无法满足不同领域对构件库的需求,需要结合领域和领域构件的特点,对领域构件库进行研究。

  嵌入式系统构件库是专用的构件库,其具有构件的特征描述、检索和存储的功能。如图3所示。

  图3 构件库模型结构

  嵌入式构件管理子系统通过构件的表示模型对领域构件的特征进行抽取和保存,并实现对嵌入式系统构件库进行添加、修改、删除领域构件等操作。构件查询子系统把用户的查询条件与构件提取模型进行匹配,提取符合查询条件的领域构件。构件配置子系统根据应用需求将从构件库中提取的构件进行参数配置、功能选取。

  4.结论

  随着嵌入式产品市场的迅速发展,全球嵌入式产品市场的竞争也日趋激烈,嵌入式产品的开发成本、开发周期、质量显得越来越重要。传统的嵌入式软件的开发方式难以解决面临的新问题,而非嵌入式平台上基于组件的软件开发方式又难以直接运用于嵌入式软件的开发过程,这使得基于构件的嵌入式软件技术成为需要。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅