组件技术及其在嵌入式系统设计中的应用.docx
组件技术及其在嵌入式系统设计中的应用 ronggang 导语:讨论了将组件技术应用于嵌入式系统开发的必要性,接着分析了为支持这种新的开发技术,需要引入新的嵌入式操纵系统体系构造。最后以一个实例来展示基于组件的嵌入式系统开发 摘 要:首先描绘了组件产生的技术背景,带来的重大影响和目前的研究情况。讨论了将组件技术应用于嵌入式系统开发的必要性,接着分析了为支持这种新的开发技术,需要引入新的嵌入式操纵系统体系构造。最后以一个实例来展示基于组件的嵌入式系统开发。 关键词:组件 嵌入式系统 体系构造 微内核1 组件技术分析 1.1 组件技术产生背景 为了知足人们对于软件消费率、可靠性、易维护性、易治理等方面的更高、更快、更强的迫切需求,研究人员不仅引入了软件工程的概念,而且也引入了面向对象这种不同于传统软件开发的新的开发思维,并且将它应用于软件生命周期的各个阶段从分析到编码。它被以为是解决“软件危机的最正确对策。但随着互联网应用时代的到来,应用需求的不断进步以及应用系统的日趋复杂化1,人们发现这种传统的面向对象技术已经不能知足需求了,主要原因有:从抽象程度来看,面向对象技术已经到达类级重用,但重用粒度太小,不能解决异构互操纵问题和效率更高的重用。而组件是对传统面向对象技术的扩展,将抽象程度进步到了更高的层次。它是对一组相关类的组合进展封装,并代表完成一个或者多个功能的特定效劳。此外,组件不仅仅是对代码的封装,它也可以对软件体系构造、测试用例、设计文档、分析文档和领域知识等进展封装。因此,从这个意义上来讲,组件本身具有更广泛的含义,也具有更灵敏的重用粒度。 1.2 组件技术产生的重要影响 网络时代的根底技术将有如下开展2:1应用重点将由基于桌面的应用转移到基于网络的应用;2操纵系统技术开展趋势将由面向桌面的系统转移到面向网络的系统;3网络编程技术将由面向对象编程开展为面向组件编程。组件技术的运用将促进网络应用模型的改变。Web效劳平台将成为下一代的因特网计算模型,其主要特征:应用软件将由包含自描绘信息元数据的组件组成;系统根据组件的自描绘信息动态生成中间件,建立用户与组件的联络管道,实现组件的自动加载;组件可以通过网络获得,可以独立晋级。网络环境下以组件化软件为根底的“客户-中间件-效劳器三层构造可以很好地解决分布式处理、信息平安、软件晋级、软件产业化等技术和工程方面的问题。基于组件的软件开发将成为社会化的软件开发方法,它使得开发者可以将不同语言、不同开发商提供的组件组合在一起构造新的软件系统。因此,方便地解决了开发异构系统、分布式系统等复杂系统时带来的种种难题。 传统应用软件的开发一般包括需求分析、设计、编码、调试、测试和维护等阶段,但基于组件的软件开发经过却与此不同3 ,如图1。 align=center图1 基于组件的软件开发经过/align 在需求分析阶段,除了需要考虑系统的功能性和非功能性需求外,还必须从基于组件技术的角度出发,发现并抽取出系统中的共性局部和可变局部,进而形成领域通用组件和专用组件。体系构造设计阶段将在前面工作的根底上建立各个组件以及组件之间的联络。然后软件设计者通过组件库或者定制领域通用组件或者定制领域专用组件来获得系统所需的组件。其中,领域通用组件可以为以后一样领域应用程序的开发继续提供效劳,进而到达复用的目的。因此,基于组件技术的软件开发将具有更高的软件消费率,将成为实现软件产业化的最正确途径。 1.3 组件技术研究现状 近年来,组件技术的研究获得了较大进展4 5,对软件系统的开发提供了有力的支持,出现了LIL、CKL等多种组件描绘语言,Powerbuilder、Delphi等组件语言。目前主流的软件组件技术标准有:微软提出的COM/COM+、SUN公司提出的JavaBean/EJB、OMG提出的Corba。它们为应用软件的开发提供了可移植性、异构性的实现环境和强健平台,完毕了面向对象中的开发语言混乱的场面,解决软件复用在通讯、互操纵等环境异构的瓶颈问题。研究理论说明,软件复用在特定领域更轻易获得成功,因此特定领域的软件复用研究得到了高度重视,特定领域的组件技术及其应用研究也成为组件技术的研究热门。 但是设计组件时,它的粒度该怎样把握是一个值得研究的问题,它将影响整个软件系统以及以后的重用6 7。假如粒度太大,固然功能较多,但接口较复杂且不易修改,因此不易重用;而假如粒度太小,固然功能单一,接口简单且易于修改、易于重用,但整个软件系统中各个组件之间的关系将显得更为复杂。因此,当设计一个软件系统时,应当在大粒度和小粒度的选择和设计中进展很好的权衡。目前,已经有这方面的研究,如可变粒度的软件开发或者治理工具。相信不久的将来,基于组件的软件开发工具可以为开发人员提供这方面的成熟支持。 2 嵌入式系统开发 2.1 存在的问题2 互联网应用的兴起使计算形式继主机计算和桌面计算之后进入一种全新的形式普适计算形式。这种新型计算形式的含义特别广泛,涉及的技术包括挪动通讯技术、网络技术、传感器技术、分布式技术、嵌入式技术等。它主要针对挪动设备,比方信息家电或者某种嵌入式设备,如掌上电脑、BP机、车载智能设备、笔记本计算机、手表、智能卡、智能手机具有掌上电脑的一局部功能、机顶盒、POS销售机、屏幕 除了普通话机的功能还可以阅读因特网等新一代智能设备。因此,嵌入式技术的开展将促进普适技术的成熟。嵌入式技术的开展主要表如今以下几个方面:1底层硬件的设计,包括集成度、功能、能耗等;2嵌入式操纵系统,包括实时性、可靠性、平安性等;3高层应用的开发,主要包括开发工具、应用的可重用性等。但目前嵌入式系统的开发存在以下问题:1、硬件系统根据特定的应用进展定制,一般不能方便地应用到其他的系统中;2、应用程序的开发直接基于操纵系统之上,缺乏跨平台的开发工具; 3、应用程序的开发一般是从“零开场的。因此,导致了系统开发周期长,开发费用大,可移植性差,可靠性低等问题。尤其在Internet时代,应用程序的功能将更加丰富和灵敏,系统也将变得更为复杂,因此上述缺乏将表现得更为突出。 2.2 嵌入式系统开发的开展 为了知足嵌入式系统快速增长的需要以及解决传统开发方法中存在的缺乏,我们将组件技术引入嵌入式系统的开发中。但目前绝大多数的嵌入式操纵系统存在以下问题:1以一体化内核的方式来实现,如linux将很多常用的但非根本的效劳直接集成到内核中如tcp/ip协议等,因此将使内核显得过于庞大。固然linux内核可以通过定制来使其变得更为小巧和公道,但每次内核的晋级和功能的增加/裁减都需要对整个内核进展重新的编译,导致系统缺乏灵敏性,无法实现对内核的run-time时晋级。2缺乏对面向组件编程方式提供直接支持。 align=center图2 新型的嵌入式操纵系统体系构造/align 为了更好地支持组件在嵌入式领域的应用, 我们需要一种新的嵌入式操纵系统的体系构造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“基于阅读器技术的用户界面组件。2PDA框架。3多媒体框架。4网络功能框架。领域专用组件有:节能保护组件。整个软件系统的体系构造如图3。 align=center图3 基于组件的软件体系构造实例/align 该体系构造由阅读器界面通用组件、PDA框架、多媒体框架和网络功能框架等组成。其中,各个框架又包含假设干粒度更小的组件或者框架。例PAD框架既包含备忘录组件又包含粒度更小的游戏框架。从复用角度看7,框架本身也属于组件,但它的粒度更大,因此整个系统中各局部之间的关系显得较为简单和明晰。尤其对于复杂的系统,组件粒度的选择很重要,需要在易于复用和关系简单化这二者中进展很好的权衡。 其中以阅读器为交互式操纵界面,既便于用户把握,又为程序开发提供了统一标准,也是将来网络应用模型的主要特征之一。在这种新的应用形式下,“阅读器实际上只是作为一个容器,它是一个可执行文件,但本身非常简单,不为用户提供给用功能,而只是提供组件运行环境。 自动下载组件可以实现系统的在线晋级。例如,假如硬件系统支持的话,可以将SMS组件晋级为MMS组件。此外,为了平安起见,可以为系统参加新的功能,如增加“来电防火墙组件。 5 完毕语 基于组件的软件开发是一种全新的网络编程方式。组件技术的开展与应用将使得软件系统的开发更自然、更高效、更灵敏。十分地,基于组件技术进展嵌入式系统开发有着重要的意义,将完毕其传统开发各自为战的时代,将促进嵌入式系统在网络时代更为广泛和深化的应用。本文创新点:将组件技术应用于嵌入式系统的开发,使嵌入式系统的开发更加快捷和高效。 1.Crnkovic I.Component-Based software engineeringNew challenges in software developmentJ.Software Focus.2001;24: 127-133 2.陈榕.中间件技术在嵌入式操纵系统中的应用C. In: Proc. of Workshop on Embedded System, In conjunction with the ICYCS 2001 The Sixth International Conference for Young Computer Scientists, 2001:22-23 3.徐建民.软构件技术在信息系统开发中的应用研究J.微机开展,2003; 133 4.Xia Cai, Michael R Lyu, Kam-Fai Wong, Roy Ko. Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes C. In: Proceedings of the Seventh Asia-Pacific Software Engineering Conference APSEC. 00. 2000: 372-379. 5.Ganesan R, Sengupta S. O2BC: A technique for the design of component-based applicationsC. In: Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Language and Systems. IEEE Computer Society Press, 2001:46-55. 6.张世琨,张文娟,常欣,王立福,杨芙清.基于软件体系构造的可复用构件制作和组装J.软件学报,2000;129:1351-1359 7.杨芙清.软件复用与软构件技术J.电子学报,1999;2:56 8. 黄布毅,张晓华 家庭网络中央控制器体系构造的研究.微计算机信息;2005.10;114-116