论文部分内容阅读
开发分布式应用需要面临复杂性、异构性和动态性三个问题,中间件通过屏蔽底层进程间的通信细节及平台、网络、操作系统等的异构性,有效缓解了前两个问题。当前的分布式系统已不在局限于静态的局域网环境中,更多的是面临不断变化的动态环境,动态性带来的问题日益突出。传统中间件由于采用“黑箱”设计原则,将实现细节完全封闭,缺少必要的灵活性和适应性,不能很好地解决动态性带来的问题。为此,研究人员将反射机制运用到中间件中,出现了反射中间件。它通过开放实现以及适当的因果相联的自表示可以检测和调整系统行为,在一定程度上缓解了动态性带来的问题。CORBA是当今主流的中间件技术之一,随着不同中间件技术出现的越来越多,CORBA系统与其他中间件系统集成的需求正变得越来越迫切,其中能否灵活集成的关键问题是元数据。CORBA标准中原有的接口池机制是动态CORBA应用获取元数据的唯一标准途径,然而接口池本身很复杂,并且它的运行需额外资源,接口池中的接口信息容易失效,这些缺点使得接口池在现实中并没有很好的使用,这无疑不利于CORBA系统和其他中间件系统的集成。为此,提出了基于XML的CORBA反射机制,向用户提供了一种获取元数据的简单方法,解决了接口池带来的问题。本文围绕CORBA反射展开研究。首先深入分析了反射技术的原理,包括反射的定义、开放性和原因连接、反射的特点和分类等;研究了反射系统中的具体化和元对象协议;讨论了反射技术在Java以及面向对象编程中的应用。其次,对反射中间件技术进行了深入研究和分析,讨论了中间件支持反射的关键技术:可反射性、元对象协议设计以及一致性保持;对当前流行的反射中间件项目进行了分类和总结,详细研究了几个典型的基于CORBA反射中间件。再次,对CORBA中不使用接口池而获取元数据进行了可行性分析,研究设计了基于XML的CORBA反射机制,包括如何获取接口信息以及将获取到的接口信息元数据如何根据IFR XML Schema规范对应生成XML文档表示。最后,实现了该机制的一个原型系统,包括获取接口定义元数据功能的IFRProvider以及格式化元数据功能的XMLFormatter,并通过一个实例对该原型系统进行了测试验证。该原型系统在接口定义一级支持了反射的开放实现特性,用户可以方便的获取到接口元数据信息。