现成的中间件技术正在适应诸如在线金融交易,分布式过程控制,甚至海底信息系统,航空电子任务计算,雷达处理和软件无线电等关键任务动态领域。
分布式实时和嵌入式(DRE)系统在现代应用程序领域中发挥着越来越重要的作用。DRE系统的许多类型都有一个共同点:
迟交付的正确答案将成为错误的答案。例如,对于生命攸关的军用DRE系统(例如,防御船只免受导弹袭击或通过无线链路控制无人驾驶飞行器的系统)而言,在正确的时间提供正确的答案至关重要。正确的答案对于诸如此类安全关键的民用DRE系统也至关重要调节核反应堆中冷却液的温度,并维持炼钢机械的安全运行。
某些类型的分布式系统(例如两层和三层业务系统)的可承受性通常可以通过现成的商业(commercial-off-the-shelf,COTS)技术来提高。但是,当今旨在将COTS集成到关键任务DRE系统中的工作主要集中在最初的非经常性购置成本,并且不会减少经常性的软件生命周期成本。同样,许多COTS产品都缺乏对控制关键服务质量(QoS)属性的支持,包括可预测的延迟,抖动和吞吐量以及可伸缩性,可靠性和安全性。
无法以足够的信心控制它们会损害DRE系统的适应性和可保证性;常规COTS产品中的微小干扰会导致故障,从而导致人员伤亡和财产损失。
从历史上看,常规的COTS软件由于具有以下两种措施中的任何一种,因此不适合用于关键任务DRE系统:灵活和标准,但不能保证严格的QoS要求,从而限制了系统的可保证性;或部分启用QoS,但不灵活且不标准,从而限制了系统的适应性和可负担性。结果是,为主流业务系统开发COTS软件的快速进展并未广泛应用于关键任务DRE系统。在解决此限制之前,DRE系统集成商和最终用户将无法以可靠,及时且经济高效的方式利用COTS软件的优势。
在这里,我描述了关键的研发工作,这些工作有助于创建可保证,适应性强,价格适中的新一代COTS技术,以满足关键任务DRE系统的严格要求。
尽管DRE系统中的COTS软件在范围和领域上受到限制,但由于这项工作,未来的前景更加光明。
技术挑战与解决方案
对于新的和计划中的DRE系统,一些最具挑战性的需求可以描述如下:
必须实时满足多个QoS属性;
在不同的配置,环境条件和成本下,不同级别的服务是适当的;
一个维度的服务水平必须与其他维度的服务水平进行协调和/或折衷,以满足特派团的需求;
对于自主且对时间要求严格的应用程序行为的需求,需要一个灵活的分布式系统基础,以适应任务要求和环境条件的动态变化。
尽管常规的COTS软件不能满足所有这些要求,但是当今的经济和组织限制-以及越来越多的
复杂的需求和竞争压力—阻止开发人员完全从头开始构建复杂的DRE系统软件。因此,程序员迫切需要开发,验证并最终标准化支持严格的DRE系统功能和QoS要求的新一代自适应和反射中间件技术[1]。
中间件是可重用的系统软件,可以在功能上弥合应用程序的端到端功能要求和任务原则与底层底层操作系统和网络协议栈之间的差距[7]。因此,中间件提供的功能的质量和QoS对DRE系统至关重要。
自适应中间件软件[5]的功能和与QoS相关的属性可以通过两种方式进行修改:
静态地:利用特定平台的功能来实现功能子集并最小化硬件和软件基础结构的依赖性,从而减少内存占用;
动态地:系统响应针对不断变化的环境或要求进行了优化,包括组件互连,功率级别,CPU /网络带宽,延迟/抖动和可靠性需求。
在关键任务DRE系统中,自适应中间件必须可靠地进行这些修改,同时满足严格的端到端QoS要求。
反射式中间件更进一步,可以自动检查中间件的功能并进行自动调整以优化它们[1]。因此,反射中间件支持可以根据DRE系统内部,系统环境或系统策略(由操作员和管理员定义)中的条件自主执行的更高级的适应。
中间件层和研发工作
就像网络协议栈可以分解为多层一样,中间件也可以分解为多层(见图1)。以下各节将对每个这样的层进行描述,并进行相关的研发工作,以帮助中间件满足DRE系统的严格QoS要求。
主机基础结构中间件。主机基础设施中间件封装并增强了本机操作系统的通信和并发机制,以创建可移植且可重用的网络编程组件,包括反应堆,接收器连接器,监视对象,活动对象和组件配置器[10]。这些组件消除了单个操作系统的意外兼容性,从而帮助消除了网络应用程序的许多繁琐,易错和不可移植的方面。它们是通过低级操作系统编程API(例如Socket和POSIX Pthreads)来实现的。
与DRE系统相关的主机基础设施中间件R&D的一个示例是开放虚拟机(OVM)项目,该项目是美国国防高级研究计划局的一部分,在普渡大学,马里兰大学和纽约州立大学奥斯威戈分校进行信息技术办公室的嵌入式系统程序组合(PCES)程序(请参见www.ovmj.org)。OVM是实现Java实时规范(RTSJ)[2]的开源实时Java虚拟机。RTSJ是对Java的一组扩展,它通过封装实时操作系统和CPU体系结构之间的差异,提供了很大程度上与平台无关的方式来执行代码。RTSJ的主要功能包括范围内存和不朽内存,具有增强调度支持的实时线程,异步事件处理程序以及线程内控制的异步传输。
OVM虚拟机完全用Java编写,其体系结构强调可定制性和可插入组件。它的实现力求平衡性能和灵活性,允许用户自定义消息发送,同步,现场访问和速度等操作的实现。OVM允许动态更新正在运行的虚拟机的指令的实现。尽管RTSJ虚拟机(如OVM和TimeSys Jtime)相对较新,但由于它们具有降低软件开发和演进成本的潜力,因此引起了R&D和DRE系统集成商社区的极大兴趣。
发行中间件。分发中间件定义了更高级别的分布式编程模型,其可重用的API和机制可自动执行和扩展由主机基础结构中间件封装的本机操作系统网络编程功能。分布式中间件使开发人员能够像独立应用程序一样对分布式应用程序进行编程,也就是说,通过对目标对象进行操作,而无需对其位置,编程语言,操作系统平台,通信协议和互连或硬件特性进行硬编码依赖性。分发中间件的核心是启用QoS的对象请求代理(ORB),例如CORBA、COM +和Java Remote Method Invocation。这些ORB允许对象在网络之间进行互操作,而与对象所使用的语言或部署对象的操作系统平台无关。
用于DRE系统的分布式中间件R&D的一个示例是TAO项目(请参见www.cs.wustl.edu/~schmidt/TAO.html),该项目由华盛顿大学,圣路易斯大学和加利福尼亚大学的研究人员进行, Irvine,作为DARPA ITO Quorum计划的一部分[9]。
TAO是开源的实时CORBA ORB [6],它允许DRE应用程序保留和管理以下资源:
通过线程池,优先级机制,进程内互斥(互斥量)和具有固定优先级的实时系统的全局调度服务来获得处理器资源;
图1.中间件层及其上下文
通过协议属性和使用优先级带和专用连接到服务器对象的显式绑定的通信资源;
通过在队列中缓冲请求并限制线程池的大小来获得内存资源。
使用自适应通信环境(ACE)主机基础结构中间件工具包(请参见www.cs.wustl.edu/~schmidt/ACE.html)[8]中的可重用框架来实现TAO。ACE和TAO是从研究原型到DRE应用的中间件过渡的成熟示例,已在数百个DRE系统中使用,包括电信网络管理和呼叫处理,在线交易服务,航空电子功能计算,软件定义的系统。无线电,雷达系统,表面安装“拾放”系统以及热轧钢厂。
通用中间件服务。通用中间件服务通过定义高级的领域无关组件来增强分发中间件,这些组件允许应用程序开发人员专注于对应用程序逻辑进行编程,而不必编写开发分布式应用程序所需的“管道”代码,而使用较低级别的组件中间件功能直接。
分布式中间件主要侧重于管理端系统资源以支持面向对象的分布式编程模型,而通用中间件服务侧重于通过分布式系统在整个分布式系统中分配,调度和协调各种端到端资源。组件编程和脚本编制模型。开发人员可以重用这些服务来管理全局资源并执行重复的分发任务,包括事件通知,日志记录,持久性,实时调度,容错和事务,否则每个应用程序或应用程序将以临时方式实现这些事务。
集成开发人员与DRE系统相关的常见中间件服务示例是QuO项目(请参见www.dist-systems。bbn.com/tech/QuO),研究人员位于BBN Technologies是DARPA ITO Quorum和PCES计划的一部分[5]。 QuO是基于图2概述的分层中间件体系结构的一组开源中间件服务。QuO体系结构在两个方面将DRE中间件和应用程序解耦:功能路径。
功能路径是客户端和远程服务器应用程序之间的信息流。在分布式系统中,中间件可确保在远程对等方之间有效,可预测,可扩展,可靠且安全地交换此信息。信息本身在很大程度上是特定于应用程序的,这取决于所提供的功能(因此称为功能路径)。
QoS路径负责确定功能交互相对于关键DRE系统QoS属性的端到端行为。此类属性的示例包括:如何以及何时将资源用于系统的多个级别上的客户端/服务器交互;如果可用资源不满足预期资源,则适当的应用程序和系统行为;以及满足端到端可靠性要求所需的故障检测和恢复策略。
QuO中间件负责收集,组织和分发与QoS相关的元信息,以监视和管理DRE系统的多个级别上功能交互的发生情况。面对快速变化的应用程序需求和环境条件,包括局部故障,瞬态过载以及动态功能和QoS重新配置,它还可以提供自适应和反射性的决策,以强有力地支持非功能性QoS属性。
图2.QUO体系结构
特定于域的中间件服务。特定领域的中间件服务是针对特定DRE系统领域的需求量身定制的,例如航空电子任务计算,雷达处理,在线金融交易和分布式过程控制。与前面的三个中间件层(它们提供可广泛使用的“水平”机制和服务)不同,特定于领域的中间件服务针对垂直市场。
从COTS和R&D的角度来看,特定于域的服务是中间件层中最不成熟的部分原因,部分是由于历史上缺乏稳定的基础来创建特定于域的中间件服务所需的发行中间件和中间件服务标准。但是,由于特定领域的中间件服务体现了领域知识,因此最有可能提高质量并缩短周期时间,并且集成商需要开发特定类别的DRE系统。
与DRE系统相关的特定领域中间件服务的一个例子是Boeing Bold Stroke体系结构[11],该体系结构已在许多DARPA ITO程序中用作开放实验平台。BoldStroke是用于任务计算航空电子功能的开放式体系结构,例如导航,平视显示管理,武器目标和释放以及机身传感器处理。Bold Stroke中特定于域的中间件服务位于COTS处理器(PowerPC),网络互连(VME),操作系统(VxWorks),基础结构中间件(ACE),分发中间件(TAO)和通用中间件服务(QuO)上和CORBA事件服务)。
近期进展与未来需求
在过去五年中,DRE中间件的研发和部署取得了重大进展,这主要归功于以下方面:
多年的研究,迭代,完善,使用
中间件和相关的分布式对象计算(DOC)中间件并不是新的[7]。中间件概念是从对早期Internet(甚至是其前身ARPAnet)的试验中演变而来的; DOC中间件系统自BBN的Cronus和Corbus系统问世以来,它自1980年代中期开始运营。从那时起,对这些想法的构想,设计,以及最重要的软件,都经过了尝试和完善(针对那些行之有效的软件),并被丢弃或重定向(针对那些无效的软件)。
这个迭代的开发过程需要大量的资金和时间才能获得正确的使用权并被用户社区所接受,并且需要大量的耐心才能坚持到底。当过程成功时,通常会产生标准(整理边界),模式和框架(确认如何应用技术的知识)。
标准的成熟
在过去的十年中,关于DRE要求,中间件标准已经相当成熟。例如,OMG已采用以下规范。
最低CORBA
从完整的OMG CORBA规范中删除了不必要的功能,以减少内存占用,使CORBA可在内存受限的嵌入式系统中使用。
实时CORBA
包括允许应用程序以可预测的端到端方式保留和管理网络,CPU和内存资源的功能;和CORBA消息传递。导出到应用程序的其他QoS策略,例如超时,请求优先级和排队规则。
容错CORBA
使用对象的实体冗余来支持复制,故障检测和故障恢复。这些CORBA功能和服务的多种可互操作且健壮的实现方案现已上市。此外,诸如动态调度实时CORBA,Java的实时规范和Java的分布式实时规范之类的新兴标准正在将开放标准的范围扩展到更广泛的DRE应用程序。
模式和框架
大量的研发工作集中在以下手段上,以促进高质量的开发和再利用。
中间件技术:
模式
模式汇集了设计专业知识,从而为某些情况下常见的软件问题提供了经过时间验证的解决方案[3,10]。模式简化了设计,构造和性能调整。通过编纂DRE应用程序模仿过曾经成功解决过类似问题的开发人员的专业知识。模式还提高了在描述软件开发活动时的讨论水平,从而将重点放在战略架构和设计问题上,而不仅仅是战术上的编程和表达。
消息详细信息
构架
框架是相关模式组的具体实现[4]。精心设计的框架可以根据中间件本身提供的功能以及应用程序提供的功能来验证模式。在没有先验上下文无关的最佳解决方案的情况下,框架还集成了各种解决问题的方法。诸如ACE,OVM,QuO和TAO之类的中间件框架可以包括策略化的选择和优化模式;然后可以自动集成和配置多个独立开发的功能,以满足各个DRE应用程序的功能和QoS要求。
持续的政府研发投入
在前面提到的两个DARPA程序(Quorum和PCES)中,已经进行了许多有关中间件模式和框架的开创性研发工作。每种方法都集中在CORBA和Java开放系统中间件上,产生了许多结果,这些结果已经从研究原型转变为用于实时和容错CORBA规范和商业化工作的标准化服务定义和实现。Quorum和PCES是政府专注的研发工作如何通过将其输出到其他正在进行的公共和私人活动中并将其与也使用相同的开放式中间件基质进行合并的结果来利用其结果的示例。在基于标准的开放中间件平台可行之前,此类R&D成果将被埋入定制或专有系统中,仅作为一种生存证明,而不是从根本上重塑R&D和集成商社区的基础。
现在,基于标准的中间件也得到了证明,并已在许多关键任务DRE系统中进行了部署,包括航空电子任务计算,软件定义的无线电和水下信息系统。但是,由于COTS中间件技术还不够成熟,无法涵盖大规模,动态变化的系统,因此这些中间件应用程序仅限于相对小型静态配置的DRE系统。
为了满足以网络为中心的DRE“系统系统”环境中对应用和任务特定的QoS要求,仍需要大量额外的研发来增强中间件,尤其是当它涉及通用和特定于域的服务时。如果这些努力成功了,未来的中间件技术将能够控制多个系统级别上多个系统组件使用的单个资源和聚合资源,以可靠地管理通信带宽,安全性以及DRE系统工件的调度和分配。
中间件是开发DRE系统的战略元素,它弥补了应用程序与底层操作系统和网络协议栈之间的空白,从而提供了对这些系统至关重要的可重用服务。中间件研发工作的经济回报源于将DRE软件技术工件(例如中间件框架,协议,服务组件和模式)的标准化水平提高了几个层次,因此可用于COTS的获取和定制。有了适当的高级研发环境和将研发成果商业化的有效流程,COTS中间件市场将不可避免地适应,采用和实施关键任务DRE系统所需的强大硬件和软件功能。
作为此处讨论的研发工作以及其他类似工作的结果,下一代中间件将能够适应动态变化的条件,以便最大程度地使用可用的计算机和网络基础结构来支持应用程序需要。
编辑:黄飞
评论
查看更多