论文部分内容阅读
软件的开发过程已经开始由过去的提供软件产品逐步转变为提供软件服务,软件服务的过程也由原来提供单一的服务模式向基于组件开发,组件重组以致可以提供多方面服务模式演变。然而随着对服务要求的不断变化,现有的静态服务组件技术已经不能满足不断变化的服务需求。服务组件和外界服务请求者之间绝对不能建立静态的关联关系,而是需要在系统运行的过程中动态的链接与组合,以此适应多变的外界服务请求环境。
在学习研究OSGi规范和现有组件开发技术的基础上,本文主要在服务软件如何感知外界服务请求环境的变化和服务如何选择合适的服务组件两方面提出了一套可行的方案。
在如何感知外界服务请求环境变化方面,研究了现有软件设计模式中的观察者模式,结合组件开发低耦合的特性,提出了一种改进的观察者模式来实现服务对请求环境变化的监听,有效地提高了配置监听器和监听对象的灵活性。
在如何自主选择合适组件方面,对现有的组件开发技术和设计模式中的策略模式进行了研究,根据监听器监听到外界不同的环境状态,通过动态切换不同策略服务组件的形式,实现了服务自主选择组件的目标。
最后为了验证方案的可行性,编写了基于OSGi组件开发的一个Lucene 全文检索引擎系统,并在系统中实现了文本分析引擎根据不同的文档数据格式自主选择不同的文本分析器,更充分地展示了服务自主选择服务组件的效果。