RT - OSGi:将OSGi框架与Java实时规范集成
1. 引言
服务是一方提供给另一方的行为或性能,与组件、对象、模块等概念不同,服务具有动态可发现性和动态可用性。服务请求者通常根据服务接口进行编译,并在运行时动态发现和绑定服务接口的实现。服务实现的动态可用性意味着在运行时的某些时刻,服务接口的实现可供服务请求者发现和绑定,而在其他时刻可能会被撤回。
基于这种动态可发现和动态可用的服务,产生了面向服务的架构(SOA),它将软件开发视为服务请求者和服务提供者的集合。使用SOA开发软件的主要好处是其动态发现和动态可用性特性使软件能够进行有限形式的动态重新配置,即软件配置可以在不关闭应用程序的情况下进行更改。
2. OSGi框架
OSGi框架融合了面向服务的动态发现和动态可用性概念,以及基于组件的软件工程(CBSE)的模块化概念。它是一个基于Java的组件框架,具有JVM内的服务模型。应用程序开发者将应用程序开发和部署为多个Java组件(在OSGi框架中称为Bundles),这些组件中的线程通常使用OSGi框架提供的服务注册表来注册和/或请求服务。
OSGi框架为应用程序提供了高度的动态可重新配置性,这不仅通过SOA的动态特性实现,还通过OSGi的生命周期操作实现。这些生命周期操作允许在运行时安装、卸载和更新组件。
动态重新配置的优点是提高了系统的可用性。OSGi应用程序在系统维护、演进和重新配置期间可以保持在线并可用,尽管可能会有一定程度的性能下降。这与大多数非OSGi应用程序不同,后者通常需要离线进行维护和演进。
OSGi框架在许多不同领域的软件开发中是一个有吸引力的选择,如汽车工业、桌面计算