CWMP開源代碼研究1——開篇之作


原創作品,轉載請注明出處,嚴禁非法轉載。如有錯誤,請留言!

email:40879506@qq.com

聲明:本系列涉及的開源程序代碼學習和研究,嚴禁用於商業目的。 如有任何問題,歡迎和我交流。(企鵝號:408797506)

既然是開篇,暫時就給自己定一個文章計划列表

1. 開篇總介紹: 協議規范資料,acs環境,免費easycwmp開發設計思想,個人商業cwmp開發

2. easycwmp:  安裝和使用

3. ACS介紹:openacs部署,聯創平台acs,華為itms,Vigoracs,XACS等常見acs平台

4. cwmp知識儲備:acs反向鏈接,http認證(摘要,基本認證),RPC method支持, Event事件Code等

5. 整體程序設計: 整個程序結構分為兩部分,cwmp core和lib庫,前者實現協議核心部分,后者獨立動態庫主要完成規范節點,私有節點,和RPC方法,事件通知,參數監測等功能

6. cwmp lib庫: 如何根據自身設備進行開發功能,節點實現等

7. cwmp移植:cwmp依賴環境,交叉編譯,測試使用

8. 高級功能介紹: stun的NAT穿透,SSL加密, IPV6雙棧協議等。

一. 協議規范

   關於協議理解不是本博文系列的重點,這里給出幾篇文章作為讀者的參考,已經介紹了很詳細。不過,還是要建議必須完整閱讀一遍TR069英文規范。

   中英文規范:http://download.csdn.net/detail/eryunyong/9293103

   H3C技術:http://www.h3c.com.cn/Service/Channel_Service/Operational_Service/ICG_Technology/201011/699658_30005_0.htm

   實際應用:http://www.docin.com/p-1306443672.html

二. 開源代碼介紹

    關於CWMP代碼的開源實現主要有如下四個:mini-cwmp-master,netcwmp-master, freecwmp, easycwmp。 其中,前兩個開源程序mini-cwmp-master和netcwmp-master已經沒有再繼續被維護,而且netcwmp-master據說已經開始收費了,所以對於小公司為了節約成本建議看看后面兩個開源程序的代碼進行研究。easycwmp是freecwmp的升級版,對easycwmp的代碼進行了相關優化,而且目前維護的最好(推薦新手拿這個來研究CWMP協議)!下面提供幾個開源代碼的下載地址和介紹

    netcwmp-master: http://www.ymcn.org/d-cgqi.html 或者 http://download.csdn.net/detail/eryunyong/9293063

    freecwmp:  http://www.freecwmp.org/

    easycwmp:  http://www.easycwmp.org/或者http://support.easycwmp.org/my_view_page.php

三. ACS環境搭建

   這里依然還是給一些參考文章,因為網上資料太多了。

   后續文章會專門介紹ACS安裝和測試

四. 開發設計來源

   二次開發結構設計來源於開源程序EasyCwmp的設計理念,關於介紹可以參考官網:http://www.easycwmp.org

 

 

五. 二次開發

   如何利用CWMP開源程序合理設計我們的架構,並快速地應用於商業產品是該博文的重點。

   下面先介紹目前在我們的項目產品中如何重新設計CWMP的架構和實現,給需要的朋友做一個參考:

  4.1 系統概述

    系統名為“TR069平台”,屬於遠程網關系統的一個子系統。主要功能是通過tr069協議來遠程管理設備。該系統在整體系統中的位置如圖所示:

    4.2 設計的需求

    TR069主體架構與設備相關進行分離,達到各產品使用相同的框架,設備相關的編譯成一個Library。通過不斷的實踐,可以使TR069主體框架不斷成熟。並且對於同款產品供應給不同的通訊商(電信,移動,聯通等),相同的功能,通過可能僅需要改變XML,而不需要改變代碼來達到目的。

    4.3 設計的原理

    1)  對於在設備上實現多個TR069客戶端的考慮

    基於公司目前有自主研發的網管平台,可以管理所有出廠的公司設備,而運營商也有網管平台,這時候就需要考慮在設備上實現多個TR069客戶端的需求。考慮過使用多線程的方式來實現這一需求,但還是覺得用進程來實現,從邏輯上來說簡單清晰一點。 

    2)  對於協議的擴展的考慮

    對於TR069協議來說,有些東西是可以擴展的。譬如事件,可以有自定義的事件。譬如方法,也可以擴展自定義方法。這些都需要在實現的時候考慮清晰。 

    3)  對於不同設備,不同產品線差異的考慮

    需要在配置文件中體現出來。 

    4)  對於不同TR069客戶端之間沖突的考慮

    在通過TR069改變系統配置的時候,考慮使用進程間互斥來達到目的。

    4.3 代碼架構設計流程

   在開發過程中,協議本身的架構一般情況下並不需要我們修改,因為我們抽離了業務相關(和設備相關)的代碼為library。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM