优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

基于OSGI标准的离线系统的设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
1.2 研究现状与发展趋势
目前OSGI在国外已经是关注程度很高的体系架构,但是在国内,企业对OSGI关注度依然不是很高。OSGI的推广度之所以比较难的原因就在于OSGI带来的是设计思想以及开发方式的改变,这也就一定程度上要求系统设计师以及程序开发人员要接受一种新的开发方式,而插件体系结构是被认为在未来几年内将流行的开发方式,目前国外对着方面其实也属于摸索阶段,这也为我们进行OSGI思想的研究带来了新的机遇和挑战。
基于OSGI框架的离线系统,从字面上看来就是一个整个架构是符合OSGI规范的,可供用户在离线状态下正常使用的企业信息平台。与传统的C/S模式的客户端系统不同,该系统最大的特色就是以OSGI规范为基础,利用了OSGI服务平台的一些重要特性,使得平台结构变得模块化,组件化,这些功能模块在OSGI环境下拥有可插拔,可重用,可动态改变行为等一些动态特性,也使得系统变得更加稳定,高效,模块变得可积累,可重用。
从需求实现方面,OSGI为动态扩充,修改系统功能和改变系统行为提供了支撑;从几十角度方面,OSGI带了规范化的模块组织以及统一的开发方式,这位传统的模块的组织,模块开发以及模块积累提供了一种全新的知道以及支撑。当然,目前OSGI带给我们的基本上还都是思想上的革新,接下来我就会结合我在企业中的一个实际的项目来具体看看OSGI可以为我们的离线RCP系统带了什么不一样的感觉。具体表现在以下四点: think58好,好think58
[资料来源:http://THINK58.com]

1. 可插拔的系统
2. 动态改变系统行为
3. 稳定、高效的系统
4. 规范的,可重用的组件模块
OSGI除了为系统带来以上优势,当然还有更多,如面向服务的组件模型设计思想,高效系统设计思想等。在对系统的模块分析中我们再详细的看这一块的体现。
2.1.3 DS中Component的生命周期
DS中的Component的生命周期[4]是如何被控制的,尽管对于Component的控制DS是提供了接口可以通过程序来实现控制的,但在实际的系统中基本都是交由OSGI框架去控制,而很少通过程序主动去控制。Component的生命周期完全是动态的,也因为这个原因在使用Component时当发现Component并没有被激活也不是什么很奇怪的事,这个时候就可以去查查Bundle是否启动了,Component所必须的依赖在系统中是否可用,由于Component的变化完全是动态的,所以依靠跟踪去判断错误比较困难,大多数时候能采取的方法就是通过启动Equinox对于LogService的实现,然后在控制台中输入log来查看ds的日志;另外的方法就只能是推导原因了。
2.2 应用OSGI
之前对于OSGI的整个框架及相关概念有了一个大概的了解,但并没有在整个系统级别去应用OSGI,要在整个系统级别上应用OSGI,还是会带来不少挑战,但相对于OSGI能带来的优势,相信这点是值得的,在应用OSGI时应最大程度的发挥基于OSGI搭建系统的优势以及减少基于OSGI系统带来的挑战。从系统的设计层面来说,主要是模块化设计、面向服务的组件模型设计以及动态性[2]的设计三个方面,也只有在把握好了这三方面才能充分的发挥基于OSGI搭建系统的优势,否则也许会给项目或者产品带来更大痛苦。而我们的离线系统正是在这三条宗旨的前提下进行系统设计的。
[资料来源:http://www.THINK58.com]

2.3 Spring与OSGI
在我们的离线系统中并不是直接利用OSGI底层框架来构建的,而是利用了目前Spring框架[9]对OSGI提供的一个支持,来完成我们系统的OSGI特性的开发的。这里对Spring-OSGI这个项目做一个简要的介绍。
Spring框架已经是目前主流的Java/J2EE应用框架。它提供了一个轻量级的容器,以及一个非侵入式的编程模型,该模型支持依赖注入,AOP[9],以及轻便式的服务提取。OSGI提供了一个动态的应用执行环境,在这个环境中,组件(bundles)能够被自由随时的安装(install),更新(updated),卸载(removed)[5]。同时,OSGI也能够对模块化编程,版本控制方面起到良好的支持。
Spring支持OSGI的目标是为了能够更容易的将基于Spring编写的应用发布在一个OSGI的执行环境中,享有OSGI框架中所提供的服务。在Spring环境支持下,基于OSGI的应用程序的构建能够变得更简单和更加产品化。对于企业级应用,我们觉得能够获得有以下的优点:
1. 模块中的逻辑代码得到更好的分离。
2. 支持对一个模块同时发布多个版本。(Spring-OSGI能够对环境下的模块进行非常优秀的版本管理)
3. 对其他系统中的模块所提供的服务能够动态的发现和使用。
4. 能够在运行中的系统中动态的发布,更新,卸载特定功能模块。 [资料来源:www.THINK58.com]
5. 利用Spring Framework在可访问模块中来实例化,注册,组装,封装相应组件[10]。
6. 为开发拥有OSGI平台特性的开发人员提供一种简洁熟悉的编程模型。
Spring-OSGI并不是为了去给一些基于OSGI架构的应用提供一种统一的编程模型,即使一些OSGI的开发人员会被Spring框架所吸引而采用Spring-OSGI框架。这使他们很容易的从以前开发的OSGI的Bundle转向Spring OSGI所支持的应用,就像从Spring的繁多的配置转向OSGI的应用一样。