《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 组件技术及其应用在嵌入式系统设计中

组件技术及其应用在嵌入式系统设计中

2008-08-05
作者:来源:中国工控展览网

1 组件技术分析
  

1.1 组件技术产生背景
  

为了满足人们对于软件生产率、可靠性、易维护性、易管理等方面的更高、更快、更强的迫切需求,研究人员不仅引入了软件工程的概念,而且也引入了面向对象这种不同于传统软件开发" title="软件开发">软件开发的新的开发思维,并且将它应用于软件生命周期的各个阶段―从分析到编码。它被认为是解决“软件危机”的最佳对策。但随着互联网应用时代的到来,应用需求的不断提高以及应用系统的日趋复杂化[1],人们发现这种传统的面向对象技术已经不能满足需求了,主要原因有:从抽象程度来看,面向对象技术已经达到类级重用,但重用粒度太小,不能解决异构互操作问题和效率更高的重用。而组件是对传统面向对象技术的扩展,将抽象程度提高到了更高的层次。它是对一组相关类的组合进行封装,并代表完成一个或多个功能的特定服务。此外,组件不仅仅是对代码的封装,它也可以对软件体系结构、测试用例、设计文档、分析文档和领域知识等进行封装。因此,从这个意义上来讲,组件本身具有更广泛的含义,也具有更灵活的重用粒度。
  

1.2 组件技术产生的重要影响
  

网络时代的基础技术将有如下发展[2]:(1)应用重点将由基于桌面的应用转移到基于网络的应用;(2)操作系统技术发展趋势将由面向桌面的系统转移到面向网络的系统;(3)网络编程技术将由面向对象编程发展为面向组件编程。组件技术的运用将促进网络应用模型的改变。Web服务平台将成为下一代的因特网计算模型,其主要特征:应用软件将由包含自描述信息(元数据)的组件组成;系统根据组件的自描述信息动态生成中间件,建立用户与组件的联系管道,实现组件的自动加载;组件可以通过网络获得,可以独立升级。网络环境下以组件化软件为基础的“客户-中间件-服务器”三层结构可以很好地解决分布式处理、信息安全、软件升级、软件产业化等技术和工程方面的问题。基于组件的软件开发将成为社会化的软件开发方法,它使得开发者可以将不同语言、不同开发商提供的组件组合在一起构造新的软件系统" title="软件系统">软件系统。因此,方便地解决了开发异构系统、分布式系统等复杂系统时带来的种种难题。
  

传统应用软件的开发一般包括需求分析、设计、编码、调试、测试和维护等阶段,但基于组件的软件开发过程却与此不同[3]
  

在需求分析阶段,除了需要考虑系统的功能性和非功能性需求外,还必须从基于组件技术的角度出发,发现并抽取出系统中的共性部分和可变部分,从而形成领域通用组件和专用组件。体系结构设计阶段将在前面工作的基础上建立各个组件以及组件之间的联系。然后软件设计者通过组件库或定制领域通用组件或定制领域专用组件来获得系统所需的组件。其中,领域通用组件可以为以后相同领域应用程序的开发继续提供服务,从而达到复用的目的。因此,基于组件技术的软件开发将具有更高的软件生产率,将成为实现软件产业化的最佳途径。
  

1.3 组件技术研究现状
  

近年来,组件技术的研究取得了较大进展[4] [5],对软件系统的开发提供了有力的支持,出现了LIL、CKL等多种组件描述语言,Powerbuilder、Delphi等组件语言。目前主流的软件组件技术标准有:微软提出的COM/COM+、SUN公司提出的JavaBean/EJB、OMG提出的Corba。它们为应用软件的开发提供了可移植性、异构性的实现环境和健壮平台,结束了面向对象中的开发语言混乱的局面,解决软件复用在通信、互操作等环境异构的瓶颈问题。研究实践表明,软件复用在特定领域更容易获得成功,因此特定领域的软件复用研究得到了高度重视,特定领域的组件技术及其应用研究也成为组件技术的研究热点。
  

但是设计组件时,它的粒度该如何把握是一个值得研究的问题,它将影响整个软件系统以及以后的重用[6] [7]。如果粒度太大,虽然功能较多,但接口较复杂且不易修改,因而不易重用;而如果粒度太小,虽然功能单一,接口简单且易于修改、易于重用,但整个软件系统中各个组件之间的关系将显得更为复杂。因而,当设计一个软件系统时,应当在大粒度和小粒度的选择和设计中进行很好的权衡。目前,已经有这方面的研究,如可变粒度的软件开发或管理工具。相信不久的将来,基于组件的软件开发工具可以为开发人员提供这方面的成熟支持。
  

嵌入式系统开发
  

2.1 存在的问题[2]
  

互联网应用的兴起使计算模式继主机计算和桌面计算之后进入一种全新的模式―普适计算模式。这种新型计算模式的含义十分广泛,涉及的技术包括移动通信技术、网络技术、传感器技术、分布式技术、嵌入式技术等。它主要针对移动设备,比如信息家电或某种嵌入式设备,如掌上电脑、BP机、车载智能设备、笔记本计算机、手表、智能卡、智能手机(具有掌上电脑的一部分功能)、机顶盒、POS销售机、屏幕电话(除了普通话机的功能还可以浏览因特网)等新一代智能设备。因此,嵌入式技术的发展将促进普适技术的成熟。嵌入式技术的发展主要表现在下列几个方面:(1)底层硬件的设计,包括集成度、功能、能耗等;(2)嵌入式操作系统,包括实时性、可靠性、安全性等;(3)高层应用的开发,主要包括开发工具、应用的可重用性等。但目前嵌入式系统的开发存在下列问题:1、硬件系统根据特定的应用进行定制,一般不能方便地应用到其他的系统中;2、应用程序的开发直接基于操作系统之上,缺乏跨平台的开发工具; 3、应用程序的开发一般是从“零”开始的。因此,导致了系统开发" title="系统开发">系统开发周期长,开发费用大,可移植性差,可靠性低等问题。尤其在Internet时代,应用程序的功能将更加丰富和灵活,系统也将变得更为复杂,因此上述不足将表现得更为突出。
  

2.2 嵌入式系统开发的发展
  

为了满足嵌入式系统快速增长的需要以及解决传统开发方法中存在的不足,我们将组件技术引入嵌入式系统的开发中。但目前绝大多数的嵌入式操作系统存在下列问题:(1)以一体化内核的方式来实现,如linux将许多常用的但非基本的服务直接集成到内核中(如tcp/ip协议等),因此将使内核显得过于庞大。虽然linux内核可以通过定制来使其变得更为小巧和合理,但每次内核的升级和功能的增加/裁减都需要对整个内核进行重新的编译,导致系统缺乏灵活性,无法实现对内核的run-time时升级。(2)缺乏对面向组件编程方式提供直接支持。
  

为了更好地支持组件在嵌入式领域的应用, 我们需要一种新的嵌入式操作系统的体系结构[2] [4] [6](见图2),具体描述如下:(1)将传统的一体化内核进行分层,形成微内核层和系统扩展服务层。除了将基本服务――硬件抽象、内存管理、进行管理与通信――集成到内核中,其余的系统服务,如网络服务、设备驱动、文件系统等,将作为扩展服务。底层功能的实现机制决定了系统性能。如进程调度算法和进行之间的通信管理机制决定了系统的运行效率和实时性等因素。第二层使得系统变得更为灵活,它的改变对底层而言是透明的。因此,无论从功能升级还是新功能的加入方面来看,系统将变得更加灵活,内核可以实现run-time时升级,而且为实现真正的软硬件热插拔和移动计算提供了可能。此外,系统将更加可靠、稳定和高效。既适合于低端嵌入式应用,也适合于高端应用。(2)提供对通用组件运行环境的直接支持,即实现虚拟机[2]的概念。此时基于组件开发的应用程序并不是直接基于底层操作系统,因此具有很好的移植性。
  

3 基于组件技术的嵌入式系统开发过程
  

基于组件技术的嵌入式系统的开发过程如下:
  

(1)系统需求分析
  

包括功能性需求与非功能性需求分析。确定哪些功能由硬件模块实现,哪些功能由软件模块实现。结合领域知识分析并提取公共的软硬件部分以及可变的软硬件部分。
  

(2)设计系统体系结构
  

在前一阶段工作的基础上进行硬件系统体系结构和软件系统体系结构的设计。第一、硬件系统的开发同样可以借鉴组件技术的思维,即基于硬组件技术,将其设计为模块化系统,由硬件供应商提供基础组件,如8位/16位/32位CPU核、USB核、CAN核、DSP核,MODEM核,FAX核,甚至粒度更大的SoC芯片。硬件工程师将根据需要对硬组件进行选择,或自行开发。第二、软件系统的开发有:选择支持组件技术的嵌入式操作系统、确定系统级的扩展服务组件、确定应用级的领域通用组件和专用组件,确定各个组件之间的关系[2] [6]。
  

(3)通用的组件开发平台的选择
  

(4)组件的选择、开发、集成以及测试。
  

由此可见,将来嵌入式系统的开发工作量主要集中在:1、硬件系统――基于硬组件、扩展组件的选择与集成,特殊组件的开发;2、系统软件――扩展服务组件的选择或开发;3、应用程序――组件的选择或开发,还有最后的集成与测试。
  

4 基于组件的嵌入式系统开发实例分析
  

目前,很多智能消费设备提供了一些相似的功能,如在多媒体、游戏等方面。因此这些领域通用功能可以在多个应用之间实现共享。下面以一款智能终端为例来说明如何实现基于组件的体系结构,它体现了组件技术与嵌入式系统开发相结合的魅力所在,是传统的嵌入式系统开发方法所无法比拟的,是一种更为自然的描述和设计方式。该智能终端具有如下功能性需求:(1)具有一般PDA的功能,如备忘录、字典、电话号码、游戏等;(2)下载/播放音乐(3)下载或在线视频播放(4)自动下载和系统在线升级、收发邮件、SMS。非功能性需要有:节能保护。
  

根据上述需求描述,我们可以提取出下列领域通用组件:(1)“基于浏览器技术的用户界面”组件。(2)PDA框架。(3)多媒体框架。(4)网络功能框架。领域专用组件有:节能保护组件。整个软件系统的体系结构。
  

该体系结构由浏览器界面通用组件、PDA框架、多媒体框架和网络功能框架等组成。其中,各个框架又包含若干粒度更小的组件或框架。例PAD框架既包含备忘录组件又包含粒度更小的游戏框架。从复用角度看[7],框架本身也属于组件,但它的粒度更大,因而整个系统中各部分之间的关系显得较为简单和清晰。尤其对于复杂的系统,组件粒度的选择很重要,需要在易于复用和关系简单化这二者中进行很好的权衡。
  

其中以浏览器为交互式操作界面,既便于用户掌握,又为程序开发提供了统一标准,也是将来网络应用模型的主要特征之一。在这种新的应用模式下,“浏览器”实际上只是作为一个容器,它是一个可执行文件,但本身非常简单,不为用户提供应用功能,而只是提供组件运行环境。
  

自动下载组件可以实现系统的在线升级。例如,如果硬件系统支持的话,可以将SMS组件升级为MMS组件。此外,为了安全起见,可以为系统加入新的功能,如增加“来电防火墙”组件。
  

5 结束语
  

基于组件的软件开发是一种全新的网络编程方式。组件技术的发展与应用将使得软件系统的开发更自然、更高效、更灵活。特别地,基于组件技术进行嵌入式系统开发有着重要的意义,将结束其传统开发各自为战的时代,将促进嵌入式系统在网络时代更为广泛和深入的应用。本文作者创新点:将组件技术应用于嵌入式系统的开发,使嵌入式系统的开发更加快捷和高效。

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。