0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenDaylight中的Karaf

汽車電子技術(shù) ? 來源:碼農(nóng)與軟件時(shí)代 ? 作者: 碼農(nóng)與軟件時(shí)代 ? 2023-02-14 15:08 ? 次閱讀

在上一篇《從零開始學(xué)OpenDaylight之六:OSGi》中,我們已經(jīng)介紹了OSGi的基礎(chǔ)知識(shí),其企業(yè)級(jí)的部署環(huán)境有Apache Karaf、Eclipse Virgo等,本篇我們來分析下Apache Karaf。

一、Karaf基礎(chǔ)

1.基本介紹

Karaf是一個(gè)現(xiàn)代的、多種形態(tài)的(polymorphic),輕量的、強(qiáng)大的、經(jīng)過OSGI認(rèn)證的企業(yè)級(jí)容器。這里的多種形態(tài)指的是它能夠容納各種應(yīng)用,諸如OSGi、Spring、war等等。單從OSGi的角度來說,Karaf是OSGI的容器實(shí)例,類似tomcat是Servlet的容器實(shí)例一樣。其邏輯架構(gòu)圖如下所示:

圖片

從圖中我們可以看出,Karaf使用Apache Felix或Eclipse Equinox運(yùn)行時(shí)框架,編程模型采用Blueprint實(shí)現(xiàn)配置,并在此基礎(chǔ)之上提供諸如日志、控制臺(tái)、安全、部署等通用功能。

圖片

同時(shí),Karaf 還提出了“Feature”的概念,即特性。通過Feature的定義,最小單元為OSGi Bundle,多個(gè)OSGi Bundle根據(jù)功能需求聚合在一起形成一個(gè)Feature,多個(gè)Feature可能聚合在一起形成一個(gè)大的Feature,最終所有的OSGi Bundle能有序地組合起來,形成清晰、可重復(fù)利用的功能Feature,實(shí)現(xiàn)系統(tǒng)的模塊化開發(fā)和組件的重復(fù)利用。

圖片

  1. 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é)

從零開始學(xué)OpenDaylight系列介紹到這里,我們已經(jīng)將OpenDaylight的“外圍”工具和環(huán)境講解完成了:

①使用Maven來進(jìn)行項(xiàng)目構(gòu)建和依賴包管理;

②基于OSGi框架進(jìn)行編程:面向組件、服務(wù)和接口的編程模型,并使用blueprint容器進(jìn)行配置管理;

③使用Karaf運(yùn)行環(huán)境,并使用的Feature概念。

從下一篇開始我們將開始講解業(yè)務(wù)邏輯編程的部分:YANG、DataStore、RPC、Notification等等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    491

    瀏覽量

    22015
  • Servlet
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    7879
  • tomcat
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    4833
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    T12電烙鐵控模塊#電子元器件 #電子技術(shù) #芯片 #電子工程師

    烙鐵控系統(tǒng)工具使用
    jf_21394466
    發(fā)布于 :2022年08月19日 14:06:29

    718.如何利用HomeAssistant,讓你的閑置樹莓派成為智能控?

    控系統(tǒng)樹莓派
    小凡
    發(fā)布于 :2022年10月05日 01:53:42

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

    汽車電子控系統(tǒng)
    學(xué)習(xí)電子
    發(fā)布于 :2022年11月20日 15:15:49

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

    汽車電子控系統(tǒng)
    學(xué)習(xí)電子
    發(fā)布于 :2022年11月20日 15:16:47

    別克君越控開關(guān)失靈,什么情況怎么解決

    開關(guān)
    YS YYDS
    發(fā)布于 :2023年06月23日 00:38:57

    OpenDaylight軟件定義網(wǎng)絡(luò)框架

    ./oschina_soft/controller.zip
    發(fā)表于 05-13 10:51 ?3次下載
    <b class='flag-5'>OpenDaylight</b>軟件定義網(wǎng)絡(luò)框架

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

    OpenDaylight的邏輯架構(gòu)分為應(yīng)用層、控制器層和數(shù)據(jù)轉(zhuǎn)發(fā)層。其中,應(yīng)用層聚焦網(wǎng)絡(luò)業(yè)務(wù)邏輯開發(fā),負(fù)責(zé)資源編排;控制器層進(jìn)行全局網(wǎng)絡(luò)的管理;數(shù)據(jù)轉(zhuǎn)發(fā)層為各種網(wǎng)絡(luò)設(shè)備,負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)。
    的頭像 發(fā)表于 02-14 14:04 ?1941次閱讀
    如何從零開始學(xué)<b class='flag-5'>OpenDaylight</b>

    OpenDaylight的運(yùn)行環(huán)境

    OpenDaylight作為一種開源的SDN控制器,使用Java語言編寫,
    的頭像 發(fā)表于 02-14 14:08 ?764次閱讀
    <b class='flag-5'>OpenDaylight</b>的運(yùn)行環(huán)境

    OpenDaylight的示例

    對(duì)于External System來說,我們?cè)诮榻B基于REST API編程時(shí)再進(jìn)行介紹。
    的頭像 發(fā)表于 02-14 14:11 ?603次閱讀
    <b class='flag-5'>OpenDaylight</b>的示例

    什么是OpenDaylight的Maven

    構(gòu)建的實(shí)質(zhì)是將我們編寫的Java源文件、XML配置文件、HTML頁面、CSS和JS文件等,通過某種方式組合在一起,變?yōu)榭蓪?duì)外服務(wù)項(xiàng)目的過程。同時(shí),構(gòu)建過程很多都是沒有技術(shù)含量且重復(fù)的工作,手工操作很無趣且太麻煩。
    的頭像 發(fā)表于 02-14 15:02 ?983次閱讀
    什么是<b class='flag-5'>OpenDaylight</b>的Maven

    OpenDaylight的OSGi

    從寫單個(gè)類的打印Hello World小程序到OSGi模塊化開發(fā),確實(shí)存在較大的難度,本文將從模塊化、OSGI模型以及OSGI在OpenDaylight的應(yīng)用等方面進(jìn)行介紹。
    的頭像 發(fā)表于 02-14 15:05 ?711次閱讀
    <b class='flag-5'>OpenDaylight</b><b class='flag-5'>中</b>的OSGi

    OpenDaylight的YANG

    YANG是和NETCONF相伴而生的,而NETCONF作為網(wǎng)絡(luò)管理協(xié)議,包含安全傳輸層、消息層、操作層和內(nèi)容層,其中內(nèi)容層沒有標(biāo)準(zhǔn)化,操作層允許自定義RPC,而這兩者的標(biāo)準(zhǔn)化建模就是由YANG來完成的。
    的頭像 發(fā)表于 02-14 15:10 ?1532次閱讀
    <b class='flag-5'>OpenDaylight</b><b class='flag-5'>中</b>的YANG

    OpenDaylight的DataStore是什么

    SDN起源于校園網(wǎng),發(fā)揚(yáng)光大于數(shù)據(jù)中心,現(xiàn)廣泛用于廣域網(wǎng),SDN控制器,可能管理著數(shù)十萬臺(tái)軟交換機(jī),下發(fā)數(shù)百萬乃至上千萬條路由信息。因此,作為SDN控制器的開源項(xiàng)目OpenDaylight,無論是業(yè)務(wù)邏輯還是數(shù)據(jù)存儲(chǔ),
    的頭像 發(fā)表于 02-14 15:13 ?1339次閱讀
    <b class='flag-5'>OpenDaylight</b><b class='flag-5'>中</b>的DataStore是什么

    OpenDaylight的RPC &amp; Notification是什么

    我們將介紹RPC和Notification,并從進(jìn)程內(nèi)外的通信開始,著重介紹遠(yuǎn)程過程調(diào)用和發(fā)布-訂閱機(jī)制,然后分析MD-SAL的通信交互過程。
    的頭像 發(fā)表于 02-14 15:15 ?883次閱讀
    <b class='flag-5'>OpenDaylight</b><b class='flag-5'>中</b>的RPC &amp; Notification是什么

    OpenDaylight的MD-SAL是什么

    一般情況下,軟件系統(tǒng)的研發(fā)分為需求獲取與分析、架構(gòu)設(shè)計(jì)、代碼實(shí)現(xiàn)、系統(tǒng)發(fā)布、上線等階段。其中,架構(gòu)設(shè)計(jì)可以細(xì)分為架構(gòu)需求、分析、設(shè)計(jì)、文檔化、評(píng)審、修改和實(shí)現(xiàn)等過程,我們以簡(jiǎn)化歸一,描述為:提供UI界面和消息接口服務(wù),UI選擇B\S架構(gòu)風(fēng)格,消息可以是REST、SOAP以及AMQP等類型,數(shù)據(jù)庫采用關(guān)系型數(shù)據(jù)庫
    的頭像 發(fā)表于 02-14 15:17 ?1016次閱讀
    <b class='flag-5'>OpenDaylight</b><b class='flag-5'>中</b>的MD-SAL是什么