system: [SYSTEM]

user: 1. 引言 1.1. 概述 透明性是指软件开发平台和软件运行平台对于应用系统而言提供跨平台、跨语言和网络通信的服务，应用系统的跨平台、跨语言和网络通信功能均由软件开发平台和软件运行平台来提供。中间件平台是一种具有透明性的软件开发平台和软件运行平台，它通过ipc实现了网络层协议、通过ipctransport实现了传输层协议、通过sock实现了远程过程之间的连接、通过support实现了操作系统底层资源的管理和分配、通过ocl完成平台类的特殊封装[ 1 ] 。 对于透明性，美国ANSA将它分为八类：1) 访问透明性(Access Transparency)，2) 位置透明性(Location Transparency)，3) 并发透明性(Concurrency Transparency)，4) 故障透明性(Failure transparency)，5) 迁移透明性(Migration Transparency)，6) 性能透明性(Performance Transparency)，7) 扩充透明性(Scaling Transparency)，8) 复制透明性(Replication Transparency) [ 2 ] 。 可观察性是指中间件平台和平台上的应用系统是可以被观察的，其中前者是后者的基础后者是前者的外在表现。通过观察平台我们能够了解消息传输的内部机制；通过观察应用系统我们能够了解消息传输的外部表现[ 3 ] [ 4 ] 。 可观察性分为两个层次，一是系统可观察性另一个是应用可观察性，其中前者是从系统层面观察系统对象、消息以及状态的形成和传输机制，后者是从应用本身观察对象、消息的发送、传输、接收和显示。 系统可观察性通过绘出系统的类图、顺序图等可视化手段来展示；而应用可观察性则通过打印消息的发送者、接收者、发送时间、内容等手段来展示[ 5 ] 。 本文所做的工作是研究中间件的透明性和可观察性，对涉及到的透明性和可观察性概念、特点、研究现状、技术内涵进行了研究，旨在帮助中间件研究者了解中间件透明性和可观察性的要点及研究方法，并提供一定参考。 1.2. 国内外研究现状 对于中间件的透明性和可观察性研究，国内的研究一般是围绕某一具体的中间件平台应用系统而展开的[ 6 ] ，因此我们将中间件平台应用系统的透明性和可观察性研究分为PCDP平台上的透明性和可观察性研究、ACE平台上的透明性和可观察性研究、TAO平台上的透明性和可观察性研究、DCOM平台上的透明性和可观察性研究、ICE平台上的透明性和可观察性研究。 实现中间件透明性和可观察性的方法有平台消息存储、消息调用次数实时统计、吞吐量实时统计、性能分析、历史消息分析等方法。 1) PCDP平台上的透明性和可观察性研究 PCDP平台中冶赛迪集团公司研制的面向冶金领域过程控制的一款中间件平台，它集软件开发平台和软件运行平台于一体。PCDP平台规模为C/C++ 50余万行、开源代码30万行、Windows shell脚本10万行，并且具有以下功能：a) 复用组件：集成过程控制应用的通用处理模块，Socket通讯、OPC通讯、日志管理、进程管理等；b) 领域应用：L2后台控制和模型应用，仅关心业务知识，编程技术复用平台技术；c) 编译部署：集成自动编译、链接、部署和维护功能，减少开发和维护的工作量，统一的开发和运行环境及目录；d) 代码生成：快速生成C/C++代码，提高开发速度，生成类代码、数据库访问代码、组件框架代码；e) 支撑类库：封装专业通用和业务通用的类库，如字符串类、通讯套接字类、线程类等等。 PCDP平台上的透明性和可观察性研究起始于2013年8月，已具备的功能包括平台消息存储功能、消息调用次数实时统计功能、吞吐量实时统计功能、性能分析功能、历史消息分析功能、阻塞检测与报警功能等。 2) ACE平台上的透明性和可观察性研究 ACE是一个通信软件的开发工具包，是一个CORBA协议的具体实现。ACE综合了许多主流的软件设计模式和组件技术，通过ACE我们可以解决在软件开发和维护过程中的一些繁琐的、易错的、不可移植的问题。ACE提供了强大而高效的进程通信、同步互斥机制、共享内存、客户服务配置等功能。 国内对于ACE平台上的透明性和可观察性研究始于2003年马维达在程序员杂志上发表《ACE与GoF设计模式——Adapter模式在ACE内存管理类中的应用》一文，介绍了开发高性能网络化应用与下一代中间件的面向对象框架，这实际上拉开了研究ACE平台上透明性和可观察性的序幕[ 7 ] 。随后，北京交通大学信息科学研究所也对ACE实现通信软件的设计机制和优越性进行了研究[ 8 ] 。另外，高强文也介绍了可靠消息传送的一般实现方法——消息队列，并使用ACE的主动对象、连接器、接受器等技术实现消息队列及其接口[ 9 ] ；中国科学院研究生院的李明介绍了基于ACE在实现某监控软件中的设计机制，这中间离不开对透明性和可观察性的研究[ 10 ] 。2013年，东北大学轧制技术及连轧自动化国家重点实验室结合国内中厚板生产的自动化控制需求，开发出基于ACE中间件的多进程轧机二级控制系统，该系统包含多个进程，进程之间相对独立，系统具有更好的稳定性和可伸缩性，使用自适配通信环境ACE实现进程及线程间的通信大大降低了系统开发难度，缩短了开发周期[ 11 ] 。 3) TAO平台上的透明性和可观察性研究 TAO是The ACE ORB的缩写，是一个基于CORBA标准和RT-CORBA标准的中间件平台，是CORBA协议和RT-CORBA协议的一个具体实现。TAO使用ACE框架内的组件和模式 ，是一个高性能、实时的(QoS)的分布式应用平台。TAO可以实现远程对象调用(而不用关心如何去进行对象定位)、跨平台应用、跨编程语言应用、跨硬件平台和通讯协议应用等。 TAO可以与其它公司的ORB很好的互操作，比如Orbix、JacORB、ORB Express、VisiBroker等。 国内对于TAO平台上的透明性和可观察性研究始于2004年国防科技大学IKE2项目[ 12 ] ，该项目基于TAO平台开发应用级的可互操作的实时分布式应用，对应用系统的开发需要对TAO平台应用系统的透明性和可观察性有深入的了解。随后，南京航空航天大学直升机旋翼动力学国家重点实验室为了解决飞行控制系统在不同计算机、不同操作系统、应用不同语言编写的组件之间的通信也研究了TAO及其事件服务机制[ 13 ] ，这种研究主要定位在消息的可观察性上。武汉数字工程研究所探讨了TAO的架构完成了基于TAO中间件舰载作战指挥系统的构件化设计与实现[ 14 ] 。2007年，山东大学控制科学与控制工程学院以ACE/TAO作为开发平台，构建了一个基于CORBA技术的异构机器人互操作系统，实现了分布式环境下具有不同硬件结构、操作系统、通信协议和编程语言的机器人之间的相互通信[ 15 ] ，为多异构机器人的协作提供了最佳的技术路线。2013年，电子科技大学研究了ACE/TAO使用的IDL编译器TAO_idl编译出来的桩和框架的透明性，提出了用C语言设计实现的IDL编译器三模块设计模式的思想[ 16 ] 。 4) DCOM平台上的透明性和可观察性研究 DCOM平台是一系列微软的概念和程序接口，利用这个接口，客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象，因此DCOM一种面向对象的中间件平台。DCOM基于组件对象模型(COM)，COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口。DCOM的升级版本是COM+，而COM+综合了COM、DCOM和MTS技术要素，把COM组件提升到应用层而不再是底层的软件结构，它通过操作系统的各种支持，使组件对象模型建立在应用层上，把所有组件的底层细节留给操作系统，因此，COM+与操作系统的结合更加紧密。 由于DCOM只能运行在Microsoft的操作系统上，这很大程度上限制了DCOM/COM+的应用和研究。 国内对于DCOM平台上的透明性和可观察性研究始于1997年每周电脑报发表的一篇文章《“对象”之战升温——JavaSoft要在JavaBeans中建立一种新型的对象模型Microsoft则计划做一个Java版本的DCOM》，自此吸引了一些对象中间件的研究者对DCOM的原理和机制(包括透明性和可观察性)进行研究。经过长达近20余年的研究与实践，广大对象中间件的研究者也逐渐对DCOM/COM+的透明性和可观察性有了一定的研究，例如，空军工程大学针对目前串口通信组件设计中的异步调用与并发运行的问题以及功能上局限在串口管理或简单数据收发的缺陷，采用DCOM提出了一种基于异步缓冲区模板类和线程管理器的设计方案[ 17 ] 。 2013年，和利时集团提出DCOM等组件在工业控制信息传输中的安全性问题，引起了社会较大的关注。 5) ICE平台上的透明性和可观察性研究 ICE平台是由ZeroC公司的分布式系统开发专家实现的一种高性能、面向对象的中间件平台。它号称标准统一，开源，跨平台，跨语言，分布式，安全，服务透明，负载均衡，面向对象，性能优越，防火墙穿透，通讯屏蔽。ICE提供了完善的分布式系统解决方案，适合所有的异构网络环境、提供了客户端和服务器端的完全分离、ICE采用软总线的机制、ICE面向对象将所有应用看作是对象及相关操作的集合，构建在ICE之上的分布式系统的对象的获取只取决于网络的通畅性和获取服务对象特征的准确程度，而与对象的位置以及对象所处的设备环境无关。 ICE提供了简单的对象模型和类型系统，精简而强大的运行时API，简单的语言映射，紧凑高效并可扩展的协议，丰富的客户端调用和服务器端分派方式，完善的安全解决方案，大量高效而实用的服务和工具。基于这些，ICE特别适合对技术和性能要求都很高的分布式系统开发。现在ICE已经被很多大公司采用，作为安全、伸缩性强的底层通信平台。 国内对于ICE平台上的透明性和可观察性研究始于2003年马维达在程序员杂志上发表的一篇文章《叛之冰：Internet Communications Engine》[ 18 ] ，这引起了广大对象中间件研究者对ICE平台上的透明性和可观察性研究的兴趣。2004年西南科技大学的刘裕和吴坚进一步对ICE进行了深入的剖析，从中间件的技术角度详细比较和分析了ICE与现今作为工业标准的中间件技术COBRA之间的异同点，阐述ICE作为新型中间件的优点和优势[ 19 ] 。中南大学无机非金属材料研究所研究了基于ICE中间件开发多智能体系统的方法[ 20 ] ，实现了多智能体控制系统与神经网络、模糊控制和专家系统技术的融合。中国海洋大学信息科学与工程学院应用了ICE中间件通信技术在异构三维仿真系统环境中实现高效的数据传输 [ 21 ] ，在功能上利用仿真数据为驱动实现多种空间任务的实时仿真。 针对配网自动化主站系统具有分布式结构、应用服务多、系统复杂等特点，2014年，山东科汇电力自动化有限公司的赵义奎等人提出了一套基于ICE中间件的配网自动化主站分布式应用管理框架[ 22 ] ，描述了框架的组成结构及各个部分的实现原理。 国外对于中间件平台应用系统的透明性和可观察性研究起步较早，基础较坚实。为了便于比较，我们也将国外关于中间件平台应用系统透明性和可观察性的研究分为ACE平台上的透明性和可观察性研究、TAO平台上的透明性和可观察性研究、DCOM平台上的透明性和可观察性研究、ICE平台上的透明性和可观察性研究，其中PCDP平台版权归中冶赛迪集团公司所有，目前没有对外开源，因此在国际上没有公开研究。 1) 国外ACE平台上的透明性和可观察性研究 在国外，ACE早在1999年就被应用于移动通信中，这项研究是基于对ACE平台上消息的透明性而进行的。Johansen等人在1999年第19届IEEE分布式计算大会上正式提出基于ACE的移动通信思想[ 23 ] ，在当时引起了不小的反响。随后，Kutlusan等人撰文介绍了ACE的事件和命名服务[ 24 ] ，由于ACE的事件和命名服务卓越的性能引起了对象中间件研究者们研究ACE透明性和可观察性的兴趣。 2010年，Chen等人在研究ACE消息通信机制的基础上，设计了一个基于ACE的移动IPC平台[ 25 ] ，与当时非ACE的IPC平台相比，这种平台在可移植性、兼容性方面具有较大的优势。Henfri等人研究ACE的事件调度、事件过滤、数据传输等特点，并将ACE的事件通道作为可重用组件开发了无人机的分布式控制系统[ 26 ] 。 2) 国外TAO平台上的透明性和可观察性研究 TAO是ACE在实时领域中的版本，大多用于嵌入式领域。在国外，对于TAO平台上的透明性和可观察性研究起源于美国国防部先进计划预研局(DARPA)和美国空军研究实验室(AFRL)于1998年首次提出的OCP项目[ 27 ] ；在对中间件平台上应用系统的透明性和可观察性深入研究的基础上提出了一种分层次的体系结构，其中任务规划和情景感知在最高层次，飞行控制(包括增稳控制)在最低层次，中间层次的控制器用于匹配模式之间的转换和提供容错重构控制，利用层次结构控制器有助于时间基准不同的控制组件集成，有助于低层连续动力学组件与高层离散事件组件之间同步协调作用。Pruett等人在实施OCP项目时利用了TAO中间件平台[ 28 ] ，并且提出了新的改进框架，这种框架对应用系统而言更加清晰更加透明。Schrage等人研究了TAO事件通道机制、跨平台机制、C++封装包、IDL接口语言[ 29 ] ，开发出基于TAO的分布式环境下的Yamaha R50/RMAX直升机自动控制模型。Wills等人研究了TAO在Linux操作系统上的消息传输(可观察性)问题[ 30 ] 。 3) 国外DCOM平台上的透明性和可观察性研究 由于DCOM只能运行在Microsoft的操作系统上且DCOM源代码不开放，因此国外对于DCOM平台上透明性和可观察性研究也相对较少。 Choi和Wu早在1998年就对DCOM和CORBA进行了对比研究，提出了负载均衡、扩大共发度、精简通信模型等问题。Saleh和Justo在2000年研究了DCOM的服务质量问题，提出了不少质疑。Ntawanga等人从用户体验的角度研究了基于DCOM的电子商务网站开发的可行性。 4) 国外ICE平台上的透明性和可观察性研究 国外对于ICE平台上透明性和可观察性的研究相对较多，下面列举几个有代表性系统和研究。 2004年，Henning在国际期刊IEEE Internet Computing发表论文《A new approach to object-oriented middleware》用了大量篇幅介绍ICE中间件平台[ 31 ] ，此文后来被翻译成多国语言，引起了对象中间件研究者们对ICE透明性和可观察性的关注。随后不久，HP、Naval Undersea Warfare Center、Solution Space (新加坡)、Seagha Analytical Engineering， Inc.、Skype、Baosteel (宝钢)、Lockheed Martin、Baosight (宝信软件)等公司纷纷宣布其分布式通信产品均使用ICE平台来搭建。 2007年，Reggiani等人研究了ICE平台在生产制造领域中的应用[ 32 ] ，论述了ICE能够满足生产制造领域中过程控制的性能和功能需求，是一个可以信赖的中间件平台。 Villanueva等人认为基于ICE中间件平台开发通信产品是一个低成本的方案[ 33 ] 。人们认识到ICE不仅能支持PC终端的开发还能支持微电子、嵌入式JAVA虚拟机甚至低端的FPGA产品的开发。 2011年，Chavas等人在研究了ICE平台的特性的基础上，将ICE中间件平台用于核物理实验中[ 34 ] 。 综上所述，国外在中间件的透明性和可观察性研究方面起步早、基础牢，并且取得了许多工程实际应用。 PCDP、ACE/TAO、DCOM、ICE对透明性和可观察性提供了不同程度的支持，其中PCDP支持得最好功能也最强大并已具备基于B-S架构的透明性和可观察性功能，ACE/ICE支持得较好但是十分复杂不便于使用；DCOM在迁移透明性的支持上最差，它仅限于在Windows平台上的迁移，对于性能透明性的支持也不如其他好，但是DCOM使用最简单这是其他不可比拟的；ICE简化了ACE/TAO的架构，支持了八种透明性但是功能上不如后者强大，是一种轻量级的ACE/TAO。具体分析见表1。