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了)

天上云月付572元,起香港三网CN2直连,独立服务器88折优惠,香港沙田机房

天上云怎么样?天上云隶属于成都天上云网络科技有限公司,是一家提供云服务器及物理服务器的国人商家,目前商家针对香港物理机在做优惠促销,香港沙田机房采用三网直连,其中电信走CN2,带宽为50Mbps,不限制流量,商家提供IPMI,可以自行管理,随意安装系统,目前E3-1225/16G的套餐低至572元每月,有做大规模业务的朋友可以看看。点击进入:天上云官方网站天上云香港物理机服务器套餐:香港沙田数据中...

HostKvm($4.25/月)俄罗斯/香港高防VPS

HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...

UCloud:美国云服务器,洛杉矶节点大促,低至7元起/1个月

ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...

osgi为你推荐
防护防护用品包括哪些?fast路由器FAST/迅捷无线路由器怎么设置图片修改工具要修改图片有什么软件可用什么是光纤什么是光纤网络摇一摇周边微信摇一摇周边怎么申请开通修复网络lspwin 7,lsp修复无法上网约束是什么意思软约束是什么意思趋势防毒趋势杀毒好用吗?上网能干什么手机上网能干什么有意思的事给我介绍一下3g模块如何启用3G功能及初始化3G模块?
网站空间价格 com域名价格 国内vps 免费注册网站域名 siteground 长沙服务器 怎样建立邮箱 双11秒杀 如何用qq邮箱发邮件 33456 创建邮箱 百度云加速 开心online 免费赚q币 winserver2008 什么是dns magento主机 e-mail cc加速器 连连支付 更多