APP下载

嵌入式构件技术探究

2014-12-31杨晓华

电脑知识与技术 2014年35期
关键词:远程控制嵌入式系统插件

杨晓华

摘要:嵌入式网络视频监控系统是新一代的监控系统,它体积小易于布控、功耗低、稳定性高、具有良好的性价比,与传统的基于PC机的监控系统相比具有强大的优势。随着硬件的变革,嵌入式网络视频监控软件系统也需要从基于PC机的开发转移到基于ARM的嵌入式系统的开发上,嵌入式系统有不同于通用PC的诸多新特点,对嵌入式系统下视频监控系统开发提出新的要求。

关键词:嵌入式系统;远程控制;软构件;插件;构件模型

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)35-8396-02

嵌入式软件系统日益复杂,功能日益强大,基于构件的软件开发(CBSD)方法,能够提高嵌入式软件的复用率和生命周期,大大缩减开发时间和开发费用,是嵌入式软件设计的新方向。

构件化的软件开发方法是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS(Commercial-Off-the-Shelf)构件,也可以是通过其它途径获得的构件(如自行开发)。CBSD体现了“购买而不是重新构造”的哲学,将软件开发的重点从程序编写转移到了基于已有构件的组装,以更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担 ,从而降低软件开发的费用。

软件复用已经是软件工程研究的主流,被视为是使软件开发真正走上工程化和产业化道路的希望。人们在实践中认识到软件复用是一个涉及到技术、方法学、管理和文化等多个方面的复杂问题。除了日常隐含发生的对专业知识和经验的复用之外,最为典型的复用活动表现为借鉴、理解、修改和集装各种不同抽象层次 (从产品的概念、系统模型和违约到程序源码甚至目标码 )、不同粒度 (从系统构架、框架、类簇到代码片断 )、不同形式 (黑盒构造块、生成器、模板、设计模式等 )的可复用软件构件来构造新系统和实现系统演化过程。

构件(component)是可复用的软件组成成份,可被用来构造其他软件。构件具有相对独立的功能和可复用价值。它可以是被封装的对象类、类树、一些功能模块、软件框架 (framwork)、软件构架 (或体系结构Architectural)、文档、分析文件、设计模式 (Pattern)等。构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。

软构件技术是支持软件复用的核心技术,其主要研究内容包括:

1) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件;

2) 构件模型:研究构件的本质特征及构件间的关系;主要的模型有3C模型,北京大学提出的青鸟构件模型等

3) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题;

4) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支持构件的有效管理;

5) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装和基于构件对象互操作性的运行级组装;

6) 标准化:构件模型的标准化和构件库系统的标准化。

从软件开发方法上,CBSD引导软件开发从应用系统开发转变为应用系统集成。在基于构件的软件系统开发时,就要对一个新的功能模块的设计考虑其重用性。与传统的嵌入式软件不同,构件化的嵌入式软件是由构件构成的,这些构件的一个或者几个组合成一个完整的应用系统;而且,新的应用也可以使用已有的构件,从而实现嵌入式软件的重复利用。

接口和框架是软构件的基本结构组成,利用构件开发应用系统就是对构件接口、构件上下文以及框架环境一致性的逐渐探索过程。构件间信息通信的机制就是构件接口,对构件接口进行定义是CBSD其中的关键技术;构件组装技术是基于构件的软件开发的核心技术。

构件的接口可以理解为构件的访问点,原始的接口是特征的集合,一个特征可以是一个数据类型,也可以是一个抽象方法。构件的特性从接口信息表达,它对于有效管理和使用构件是非常重要的,优质的构件接口设计是降低构件之间耦合性的关键。一个构件不仅给外界提供服务接口,而且,还可能向其他构件提出接口要求。完美的构件模型应该具有服务接口和请求接口,实际的构件可以没有请求接口,但不能没有服务接口,没有请求接口的构件是一个不需要客户进行控制和定制的接口。

在嵌入式软构件的接口设计中,还要求有配置属性,这是用于改变构件功能和性能参数的接口。构件的配置要根据应用环境的需要,通过参数的改变,可以使构件具有个性化的灵活性。

如果要实现构件的价值,就必须经过组装应用于应用系统才行,构件组装是CBSD技术中的核心技术。目前构件的组装方法按对构件内部细节了解的程度分为黑盒子、白盒子和灰盒子。简单说,白盒子就是对用户公开的,黑盒子就是对用户保密的,灰盒子就是对用户有所保留又有所公开的。目前我们一般都是使用灰盒子。

有了构件,还需要组建构件管理库(component base management system ,CBMS),对构件进行观测、定制和测试是构件管理库要完成的功能,内容丰富、组织良好的构件库是软件重用的核心。组建构件管理库系统的要求包含:构件库的建立、存储和管理功能、构件组织、构件库定义功能、构件存取功能、构件库运行管理功能和维护以、支持构件组合。构件管理库系统的核心部分是构件库运行管理功能,它包含构件提取、构件执行、构件库内部维护等。

总之,良好的构件接口定义是构件可以方便复用的关键因素和基础,只有定义优质的构件的接口才能更好完成构件的组装和构件管理库系统的组建。

构件化软件开发方法强调真正的软件重用和高度的互操作性,它侧重于构件的组成和装配。利用这种方法来开发应用系统,特别是对于嵌入式系统开发来说,其优势是明显的,主要表现在以下几个方面。endprint

1) 构件化软件开发方法继承并发展了面向对象设计方法。构件化设计并没有摈弃面向对象的程序设计方法,而是在系统各个层面上利用了对象技术的优势。

2) 系统模块化。采用构件技术毫无疑问必须使系统模块化,模块化的软件工程带了得最大好处就是灵活、可重新配置、利于系统升级和维护。

3) 增加了系统的可靠性。由于每个构件在系统集成前都进行了充分的测试,提高了基于构件的系统可靠性。

4) 降低开发成本。嵌入式系统构件可以在不同的硬件系统中重复使用这些构件,降低后续系统开发的成本,良好的构件库是嵌入式系统开发的珍贵资源。

基于构件的软件开发促进了软件的模块化和复用能力,正在被逐渐应用于嵌入式系统。由于嵌入式系统资源受限的特性,嵌入构件除了具有传统构件的基本特征外(如:构件的实现与构件的接口定义被隔离的特性),与一般的软件构件相比它体现出了嵌入式构件的新特点:

1) 嵌入式软件开发者必须保证在低处理能力和有限的内存环境下系统执行的完整性和有效性。

2) 由于嵌入式目标系统系统比一般的企业软件具有更复杂的多样性,构件模型需要更加关注可复用的内核,因此,嵌入式系统构件结构和模型设计尽可能简单和轻型。

3) 以静态结构为主要特征(即编译时动态性),支持少量运行时的动态性。这意味着组件不能在运行时创建和销毁,也不能在运行时建立新的连接和断开已有的连接。

4) 另外由于嵌入系统的平台依赖性比较强,嵌入式构件被分为应用软件构件和系统构件。

随着嵌入式构件技术的不断发展,嵌入式构件模型作为基于构件的嵌入式系统开发的关键技术被广泛研究,许多构件模型被提出,目前影响比较大的嵌入式构件模型有以下几种:

1) MinimumCORBA:是OMG组织于2000年下半年推出的一种面向嵌入式系统应用的构件模型。它是CORBA模型面向嵌入式等资源受限系统进行的简化版本,删除了CORBA中体现组件动态的特性。它对于嵌入式系统开发仍然有许多不足如:运行时不需要的资源消耗依然存在,另外对于开发者来说系统限制太多,灵活性不够。

2) Koala:Koala 该模型于2000年由Rob van Ommering等提出,是Philips研究实验室的研究成果,该模型是面向电子消费品的嵌入式构件模型。组件被分别得进行设计,每个组件拥有与其它组件连接的接口,但接口是在配置时被绑定即组件的组装,仅在编译时和设计时的具有可扩展性[30]。

3) PECOS(Pervasive Component System):是由Michael Winter等在2002年提出的,该项目旨在利用构件技术来开发嵌入式系统,节省开发费用。在该模型中组件被定义为具有端口的黑盒子,在设计时组装,在运行时没有被组装的可能,也没有知识仓库支持。PECOS的构件模型是一个特定的专用构件模型,它的结构简单、支持设计时(design-time有时也称编译时)构件集成(这种构件又称为静态构件),适合于状态可预知和需求确定的小型的嵌入式构件系统开发。

通过上述构件模型分析,它们都有个共同的特点就是基本不支持运行时的动态性和可扩展性,基于上述构件模型开发的嵌入式目标系统不具有运行时的多态性和可扩展性。

参考文献:

[1] 高文国.基于ARM的嵌入式视频监控终端的设计与实现[D].北京:中国科学院研究生院,2006.

[2] 徐力,孔岩.视频监控系统的现状和发展趋势[J].软件开发与应用,2005(4):60-62.

[3] 王志坚,费玉奎,娄渊清.软件构件技术及其应用[M].北京:科学出版社,2005.

[4] 童恒庆,聂会琴,李锡品.CORBA/COM/EJB三种组件模型的分析与比较[J].计算机应用研究,2004(4):66- 67.

[5] 陈新,高凤梅,曹玲芝等.嵌入式数据库SQLite在电梯B/S监控中的应用[J].电子技术应用,2006(5):59-61.

[6] 周晓峰.基于语义的软件构件匹配方法及在水利领域中应用的研究[D].南京:河海大学,2006.

[7] 王克宏.认识基于构件的软件开发方法[EB/OL]. http://industry.ccidnet.com/art/3089/20060314/476481_1.html,2006-3-14.

[8] 刘芳,周兴社,任春香.Linux 下嵌入式软构件技术研究与实现[J].微电子学与计算机,2007,24(4):50-53.endprint

猜你喜欢

远程控制嵌入式系统插件
自编插件完善App Inventor与乐高机器人通信
基于jQUerY的自定义插件开发
水冷发射机冷却系统故障分析及解决方案
盐城地区设计项目与课堂远程互动的方式方法研究
基于GSM的远程控制系统
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨