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

Atcloud:全场8折优惠,美国/加拿大/英国/法国/德国/新加坡vps,500g大硬盘/2T流量/480G高防vps,$4/月

atcloud怎么样?atcloud刚刚发布了最新的8折优惠码,该商家主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御。Atcloud高防VPS。atcloud.net,2020年成立,主要提供基于KVM虚拟架构的VPS、只能DNS解析、域名、SS...

VPSMS:53元/月KVM-512MB/15G SSD/1TB/洛杉矶CN2 GIA

VPSMS最近在做两周年活动,加上双十一也不久了,商家针对美国洛杉矶CN2 GIA线路VPS主机提供月付6.8折,季付6.2折优惠码,同时活动期间充值800元送150元。这是一家由港人和国人合资开办的VPS主机商,提供基于KVM架构的VPS主机,美国洛杉矶安畅的机器,线路方面电信联通CN2 GIA,移动直连,国内访问速度不错。下面分享几款VPS主机配置信息。CPU:1core内存:512MB硬盘:...

Digital-VM暑期全场六折优惠,8个机房

Digital-VM商家目前也在凑热闹的发布六月份的活动,他们家的机房蛮多的有提供8个数据中心,包括日本、洛杉矶、新加坡等。这次六月份的促销活动全场VPS主机六折优惠。Digital-VM商家还是有一点点特点的,有提供1Gbps和10Gbps带宽的VPS主机,如果有需要大带宽的VPS主机可以看看。第一、商家优惠码优惠码:June40全场主机六折优惠,不过仅可以月付、季付。第二、商家VPS主机套餐1...

osgi为你推荐
小型企业网络方案如果有一个小型企业网络需要你去规划,请讲述你的规划思路?电脑手机网页浏览器怎么在手机上打开电脑网页啊?项目质量管理在项目质量管理中有什么教育城域网教育城域网的教育城域网的用途招行信用卡还款我是招行的信用卡!该怎么还款快照优化快照跟不上优化节奏优化方法出问题?互动电视互动电视和有线电视的数字电视有什么区别网络购物的发展网购如何促进经济的发展?官方网店淘宝网的官方网店是什么里程碑2里程碑2怎么样
域名注册商 北京虚拟主机租用 北京域名注册 游戏服务器租用 什么是域名解析 免费申请域名 google电话 burstnet awardspace 服务器cpu性能排行 搜狗12306抢票助手 网站被封 777te vip购优汇 柚子舍官网 新家坡 免费吧 什么是服务器托管 如何用qq邮箱发邮件 上海服务器 更多