论文部分内容阅读
网络环境下的分布式系统是目前计算机软件研究和开发的热点和主流,由于分布式软件系统其固有的分布式特性、异构性和自治性,使得分布式系统的开发比较困难。大量的实践表明,集成已有的软件构件组装得到新的系统是构造大型分布式系统的有效途径。
大部分分布式软件在它们的生命周期中都要进行若干次修改以适应新的需求、新的技术或新的环境的变化。一些系统出于商业或安全的考虑不允许系统停运或离线来实施修改,只能动态地对系统进行配置。即使在有些场合下允许停止应用程序进行升级或修改,动态配置还是会带来更多的好处,因为应用程序中那些不受影响的部分可以继续提供服务,因此动态配置在分布式系统中就显得尤为重要。实施动态配置时,系统中的部分构件和连接必定会受影响而无法正常工作,但对整个系统而言,必须满足系统整体行为的逻辑正确性,并且尽可能减少配置过程对系统整体性能的影响,也就是说动态配置必须保证系统的一致性。研究系统动态配置时的一致性对基于构件的分布式系统来说,具有比较重要的意义,而现有的一些动态配置模型对于基于中间件(Middleware)的分布式软件已不能提供足够的支持。本文对分布式软件,动态配置以及系统的一致性进行了深入研究,主要工作有:
1.完善了CBSGOP(Component-Based Software Graphics-OrientedProgramming,基于构件的软件面向图形的程序设计)模型,CBSGOP将整个分布式应用程序的配置描述为一张逻辑图,并将配置从组成应用的构件的编程中分离出来。构件之间的交互和动态配置操作通过执行图上预定义的一组操作原语而实现。CBSGOP模型以面向图形编程方式简化了应用级程序员的编程,并在此基础上实现了对软件体系结构的描述,有了这种描述,也使基于CBSGOP的应用有了可以动态配置的能力。
2.一致性保证是动态配置研究的关键问题,本文查阅了国内外相关文献,对系统一致性进行了总结研究。目前系统公共一致性主要分为五类,分别是相互一致性、本地一致性、构件状态一致性、应用状态一致性、引用一致性。如何保证相互一致性是系统一致性研究中的重点,本文根据CBSGOP模型的机制以及体系结构提出了等待方式和阻塞方式驱动构件进入动态配置安全状态的配置算法,该算法能够保证系统相互一致性,等待方式可在所有动态配置场景下严格保证一致性,而阻塞方式只能适用于特定的动态配置场景,在有些场景无法保证所有被阻塞事务的完整性。阻塞方式虽然适用范围有限,但与等待方式相比可有效提高动态配置性能。另外我们对CBSGOP模型中其它四类公共一致性以及各个处理器上图信息的同步问题进行了分析,并在此基础上设计了构件添加,构件删除,构件迁移以及构件替换的动态配置机制,保证系统运行中进行动态配置的一致性。
3.我们对CBSGOP模型的动态配置进行了一些试验以测试其性能并验证其可行性。CBSGOP原型采用JAVA SDK 5.0和Eclipse3.2来实现。我们使用一个简单的例子对模型原型实现的性能进行了测试,在例子中,我们设计了构件添加、构件删除、构件替换、构件迁移以及测试动态配置对系统正常运行影响的实验。从实验中可以看出CBSGOP模型的动态配置会带来额外的开销,但这些开销很小都是可以接受的,从而证明了CBSGOP模型动态配置的可行性。