首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OSGi简介

我们说到OSGi时,根据上下文不同,通常可能指OSGi联盟、OSGi标准或者OSGi框架。...不过现在OSGi已经不作为开放服务网关协议的缩写了,OSGi联盟官方网站的介绍中,OSGi只是作为一种技术的名称,而不是一种缩写了。...这一系列的标准由OSGi联盟维护,标准的实现通常则称为OSGi容器或者OSGi服务平台。下面我们就分别简单介绍OSGi标准、OSGi的特点、业务主流的OSGi实现与扩展和OSGi联盟。...OSGi各个版本的标准可以从osgi.org中下载。最新标准分为两个部分,OSGi Core和OSGi Enterpise。...除了提供运行环境外,Knopflerfish也提供了一套Eclipse的SDK,帮助开发者开发OSGi应用。 OSGi联盟 最后再说一说维护着OSGi标准,推动OSGi一直向前发展的OSGi联盟。

3.3K50
您找到你想要的搜索结果了吗?
是的
没有找到

OSGi 基本原理

OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。 为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方。...OSGi的主要职责就是为了让开发者能够创建动态化、模块化的Java系统。 OSGi 框架 OSGi框架从概念上可以分为三层:模块层、生命周期层和服务层。...模块层 模块层是 OSGi 框架中最基础的部分。 OSGi 的模块化,是通过为 Jar 包添加metadata 来定义哪些类该暴露,哪些类该隐藏,其控制单元叫做 Bundle(jar 包)。...服务层 一个OSGi 服务就是注册到 OSGi 框架中的一个 Java 对象。注册的时候可以设置这个 Service 的属性。而在获取 Service的时候可以根据属性进行过滤。...参考资料 OSGi入门篇:模块层 OSGi入门篇:生命周期层 OSGi入门篇:服务层 OSGi原理与最佳实践

2.9K90

模块化服务规范——OSGI

什么是OSGI OSGi(Open Service Gateway Initiative)有双重含义。...一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务(业务)规范——OSGi服务平台(Service Platform)。...OSGi原先关注于服务网关,其实可用于多个方面。现在OSGi规范已经用于从移动电话到开源的Eclipse(其中包括了与IBM的OSGi框架SMF兼容的开源版本)。...OSGi规范是由成员通过公开的程序开发,对公众免费而且没有许可证限制。但是OSGi Alliance的兼容性程序只对成员开放,目前有12个兼容的实现。...、移动应用、富互联网应用(RIA)提供了非常优秀的基础架构 OSGI的分类 主要分成以下三个部分: 1、OSGi服务平台Core规范及服务集合。

1.5K30

Poc之后,我选择放弃OSGI

Poc之后,我选择放弃OSGI TIPS: 如贵司允许重构老系统或者允许使用OSGI的第三方框架改造所带来的投入成本,并且评估之后ROI乐观,那么还是可以使用的。...Runtime Version 以下问题全部基于Equinox框架 & 使用BluePrint 整合Spring框架 OSGI org.eclipse.osgi 3.15.0v20190830-...spring3以后,好像就没有人维护osgi的版jar包了,想要使用更高版本,只能自己生成bundle....基础Spring Bean注入通过xml方式已经成功,但是目前的bundle缺失较多,最重要的为jdbc & transaction,spring 在3.2之后升级为spring-tx,而且不提供osgi...暴露rest service 利用,osgi自带的HttpService服务,再通过org.eclipse.equinox.servletbridge.BridgeServlet把服务桥接出去 关于现有的

1.3K20

灵活的类加载器OSGI

简介 OSGi中的每个模块(称为Bundle)与普通的Java类库区别并不太大,两者一般都以JAR格式进行 封装[2],并且内部存储的都是Java的Package和Class。...以上这些静态的模块化特性原本也是OSGi的核心需求之一,不过它和后来出现的Java的模块化系统互相重叠了,所以OSGi现在着重向动态模块化系统的方向发展。...说人话就是OSGI框架,可以对需要加载的类进行精细化的控制,形成一个网状结构,而不是之前的树形的结构。...在今天,通常引入OSGi的主要理由 是基于OSGi架构的程序很可能(只是很可能,并不是一定会,需要考虑热插拔后的内存管理、上下文状态维护问题等复杂因素)会实现模块级的热插拔功能,当程序升级更新或调试除错时...OSGi之所以能有上述诱人的特点,必须要归功于它灵活的类加载器架构。OSGi的Bundle类加载器 之间只有规则,没有固定的委派关系。

63330

Springboot Application 集成 OSGI 框架开发

类加载器 OSGI 类加载器并不遵循 Java 的双亲委派模型,OSGi 为每个 bundle 提供一个类加载器,该加载器能够加载 bundle 内部的类和资源,bundle 之间的交互是从一个 bundle...图 1.OSGI 类加载器 ? image OSGI 框架根据 Bundle 的 MANIFEST.MF 文件中描述的数据信息进行解析处理 Bundle 间的依赖关系。...Equinox OSGI ServletBridge 实现原理及源码解析 BridgeServlet 与 OSGI 容器 Equinox 提供了 servletbridge.jar 将 OSGI framework...Spring boot 应用中嵌入 OSGI 开发和 Spring boot 应用如何与 OSGI 插件之间进行相互调用。...并对它的实现方法做了进一步的探讨,这些探讨对于将 OSGI 应用嵌入到任何其他的系统中是一个启发和帮助,希望有兴趣的读者可以做进一步的了解和实现。

1.3K20

用Java的OSGi框架构建灵活模块化应用

OSGi框架的概念和特点并通过一个代码示例来演示如何使用OSGi构建一个模块化的Java应用程序。...一、OSGi框架概述OSGi是一种面向服务的模块化框架它将应用程序划分为多个独立的、可重用的模块每个模块被称为一个bundle每个bundle都有自己的生命周期、类加载器和依赖管理机制OSGi框架提供了动态部署...二、OSGi代码示例为了演示OSGi框架的使用我们将创建一个简单的示例其中包含两个模块:一个模块提供Greeting服务另一个模块使用该服务进行输出。...: com.example.osgi.demo.GreetingModule;com.example.osgi.demo.ClientModule三、运行OSGI应用程序为了运行OSGi应用程序我们需要一个...Java的OSGi框架。

32140

OSGi的模块化和动态模块的好处

关于OSGi的原理可以查看: OSGi基本原理 学习OSGi的可以查看:模块化服务规范——OSGI 所以,OSGi的组件系统究竟能给你带来什么好处呢?...9、简单 使用OSGi是非常的简单的,它不但依赖管理、配置和动态性都非常强大,而且OSGi的代码也和传统的Java代码完全相似。...因此,这些开发者可以将某个OSGi框架包括在WAR文件中,并将软件包从文件系统或通过网络装载到应用服务器中来运行。OSGi非常的灵活,这使得一个应用服务器上就可以容易地作为多个OSGi框架的宿主。...OSGi的最佳实践就是编写POJO(Plain Old Java Objects),并且由于这个原因,OSGi服务并不需要任何特殊的接口,甚至一个Java的String对象也可以充当一个OSGi服务。...如果你是在Java开发软件,OSGi技术应该是一个合乎逻辑的下一步,因为它解决了许多你可能不知道可以解决的问题。 OSGi技术的优势如此之多,如果你使用Java,那么OSGi 应该在你的工具箱中。

1.5K10

CTK完整教程(OSGI for C++ 实现 C++ Qt 模块化)

CTK插件框架的设计有很大的灵感来自OSGi并且使得应用程序由许多不同的组件组合成一个可扩展模型。这个模型允许通过那些组件间共享对象的服务通信。...Plugin Framework[6]:用于 C++ 的动态组件系统,以 OSGi 规范为模型。...其实严格来说,CTK Plugin Framework 同时借鉴了 OSGi 和 Qt Creator 的思想。...动态更新 OSGi 组件模型是一个动态模型,插件可以在不关闭整个系统的情况下被安装、启动、停止、更新和卸载。 自适应 OSGi 组件模型是从头设计的,以允许组件的混合和匹配。...懒加载 懒加载是软件中一个很好的点,OSGi 技术有很多的机制来保证只有当类真正需要的时候才开始加载它们。例如,插件可以用饿汉式启动,但是也可以被配置为仅当其它插件使用它们时才启动。

6K13
领券