论文部分内容阅读
分布式软件的动态配置一直是软件工程领域中的一个研究热点,而新一代的分布式软件通常由异构的组件组成,组件之间的交互更复杂一些,它们利用对象中间件技术以简化软件开发,但目前的中间件技术对分布式软件动态配置的支持不足,也缺乏很好地描述整个软件体系结构的工具,因此研究基于组件的分布式软件CBDS(Component-Based Distributed Software)的动态配置仍然有着重要的意义。本文重点研究了CBDS的动态配置问题,提出了一个面向图形的、基于组件的软件编程模型GOPMCBS ( Graph-Oriented Programming Model of Component-Based Software),用以支持CBDS的组成和动态配置。围绕GOPMCBS模型,本文还重点研究了CBDS的体系结构描述和从设计到编程的无缝连接、组件间动态依赖关系的描述方法以及模型的可视化等问题。实践表明,GOPMCBS提供了较高层次上的编程模型,使程序员摆脱了中间件底层的实现细节,简化了编程;它有利于描述整个CBDS的体系结构,支持CBDS的动态配置和软件体系结构的重用,并对整个软件系统的容错提供部分支持。本文主要的贡献和创新点包括:(1)提出了基于图的动态配置模型。针对CBDS的动态配置,本文提出了一种新的面向图的模型GOPMCBS,该模型把CBDS以逻辑图的方式来表示和存储,图的顶点表示组件,组件之间的关系用边来表示,边上的标识(label)表示组件之间的多样化的关系,比如关联、继承、调用等。该模型不仅提供了一个抽象的面向图的建模、编程和动态配置框架,而且扮演着软件组件对象之间的通信中间件的重要角色。(2)统一了CBDS的体系结构描述、动态配置和编程的过程,实现了CBDS从设计到编程的无缝连接。GOPMCBS模型不仅可以支持动态配置,还以统一的方法支持了软件的体系结构描述和较高级程序设计,使动态配置和软件体系结构的描述相一致,并提供语言级的操作原语实现软件,缩短了软件从概念级到设计级的转换过程,真正达到CBDS从设计到实现的无缝连接。同时,该模型还部分支持容错,简化编程模型,利于软件体系结构的重用。(3)分析了组件间的动态依赖关系,提出一种描述组件间动态依赖关系的方法。使用GOPMCBS模型中提供的描述组件间动态依赖的方法,当一个组件被添加入或删除出系统的时候,系统会自动提示应用级程序员该组件跟哪些组件存在依赖关系,应当如何处理这些被影响的组件等等,并自动产生相应的代码。这样就提高了依赖关系的分析层次,使应用级程序员可以更多地关注各个组件之间的逻辑关系,而不是它们内部代码之间的联系。该方法基于图和XML(Extensible Markup Language,可扩展标记语言)文件的分析,保证了这种依赖关系的分析可以被很容易地扩展到其它编程语言所实现的组件上,因而保持了GOPMCBS系统本身所具有的易扩展的特性。(4)支持CORBA(Common Object Request Broker Architecture,公共对象请求代理结构)组件模型CCM(CORBA Component Model),缩小了目前CORBA