- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OSGi初探.
曾会锋 OSGi初探 概要 OSGi简介 一个简单OSGi例子 OSGi应用 我们能从OSGi得到什么 OSGi简介 OSGi 代表“Open Service Gateway initiative. 而小写字母“i”来自单词“initiative” (倡议,新方案) OSGI联盟5成立于1999年3月,致力于制定管理本地网络设备服务的规范。OSGI组织是为家用设备、汽车、手机、桌面、小型办公环境以及其他环境制定下一代网络服务标准的领导者。 OSGI Service Platform规范提供了开放和通用的架构,使得服务提供商、开发人员、软件提供商、网关操作者和设备提供商以统一的方式开发、部署和管理服务。OSGI 通过提供灵活的服务部署机制和强大的管理功能增强了设备的智能性。OSGI规范制定的目标是为机顶盒、服务网关、Cable Modems、PC、汽车、手机等等提供服务 OSGi是什么 Dynamic Module System For Java JSR232 JSR291 Universal Middleware 构建模块化,动态化,可扩展系统的最好实现向导 Modularity with rule; Dynamic support for module,OSGi service,configuration; Extension support with OSGi service. 在开源界中实现OSGI的框架 在开源界中实现OSGI的框架比较知名的有:Equinox、Knopflerfish、Oscar。 Equinox Equinox是Eclipse中的项目之一,Equinox是作为OSGI R4 RI而知名的,同时由于Equinox有Eclipse IDE这么个成功案例,反应出了Equinox作为OSGI框架的优势。 Equinox目前是随着Eclipse版本而发布的,同时,它也提供独立的下载,在独立的下载页面中可以下载到Equinox对于OSGI R4的所有实现以及Equinox扩展OSGI R4而提供的Bundle。 Equinox开发小组由IBM的Jeff领衔,开发状态非常的活跃。 官方站:/equinox 中文站: Oscar Oscar是一个遵循OSGI R3框架的实现,目前它的开发状态不怎么的活跃,必威体育精装版的新闻都是2005年的了。 Oscar的优势在于提供了大量OSGI R3标准之外的Bundle,为开发基于OSGI的系统提供了方便。 官方站:/ Knopflerfish Knopflerfish是一个知名的OSGI框架,目前提供的必威体育精装版版本也已经完整的实现了OSGI R4,Knopflerfish的开发状非常的活跃,同时它也提供了为方便开发基于OSGI系统的大量的Bundle。 官方站: 商业应用 OSGI基于JVM ClassLoader形成模块隔离ClassLoader的机制,同时也增强了ClassLoader按版本加载、属性过滤等多种功能 与传统类加载方式区别 图 1. 典型的 J2EE 类加载器层次结构 OSGi中bundle之间网状的依赖关系 两个组件之间的依赖关系不是简单的上下级的关系,而是一种提供者和使用者的网络关系。类的加载请求被从一个 bundle 的类加载器委托到另外一个 bundle 的类加载器,而这种委托是基于 bundle 之间的这种网状的依赖关系。图 2 给了我们一个 OSGi 中 bundle 之间的网状的依赖关系的例子 在 OSGi 中,bundle 之间的依赖关系是通过显示的 import 和 export类包列表来决定的 在OSGi中定义模块 在 OSGi中module 由一个或多个bundle组成; Bundle是一个正常的jar文件,不同的地方是它的MANIFEST.MF文件,OSGi增加了一写特别的头信息属性来申明Bundle: bundle-version,export-package,import-package Bundle和普通的Java工程唯一不同的是需要在MANIFEST.MF OSGi增加的头信息 非OSGi的头信息 我们系统打包的例子 框架功能 框架功能分为四层: ? Security Layer(安全层) ? Module Layer(模块层) ? Life Cycle Layer(生命周期层) ? Service Layer(服务层) OSGi架构 The Security Layer The Security Layer is based on Java 2 security but adds a number of constraints and fills in some of the blanks that st
文档评论(0)