码迷,mamicode.com
首页 > Web开发 > 详细

osgi.net从入门到精通系列之二

时间:2018-11-07 23:12:10      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:面向   adc   绑定   section   清单   stop   定义   操作方法   总线   

体系结构从功能层次上划分为模块层、生命周期层、服务层、安全层、基础服务层和辅助设计工具层。

 

体系结构

 

模块层定义了模块的结构、宿主模块和片段模块、模块的配置清单、模块类型依赖与解析、模块类型加载和模块本地化。模块层仅通过IBundlse向用户暴露了LoadClass和LoadResource两个方法,分别用于从模块加载一个类型和加载资源。基于UIOSP定义模块时,类加载必须使用这两个方法来加载类型和资源。

生命周期层提供了模块生命周期状态定义、状态迁移以及状态迁移相关的接口。它实现了模块的动态安装、解析、启动、停止和卸载操作。生命周期相关接口由IBundleContext和IBundle提供。IBundleContext提供了InstallBundle方法,用于在一个模块中动态安装另一个模块。IBundle提供了Start、Stop、Uninstall生命周期操作方法,分别用于动态的启动、停止和卸载当前模块。

服务层提供了面向服务支持。该层提供了一个服务总线,每一个用户模块都可以向总线注册服务和查询与绑定需要的服务。注册到服务总线的服务也是动态的,注册服务的模块可以在必要的时候直接卸载。服务层相关的接口由IBundleContext提供,这些接口包括GetFirstOrDefaultService、GetService、AddService和RemoveService,分别用于获取默认服务、获取指定服务契约的所有服务、添加一个指定服务契约的服务和删除指定服务契约的服务。

安全层提供了模块安全沙箱。它实现了对模块数字签名以实现模块完整性、提供了基于代码访问安全的访问权限检测以阻止模块对其它资源进行非法访问和实现了模块间的隔离性以避免一个模块对其它模块产生影响。

基础服务层提供了UIOSP系统服务,包括服务总线管理服务、插件管理服务、启动级别服务、日志服务、扩展点管理服务、Web服务包装器服务等服务。

辅助设计工具提供了该框架需要的工具,包括模块配置管理工具、远程管理工具、UIOSP项目模板等。

osgi.net从入门到精通系列之二

标签:面向   adc   绑定   section   清单   stop   定义   操作方法   总线   

原文地址:https://www.cnblogs.com/iwanwu/p/9926152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!