偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

51CTO編輯推薦:OSGi入門與實踐全攻略

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

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

框架啟動( Framework launching)

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

遠程服務(wù)(Remote Service)

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

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

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

Bundle 追蹤器(Bundle Tracker)

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

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

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

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

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

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

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

【編輯推薦】

  1. OSGi 4.2將于8月發(fā)布 新版特性預(yù)覽
  2. Spring Tool Suite開始支持OSGi
  3. 基于OSGi的動態(tài)化系統(tǒng)搭建
  4. 初探OSGi Web容器:控制Web程序的生命周期
  5. Equinox的OSGi實現(xiàn)與應(yīng)用服務(wù)器
責任編輯:yangsai 來源: 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ī)范非贏利機構(gòu)

2009-10-23 09:30:37

OSGi

2011-04-25 15:22:59

DojoAMD

2011-07-19 13:39:20

iOS HTML5

2012-03-14 12:29:55

JavaPlay Framwo

2021-04-30 19:53:41

Java表達式代碼

2014-08-21 10:34:11

Java 9Java

2009-08-19 16:51:14

C# 4.0 dyna

2021-03-06 08:10:16

Redis6 Java架構(gòu)分布式框架

2017-01-09 16:25:55

Android Shortcuts系統(tǒng)

2009-03-24 11:54:12

2022-08-29 15:30:46

TypeScript代碼

2013-06-17 18:19:41

CocoStudio工cocos2d-x

2011-07-06 16:38:57

Xcode Preview
點贊
收藏

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