osgiosgi 与其他的Java有什么区别

osgi  时间:2021-09-14  阅读:()

那位仁兄能解释一下什么是OSGi,还有Karaf

言归正传,之前在研究ODL的时候整理过OSGi的一些知识,分享一下,感谢度娘吧。

这是官方英文解释翻译版:OSGi service platform是一个开放并且提供统一接口标准的体系框架,基于这个体系框架,服务提供商,程序开发人员,软件提供商,服务网管运营商,设备提供商能够协调地联合起来开发,部署以及管理向用户提供的各种服务。

灰色部分是OSGi的基础也就是在任意一个本地操作系统上安装有java虚拟器就可以运行OSGi,换言之OSGi是基于Java的架构。

其中Execution Environment、Modules、Life Cycle、Service、Security是从五个不同的角度对OSGi的架构进行划分。

体系结构的最上层就是OSGi的统一接口Bundles。

Execution Environment是CVM + CDC + FP + PP组成的JVM配置,framework的modules这一方面功能将主要负责bundle的安装部署,更新和卸载,以及bundle在设备的物理存储(如果有的话)。

在这个层次,每个bundle都是独立的,它的安装,升级和卸载完全不依赖任何其他bundle,这点framework提供了强大的隔离性。

Life Cycle专门负责对bundle的解析(比如关联两个有相互依赖关系的bundle),启动(相当于运行应用程序)和停止(相当于停止应用程序)。

这个层次中,bundle间的逻辑关系被创建起来,这些关系能否成功的创建,将会直接影响bundle的成功解析和启动。

Service Registry可以认为是一个数据库,bundle启动后,可以向这个数据库注册它动态提供的服务。

只要bundle不被停止,且bundle不主动撤销注册的服务,这个服务将一直保存在这个数据库中供其它bundle来查询和使用。

而Services就是由bundle运行时提供的具体服务对象,这些服务对象的存在,使得framework具有极其动态的特征,并为framework运行时提供灵活强大的功能。

Jar文件是bundle的唯一格式,也就是说,我们要运行bundle,必须把代码打成jar文件。

而jar文件可以带有manifest文件,这个文件对bundle是不可缺少的。

OSGi规范里面,通过定义一系列适用于bundle的manifest关键字(bundle manifest header)来扩展manifest文件。

比如,开发人员在manifest中添加下面一行: Bundle-Activator: .FamilyInfo 这样,在bundle被部署到framework后,framework就可以通过读取manifest的关键字来获得BundleActivator的具体实现类名,并通过reflection机制产生BundleActivator的实例。

依赖文件 OSGi规范里面,通过定义一系列适用于bundle的manifest关键字(bundle manifest header)来扩展manifest文件。

OpenDaylight中有的OSGi框架中的信息存放在MENIFEST.MF文件中,其中主要代码如下: 1 Manifest-Version: 1.0 2 Bnd-LastModified: 1394981967537 3 Build-Jdk: 1.7.0_25 4 Built-By: FLY_YE 5 Bundle-Activator:.opendaylight.controller.switchmanager.internal.Act ivator 6 Bundle-ManifestVersion: 2 7 Bundle-Name: switchmanager.implementation 8 Bundle-SymbolicName:.opendaylight.controller.switchmanager.implement ation 9 Bundle-Version: 0.4.1.SNAPSHOT 10 Created-By: Apache Maven Bundle Plugin 11 Import-Package: 其中,行1为manifest版本号,行3是基于的JDK版本,行5为绑定Bundle的类也就是OSGi插件的入口,在bundle被部署到framework后,framework就可以通过读取manifest的关键字来获得BundleActivator的具体实现类名,并通过reflection机制产生BundleActivator的实例。

行6为用于Bundle的manifest版本,行7是Bundle的名称,行8为osgi specification 4强制要求的关键字,每个bundle都必须有唯一的symbolic name,行9为Bundle的版本,行10是Bundle的建立方式,行11是必须使用的,列出该bundle需要从其他bundle所引入的package(s)(提供该package的bundle必须在其manifest中有Export-Package:。

入口 在启动后通过Activator进入每个插件,这些Activator均继承自类ComponentActivatorAbstractBase,其中包含了初始化、销毁、配置、插件启动和停止等公共方法,每个插件都有其自身的Activator用来提供特有的服务,在Switch Manager中主要涉及到类的绑定和功能的加载。

public Object[] getImplementations() { Object[] res = { SwitchManager.class }; return res; } 上述代码为绑定模块的方法,主要通过该入口与Switch Manager产生依赖。

configureInstance(Component c, Object imp, String containerName)用来增加相应的服务。

getGlobalImplementations()用于增加全局依赖——SwitchManagerCLI.class,该类中包含了相关的插件启动、停止,shownodes、shownodeconnectors信息。

如何使用 Maven 开发OSGI web bundle

你好。

根据你的描述: web bundle 我的实现方法是在OSGi中加入一个jetty bundle,其他bundle引用这个HttpService,并把自己加入到这个HttpService中。

osgi 与其他的Java有什么区别

具体说的话,需要一本书才能描述。

简单的话,osgi可以动态换jar包,可以控制jar包中可以被外界访问的类,但所有的jar包都要满足osgi规范。

这就让人又爱又恨,动态换是很好的,控制访问也感觉是很不错的封装。

可所有jar包转换成osgi规范,这可以让人疯掉(spring就疯了,宣布3.2以后不支持osgi了)

BuyVM商家4个机房的官方测试IP地址和测速文件

BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...

乌云数据(10/月),香港cera 1核1G 10M带宽/美国cera 8核8G10M

乌云数据主营高性价比国内外云服务器,物理机,本着机器为主服务为辅的运营理念,将客户的体验放在第一位,提供性价比最高的云服务器,帮助各位站长上云,同时我们深知新人站长的不易,特此提供永久免费虚拟主机,已提供两年之久,帮助了上万名站长从零上云官网:https://wuvps.cn迎国庆豪礼一多款机型史上最低价,续费不加价 尽在wuvps.cn香港cera机房,香港沙田机房,超低延迟CN2线路地区CPU...

欧路云:美国200G高防云-10元/月,香港云-15元/月,加拿大480G高防云-23元/月

欧路云 主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。由专业人员提供一系列的技术支持!官方网站:https://www.oulucloud.com/云服务器(主机测评专属优惠)全场8折 优惠码:zhuji...

osgi为你推荐
庞大庞大的庞字是什么意思按键精灵教程按键精灵怎么使用fast路由器FAST无线路由器要怎么设置资源优化配置社会资源优化配置的标志是什么?怎样实现?监控员工我现在在看监控一线员工的。如何做好看监控的工作?摇一摇周边摇一摇周边怎么打开工作经验介绍个人简历中的服务员工作经验怎么写比较好乐辞清谈的含义及意义?乐辞自驱力读后感官方网店官方旗舰店和旗舰店是什么意思,有什么区别?它们卖的都是正品行货吗?
新加坡虚拟主机 河北服务器租用 域名备案只选云聚达 腾讯云盘 bluevm 国外私服 长沙服务器 dux 天互数据 帽子云 已备案删除域名 cdn加速原理 ftp免费空间 vip域名 华为云服务登录 台湾google 上海电信测速 阿里云邮箱个人版 免费赚q币 windowsserver2012r2 更多