收藏 分享(赏)

基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf

上传人:精品资料 文档编号:10214803 上传时间:2019-10-21 格式:PDF 页数:58 大小:10.88MB
下载 相关 举报
基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第1页
第1页 / 共58页
基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第2页
第2页 / 共58页
基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第3页
第3页 / 共58页
基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第4页
第4页 / 共58页
基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、武汉科技大学硕士学位论文基于中间件的嵌入式虚拟仪器集成开发环境的设计姓名:吴聪申请学位级别:硕士专业:计算机应用技术指导教师:闵华松20100428武汉科技大学硕士学位论文 第1页摘要虚拟仪器技术是模拟传统测试测量仪器,充分结合计算机的高效、精准的计算能力,运用软硬件相结合来实现传统仪器的功能的一种技术。它的优点是硬件体积小,计算分析的可靠性高,用软件实现了数据分析、数据显示的功能。要进行虚拟仪器的设计开发,最方便可行的是使用可视化开发环境进行二次开发。目前在PC环境下的虚拟仪器开发环境已经得到了比较完善的发展,但嵌入式领域下的虚拟仪器开发环境不多,原因是嵌入式环境资源少,开发难度大,并且每个

2、项目都是针对特定需求,功能专一,目前嵌入式环境下的虚拟仪器开发还没有完全发展起来。随着虚拟仪器技术广泛地应用于嵌入式系统领域,需要开发出能在嵌入式环境下使用的嵌入式虚拟仪器快速开发工具,以解决虚拟仪器在嵌入式环境下的开发不便的问题。本文通过使用CORBA中间件体系结构实现了嵌入式虚拟仪器的IDL设计,从而减弱了平台差异性,使开发出的虚拟仪器能够方便地移植到其他平台;基于I标准进行了可互换虚拟仪器控件的设计,从而使同类嵌入式虚拟仪器控件在特定条件下能够根据需要相互替换使用;根据信号槽机制,建立各类虚拟仪器控件的拼接联系,完成数据准确无误的流动;通过以上三部分内容完成多种嵌入式虚拟仪器中间件(EV

3、I)的设计,进而实现一个可以粘合这些嵌入式虚拟仪器控件的快速开发虚拟仪器的集成环境(EVIIDE),从而实现可视化的虚拟仪器开发。关键词:嵌入式虚拟仪器;IVI标准;CORBA中间件;信号槽机制第1I页 武汉科技大学硕士学位论文AbstractThe virtual instrument technology is a kind of technology which simulates the traditionalmeasmement machine,fully integrated the efficient and accurate calculations of the comput

4、ers,combines with the hardware and software to get to the function of traditional measurementmachineIt has a small size in hardware,much more reliability in calculation and analysisIt Callanalyze data and display data winl softwareUsing visual development environment for a secondary development is t

5、he most convenientand possible way to design and develop the virtual instrumentAt present the virtual instrumentis widely used in PC environment,but is not SO popular in the embedded field because of lackingof resource,difficult in development and its specificity needs and functionsCurrently theembe

6、dded virtual instrument is still on the wayAs the virtual instrument technology used widelyin the embedded system field,there is a need to develop a rapid embedded virtual instrumentdevelopment which is used in embedded system to solve the problems that virtual instrumentsdevelopment are inconvenien

7、t in embedded systemThrough the use of CORBA middleware architecture to achieve embedded virtualinstrument IDL design,it Can reduce the difference among platforms and make it convenient totransplant to other platformsIt designs the interchangeable virtual instrumental componentsbased on the WI stand

8、ards SO that the SalTle kind of the virtual instrumental components call bechanged by each other under specific conditionsAccording to the signal and plot mechanism,itcreates the connection between different components to send and receive the dataFrom thesethree parts this thesis designs many embedd

9、ed virtual instruments by components,and at lastdesigns a system which called Embedded Virtual Instruments Integrated Devdoped Environmentto achieve visualization of the virtual instrument developmentKeywords:Embedded virtual instrument;interchangeable virtual instruments standard;CORBAmiddleware;si

10、gnal and slot武汉科技大学硕士学位论文 第1页第一章绪论11本文研究背景随着测控测量技术的发展和计算机接口技术的发展,虚拟仪器已逐渐取代了传统仪器。虚拟仪器技术是指使用计算机平台,按照测试目标的需求来设计仪器的测试功能,这样就能充分利用计算机来实现和扩展传统仪器功能。通俗地说,虚拟仪器是在计算机的显示界面上模拟传统的仪器面板,当用户使用鼠标和键盘来对该软件进行操作时,就与在传统仪器上操作旋钮、开关等按键一样,然后由计算机软件程序完成传统仪器中由硬件电路完成的信号处理功能【。虚拟仪器技术将计算机的运算功能、各种数字信号的处理技术、多种软件工程方法综合起来,是未来测量测试仪器的发展方向

11、【2】【3】。与传统物理仪器设备相比,虚拟仪器基于PC技术,拥有很好的处理器运算功能和文件I0等资源【41,能进行复杂的信号数据分析能力,保证了其数据处理结果的精确性,而且随着互联网的快速发展虚拟仪器有着更强大的发展空间【51【6】。另外,传统仪器功能由各种各样的生产厂商定义,产品做出来就无法改变,而虚拟仪器的功能由软件定义,用户选择不同的软件就可以定义不同的虚拟仪器,因此虚拟仪器的扩展性和维护性较强,能以极少的硬件投资和软件升级来改进整个系统,不像传统仪器功能固定,若是更新就将只能替换整个仪器,造成浪费。而且,虚拟仪器将仪器的概念提到了软件上,用户不仅能使用别人开发好的仪器,还能使用别的公司

12、开发的工具,自己开发想要的特定功能的虚拟仪器。如今,虚拟仪器技术已广泛应用到测试测量、工业I0和控制等应用中【7】。虚拟仪器在pc下的发展已经比较完善,有较好的虚拟仪器软件平台供使用,例如NI公司的LabVIEW,惠普公司开发的基于HPIB、VXI等总线结构的可视化编程开发环境HPVEEt81,美国CEC公司开发的以时间驱动方式工作的数据采集软件包TestPoint等。而在恶劣环境下测试任务的实践过程中,基于pc和工控机的虚拟仪器暴露了很多缺点,如体积庞大、携带不便,它的主要存储介质是机械硬盘,因此抗震性差、稳定性差等191。随着嵌入式系统的不断发展,嵌入式系统的体积小、可靠性高等特点能够满足

13、实现工业现场和较差条件下的便携虚拟仪器的需要,同时它还能满足对虚拟仪器高精确度的要求。由于嵌入式虚拟仪器通常是针对特定领域特定应用的仪器,仍旧受到自身的限制,因此不足以灵活地解决不同的仪器需要【lo】。开发嵌入式虚拟仪器难度较大,因为平台异构性导致分布式应用开发越来越困难,而且语言多样性导致适用的语言不一定能用到当时的环境【l。目前嵌入式系统下开发虚拟仪器向着直观的设计环境,高层次地抽象整个系统,增加软件可复用性,图形化系统设计等几个方面来发展1121。随着嵌入式系统在虚拟仪器方面的广泛应用,系统间协同工作的需求日益普遍,应用范围也更加广阔,涉及到多种硬件平台、通信介质以及操作系统,软件开发往

14、往要求在这些异构的硬软件平台上运行。为了消除软硬件平台之间的异构性,本文引入了中问件(Middleware)概念。中间件属于可复用软件范畴【I 31,是一类独立的系统软件或服务程序,第2页 武汉科技大学硕士学位论文它介于操作系统和应用程序之间【141。基于中间件的应用程序可以较为容易地运行于各种操作系统和硬件平台之上,从而将应用程序的开发变得更加简捷、使产品的开放性和可移植性更科15】【16】。也就是说,中间件能为嵌入式虚拟仪器的开发提供跨操作系统和硬件平台,层次化,模块化和可扩展的接口【17】。随着嵌入式虚拟仪器应用的日益增多,如何提高开发效率成了一个需要解决的问题。集成开发环境(IDE)能

15、够方便用户的操作【18】,它提供可视化的表单、控件拖拽功能,使用户能方便地拼凑自己想要的控件,所见即所得,又能自动生成简单的框架代码,留出用户需要编写的代码区,极大地减少了用户的工作量【19l。IDE是一种计算机辅助设计工具,一般由基本工具,常用工具,可选工具等组成。比如说,编辑器,编译器,调试工具,仿真器等。目前虚拟仪器的集成开发平台主要是NI公司的LabVIEW和LabWindowsCVI。LabVIEW是NI公司设计的标准虚拟仪器开发平台。它是一个基于图形化编程语言G的虚拟仪器开发环境,对虚拟仪器软件进行图形化操作。LabVIEW带有大量数据采集、分析、显示、存储的函数库以及众多的程序开

16、发工具,还通过动态链接库DLL、共享库函数、AetiveX等提供了大量的外部代码接口。在调试方面,具有设置断电、单步运行等功能。LabWindowsCVlt20】是NI开发的32位,面向计算机测控领域的交互式C语言的集成开发环境,可以在多种操作系统下运行。它的集成化开发、交互式编程方法、丰富的功能面板和库函数大大增强了C语言的功能,为熟悉C的开发人员提供了一个提供了一个功能强大的集成开发环境。但是,在嵌入式虚拟仪器中的集成开发环境几乎没有,所以,本项目的最终目标是建立一个基于嵌入式虚拟仪器中间件的IDE。当然,IDE的建立相当繁琐,个人的能力是很难完成的,但是,可以在开源软件上进行扩展自己需要

17、的控件的属性和方法,从而改造出一个适合嵌入式虚拟仪器的集成开发环境。12国内外研究现状121国外研究现状虚拟仪器的开发系统主要有两类:一类是面向对象的非图形化开发环境,比如VisualC+,另一类是可视化的图形化开发环境,也称为G语言(graphical language)开发环境,比如说LabVIEW。图形化开发环境一般是针对虚拟仪器而建立的专有平台,除了提供可视化的编程界面外,而内聚了很多算法、开发工具、调试工具、函数库等等为开发提供便利的工具。因此以后的虚拟仪器将朝着图形化开发环境的方向发展。关于嵌入式虚拟仪器的研究,很多公司已完成相关产品。其中NI公司不仅将LabVIEW做成pc平台下

18、非常好的虚拟仪器丌发平台,而且还将虚拟仪器发展到嵌入式领域。NI图形化系统设计平台为嵌入式系统的设计提供了更好的设计方式,通过在设计早期将真实信号和硬件IO引入到设计流程中,从而及时验证和反馈设计的可行性【2。比如说,基于图形化系统设计平台在机器控制领域进行嵌入式设计的丌发案例:救生机器人蜘蛛设计,采用用于Blackfin处理器的LabVIEW嵌入式模块所提供的图形化编程环境,将图形化系统武汉科技大学硕士学位论文 第3页设计,整合高处理效能与极低的能源耗用模式,设计高机动性与高自由度的机器人,从而在严苛环境中执行重要的救生任务【22】。一些其它的公司也出了相关产品,比如美国福禄克手持示波器和超

19、级雷达探测器等产品。提到虚拟仪器开发平台软件,首屈一指的是美国NI公司的LabVlEW。LabVIEW全称为laboratory virtual instrument engineering workbencht23】,它分为用户界面软面板和图形代码程序框图两部分【241。软面板是用于人机交互的图形界面,集成了开关、旋钮、图形显示器等对象,程序框图代表了程序的源代码,包括各种函数、与软面板对象所对应的图标、以及他们之间的连线。LabVIEW内置了信号采集、测量分析、数据显示等功能,为用户开发虚拟仪器系统提供了很大的便利。自从NI公司推出虚拟仪器以来,许多其他国外著名仪器公司也开发了一些虚拟仪器

20、开发平台软件。Agilent Visual Engineering Environment(Agilent VEE)是一种用于仪表优化控制的图形语言。用户用鼠标从菜单中挑选出对象,然后将代表对象的图标按流程连接起来,即可产生程序,不必使用键盘,而程序也只是一张数据流程图,比传统的代码方式更便于使用和理解。Agilent VEE不但编程快速,而且有着良好的输入输出解决方案,能提供多种适合仪器使用的数据类型,提供数学分析能力,有方便的数据显示方式,易于生成报告,它还允许与其他语言混合编程。LabWindowsCVI是由NI公司推出的与LabVlEW相对应的虚拟仪器软件开发平台,它完整地集成了ANS

21、IC丌发环境,将C语言与用于数据采集、分析和显示的测量控制专业工具很好地结合起来,提供了许多实用的特性,更方便用户对虚拟仪器的开发。针对目前虚拟仪器硬件体系结构庞大,一种通过集成和构件化的新的技术应运而生,可以达到硬件小型化和软件构件化,使仪器具有较好的稳定性,互操作性,可扩展性和可维护性【251。122国内研究现状国内的一些科研机构也在进行嵌入式虚拟仪器软件平台的研究,例如吉林大学开发的Labscene图形化开发平刽261,能实现虚拟仪器的开发;重庆大学针对机械测量开发了一套图形化开发平台,称为VMIDS(Virtual Measurement Instrument Develop Syst

22、em)系统【驯J。它是由重庆大学秦树人教授提出并成功研制出的层次消息总线零编程的虚拟仪器开发系统,集成了非常多的机械信号处理算法,包括一个测控仪器软件模块化功能库与一个控件库,通过在VMIDS系统中以功能库和控件库为基础进行设计、调试从而形成所需的智能虚拟仪器控件,然后在仪器拼搭场中利用那些智能虚拟控件拼搭出用户自己所需要的虚拟仪器,无需通过编程。VMIDS尽可能将数据采集、处理、分析、显示等专业性的工作在内部解决,而留给用户所完成的工作都是较容易、轻松的任务,从而降低了对用户的要求,达到真正的零编程:浙江大学数字技术及仪器研究所在国家“九五”重点科技攻关项目的资助下,研制丌发了一个全中文界面

23、的、自主版权的图形化编程软件平台,并命名为Vpp2s】(Visual Programming Platform)。第4页 武汉科技大学硕士学位论文13选题的目的和意义本项目研究的关键问题是将利用中间件这种采用组件思想设计的软件,为嵌入式虚拟仪器的开发提供跨操作系统和跨硬件平台,层次化、模块化和可扩展的接口。只要保证中间件层对应用层的接口定义不变,可以不用重新编写或大范围地修改应用层的程序代码,只通过改变其中的配置参数,就将虚拟仪器的应用程序移植到不同的操作系统或硬件平台上。然后通过扩展,升级代码来开发一个快速开发辅助工具IDE,使得用户对嵌入式虚拟仪器的开发更加快速,高效,方便,并且节约成本。

24、目前虚拟仪器的开发在pc机下可以说已经比较完善,但是由于嵌入式系统下资源紧张,性能要求高,导致虚拟仪器在嵌入式系统下的开发难度较大。因此对嵌入式系统下的虚拟仪器集成开发环境的研究与设计有重要的意义。而目前虚拟仪器的开发环境都朝着图形化方向发展,可视化的图形化开发更适合人类习惯,方便用户进行虚拟仪器的构建。而基于控件的组装所需要的虚拟仪器的思想使得虚拟仪器的开发灵活机动,不死板;控件可随意添加与拆卸,使整个虚拟仪器的设计更为方便;其可互换功能使以前设计的虚拟仪器大部分部位可以重复使用,避免了重复劳动。而将中间件技术引入到嵌入式虚拟仪器控件类及接口设计中,只需保持中间件层对各应用层的接口不变,不需

25、重新修改应用层的程序就能方便地将应用程序移植到不同的操作系统和硬件平台上,由此更方便了嵌入式虚拟仪器的开发129】。14本文主要研究内容本文主要依托湖北省教育厅科研计划重点项目(20082010)“嵌入式虚拟仪器架构及中间件研究(D20081llO)”,通过对虚拟仪器控件的设计以及中问件研究,来完成嵌入式虚拟仪器集成开发环境的设计。本文以嵌入式虚拟仪器和中间件为核心,结合中间件接口标准规范CORBA、I可互换虚拟仪器驱动规范,结合硬件平台和设备运行环境特征,设计一个高性能、高可靠性、易移植、可定制、符合WI接口规范标准的嵌入式虚拟仪器中间件系统,满足工业现场环境或恶劣条件下的便携虚拟仪器的设计

26、需要,并最终提出符合条件的虚拟仪器的IDL文件格式,通过编译IDL文件直接生成可以使用的嵌入式虚拟仪器控件,添加嵌入式虚拟仪器对象的控件的属性和方法,最终实现一个快速开发的辅助工具IDE。这个集成开发环境能实现通过拖拉虚拟仪器的控件开发出可以在开发板的Linux环境下运行的虚拟仪器。15各章节安排本文第一章介绍了嵌入式虚拟仪器的当前国内外研究背景,并介绍了本文的组织结构。第二章介绍了基于CORBA中间件体系结构来设计嵌入式虚拟仪器控件继承分类关系,并设计了嵌入式虚拟仪器控件IDL。第三章根据WI标准规范,设计了嵌入式虚拟仪器控件类及接口标准规范。第四章介绍如何拼接各控件,形成仪器的组合设计方式

27、,并利用信武汉科技大学硕士学位论文 第5页号槽机制来实现数据流动,用户根据自己需要来构建虚拟仪器,在一次虚拟仪器组装中根据信号槽机制拼接数据产生,数据处理与分析,数据控制,数据显示等相关控件。第五章介绍了集成开发环境的图形化设计。最后的结论是基于IVI标准和中间件体系结构,设计了一个快速开发嵌入式虚拟仪器的集成开发环境。第6页 武汉科技大学硕士学位论文第二章构造嵌入式虚拟仪器中间件本文设计的嵌入式虚拟仪器集成开发环境(Embedded Virtual Instruments IntegratedDevelopment Environment,简称EVIIDE)是一个图形化的虚拟仪器辅助开发工具

28、。基于中间件的嵌入式虚拟仪器集成开发环境体系结构如图21所示,它包括嵌入式虚拟仪器中间件接121层,数据流动核心服务层以及仪器驱动层这三个层次。该环境下的嵌入式虚拟仪器控件参照IVI标准,为嵌入式虚拟仪器中间件规划类及接口标准,使其具有虚拟仪器控件的特点;基于CORBA中间件体系结构,采用IDL文件来描述一个中间件,使其符合中间件的特点,为应用程序提供标准通讯服务和面向对象的封装的接口;根据信号槽机制,为嵌入式虚拟仪器中间件产生信号并连接槽函数,使其传递各种数据以实现数据的流动。完成了各种嵌入式虚拟仪器中间件的设计后,再将它们封装到一个集成环境中,以实现一个可视化的通过拖拽虚拟仪器中间件来动态

29、配置,快速开发虚拟仪器的集成环境。 一j:=一(7 IDE界面 、)-I-,_图21基于中间件的嵌入式虚拟仪器集成开发环境体系结构21中间件技术概述211中间件的出现早期在集中控制式系统中,在面向过程的语言环境中仅存在本地进程调用,到了20世纪80年代,面向对象的技术逐渐发展起来。尽管这种面向对象的调用依然发生在本地进程中,但随着面向对象的分析,设计,编程技术的广泛应用,它为分布式系统的产生于发展提供了必要的支持。分布式系统中的分布式对象支持位置透明和实现方式透明,使得盆=阔v挥醑越欺链球稚毯鞲镁悄警最枣厘哥*郴一武汉科技大学硕士学位论文 第7页这个技术得到快速发展。分布式系统的基本操作是远端

30、调用,即位于两台或多台计算机上的进程之间能够相互调用。这种相互调用的优点是增进了网络上不同计算机之间的互操作性,提高了计算机资源的利用率,可随之而来的问题是网络间平台差异致使有的进程依然无法互操作。为了解决这个问题,中间件技术就产生了。212中间件的基本概念中间件【301【13】这个技术名词在20世纪90年代初在国外出现,它是一种软件层,位于系统软件和应用软件之间,向各种应用软件提供服务。它屏蔽了操作平台差异,使不同的应用软件进程能通过网络互相通信。有了这层出于中间的软件,就能使远距离相隔的应用软件可协同工作,它允许各应用成分之下所涉及的硬件平台、操作系统、通信协议、数据库和其他应用服务各不相

31、同,使处于应用层中的各应用成分之间实现跨网络的协同工作,在应用层实现分布式处理。中间件的出现符合分布式对象的位置透明和实现方式透明【311。位置透明表现在本应用软件无需知道响应它的其他应用软件在网络上的哪个位置,只需要说明自己需要哪方面的服务,就能找到提供服务的其他应用;实现方式透明表现在本应用软件无需知道提供服务的整个过程,只需要享受服务结果即可。213中间件的特点中间件技术最主要的特点是支持分布式计算,并支持各种不同的硬件平台、操作系统平台和数据库平台。中间件是一种运行平台,具有平台开放的体系结构,因此能提供在不同平台之间能有一致的函数调用接口【32】【33】。中间件能保证网络中分布式对象

32、的位置透明和实现方式透明,使各分布式对象只专注于自己内部的需求和提供的服务,而不必担心与外界其他对象产生无法沟通,不兼容的情况出现。中间件还能供应大量不同应用之间的需求,有并发处理多项服务请求的能力,从而保持整个系统连续稳定地运行。中间件能提供各种规范一致的协议和接口,能提供大量标准的API,以满足大量不同应用的需求。214中间件的分类随着中间件技术不断发展,中间件的标准在不断完善,根据中间件的功能侧重点可将中间件分为6类【3l】:异步远端过程调用(asynchronous RPC),发布订阅(PublishSubscribe),面向消息的中间件(MOM),对象请求代理(ORB),面向SQL的

33、数据访问中间件(SQL-oricntexl Data Access Middleware)和同步远端过程调用(synchronous RPC)。各类中间件简介:异步远端过程调用允许客户端在向服务器提出申请后直接转出去做其他的任务,而不需要等待操作的完成。发布订阅中间件中的发布方在出现某类特定事件的时候,向事先订阅过这类事件的所有订阅方发布消息,订阅方收到消息后再做出对应的回应,或者也可以不做任何回应。面向消息的中间件属于异步通信。发送方将消息发送到指定的消息队列中,由消息队列保存所有消息,直到消息的接收方取出对应的消息。消息中问件能保证所传送的消息是第8页 武汉科技大学硕士学位论文可靠的,因为

34、在不同硬件平台,操作系统和不同的网络协议之间传递消息时,消息的准确性是最重要的,而不是消息的及时传递,所以消息中间件在消息传递上是有保障的。另外,消息中间件能够在系统出错后回复消息队列的数据,保证了数据的可靠性和完整性。对象请求代理中间件在面向对象的系统中提供了跨硬件平台,跨操作系统,跨网络协议和跨编程语言的远端调用功能,并实现了各种应用的即插即用。基于面向对象中间件实现的系统拥有对象的特性,即封闭性和可重用性。整个系统的开发只要保证各接口不发生改变,那么各个功能模块就可以被总线上的其他模块直接调用。22几种比较成熟的中间件规范几种比较成熟的中间件规范【3I】:OMG组织制定的CORBA规范标

35、准、Microsoft的COM标准和SUN公司的J2EE。其中CORBA技术出现得最早,于1991年由OMG(对象管理组织)颁布了CORBAl0标准。微软的COM系列从最初的COM发展到现在的DCOM,形成了微软自己的一套分布式对象计算平台。SUN公司最初推出了供远程调用的java平台,而后推出了JavaBean版本,后来推出的J2EE版本,提出了组件的相关标准和组件问协同工作进行数据通讯的模型。(1)公共对象请求代理体系结构(CORBA)CORBA是Common Object Request Broker Architecture的缩写,全称为公共对象请求代理结构,它是由国际对象管理组织OM

36、G(Object Management Group)制定的一种面向对象的中间件。OMG组织制定中间件标准的目的是在分布式环境下为应用软件的开发提供规范框架,以增强丌发出的软件的可重用性和可移植性,从而推广面向对象模型。目前大多数分布式计算平台厂商都遵循并支持CORBA分布式中间件技术规范。CORBA中间件标准分为对象请求代理ORB,公共对象服务和公共设施这三层。对象请求代理ORB在最底层,它通过规范分布式对象的接口和语言映射来实现对象间的互操作和数据交换。第二层为公共对象服务层,它定义了多种公共服务,用来提供多种并发服务、事物交易服务等各式各样的服务。公共设施在最上层,它定义了组件框架,提供能

37、直接被对象使用的服务以及对象之间互操作的相关协议。CORBA技术规范目前的发展比以前快。它通过增加一组对应于嵌入式系统的CORBA定义和一组关于实时CORBA与容错处理的请求方案,加强了服务质量控制;它通过增加针对IIOP传输的防火墙和定义了URL命名格式的命名服务,提供了面向Intemet的集成性:它提出了CORBA构件模型技术(CORBA Component Model,简称CCM)。CORBA CCM技术是由OMG组织制定的用来丌发和配置分布式系统应用中服务器端的中间件模型规范,它是在自身支持POA的CORBA规范基础上,结合EJB的部分规范而发展起来的。它主要包括抽象构件模型、构件容器

38、结构和构件的配置与打包规范。(2)微软的COM技术微软提出的组件对象模型COM,以及基于它发展起来的分布式组件对象模型DCOM和具有分布式应用程序服务的COM+共同组成了基于Windows平台的组件技术。COM提武汉科技大学硕士学位论文 第9页供了一种对象之间实现互操作的二进制标准,它的出现保证了在Windows平台上使用和开发组件消除了运行环境差异性,编程语言特异性,组件位置透明性等。分布式组件对象模型DCOM和COM+是对COM内容和功能的扩充,它们增加了网络支持,事务处理,消息通信等服务,从而使以前专注应用于桌面环境的COM技术,在分布式计算环境中也逐渐强大起来。DCOM支持网络上不同计

39、算机之间通信,它通过对象远程调用协议来实现对远程对象的调用。COM中使用的重要的技术手段是组件技术和提供了接口。组件是组成各应用的程序构件,可用来调用完成特定功能;接口是组件与外界通信的桥梁,它提供了其他组件能调用本组件的方法。基于对象的COM组件内部各逻辑关系及实现方法被很好地封装起来,编程人员通过统一的接口规范实现对接口的定义、描述接口中的方法。DCOM对象能支持多个接口,每个不同的接口定义和描述了该对象不同的行为。在COM体系结构中,接口通过对组件的封装,对内实现了组件实现过程的隐藏,对外实现了组件功能的提供。(3)J2EE技术Java平台和Java程序设计语言自问世以来受到广泛的关注。

40、由于Java是纯语言的,因此跨平台性相当好。为了加强基于Java的服务器端的开发应用,SUN公司于1999年底推出了J2EE规范。J2EE希望完全基于Java平台提供可移植的,平台无关的,支持并发访问和控制的开发服务器端的中间件的标准。J2EE中制定了完整的基于Java语言开发面向企业的分布式应用规范,在分布式应用协议上,J2EE支持RMI,RMI提供了跨进程的组件通信,从而提供了一个Java对象远程调用另一个Java对象的方法。由于Java应用程序具有一次编写,多处运行的优势,J2EE在分布式应用计算中得到了快速发展。EJB(企业级JavaBcan)是SUN公司推出的基于Java的服务器端构

41、件技术J2EE的一部分,随着J2EE的广泛应用,它已成为应用级服务器端的标准技术之一。EJB技术是在JavaBean本地构件基础上发展起来的,它面向服务器端的构件应用。EJB技术基于Java语言给出了基于Java二进制字节代码的重用方法。EJB定义了服务器端组件的编写规范,组件之间的通信,以及应用服务器对各个组件的管理。从企业级应用三层结构上来看,EJB是处于业务逻辑层的中间件技术,业务逻辑层从数据存储层分离,取代了存储层的很多功能。相对于JavaBean来说,它提供了事务处理的功能。由于目前的服务器市场主流还是UNIX平台和大型机,因此以Java开发构件为基础的J2EE技术能够做到一次编写,

42、多处运行,使用J2EE技术开发的应用可以配置到多种不同平台的任何服务器端环境中。从企业计算的角度出发,通过以下几点对CORBA技术,COMDCOM组件技术以及J2EE技术这三种主流中间件技术进行比较【3。(1)集成性。集成性要求处于网络上不同硬件平台,不同操作系统,采用不同编程语言开发的各应用能够集合成一个统一的企业计算框架。在集成性上CORBA技术的CCM构件跨硬件平台,跨操作系统,跨编程语言,跨网络协议。COMDCOM组件技术在硬件平台上仅限于Windows操作系统,因此跨平台能力差。J2EE技术则在编程语言限于使用第lO页 武汉科技大学硕士学位论文Java语言,因此跨编程语言较差。(2)

43、可用性。可用性表现在所选取的中间件构件在技术、标准、框架上都要成熟、成型,在企业应用中能够安全、稳定地运行,不要出任何异常、致命的差错。在可用性上CORBA的事务处理性能好,消息服务性能较好,安全服务性能好,容错性能较好。COMDCOM组件技术在产品成熟度方面好。J2EE技术在安全服务方面性能好。(3)可扩展性。可扩展性表现在所选取的中间件构件是可扩展的,不是一层不变的。它要能快速适应市场现有技术及需求趋势,能保证该框架标准与其他技术有融合并存的趋势。同时自身版本要保证前后兼容一致性,以确保当前应用能够最大限度地重用。在可扩展性上CORBA中间件和J2EE技术都不错,COMDCOM组件技术则不

44、及它们。表21反映了CORBA技术,COMDCOM组件技术以及J2EE技术这三种中间件技术在集成性,可用性及可扩展性等方面的比较。表21三种中间件之间的比较CORBA(CCM) J2EE(EJB) DCOM跨语言性能 好 差(限于JA、,A) 好集成性 跨平台性能 好 好 差(限于WINDOWS)事物处理 好 一般 一般可用性 消息服务 一般 一般 一般容错性 一般 一般 一般产品成熟性 一般 一般 好可扩展性 好 好 一般从表21的比较中可以看出,CORBA中间件技术有广泛的平台支持,有很高的安全性能,有广泛的语言支持。嵌入式虚拟仪器中间件的设计需要在异构环境中跨语言,跨平台,在各应用对象之

45、间的通信机制要求具备高度的兼容性。而CORBA技术在兼容性方面好,同时在这三种中间件规范中只有CORBA推出了嵌入式版本,符合本文中关于嵌入式虚拟仪器中间件的开发需求,因此本文选取CORBA作为要用到的中间件规范。23 CORBA中间件体系结构CORBA中间件规范采用以对象请求代理ORB为根基进行任务响应和应答的解决策略,其响应方式是客户端的某个对象向ORB发出请求,ORB根据该请求定位服务器端的某个对象予以响应。CORBA中间件组成结构如图22所示。武汉科技大学硕士学位论文 第11页图22 CORBA中间件组成结构图从图21可以看出,目前CORBA规范包括的内容为:(1)对象请求代理ORB核

46、心。ORB核心的任务是根据客户端对象的请求,找到能够响应该请求的服务器端目标对象,目标对象处理该请求,然后将响应的结果通过ORB回传给客户端对象,实现一次完整的对象请求与响应。ORB核心的作用包括:目标对象的定位、网络传输编解码、ORB对象初始化、提供接口库和一些通用API函数。目标对象的定位是指ORB核心根据客户端对象的请求来定位服务器端目标对象的实现的过程。网络传输编解码是指在客户端对象发起某项请求时,客户端ORB将该请求编码成便于在网络上传输的格式,然后将该请求发送到服务器端ORB,服务器端ORB再按特定的格式进行解码,并还原成本地平台和相关语言所能响应的格式。当服务器端对象实现该请求后

47、,又将结果传回去,这个过程为上述过程的逆过程。ORB对象初始化能在程序刚开始启动时对一些通用对象的引用进行初始化。接口库是用来存储接口定义语言(IDL)所定义的各种不同接口的信息,它还支持一些通用API函数,他们共同组合供CORBA调用时使用。ORB核心的特点包括:它屏蔽了服务器端目标对象的位置,实现了对象的位置透明性,客户无需知道目标对象的具体位置,只需要提出请求,有对象帮助实现请求即可。目标对象可以是本地计算机上提供的服务,也可以是网络上其他的远程对象。同时,ORB屏蔽了服务器端目标对象的实现方式,客户无需了解提出的请求是如何解决的,这就实现了跨平台和跨操作系统。ORB还屏蔽了对象之间的通

48、信机制,由于对象间通信都交给ORB核心实现,因此客户无需了解ORB是采用什么方式通信,比如在网络间用的是哪种网络传输协议。由于ORB核心的这些特点,使得对象应用跨平台,跨操作系统,跨编程语言,跨网络协议,这样能使开发者不必将注意力放在底层分布式编程上,而集中注意力到自己的应用程序开发上。(2)接口定义语言IDL。IDL语言用来定义CORBA对象之间通信和应用组件之间通信的接口。IDL语言独立于任何其他编程语言,它是纯说明性语言,而不是过程语言,只用来定义接口,描述该对象能提供的服务,并不去实现该接口。定义好接口后,可以用IDL编译器将它映射成C+或Java语言。第12页 武汉科技大学硕士学位论

49、文(3)客户端存根Stub。存根是一段由IDL接口定义自动生成的客户端程序代码,它为接口中的每个操作提供一种虚实现。这里所谓的虚实现,是指客户端的请求由存根实现,客户端调用存根上对象的操作,然后等待该操作结束后得到返回结果,表面上看来好像是在本地上的过程调用一样,实际上存根将该请求编码给OI也核心,并由OIm找到真正响应该请求的目标对象,然后将操作的结果返回。因此存根既同客户端程序通信,又与ORB通信。(4)服务器端框架skeleton。框架与客户端存根相对应,它是一段由IDL接口定义自动生成的服务器端程序代码,提供了一个为指定接口编写服务器端实现对象的框架。框架既与对象适配器通信,又与服务器端程序通信。(5)动态调用接口DII(D舯icInvoeation Im毹ace)。当客户端程序在编译的时候无法获得对象的详细信息,而且也没有经IDL编译后的存根Stub时,可以通过动态调用接口DII向远程对象发送调用请求。动态调用接口可以被看作是一些有特定功能的标准API,客户端程序通过这些API可以直接指定要调用的对象以及要调用该对象中的哪个操作。动态调用接口同客户端程序通信,与ORB核心通信,还与

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报