论文部分内容阅读
现在,很多公司用J2EE做企业级的应用,但随着应用的深入持久,往往会发现现有的系统难以满足需求,这时再反过来改动系统却发现比登天还难。复杂的结构,混乱的依赖关系,难以隔离的模块以及变更带来的不确定性都令开发人员一筹莫展。有时候一个小的需求变化,就会造成整个应用项目的重新构建。除此之外,随着用户的剧增,系统资源和系统响应时间也经常会遇到瓶颈,这时对系统进行扩容就是不二的选择,由单一主机变成多个主机的这个过程最终又演变成了程序员的噩梦。为什么一个微小的需求变化会带来如此巨大的蝴蝶效应?为什么在变化面前,很多号称优秀的框架和设计模式显得如此脆弱和无用?带着这些问号,本人接触到了OSGi,就像它所宣传的那样,“一个动态的Java模块系统”,彻底解除了本人的疑惑。首先OSGi是一个基于微内核的框架,包括核心和服务两个部分。任何基于OSGi框架的系统都具备即插即用、热部署、即删即无的能力。其次,OSGi框架本身带来的就是松耦合、插件化、高可复用性、扩展性以及动态性。最重要的是还有面向服务的特性,这解决了以往不同厂商不同产品互相之间不能交互的问题。本人从企业应用的角度出发,详细分析了OSGi的内核及其运行机制,并针对单一主机瓶颈问题,设计了分布式的解决方案。主要研究工作如下:(1)研究OSGi内核的原理,以及各个层次之间的内容和关系,总结出了OSGi的设计理念。(2)通过分析现有开源OSGi框架的实现Equinox和Felix,解读了它们的工作机制。鉴于目前还没有横向比较的测试方法,本人提出了一个新的测试框架,可以以量化的数据作为支撑,为OSGi框架的选择提供科学依据。(3)针对现有OSGi框架的不足提出一种定制框架的改进方法。(4)本人设计了一种基于OSGi的分布式应用框架(Equinox+Spring-DM+CXF-DOSGi)并加以论证。(5)本人通过一个零售店应用系统的设计与实现,验证了此框架在分布式应用上的可行性,最后通过测试来阐明本系统的优势。本人的这些研究工作对于OSGi在分布式领域的应用具有一定商用价值和指导作用。