OSGI 面向Java的动态模型系统

Posted 如若

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSGI 面向Java的动态模型系统相关的知识,希望对你有一定的参考价值。

OSGI (面向Java的动态模型系统)
  OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI
官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。

  OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。
OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。

背景

  OSGi给出了一套Java模块化规范,这套规范给出了OSGi框架的定义,而具体的OSGi平台,如Felix和Equinox则分别是
Apache和Eclipse开源社区给出的标准规范的实现。

  OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,
OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方。OSGi联盟已经开发了例如像HTTP服务器、配置、
日志、安全、用户管理、XML等很多公共功能标准组件接口。这些组件的兼容性插件实现可以从进行了不同优化和
使用代价的不同计算机服务提供商得到。然而,服务接口能够基于专有权基础上开发。

  因为OSGi技术为集成提供了预建立和预测试的组件子系统,所以OSGi技术使你从改善产品上市时间和降低开发成本上获益。
因为这些组件能够动态发布到设备上,所以OSGi技术也能降低维护成本和拥有独一无二的新的配件市场机会

安全协议

  安全机制是建立在Java和Java2安全模型基础之上。Java语言的设计对很多结构进行了限
制。例如病毒中经常遇到的缓存溢出是不可能发生的。Java语言中的访问控制符限制了代码可见性。

  OSGI平台通过使用私有类(在Java中不能用标准方式使用的机制)扩展了该模型。
Java2安全模型提供了一个完整模块检查代码对于资源的可访问性。OSGI增加了完全动态的权限管理,简化了操作者和系统管理员的工作。

  OSGI联盟已经定义了很多协议服务,这些服务将外部协议映射为OSGI服务。HTTP服务(HttpService)该HTTP服务是servlet运行器。
bundles提供servlets,这些服务端小程序基于HTTP协议成为可用的。OSGi服务平台的动态更新功能使HTTP服务成为一个非常具有吸引力的Web服务器,
它能伴随着新的servlet被更新,如果需要可以远程更新而无需重启。

  UPnP服务(UPnPService)通用即插即用(UPnP)是一个正在形成中的消费电子标准。
OSGi中的UPnP服务在一个UPnP网络上将设备映射到服务注册中。同样,它也可以将OSGi服务映射到UPnP网络。
这是发布版本3中的推荐规范。

  DMT管理(DMTAdmin)开放移动联盟(OMA)基于设备管理树为移动设备管理提供了一个完整规定。
DMT管理服务定义该树如何被访问和/或者在OSGi服务平台中被扩充。

以上是关于OSGI 面向Java的动态模型系统的主要内容,如果未能解决你的问题,请参考以下文章

深入理解OSGI的模块化

org.osgi.core-1.4.0-project源码分析

Java动态模型系统OSGi实战讲解

Liferay7 BPM门户开发之38: OSGi Bndtools开发入门

OSGI.NET 学习笔记--架构篇

03:入门篇 - CTK Plugin Framework 基本原理