OSGi 是什么以及它对您有什么好处?
标准化和互操作性是物联网世界的热门话题。仔细观察各种解决方案、设备和协议,就会发现为什么会这样。 OSGi 已经存在了将近二十年,致力于确保跨各种设备的互操作性。但是 OSGi 和 OSGi 框架到底是什么? Bosch.IO 的布道师 Kai Hackbarth 通过回答五个问题提供了见解。
什么是 OSGi?
凯·哈克巴思
自 2016 年 7 月以来,Kai Hackbarth 一直在 Bosch.IO(前身为 Bosch Software Innovations)担任布道师。他之前曾在博世于 2015 年收购的 ProSyst Software 工作。Kai Hackbarth 在 OSGi 联盟的技术标准化方面发挥着举足轻重的作用。他也是董事会成员。 2008 年至 2018 年,他担任 OSGi 住宅专家组的联席主席。 Kai Hackbarth 还协调了广泛的物联网 (IoT) 研究项目。他的专长是智能家居、汽车应用和物联网。
凯·哈克巴特 OSGi 有几个不同的方面。首先,有 OSGi 联盟。该组织成立于 1999 年,最初专注于智能家居背景下的标准化工作。多年来,这些努力的范围不断扩大。今天,它们涵盖了超越智能家居的领域。例如,联盟指定了一个基于 Java 的通用框架。它被称为“OSGi 框架”,用于嵌入式设备以及 IBM WebSphere 等企业应用程序服务。 Eclipse IDE 也是基于 OSGi 的。
除了 OSGi 框架之外,联盟还定义了几个通用规范。其中包括日志记录、用户管理和权限管理方面的规范。
该联盟还包括处理更具体主题的专家组。其中一个小组致力于与物联网相关的技术要求和规范。另一方面,企业专家组处理企业业务场景中的用例,而住宅专家组则致力于住宅网关和楼宇自动化网关等设备。
什么是 OSGi 框架?
凯·哈克巴特 OSGi 定义了一个基于 Java 的模块化软件架构,它遵循面向服务架构 (SOA) 的原则。这在实践中意味着什么?假设您开发了停车服务。仔细观察就会发现,您可以将这项服务分解为更小的块:您需要一项 GPS 服务来告诉您汽车所在的位置。您可能还需要一项服务来寻找该地区的开放停车位,而另一项服务可以预留停车位并在您离开时付费。表面上看似停车服务的东西,其实是由许多不同的组件组成的。 OSGi 框架考虑的正是将应用程序拆分为 GPS 服务等捆绑包。
使用捆绑包可以更轻松地更新应用程序的各个部分。当您为整个应用程序开发更新时,您会冒着无意中在其他地方产生错误的风险。 OSGi 框架允许您在不影响应用程序其余部分的情况下针对特定包进行更新,从而无需在不同位置进行大量检查以确保更新功能正常。
模块化结构还意味着您不必从头开始开发每个新应用程序。如果您需要其他应用程序的位置信息,您可以简单地重复使用您为停车服务开发的 GPS 服务。
从开发者的角度来看,OSGi 有哪些好处?
凯·哈克巴特 从开发的角度来看,OSGi 导致了更结构化的方法。想象一下可能位于世界不同地区的不同开发团队在开发同一个应用程序。当团队需要集成各自的代码时,差异几乎总是存在的。代码的集成很少是一个顺利的过程,通常需要花费大量的时间和精力来解决问题。这被称为“集成地狱”。
由于 OSGi 遵循模块化结构,代码的集成变得更加无缝,从而有效地避免了集成地狱。这也意味着不同的开发团队可以更高效地合作,即使他们位于不同的地方。如前所述,在应用程序部署后修改和更新应用程序的过程也变得更加容易。开发者只需将注意力集中在需要更新的特定部分。
许多不同的设备带来了各种不同的通信协议。使用“抽象层”,OSGi 还可以帮助开发人员应对这一挑战。该层允许您从其协议中抽象设备并使用单个接口开发应用程序。假设您使用支持 ZigBee、蓝牙和 Z-Wave 的网关。多亏了抽象层,您不必是这些协议的专家——您的应用程序只需使用所有这些协议即可。
然而,使用 OSGi 也意味着在开始项目时要付出更多的思考和努力。开发人员必须考虑他们希望如何模块化他们的应用程序。他们还必须定义不同应用程序部分之间的依赖关系。虽然这个过程肯定需要时间,但它也确保了其余的开发过程顺利进行。
从公司的角度来看,OSGi 有哪些好处?
凯·哈克巴特 OSGi 帮助公司管理其应用程序的复杂性。在物联网世界中,您不能开发和发布产品然后忘记它。您必须不断更新和调整您的应用程序,以满足客户不断变化的需求。这正是 OSGi 可以提供帮助的地方。
为了利用 OSGi 的优势,公司必须承诺使用它。如果一家公司决定开发基于 OSGi 的产品或应用程序,同时对其其他产品使用不同的技术,那么收益将不会像公司希望的那样显着。与任何其他技术一样,使用 OSGi 应该是公司作为一个整体的战略决策。想一想:如果一家公司开发了许多不同的基于 OSGi 的产品,它可以从 OSGi 提供的模块化结构中受益。它允许您只开发一次特定组件,并在需要时重用它。这可以节省开发资源,并使公司能够专注于全新的功能。
为什么在谈论物联网时经常提到 OSGi?
凯·哈克巴特 物联网是一个异构环境。它跨越多个领域,许多参与者提供不同的解决方案和产品。为了应对这种复杂性,需要一种或另一种形式的标准化和互操作性。而 OSGi 恰恰提供了这一点。
它不仅可以帮助您开发与不同平台兼容的应用程序。正如我已经解释过的,OSGi 在开发和维护应用程序的方式方面也很有用。它使公司能够进一步发展他们的应用程序,开发人员可以轻松地提供有针对性的更新,以及添加新功能。最后但并非最不重要的一点是,OSGi 与领域无关,使其非常适合物联网这样多样化的领域。
物联网技术