文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OSGi 4.2的新特性有什么

2023-06-17 21:28

关注

本篇文章为大家展示了OSGi 4.2的新特性有什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一些 OSGi 实现,例如 Equinox 3.5 与 Felix 2.0 早已针对 OSGi 4.2 规范做了一些兼容实现,但当时 OSGi 4.2 还没有发布,当然也不能说其实现了 OSGi 4.2 规范。现在规范正式发布了,各实现团队还需要进行一些调整已完全满足规范要求。

新的规范里有哪些特性呢?

框架启动( Framework launching)

以前虽然可以在 Java 应用中(例如 Equinox 的 servlet 桥接 )启动嵌入的 OSGi 引擎,但针对特定引擎都有特定的启动方式。虽然有一些包装器(例如 Pax Runner )使得引擎启动相对容易,但还是必须熟悉特定引擎的知识。在现在的规范中,定义了透明的启动机制使得不需要知道 OSGi 实现引擎就可以将其启动。这样一来,不管是在 Equinox 还是 Felix 下测试都只用替换启动类路径下的相应引擎 Jar 包就可以了。

远程服务(Remote Service)

以前也许你曾经听说过分布式 OSGi(Distributed OSGi)以及 RFC 113,而 OSGi 4.2 中的远程服务就是类似技术的新名字,它将各个 OSGi 虚拟机(OSGi VMs)连接到了一起。远程服务采用了服务 的概念(热拔插 OSGi 应用的精髓),提供了导出服务到远程消费端与在本地消费远程服务的机制。与其他分布式方法(例如 RMI)不同的是,远程服务不需要实现特殊接口,也不用抛出 checked exception 。当然,发生异常的时候远程服务不会装作工作正常,可以把异常看作是一种在任何情况下都因该进入并作用于 OSGi 环境的服务。

筹备服务(Blueprint Service)

OSGi 4.2 中的筹备服务的概念非常类似于控制反转 / 依赖注射。它允许客户端从外部配置文件指定连接的服务,此服务将被动态地连接到客户端。向声明式服务一样,你可以对服务类型上做些限制,例如是否为强制(mandatory);但与声明式服务也有些不同,当所需服务缺失时筹备服务可以提供一个默认的服务代理实现,当客户代码尝试调用此服务时,客户端将被服务代理阻塞,直到真正的服务连接成功。综上,使用筹备服务的特性可以避免与 OSGi 产生耦合,这使得应用既可以在 OSGi 环境内运行,也可以脱离 OSGi 环境运行。

Bundle 追踪器(Bundle Tracker)

OSGi 早已有了服务追踪器,用于监控服务的来龙去脉;而 Bundle 追踪器是追踪 bundles 的一个扩展。在以前在服务中就可以使用 BundleListener 来监听 bundle 动态进出,而如今的 BundleTracker 与 ServiceListener 有着同等的可用性。其可被用于执行动态注册当筹备服务或是声明式服务正在读取(与处理)元数据。例如,一个基于 Web 的引擎就可以自动地扫描出新安装的 bundles,并通过 HttpService 自动注册 servlets。

服务钩子(Service Hooks)

在判断存在什么服务时,是可以对服务之间的事件进行拦截、过滤的。例如在实现一个基于角色的权限模型或是针对不同产品级禁用 / 可用对应功能集。另一个方法是提供代理服务(或是负载均衡)从而拦截其他 bundle 的事件将其隐藏,以备在后续阶段代理给其他机制(例如分布式服务)。另外,监听钩子也可以在服务没有被注册前按需将服务启动。

条件化的权限(Conditional permissions)

OSGi 4.2 在有关权限方面的升级包含了拒绝访问(DENY access)与允许访问。在认证签名后,可以为 bundles 子集显示地指定操作权限。可以锁定未签名的 bundles 的安装,有助于构建一个安全的 OSGi 平台。

OSGi 4.2 规范相对于 4.1 版还有很多变化,例如 OSGi bundles 有自己的 MIME 类型 (application/vnd.osgi.bundle ),可以为某个 bundle 指定图标以及许可证,对于声明式服务可以简化其权限集合设置(使用包内友好替代了 protected)。DS schema 也允许其他对特定服务信息有助的 XML 元素。另外,提供了一个机制使得应用管理员可以在应用结束是获取该应用的返回值。

Equinox 3.5 已经提供了一些类似的功能,Apache Felix 对类似功能在这个月初也通过了测试(早于 4.2 规范发布)。

上述内容就是OSGi 4.2的新特性有什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯