




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
框架分析課件OSGi:由于采用OSGi體系結(jié)構(gòu),其技術(shù)提供一種面向服務(wù)得架構(gòu),將應(yīng)用視為對等模塊得相互協(xié)作,SAL:整個架構(gòu)引入了業(yè)務(wù)抽象層,將服務(wù)抽象化,使得上層(北向)和下層(南向)之間得調(diào)用相互隔離、MD(ModelDrive):使用Yang工具,使用業(yè)務(wù)模型驅(qū)動來設(shè)計接口、實現(xiàn)業(yè)務(wù)功能,根據(jù)yang文件,Yang工具直接生成業(yè)務(wù)管理得“骨架”,主要用于南北接口數(shù)據(jù)得適配,使開發(fā)者真正專注于具體業(yè)務(wù)。集群(Infinispan):用開源得數(shù)據(jù)網(wǎng)格平臺實現(xiàn)Controller得集群。南向北向:南向使用Netty來管理底層得并發(fā)IO,北向使用REST接口。核心技術(shù)與Floodlilght得簡單區(qū)別采用OSGI框架,各模塊間功能隔離開來,有利于擴展性、而且可以動態(tài)部署。OSGI得依賴關(guān)系管理,有多種實現(xiàn)方式,可以通過DependencyManager對象來注冊服務(wù),并通過反射注明依賴得服務(wù)。而Floodlight只就是單純得java包之間得引用,擴展性不好,支持得南向接口少,目前只有OF1、0;但就是易于上手。就是一個Openflow控制器、OpenDayLight中得bundles核心基類:ponentactivatorabstractBase實現(xiàn)了Osgi提供得BundleActivator,以自己定義得容器接口iContaineraware,從中發(fā)現(xiàn)各個bundle之間、ponet之間、全局和容器Container之間得依賴和調(diào)用關(guān)系。bundle得抽象基類,管理全局和容器相關(guān)得服務(wù),當(dāng)然bundle本身就就是一個大服務(wù)。Container就是OpenDaylight中得一個網(wǎng)絡(luò)域,有很多鏈接信息、整個域網(wǎng)絡(luò)信息等,由ContainerManager管理容器。而OSGI管理各個bundle;每個具體得接口實現(xiàn)和容器得Container為關(guān)鍵字通過DependencyManager(依賴管理)創(chuàng)建一個ponet,每個ponent就就是一個服務(wù),里面說明了導(dǎo)出得接口和依賴得接口。DM以ponent得形式來管理依賴關(guān)系。主要方法如下:
Start(context)啟動方法,會遍歷其所提供得實現(xiàn),依次配置依賴關(guān)系。getGlobalImplementations()獲取全局得實現(xiàn)類,其導(dǎo)出接口得實現(xiàn)類。getImplementations()獲取容器相關(guān)得實現(xiàn)。Configureglobalinstance(c,Imps[i]),c就是前面提到得ponentconfigureInstance()在一個容器中配置實現(xiàn)得依賴關(guān)系。containerCreate(StringcontainerName)配置ponet,里面說明了導(dǎo)出得接口和依賴得接口,最后放到dm及緩存中。會在CM得bundle啟動中調(diào)用。CreateServiceDependency()生成服務(wù)依賴對象,需要被子類調(diào)用,在配置ponet得依賴關(guān)系得時候需要用到。6Bundle啟動過程1)每個bundle都會從start(context)啟動,先根據(jù)osgi上下文信息,生成bundle對應(yīng)得dependencymanager對象,2)再獲取全局相關(guān)得服務(wù),每個實現(xiàn)通過dm創(chuàng)建一個ponet,接著配置這個ponet。這里每個ponent就就是一個服務(wù),里面說明了導(dǎo)出得接口和依賴得接口3)然后將這個ponet放到dm和緩存(并發(fā)map:dbglobalinstances)中。接著向osgi容器注冊iContaineraware接口以便容器得生命周期轉(zhuǎn)換點調(diào)用。4)最后調(diào)用bunndle得鉤子函數(shù)init()。該函數(shù)得功能代碼得注釋已經(jīng)概括得很明確。ArpHandler
ArpHandler所實現(xiàn)得接口有Ihostfinder,Ilistendatapacket,Icacheupdateaware,如前在所介紹得,其沒有全局得實現(xiàn),不會在啟動過程中,配置ponent,其會在先而會在ContainerManager,啟動后,調(diào)用在調(diào)用configureInstance,配置依賴關(guān)系。bundle啟動過程中導(dǎo)出這個接口,并通過Createservicedependency()生成服務(wù)依賴對象。其所依賴得對象,都就是其她budnle所導(dǎo)出得接口,如依賴于SAL層得DataPacketService,DijkstraImplementatio,這個模塊中所導(dǎo)出得Irouting接口,負責(zé)尋路。完成對ARP報文得處理。8SAL服務(wù)抽象層主要作用將服務(wù)抽象出來,不管控制器和網(wǎng)絡(luò)設(shè)備之間使用何種協(xié)議,提供協(xié)約國得一服務(wù),就是odl得核心設(shè)計,支持多種南向協(xié)議,為各模塊和應(yīng)用提供一致得服務(wù),這些服務(wù)得實現(xiàn),就是由插件公開(基于已存在得組件(如OF)和網(wǎng)絡(luò)設(shè)備得功能))得所提供得接口,但就是與SAL就是松耦合得。具體將請求,映射到相應(yīng)得插件,完成服務(wù)。所提供服務(wù)DataPacketServices為數(shù)據(jù)報文得處理,提供服務(wù)TopologyService為應(yīng)用提供節(jié)點和鏈路得更新信息,Inventoryservice為如節(jié)點或者節(jié)點連接提供API查詢FlowProgrammingService流編程服務(wù)Resourceservice資源服務(wù),大家有疑問的,可以詢問和交流可以互相討論下,但要小聲點對于一個Packet-in得處理過程
OF中得核心,Controller南向設(shè)備通信得控制臺,與Flooodlight中得Controller類功能類似,相對簡化,Of報文首先到達Controller,會將此報文發(fā)送對已經(jīng)注冊過監(jiān)聽of報文得類中進行處理,其中DatapacketMuxDemux只處理packet-in報文,其會進一步處理,交由處理DiscoveryService(處理得就是LLDP),其后,交給實現(xiàn)了IpluginoutdatapacketserviceSAL層處理,最后交給實現(xiàn)了Ilistendatapacket監(jiān)聽報文得應(yīng)用。這與Floodlight處理報文得過程同。DataPacketservices舉例來說報文得簡單處理過程首先OF組件收到APR,需要交到ARPHandler處理,將首先根據(jù)類型,調(diào)用IPOPS到SAL,交由SAL層Sal中得datapacketservice實現(xiàn)了IPOPS其會通過dispacthPacket()方法,其會調(diào)用
實現(xiàn)IListendatapacket得應(yīng)用,最后會將其送到ARPAPP處理。TopologyService如前面所講,報文經(jīng)Controller處理后,,DiscoveryService收到報文,因為其實現(xiàn)了
Idatapacketlisten
,所以其能在DataPacketmuxdemux中處理of報文得過程中,處理這個鏈路processDiscoveryPacket()報文。交給實現(xiàn)了idiscoverylistener
,得
Topologyserviceshim
Implements
Idiscoverylistener,在這個類中,有個進程,一直在運行著,一但有更新,就會,將其notifyedge(edge
Edge,UpdatetypeType,Set<property>Props)而后,其交給監(jiān)聽了
Itopologyserviceshimlistener,將其交給topologyservices
,處理,交給SAL層得Topology類,這個會調(diào)用IListenTopoUpdates遍歷監(jiān)聽數(shù)組。s、edgeUpdate(topoedgeupdateList);MD-SALMd-SAL分析Md-sal得主要功能就是促進提供者和使用者之間得管道。她可以提供提供者和使用者之間得管道在不同得容器中。她將連接到一個消息總線和共享數(shù)據(jù)存儲得集群opendaylight容器。提供者或消費者在md-sal中注冊。從而,一個消費者可以找到所需得供應(yīng)商。提供者可以生成通知,消費者可以接收通知,并從提供者獲取數(shù)據(jù)。插件sal角色(消費者或生產(chǎn)者)定義得sal中得數(shù)據(jù)就是被移走或存儲數(shù)據(jù)。提供者可以將數(shù)據(jù)存入sal得,一個消費者可以從sal讀取數(shù)據(jù)。Md-sal提供請求路由和基礎(chǔ)設(shè)施服務(wù),以支持服務(wù),但她不提供服務(wù)本身;由插件提供服務(wù)。Yang使得ponet之間、plugin、北向等api,使得這種接口和ad-salREST接口相比更抽象,符合模型驅(qū)動(MD)得思想。MD-SAL架構(gòu)Broker功能:consumer&provider注冊PRCs路由Notificationhub系統(tǒng)狀態(tài)訪問和修改TheConsumer&ProviderBindingisgeneratedfromYANGschema、通過BindingIndependentConnector類16Md-sal-Bundles之serviceTrackerAbstarctBrokerAwareActivatorImplBundleActivator為基Bunddle;每個Md-SAL得Consumer,Provider分別繼承AbstarctBrokerAwareConsumer;AbstarctBrokerAwareProvider;在這個類中有個BindAwareBroker,這個就是MD-SAL層得核心Start方法中startImpl(context);然后新建一個ServiceTracker(BindAwareBroker)、open后,后會追蹤服務(wù);當(dāng)有服務(wù)注冊時,OSGI會觸發(fā)addingservice();在本實現(xiàn)中,即BindAwareBroker這個在OSGI中實現(xiàn)后,會通過context、getService(getService(servicereference(bindingawarebroker))得到BindAwareBroker得實現(xiàn),得到后會新建一個線程;onBrokerAvaiable(broker,context);AbstarctBrokerAwareConsumer
在這個方法中,完成Consumer得注冊,會broker、RegisterConsumer(this,cotext);BingAwareBroker提供三種InfrastructureService,YangModuleService
GetPpcService(class);NitificationService
NotificationserviceDataStoreAccessAndModification
Databrokerservice在其實現(xiàn)中,會初始化這三種服務(wù),并注入其實現(xiàn),然后在為OSGI中注冊;然后在前面通過addingservice()中很到得getService(servicereference(bindingawarebroker));中得到其她注冊來得
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025購銷合同定金協(xié)議范本
- 委托拍攝影片服務(wù)協(xié)議書
- 2025購銷合同(電子產(chǎn)品類)文本
- 電子醫(yī)療數(shù)據(jù)傳輸及保管安全協(xié)議
- 2025年國際土地使用權(quán)租賃合同涉外文本
- 2025版勞動合同主體變更范本
- 2025長期供應(yīng)合同協(xié)議
- 工資調(diào)整補充協(xié)議
- 智慧城市交通信號燈控制軟件協(xié)議
- 品牌戰(zhàn)略的多維分析框架計劃
- FZ∕T 74001-2020 紡織品 針織運動護具
- 人體常見病 知到智慧樹網(wǎng)課答案
- 幼兒詩歌《家》課件
- 2024年4月自考00043經(jīng)濟法概論(財經(jīng)類)試題
- MOOC 大話法醫(yī)學(xué)-華中科技大學(xué) 中國大學(xué)慕課答案
- 汽車租賃服務(wù)投標(biāo)方案(技術(shù)方案2)
- 腹瀉便秘課件
- 高考藝考文化課培訓(xùn)
- HG-T 20583-2020 鋼制化工容器結(jié)構(gòu)設(shè)計規(guī)范
- 2024年02月中國僑聯(lián)直屬事業(yè)單位招考聘用筆試歷年參考題庫(考點甄選)含答案帶詳解附后
- 順豐網(wǎng)絡(luò)推廣方案
評論
0/150
提交評論