论文部分内容阅读
随着构件技术的发展,越来越多的企业以可重用的构件来搭建自己的核心信息系统,这些构件由不同的开发者提供,能独立完成不同的功能。当业务需求增加或发生变化时,把这些构件提供的服务进行不同的编排就可以快速地实现新的流程,从而提供新的功能,以及时支撑业务的快速发展。
但是,一方面,这些构件通常是由不同的开发者在不同的环境下,以不同的方法学开发完成的,如果软件的组成者不了解这些构件的动态依赖关系,很难构建出健壮高效的软件系统;另一方面,这些构件往往部署在需要长期运行的环境中,为核心系统提供着关键服务,在动态配置达到真正实用以前,一个软件系统的改变,必定要中断运行,修改代码,重新编译,重新安装部署,这无论是从商业利益还是从安全性角度来说都是不能接受的。
本文在面向图的编程模型的基础上,提出OrbGOP应用程序框架。这个框架将整个分布式应用程序的体系结构以形式化的图形定义语言来描述。其中,构件和图中的结点作映射,构件之间的交互通过图上预定义的图形操作原语实现。OrbGOP为用户提供了一系列的API来实现图操作到构件操作的映射这样,通过图这样一个抽象层,使得应用对底层网络及分布式应用的中间件是透明的。
这个框架实现了体系结构和动态配置的统一。我们利用图的形象、直观和形式化描述的准确、清晰的特点,把OrbGOP的应用体系结构通过图定义语言来描述,并可以通过图形操作原语动态的改变图的结构,即改变了应用的体系结构。实现了用统一的方式描述体系结构和进行动态配置。
这个框架实现了设计描述和编程实现的统一。它通过定义图来实现对体系结构的描述,把节点映射到构件,把边映射成构件之间的关系,把图形操作原语映射成构件之间的操作。对于开发一个新的应用,可以用OrbGOP对其进行基于OrbGOP图的较高级的设计,设计完成即可以利用OrbGOP对图进行部署和运行,用统一的方式进行设计描述和编程实现。
这个框架实现了静态依赖关系和动态依赖关系的统一。设计了一套描述构件间依赖关系的XML Schema定义,用来描述OrbGOP间各个构件之间的依赖关系。我们还定义了一套针对图、结点和边的变化的事件,由OrbGOP在依赖关系发生动态变化时触发事件,并进行捕捉和处理。统一通过图这一抽象层进行应用的依赖关系描述和动态更新。
本文对于以上的思想进行了详细的阐述,在基于CORBA(Common Object Request Broker Architecture)的环境下实现了一个原型,并在原型的基础上进行了一些测试。