Tuscany Home
 

下一节:OSGi技术

From Tuscany中文社区

Jump to: navigation, search

目录

[编辑] OSGi 架构

  • 可以在一个JVM上运行更多的应用
  • 改进了JVM的类加载,有利于版本控制
  • 在每个应用之间提供安全保护
  • 有助于不同的应用间通讯和协同
  • 提供生命周期管理 (install, start, stop, update, 等).

Image:R403.PNG

[编辑] OSGi 是一个SOA的平台

  • 分离契约(接口)与实现
  • 可以在不同的实现之间切换
  • 动态发现及动态绑定
  • 基于契约(接口)的绑定
  • 组件重用
  • 组件之间的依赖保持在接口之间,而与具体实现代码相对松散

Image:R404.GIF

[编辑] OSGi 是一个分层体系

  • Execution Environment为应用提供上下文
  • Module层提供class loading及打包规范
  • Services层提供协作模型
  • Security层存在于每个层

Image:R405.GIF

[编辑] OSGi Execution Environment层

  • 提供来自JVM运行时的类库
  1. java.* classes
  2. 其它关联
  • OSGi APIs 仅仅使用Sun的 J2SE子集和 J2ME CDC/CLDC
  • OSGi最小运行环境兼容各种Java profiles
  • 实现部分可以使用更多的环境
  • Security不是必须的
  • 如果class loader符合设备条件,则可以启用CLDC

Image:R406.PNG

[编辑] OSGi Module层

  • 以bundle为应用的打包单位

Java本身没有一个明确的发布模型

  • 模块化的Class Loading

Java的 Class Path是一个顺序查找的结构,从而难以在多个应用之间控制

  • 保护

Java本身并不能保护一个包的不被其它包引用

  • 版本

Java本身不能保真一个包的多个版本共存

[编辑] OSGi Life Cycle层

  • System Bundle 代表了OSGi Framework
  • 提供了用于管理bundle的API

Install Resolve Start Stop Refresh Update Uninstall Image:R407.PNG

[编辑] OSGi Service层

  • 提供一个VM内部的服务化模型
  1. 根据服务的类型发现服务(得到通知),不需要协议
  2. 服务绑定通过
  3. 程序控制,
  4. 缺省规则
  5. 发布配置
  • OSGi Alliance提供了很多标准化的服务

[编辑] OSGi Service层的演进

Image:R408.GIF

[编辑] Security层

  • 是目前最安全的运行环境之一
  • 是动态的,与java不同
  • 完全可控
  • 基于Java 2 security
  1. 许可
  2. Bundle签名
  • 其它的一些规则,进一步提升安全性

[编辑] OSGi实现

  • 主流Framework提供商有
  1. ProSyst,
  2. Gatespace Telematics, and
  3. IBM
  4. Siemens
  5. Espial
  • 开源项目
  1. Apache Felix
  2. Eclipse Equinox
  3. Gatespace Knopflerfish

[编辑] OSGi的好处

  • 组件的生产更简易
  • 组件之间的耦合度更小
  • 协作模型

提高重用度

  • 广泛接受

更大的市场

  • 适合多样化设备

下一节:OSGi基本概念

Personal tools