成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OSGi 4.2規(guī)范已發(fā)布 新特性介紹

開(kāi)發(fā) 后端
本文介紹OSGi 4.2規(guī)范中的一些新特性。OSGi 4.2原本計(jì)劃在今年8月推出,后推遲到9月15日發(fā)布。

OSGi 4.2規(guī)范終于在9月中旬發(fā)布,下面介紹一些OSGi 4.2新規(guī)范中的特性。本文原文來(lái)自InfoQ的Alex Blewitt發(fā)布的消息。

51CTO編輯推薦:OSGi入門(mén)與實(shí)踐全攻略

一些 OSGi 實(shí)現(xiàn),例如 Equinox 3.5 與 Felix 2.0 早已針對(duì) OSGi 4.2 規(guī)范做了一些兼容實(shí)現(xiàn),但當(dāng)時(shí) OSGi 4.2 還沒(méi)有發(fā)布,當(dāng)然也不能說(shuō)其實(shí)現(xiàn)了 OSGi 4.2 規(guī)范。現(xiàn)在規(guī)范正式發(fā)布了,各實(shí)現(xiàn)團(tuán)隊(duì)還需要進(jìn)行一些調(diào)整已完全滿足規(guī)范要求。

新的規(guī)范里有哪些特性呢?

框架啟動(dòng)( Framework launching)

以前雖然可以在 Java 應(yīng)用中(例如 Equinox 的 servlet 橋接 )啟動(dòng)嵌入的 OSGi 引擎,但針對(duì)特定引擎都有特定的啟動(dòng)方式。雖然有一些包裝器(例如 Pax Runner )使得引擎啟動(dòng)相對(duì)容易,但還是必須熟悉特定引擎的知識(shí)。在現(xiàn)在的規(guī)范中,定義了透明的啟動(dòng)機(jī)制使得不需要知道 OSGi 實(shí)現(xiàn)引擎就可以將其啟動(dòng)。這樣一來(lái),不管是在 Equinox 還是 Felix 下測(cè)試都只用替換啟動(dòng)類(lèi)路徑下的相應(yīng)引擎 Jar 包就可以了。

遠(yuǎn)程服務(wù)(Remote Service)

以前也許你曾經(jīng)聽(tīng)說(shuō)過(guò)分布式 OSGi(Distributed OSGi)以及 RFC 113,而 OSGi 4.2 中的遠(yuǎn)程服務(wù)就是類(lèi)似技術(shù)的新名字,它將各個(gè) OSGi 虛擬機(jī)(OSGi VMs)連接到了一起。遠(yuǎn)程服務(wù)采用了服務(wù) 的概念(熱拔插 OSGi 應(yīng)用的精髓),提供了導(dǎo)出服務(wù)到遠(yuǎn)程消費(fèi)端與在本地消費(fèi)遠(yuǎn)程服務(wù)的機(jī)制。與其他分布式方法(例如 RMI)不同的是,遠(yuǎn)程服務(wù)不需要實(shí)現(xiàn)特殊接口,也不用拋出 checked exception 。當(dāng)然,發(fā)生異常的時(shí)候遠(yuǎn)程服務(wù)不會(huì)裝作工作正常,可以把異常看作是一種在任何情況下都因該進(jìn)入并作用于 OSGi 環(huán)境的服務(wù)。

籌備服務(wù)(Blueprint Service)

OSGi 4.2 中的籌備服務(wù)的概念非常類(lèi)似于控制反轉(zhuǎn) / 依賴注射。它允許客戶端從外部配置文件指定連接的服務(wù),此服務(wù)將被動(dòng)態(tài)地連接到客戶端。向聲明式服務(wù)一樣,你可以對(duì)服務(wù)類(lèi)型上做些限制,例如是否為強(qiáng)制(mandatory);但與聲明式服務(wù)也有些不同,當(dāng)所需服務(wù)缺失時(shí)籌備服務(wù)可以提供一個(gè)默認(rèn)的服務(wù)代理實(shí)現(xiàn),當(dāng)客戶代碼嘗試調(diào)用此服務(wù)時(shí),客戶端將被服務(wù)代理阻塞,直到真正的服務(wù)連接成功。綜上,使用籌備服務(wù)的特性可以避免與 OSGi 產(chǎn)生耦合,這使得應(yīng)用既可以在 OSGi 環(huán)境內(nèi)運(yùn)行,也可以脫離 OSGi 環(huán)境運(yùn)行。

Bundle 追蹤器(Bundle Tracker)

OSGi 早已有了服務(wù)追蹤器,用于監(jiān)控服務(wù)的來(lái)龍去脈;而 Bundle 追蹤器是追蹤 bundles 的一個(gè)擴(kuò)展。在以前在服務(wù)中就可以使用 BundleListener 來(lái)監(jiān)聽(tīng) bundle 動(dòng)態(tài)進(jìn)出,而如今的 BundleTracker 與 ServiceListener 有著同等的可用性。其可被用于執(zhí)行動(dòng)態(tài)注冊(cè)當(dāng)籌備服務(wù)或是聲明式服務(wù)正在讀取(與處理)元數(shù)據(jù)。例如,一個(gè)基于 Web 的引擎就可以自動(dòng)地掃描出新安裝的 bundles,并通過(guò) HttpService 自動(dòng)注冊(cè) servlets。

服務(wù)鉤子(Service Hooks)

在判斷存在什么服務(wù)時(shí),是可以對(duì)服務(wù)之間的事件進(jìn)行攔截、過(guò)濾的。例如在實(shí)現(xiàn)一個(gè)基于角色的權(quán)限模型或是針對(duì)不同產(chǎn)品級(jí)禁用 / 可用對(duì)應(yīng)功能集。另一個(gè)方法是提供代理服務(wù)(或是負(fù)載均衡)從而攔截其他 bundle 的事件將其隱藏,以備在后續(xù)階段代理給其他機(jī)制(例如分布式服務(wù))。另外,監(jiān)聽(tīng)鉤子也可以在服務(wù)沒(méi)有被注冊(cè)前按需將服務(wù)啟動(dòng)。

條件化的權(quán)限(Conditional permissions)

OSGi 4.2 在有關(guān)權(quán)限方面的升級(jí)包含了拒絕訪問(wèn)(DENY access)與允許訪問(wèn)。在認(rèn)證簽名后,可以為 bundles 子集顯示地指定操作權(quán)限。可以鎖定未簽名的 bundles 的安裝,有助于構(gòu)建一個(gè)安全的 OSGi 平臺(tái)。

OSGi 4.2 規(guī)范相對(duì)于 4.1 版還有很多變化,例如 OSGi bundles 有自己的 MIME 類(lèi)型 (application/vnd.osgi.bundle ),可以為某個(gè) bundle 指定圖標(biāo)以及許可證,對(duì)于聲明式服務(wù)可以簡(jiǎn)化其權(quán)限集合設(shè)置(使用包內(nèi)友好替代了 protected)。DS schema 也允許其他對(duì)特定服務(wù)信息有助的 XML 元素。另外,提供了一個(gè)機(jī)制使得應(yīng)用管理員可以在應(yīng)用結(jié)束是獲取該應(yīng)用的返回值。

Equinox 3.5 已經(jīng)提供了一些類(lèi)似的功能,Apache Felix 對(duì)類(lèi)似功能在這個(gè)月初也通過(guò)了測(cè)試(早于 4.2 規(guī)范發(fā)布)。這個(gè)月結(jié)束前,OSGi 官方將針對(duì) 4.2 規(guī)范發(fā)布測(cè)試套件相關(guān)信息。

【編輯推薦】

  1. OSGi 4.2將于8月發(fā)布 新版特性預(yù)覽
  2. Spring Tool Suite開(kāi)始支持OSGi
  3. 基于OSGi的動(dòng)態(tài)化系統(tǒng)搭建
  4. 初探OSGi Web容器:控制Web程序的生命周期
  5. Equinox的OSGi實(shí)現(xiàn)與應(yīng)用服務(wù)器
責(zé)任編輯:yangsai 來(lái)源: CSDN博客
相關(guān)推薦

2009-06-01 11:12:34

OSGi規(guī)范架構(gòu)體系結(jié)構(gòu)

2009-07-28 17:48:13

OSGi 4.2

2012-10-31 09:46:46

Android 4.2

2021-03-30 14:50:41

前端TypeScript 命令

2010-05-13 16:39:27

Subversion1

2013-02-26 09:36:57

RubyRuby 2.0

2009-06-01 11:20:21

OSGi服務(wù)規(guī)范非贏利機(jī)構(gòu)

2009-10-23 09:30:37

OSGi

2011-04-25 15:22:59

DojoAMD

2011-07-19 13:39:20

iOS HTML5

2014-08-21 10:34:11

Java 9Java

2021-04-30 19:53:41

Java表達(dá)式代碼

2012-03-14 12:29:55

JavaPlay Framwo

2009-08-12 13:15:44

C#3.5新特性

2011-07-06 16:38:57

Xcode Preview

2009-08-18 17:03:49

C#3.5新特性

2012-08-02 17:38:38

瀏覽器

2011-07-29 09:31:32

JDK 7

2024-04-18 08:04:47

ElectronChrome升級(jí)

2022-08-29 15:30:46

TypeScript代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久综合一区 | 亚洲一页 | 夜夜夜操 | 三级在线视频 | 精品久久久久久久久久久久久久 | 一区二区国产在线观看 | 九色视频网 | 中文字幕免费中文 | 欧美日韩中文字幕在线 | 亚洲成人免费视频 | 亚洲一区免费 | 美女三区 | 99re6在线视频| 天天干天天玩天天操 | 欧美视频免费在线 | 国产视频一区二区 | 国内精品久久久久久久影视简单 | 日日干日日 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 亚洲午夜精品视频 | 国产精品久久久久aaaa樱花 | 天天操天天射天天 | 久久9999久久 | 成人福利在线观看 | 精品在线看 | 91日韩在线| 久久中文字幕一区 | 国产女人第一次做爰毛片 | 91电影 | 色综合久久88色综合天天 | 久久精品免费 | 成人精品国产免费网站 | 久久精品国产亚洲一区二区 | 国产精品美女www爽爽爽视频 | 国产一区二区激情视频 | 久久久久国产精品一区二区 | 狠狠操电影 | 久久国产精品一区 | 产真a观专区 | 精品国产免费人成在线观看 | 操皮视频 |