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

spinservers春节优惠:$149/月10Gbps圣何塞服务器-2*E5-2630Lv3 CPU,256G内存,2*1.6T SSD硬盘

spinservers是Majestic Hosting Solutions LLC旗下站点,商家提供国外服务器租用和Hybrid Dedicated等产品,数据中心包括美国达拉斯和圣何塞机房,机器默认10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。农历春节之际,商家推出了几款特别促销配置,最低双路E5-2630Lv3机器每月149美元起,下面列出几款机器...

云步云72.5元/月起云服务器,香港安畅/葵湾/将军澳/沙田/大浦CN2机房,2核2G5M

云步云怎么样?云步云是创建于2021年的品牌,主要从事出售香港vps、美国VPS、日本VPS、香港独立服务器、香港站群服务器等,机房有香港、美国、日本东京等机房,目前在售VPS线路有CN2+BGP、CN2 GIA,香港的线路也是CN2直连大陆,该公司旗下产品均采用KVM虚拟化架构。目前,云步云提供香港安畅、沙田、大浦、葵湾、将军澳、新世界等CN2机房云服务器,2核2G5M仅72.5元/月起。点击进...

knownhost西雅图/亚特兰大/阿姆斯特丹$5/月,2个IP1G内存/1核/20gSSD/1T流量

美国知名管理型主机公司,2006年运作至今,虚拟主机、VPS、云服务器、独立服务器等业务全部采用“managed”,也就是人工参与度高,很多事情都可以人工帮你处理,不过一直以来价格也贵。也不知道knownhost什么时候开始运作无管理型业务的,估计是为了扩展市场吧,反正是出来较长时间了。闲来无事,那就给大家介绍下“unmanaged VPS”,也就是无管理型VPS,低至5美元/月,基于KVM虚拟,...

osgi为你推荐
容灾备份容灾备份的容灾备份建设模式体系文件什么叫采购体系文件0x800ccc0f您的服务器意外终止了连接。其可能原因包括服务器出错、网络出错或长时间处于非活动状态。 0x800CCC0Fburndown如何画burndown chart摇一摇周边微信摇一摇周边红包设置soap是什么意思捡肥皂是什么意思啊?无恶意,就好奇黑屏操作电脑在黑屏的情况怎么重新操作系统里程碑2里程碑2怎么样里程碑2求摩托罗拉里程碑2的优缺点,及性能简介约束是什么意思cad软件里“推断约束是什么意思”
域名估价 免费网站域名注册 新秒杀 debian6 国外空间 500m空间 html空间 华为网络硬盘 搜索引擎提交入口 web服务器安全 in域名 web应用服务器 江苏徐州移动 97rb 国外免费网盘 mteam 酷锐 server2008 认证机构 let 更多