在上一篇《從零開(kāi)始學(xué)OpenDaylight之六:OSGi》中,我們已經(jīng)介紹了OSGi的基礎(chǔ)知識(shí),其企業(yè)級(jí)的部署環(huán)境有Apache Karaf、Eclipse Virgo等,本篇我們來(lái)分析下Apache Karaf。
一、Karaf基礎(chǔ)
1.基本介紹
Karaf是一個(gè)現(xiàn)代的、多種形態(tài)的(polymorphic),輕量的、強(qiáng)大的、經(jīng)過(guò)OSGI認(rèn)證的企業(yè)級(jí)容器。這里的多種形態(tài)指的是它能夠容納各種應(yīng)用,諸如OSGi、Spring、war等等。單從OSGi的角度來(lái)說(shuō),Karaf是OSGI的容器實(shí)例,類(lèi)似tomcat是Servlet的容器實(shí)例一樣。其邏輯架構(gòu)圖如下所示:
從圖中我們可以看出,Karaf使用Apache Felix或Eclipse Equinox運(yùn)行時(shí)框架,編程模型采用Blueprint實(shí)現(xiàn)配置,并在此基礎(chǔ)之上提供諸如日志、控制臺(tái)、安全、部署等通用功能。
同時(shí),Karaf 還提出了“Feature”的概念,即特性。通過(guò)Feature的定義,最小單元為OSGi Bundle,多個(gè)OSGi Bundle根據(jù)功能需求聚合在一起形成一個(gè)Feature,多個(gè)Feature可能聚合在一起形成一個(gè)大的Feature,最終所有的OSGi Bundle能有序地組合起來(lái),形成清晰、可重復(fù)利用的功能Feature,實(shí)現(xiàn)系統(tǒng)的模塊化開(kāi)發(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,啟動(dòng)OpenDaylight控制器。
執(zhí)行命令feature:list -i,查看已安裝的Feature
查看GUI界面,輸入U(xiǎn)RL地址:http://127.0.0.1:8181/index.html#/yangui/index
四、小結(jié)
從零開(kāi)始學(xué)OpenDaylight系列介紹到這里,我們已經(jīng)將OpenDaylight的“外圍”工具和環(huán)境講解完成了:
①使用Maven來(lái)進(jìn)行項(xiàng)目構(gòu)建和依賴包管理;
②基于OSGi框架進(jìn)行編程:面向組件、服務(wù)和接口的編程模型,并使用blueprint容器進(jìn)行配置管理;
③使用Karaf運(yùn)行環(huán)境,并使用的Feature概念。
從下一篇開(kāi)始我們將開(kāi)始講解業(yè)務(wù)邏輯編程的部分:YANG、DataStore、RPC、Notification等等。
-
容器
+關(guān)注
關(guān)注
0文章
509瀏覽量
22440 -
Servlet
+關(guān)注
關(guān)注
0文章
18瀏覽量
8058 -
tomcat
+關(guān)注
關(guān)注
0文章
31瀏覽量
5008
發(fā)布評(píng)論請(qǐng)先 登錄



汽車(chē)車(chē)身控制與舒適性系統(tǒng)檢修:中控門(mén)鎖系統(tǒng)控制電路#汽車(chē)維修

汽車(chē)車(chē)身控制與舒適性系統(tǒng)檢修:中控門(mén)鎖系統(tǒng)故障診斷和排除#汽車(chē)維修

如何從零開(kāi)始學(xué)OpenDaylight

什么是OpenDaylight的Maven

OpenDaylight中的OSGi

OpenDaylight中的YANG

OpenDaylight中的DataStore是什么

OpenDaylight中的RPC & Notification是什么

OpenDaylight中的MD-SAL是什么

評(píng)論