在上一篇《從零開始學(xué)OpenDaylight之六:OSGi》中,我們已經(jīng)介紹了OSGi的基礎(chǔ)知識,其企業(yè)級的部署環(huán)境有Apache Karaf、Eclipse Virgo等,本篇我們來分析下Apache Karaf。
一、Karaf基礎(chǔ)
1.基本介紹
Karaf是一個現(xiàn)代的、多種形態(tài)的(polymorphic),輕量的、強大的、經(jīng)過OSGI認證的企業(yè)級容器。這里的多種形態(tài)指的是它能夠容納各種應(yīng)用,諸如OSGi、Spring、war等等。單從OSGi的角度來說,Karaf是OSGI的容器實例,類似tomcat是Servlet的容器實例一樣。其邏輯架構(gòu)圖如下所示:
從圖中我們可以看出,Karaf使用Apache Felix或Eclipse Equinox運行時框架,編程模型采用Blueprint實現(xiàn)配置,并在此基礎(chǔ)之上提供諸如日志、控制臺、安全、部署等通用功能。
同時,Karaf 還提出了“Feature”的概念,即特性。通過Feature的定義,最小單元為OSGi Bundle,多個OSGi Bundle根據(jù)功能需求聚合在一起形成一個Feature,多個Feature可能聚合在一起形成一個大的Feature,最終所有的OSGi Bundle能有序地組合起來,形成清晰、可重復(fù)利用的功能Feature,實現(xiàn)系統(tǒng)的模塊化開發(fā)和組件的重復(fù)利用。
- Karaf Archive示例
Karaf最終部署的是KAR包,生成KAR包需要如下工作:
①pom.xml文件使用features-maven-plugin;
②feature.xml 指明具體的bundle等信息。
二、Karaf使用
在Karaf官網(wǎng)(http://karaf.apache.org/download.html)下載發(fā)布版本并解壓到本地,如下圖所示:
在命令窗口輸入.\\karaf,可得到如下加載成功的提示信息:
執(zhí)行命令:feature:install webconsole
安裝成功后,在瀏覽器輸入如下URL地址,用戶名和密碼都是karaf。
http://localhost:8181/system/console/bundles
執(zhí)行命令:system:shutdown停止Karaf容器。
更多信息可以參考:http://mirrors.shu.edu.cn/apache/karaf/documentation/4_x.pdf
三、Karaf在OpenDaylight中的應(yīng)用
OpenDaylight使用Karaf作為其部署環(huán)境,官網(wǎng)提供發(fā)布版本,URL地址信息為:http://www.opendaylight.org/software/downloads,下載并解壓后目錄如下:
執(zhí)行命令.\\karaf,啟動OpenDaylight控制器。
執(zhí)行命令feature:list -i,查看已安裝的Feature
查看GUI界面,輸入URL地址:http://127.0.0.1:8181/index.html#/yangui/index
四、小結(jié)
從零開始學(xué)OpenDaylight系列介紹到這里,我們已經(jīng)將OpenDaylight的“外圍”工具和環(huán)境講解完成了:
①使用Maven來進行項目構(gòu)建和依賴包管理;
②基于OSGi框架進行編程:面向組件、服務(wù)和接口的編程模型,并使用blueprint容器進行配置管理;
③使用Karaf運行環(huán)境,并使用的Feature概念。
從下一篇開始我們將開始講解業(yè)務(wù)邏輯編程的部分:YANG、DataStore、RPC、Notification等等。
-
容器
+關(guān)注
關(guān)注
0文章
492瀏覽量
22028 -
Servlet
+關(guān)注
關(guān)注
0文章
18瀏覽量
7881 -
tomcat
+關(guān)注
關(guān)注
0文章
27瀏覽量
4839
發(fā)布評論請先 登錄
相關(guān)推薦
評論