论文部分内容阅读
近年来,随着软件系统规模的逐渐增长,软件系统的复杂性急剧上升。究其原因,很大一部分是由于客户需求、市场环境、法律政策、技术平台等的频繁变化。而传统的对象复用技术、组件复用技术以其固有的静态性已无法快速的适应需求的频繁变化。为了能够最大化的降低变化带来的复杂性,需要一种不同的开发方法及其基础设施来适应这种多变的环境。本论文依托多功能打印机项目,提出一种基于构件的可插拔服务模型,设计并实现了基于此模型的一个框架系统。在模型方面,采用分层的思想将整个模型划分为执行环境层、构件层、生命周期管理层以及服务管理层等四个层次,并将构件层作为四个层次中的核心层。在构件层部分,提出一种构件类型即Block,它由能够为用户提供功能的一系列对象以及资源组成,并被视为一种最小的开发单元和部署单元,Block成为整个模型的核心概念。在生命周期管理层部分,定义Block 4个生命状态,并详细阐述了Block生命周期过程中状态之间的变迁情况以及由变迁带来的特定行为的执行。在服务管理层部分,从动态依赖方面出发,提出了服务以及服务周边环境的概念,并将其依附于Block概念实体。在运行时采用服务注册、获取、撤销的形式实现Block之间的动态交互。在框架方面,依据模型对各个层实体概念的定义、实体依赖的表述,实体内部特征及结构进行了详细的设计。整个框架以Block构件作为基础,对Block的加载机制、Block的状态、Block的生命周期以及由Block发布的一系列服务进行了重点设计。该论文除了提出一种不同的模型以及框架之外,还对以此模型框架为基础的开发方式和传统式开发方式在构件化、并行化、动态化、结构扩展性等方面进行了的比较。通过将传统的粗粒度的构件进行粒度的细化;将传统的同一个工程目录的依赖进行弱化,带来了构件并行化程度的显著提高。通过采用内核加外围服务的方式,一方面消除了传统动态性对配置文件的依赖,另一方面减弱了系统中各个构件之间的耦合,使系统具有很强的扩展性,便于系统的稳定演化。