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

Equinox OSGi系列之一 Equinox入門

開發 后端
以Equinox項目為基礎,講述如何實現基于OSGi的應用。

Equinox項目是Eclipse開源組織提供的OSGi框架的實現。Eclipse自3.0版本開始,其內核移植到OSGi框架上。通過OSGi框架強大的組件控制,交互和管理能力,再加上Eclipse插件的自有特點,Eclipse開源框架得到了跳躍式的發展。同時,OSGi規范得益于Eclipse IDE環境龐大的使用者,OSGi聯盟也進入了快速發展時期。

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

OSGi框架在2006年之前還不為廣大的開發者所知,OSGi的開源框架實現也只有ObjectWeb上的Oscar和Knopflerfish兩個實現。最初的OSGi標準主要應用于J2ME和J2SE,Equinox的加入使得OSGi標準的應用領域不斷擴充,目前OSGi在J2EE方面的應用也在不斷的發展中。

OSGi的本質是將Java面向對象的開發轉向面向組件和服務的開發。OSGi框架提供了一套完善的機制用于管理和控制組件(Bundle)、服務(Service)的生命周期,以及組件和服務在其生命周期內的交互。

本文及后續系列文章將以Equinox項目為基礎,講述如何實現基于OSGi的應用。

2. Equinox項目概述


Equinox項目包括OSGi R4版本規范核心框架的實現,一系列OSGi標準服務Bundle及運行基于OSGi的系統的一些基礎構件。用戶可以直接訪問該項目在Eclipse的網址Equinox獲取概括性的信息。目前,關于Equinox的進展大部分資料及項目進展存在于Eclipse Wiki上。

目前,Equinox項目包括OSGi核心框架的實現,OSGi標準服務Bundle實現,OSGi的服務器端(J2EE實現)應用,Equinox部署更新框架及一些研究方向(未成熟發布的構想如JMX管理,安全管理,面向方面的設計與應用等)。

2.1 OSGi核心框架的實現


Equinox的OSGi核心實現由三部分組成,包括:

OSGi核心規范的實現(org.eclipse.osgi)

該項目是OSGi核心框架標準規范的實現。由于Eclipse在3.0版本之前未采用OSGi作為系統內核,所以,為了重用Eclipse3.0以前核心系統的代碼,Equinox的OSGi實現在一定程度上顯得比較繁冗。用戶如果想研究開源的OSGi框架實現的源代碼,可以從Oscar(目前為Apache的Felix項目)或Knopflerfish項目著手。ObjectWeb上的Oscar項目最初實現OSGi R2版本框架時,整個核心的源代碼不超過40個類文件。現在,Oscar項目轉由Apache維護,項目稱之為Felix,目前已發布1.0版本。Knopflerfish也是很早實現OSGi的一個開源項目,該項目的網站上提供了很多關于OSGi編程的注意事項。

OSGi框架啟動支持(org.eclipse.equinox.launcher)

OSGi 框架啟動支持對于Eclipse IDE開發環境熟悉的開發用戶來說并不算陌生。使用Eclipse以前版本的用戶會發現在Eclipse安裝目錄下有一個startup.jar的文件,該文件是Eclipse開發環境的入口程序封裝。Equinox將該Jar文件的實現遷移為一個獨立的OSGi Fragment。該Fragment主要是幫助Equinox建立起運行環境,如類加載路徑,運行配置參數等等。

Equinox啟動可執行程序

Equinox啟動可執行程序即為eclipse.exe文件,該執行程序并不是Eclipse以前版本的exe可執行文件,而是由原來的eclipse.exe程序拆分而來,該執行文件的一部分功能拆分為一個共享DLL,放置在OSGi框架啟動支持段項目(org.eclipse.equinox.launcher)中,與原來的Eclipse根目錄下的startup.jar文件功能合并。

2.2 OSGi標準服務Bundle實現


OSGi在提出核心框架規范的同時為一些常用的服務如日志服務(LogService),配置管理服務(Config Admin),事件管理服務(Event Admin),HTTP服務(HTTP Service)等。Equinox提供了大部分OSGi標準服務的bundle的實現,同時,借助于Eclipse環境的一些自身的特點,Equinox在實現這些OSGi標準服務的同時,提供了很多功能擴展服務(如org.eclipse.equinox.common)。

Equinox項目目前提供的OSGi標準服務實現如下所示:

org.eclipse.equinox.app
Application Container

該項目實現了OSGi R4 MEG中的應用程序容器服務

org.eclipse.equinox.common
Common Utility Bundle

由一組Eclipse工具類(如IStatus,Assert,IAdaptable等)組成的實用程序Bundle。該Bundle也可以在非OSGi環境中獨立使用。

org.eclipse.equinox.device
Device Access Service

OSGi R4規范中的Device Access Service標準服務的實現,該組件由Prosyst公司提供實現。

org.eclipse.equinox.ds
Declarative Services

OSGi R4規范中的Declarative Service標準服務的實現,該組件由Prosyst公司提供實現

org.eclipse.equinox.event
Event Admin Service

OSGi R4規范中的事件管理服務的實現。

org.eclipse.equinox.http
HTTP Service

OSGi R4規范中的HTTP服務實現

org.eclipse.equinox.log
Log Service

OSGi R4規范中的日志服務實現

org.eclipse.equinox.metatype
Metatype Service

OSGi R4規范中的Metatype服務的實現

org.eclipse.equinox.preferences
Preferences Service

OSGi R4規范中的Preferences服務的實現

org.eclipse.equinox.registry
Extension Registry

Equinox提供的Ecipse擴展點(extension point)注冊表服務

org.eclipse.equinox.supplement
Supplemental Bundle/JAR

Equinox提供的一組Equinox實現所使用的類型庫

org.eclipse.equinox.useradmin
User Admin Service

OSGi R4規范中的用戶管理服務實現

org.eclipse.equinox.wireadmin
Wire Admin Service

OSGi R4規范中的服務通信拓撲管理服務

org.eclipse.osgi.services
OSGi Services API

OSGi R4規范中的服務接口定義,該Bundle由OSGi聯盟定義的服務API接口組成

org.eclipse.osgi.util
OSGi Utilities

OSGi R4規范中的工具類接口及接口實現Bundle

2.3 OSGi的服務器端(J2EE實現)應用


Equinox實現了OSGi在J2ME、J2SE方面的應用的同時,也推動了OSGi在J2EE方面的應用。Equinox提供了一組基礎的Bundle,使得使用JSP、Servlet和Struts等J2EE技術的Web應用項目可以運行于Equinox OSGi環境中。同樣的,Equinox通過一組Bundle,可以將Equinox OSGi應用嵌入到現有的Web服務器(如Tomcat,Jetty等)和應用服務器(如Websphere,Weblogic等)中。

下面是Equinox在J2EE應用方面的一組Bundle列表:

org.eclipse.equinox.http
HTTP service

該Bundle是OSGi R4規范中的HTTP服務的標準實現。目前該實現只支持Servlet 2.3。

org.eclipse.equinox.http.registry
HTTP registry

該Bundle支持使用Eclipse的擴展注冊表注冊servlet,文件資源和JSP而不是使用OSGi中的代碼注冊機制。

org.eclipse.equinox.servletbridge
Servlet Bridge

該Bundle提供一個底層的Hook servlet,使得Equinox可以嵌入到現有的應用服務器中運行。該Bundle中的servlet啟動嵌入的Equinox并使其可以處理來自底層應用服務器接收的HTTP請求。

org.eclipse.equinox.http.servlet
HTTP Servlet

該Bundle為在Equinox中發布其他servlet處理引擎(如傳統的應用服務器)為OSGi HTTP服務提供支持 。

org.eclipse.equinox.http.servletbridge
HTTP ServletBridge

該Bundle為底層的應用服務器(如Tomcat,Jetty等)發布為OSGi HTTP服務提供一層封裝。封裝的應用服務器必須安裝該servlet bridge。

javax.servlet
Servlet API

Servlet規范標準接口API的Bundle封裝。

javax.servlet.jsp
Servlet JSP API

Servlet JSP API接口的Bundle封裝。

org.mortbay.jetty
Jetty

嵌入式Jetty實現的Bundle封裝。目前Equinox提供的Jetty實現版本為5.x。

org.eclipse.equinox.http.jetty
HTTP Jetty

該Bundle封裝Jetty為標準的OSGI HTTP服務。目前該服務只能使用Jetty 5.x版本;如果用戶希望使用Jetty 6.x版本的Bundle封裝,可以參考ops4j上的實現。

關于如何在Equinox環境中部署Web應用(JSP、Servlet和Struts等),請參考Equinox網站相關資料。我會在本系列后續文檔中給出詳細介紹。

2.4 Equinox部署更新框架(Provisioning)


Eclipse提供為插件的分組,更新及遠程維護提供了一套完善的機制。用戶可以通過遠程更新站點安裝或升級所需功能的插件。為了適應OSGi環境的特點,Equinox項目組為基于OSGi的系統的部署更新提供了一套全新的框架,稱為 “equinox p2”。目前該框架還在***個發布版本的***階段,該功能預計將在Eclipse 3.4版本中集成發布。

2.5 Equinox的***研究方向
資源管理(Resource Monitoring)

該方向致力于為基于OSGi的系統提供一個輕量級的資源監控管理基礎框架,該框架基于JMX技術。目前該研究方向已經提供了一套可供展示的基本實現。

安全管理

該方向致力于將Java安全機制(JCA/JAAS框架)集成到Eclipse中。為Eclipse/Equinox環境提供諸如消息摘要,數字簽名,密鑰存儲,證書存儲等基礎安全機制。此外,該方向還為Eclipse提供JAVA包簽名,Bundle加載時的簽名校驗,代碼權限等機制的實現。

面向方面的開發

該方向致力于解決在OSGi環境中面向方面編程的一些技術問題,如加載編排和模塊化等。

3. 結論與參考
本文簡要概述了Equinox在OSGi規范方面的實現以及它為OSGi在其他領域的應用所做的研究。后續文檔中,我們將會將上述各個方面展開進行詳細的描述。OSGi的廣泛應用將大大推動JAVA由面向對象的編程向面向組件和服務的編程轉變。

目前,JCP組織提出JSR-291將OSGi納入JAVA標準規范。如果該JSR最終被集成到J2SE實現中,開發人員可以在JAVA基礎編程中直接采用OSGi提供動態的模塊化應用。

Equinox項目源代碼的位置位于CVS服務器上::pserver:anonymous:dev.eclipse.org/cvsroot/eclipse路徑下,以org.eclipse.equinox.*命名的項目以及該位置下的equinox-incubator目錄下。

4. 附注


SUN公司提出了一個類似于OSGi的模塊化系統規范稱之為“HK2”。HK2的全稱為“Hundred Kilobytes Kernel”,包括Modules Subsytem和Component Model兩部分。據稱,該內核將在JDK 7中集成,同時,SUN在其開源的GlassFish J2EE應用服務器項目V3版本中將HK2作為其系統內核實現。

您正在閱讀:Equinox OSGi系列之一 Equinox入門

【編輯推薦】

  1. Eclipse、Equinox和OSGi
  2. Web框架Equinox 1.6 發布
  3. 探索Eclipse的OSGi控制臺
責任編輯:張攀 來源: 百度空間
相關推薦

2009-10-15 15:12:39

Equinox服務器端Equinox

2009-06-01 11:37:46

EquinoxOSGi服務器

2009-06-18 10:03:57

EquinoxOSGi應用服務器

2009-06-10 18:12:38

Equinox動態化OSGi動態化

2020-01-06 11:50:25

LinuxEquinox桌面

2011-11-18 11:04:03

Java框架Equinox

2009-09-28 13:32:39

OSGi入門

2012-06-14 10:14:46

ibmdw

2012-05-21 13:24:03

JavaEclipseEquinox

2012-06-13 01:47:42

EclipseEquinox

2009-06-16 13:40:06

OSGiApache Feli

2009-09-16 17:15:19

OSGi Bundle

2022-02-28 14:54:48

openHarmon鴻蒙操作系統

2009-04-16 09:02:30

Eclipse開發平臺版本發布

2013-12-02 13:59:22

jQueryUI

2021-03-11 10:21:55

特斯拉黑客網絡攻擊

2010-04-22 08:43:50

EclipseSOA

2021-07-07 09:18:00

Java并發編程

2011-04-12 14:28:52

XML

2019-01-10 08:33:17

物聯網IoT機器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久 | 欧美一区二区 | 最新国产精品 | 久久久www成人免费精品张筱雨 | 男女网站视频 | 日韩精品在线观看视频 | 欧美精品一区二区三区在线 | 亚洲综合小视频 | 精品久久久久久久久久久久 | 日本成人在线网址 | 日韩一区二区福利 | 91伊人 | 中国大陆高清aⅴ毛片 | 日韩中文字幕在线免费 | 欧美成人免费 | 国产专区免费 | a级片www| 国产91黄色 | 国产精品一区久久久 | 日本精品视频 | 黄色在线观看 | 91黄色免费看 | 亚洲高清视频一区二区 | 欧美极品在线视频 | 亚洲一区中文字幕 | 成人午夜免费视频 | 丁香久久 | 天堂网中文| 久久综合入口 | 亚洲一区视频在线 | 综合一区二区三区 | 一级毛片成人免费看a | 国产精品美女久久久久aⅴ国产馆 | 亚洲一区二区在线播放 | 干一干操一操 | 日韩中文字幕高清 | 国产四区| 亚洲欧美一区二区三区在线 | 作爱视频免费看 | 亚洲成年人免费网站 | 亚洲日韩视频 |