




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一種基于XML的數據通信模型的設計與實現(1) 摘 要 分析了一個典型站點式遠程監控系統的要求和特點,提出了用XML文件封裝數據并通過收發文件來解決系統中的數據通信問題,詳細介紹了模型的設計方案和各層次功能,確定了XML文件的結構,給出了文件發送模塊的接口和文件隊列的控制方法,最后實現了系統的通信功能。 關鍵詞 XML;數據通信;監控系統 1 引言 在解決一個監控
2、系統的信息傳輸問題時,遇到了一些困難,主要的原因是該系統中的數據類型多,發送的方向雜,控制起來比較繁瑣。而引入XML文件后使得這個問題變得簡單化。 2 監控系統的數據通信 數據通信是依照一定的通信協議,利用數據傳輸技術在兩個終端之間傳遞數據信息。它可實現計算機和計算機、計算機和終端以及終端與終端之間的數據信息傳遞。在分布式監控系統中,數據通信是最基本的問題。如圖1所示是一個比較典型的站點式遠程監控系統的模型。 圖1 典型站點式遠程監控系統模型 在這個系
3、統中,監控中心和站點之間要相互發送數據,基本上有三種情況: (1) 站點監控中心 如站點采集到的現場數據、抓拍的圖片信息、報警信息、站點收到監控中心發來的數據后回發的確認應答信息等。 (2) 監控中心站點 如監控中心發往站點的基礎數據與系統運行參數、監控中心收到站點發來的數據后回發的確認應答信息、監控中心給站點的遠程控制指令等。 (3) 站點站點
4、; 有些事務可能需要兩個站點共同完成(如在站點A稱得皮重,在站點B稱得毛重,兩個站點要相互交換數據才能得到凈重值),因此在站點之間也會發送數據,而這些數據監控中心是不關心地。 由此可見,在這個站點式監控系統中有多種數據要互相發送,并且數據的發送是隨機的、雜亂的、動態的,內容相異,格式不同,種類繁多。另外,監控中心通過局域網連接Internet,可以有固定的IP地址,而站點使用ADSL連接,通常其IP地址是不固定的,用Socket通信機制作為系統的數據通道時,把監控中心做為Socket Server,啟動偵聽,站點只能做Socket Client,主動連接Ser
5、ver。站點之間若要相互傳送數據,則只能通過監控中心來轉發,更增加了監控中心和站點之間收發數據的復雜性。 3 XML及其特點 XML(EXtensible Markup Language)是可擴展標記語言,類似于HTML,但和HTML不同的是XML的標記不是預先定義好的,用戶可以且必須自己定義標記。XML是用來描述數據和保存數據的一種靈活而有效的方式,能夠清楚地表示出:什么是數據,有什么數據及如何組織數據。XML是Web上表示結構化信息的一種標準文本格式,廣泛用于網絡數據交換,具有“易于生成數據”的優點。
6、160;XML支持世界上幾乎所有的主要語言,并且不同語言的文本可以在同一文檔中混合使用,應用XML的軟件能處理這些語言的任何組合。所有這一切將使XML成為數據表示的一個開放標準,這種數據表示獨立于機器平臺、供應商以及編程語言。XML被引入許多網絡協議,以便于為二個軟件提供相互通信的標準方法,如簡單對象訪問協議(SOAP)和XML-RPC規范。 XML數據是以純文本格式存儲的,提供了一種與軟件和硬件無關的共享數據方法,所以XML數據文件可以被更多的用戶、更多的設備所利用,而不僅僅是基于HTML標準的瀏覽器。XML是不同系統之間的橋梁。 4 系統模型的
7、建立 根據監控系統的功能要求和XML的特點,將系統的數據通信問題轉化為如何實現網絡文件傳輸和如何使用XML文件表示數據這兩個子問題。同時,為了便于實現,提高系統的可靠性、穩定性及可維護性,采用層次結構,將系統的功能劃分為七層模型,如圖2所示: 圖2 層次結構模型 (1) 物理鏈路層:是指網絡通訊的線路,本系統采用電信的ADSL有線方式,其它也可以是局域網(雙絞線、同軸電纜、光纖等)或者無線通訊方式(GPRS、GSM、CDMA等);物理鏈路層是系統數據通信
8、的基礎,但與上層的實現方式基本無關。 (2) 標準網絡協議層:是指TCP/IP(Transmission Control Protocol/Internet Protocol)協議族,網絡中TCP/IP協議叫做傳輸控制/網際協議,又叫網絡通訊協議,是Internet國際互聯網絡的基礎,其中的TCP協議和UDP(User Datagram Protocol)協議是兩種最常用的數據通信協議。 (3) 文件傳輸層:使用Socket(套接字)技術實現文件的傳輸。Socket是Windows與網絡的接口。Wi
9、ndows通過Socket把數據格式轉換成網絡傳輸格式,也把網絡數據格式轉換成Windows格式。Socket可以使用面向連接的協議(如TCP),也可以使用無連接的協議(如UDP)。Socket一般用來描述IP地址和端口,是一個通信鏈接的句柄。應用程序通常通過Socket向網絡發出請求或者應答網絡請求,可以通過Socket傳送數據,進一歨封裝成傳送任何文件(字節流)的功能。 (4) XML文件控制層:在XML中的數據可能是接收到的數據,也可能是要發送的數據,監控中心和站點必須準確控制XML文件的接收和發送。特別是對于監控中心,可能同時接收到多個站
10、點發送來的XML文件,發送XML文件時也要準確控制發送的目標站點。 (5) XML文件封裝/解析層:這是兩個相逆的過程,也是兩種相對應的操作。XML文件封裝是指將要發送的數據按照一定的協議打包組裝成一個特定格式的XML文件,解析是指對一個XML文件按照特定的協議進行分析解讀,還原出其中所描述的數據。 (6) 數據表示層:將采集到的數據、處理中的數據或者在數據庫中存儲的數據等各種數據格式轉換為能夠用XML文件描述的格式。這一層在本地操作的數據和遠程傳輸的數據之間建立了一個通道,使兩者之間互不影響,從而
11、不會降低系統的執行效率。 (7) 業務邏輯層:實際上就是整個系統的用戶接口,或者說是系統功能的實現層,包括打印單據、防作弊、報警處理、用戶管理、查詢統計、費用計算、實時監控、基礎數據錄入、系統管理等。 5 系統實現 5.1 網絡文件傳輸 5.1.1 動態鏈接庫 本系統使用VC 開發專門用于網絡文件傳輸的動態鏈接庫(DLL),基于對字節流的處理可以傳輸任何文件,因此對于XML文件的傳輸來說是透明的。該動態鏈接庫的主要接口及其功能如下:
12、; (1) 初始化。服務器端要先啟動監聽,客戶端主動聯接。 DWORD DT_Net_InitServer(BOOL bIsServer = TRUE); 參數:bIsServer表示是否將此Socket端用作服務 返回:0或者錯誤代碼 (2) 設置回調函數接口 DWORD DT_Net_SetCallBack(LPVOID pParam,LPNET_ ACCEPT_CALLBACK
13、 pAccept,LPNET_RECV_CALLBACK pRevc,LPNET_DISCONN_CALLBACK pDisConnect,LPNET_ LOG_CALLBACK pLogInfo); 包括請求連接、接收到數據、斷開連接和日志回調。 (3) 設置文件操作的回調函數接口 DWORD DT_Net_SetFileCallBack(LPCTSTR pSavePath, LPNET_SENDFILE_CALLBACK pSendFile,LPN
14、ET_ RECV FILE_CALLBACK pRecvFile,LPNET_ABORTFILE_ CALL BACK pAbortFile); 包括文件發送完畢、接收到文件、文件發送中斷的回調。 (4) 服務器啟動監聽 DWORD DT_Net_StartListen(LPCTSTR pszLocalIP, unsigned long nSvrPort); 參數:pszLocalIP服務器IP地址
15、160; nSvrPort服務器端口號 返回:0或者錯誤代碼 (5) 服務器停止監聽 DWORD DT_Net_StopListen(); (6) 發送文件 DWORD DT_Net
16、_SendFile(unsigned int nIDSocket, LPCTSTR pstrFileName, LPCTSTR pszReName=NULL); 參數:nIDSocketClient端套接字句柄 pstrFileName文件名稱(全部路徑) pszReName文件重命名 (7) 中止文件發送 DWORD DT_Net_AbortFile(un
17、signed int nIDSocket); 參數:nIDSocketClient端套接字句柄 (8) 斷開連接 DWORD DT_Net_DisConnect(unsigned int nIDSocket); 參數:nIDSocket套接字句柄 (9) 連接服務器 DWORD DT_Net_ConnectRe
18、mote(LPCTSTR pstrRemoteIP, unsigned long nRemotePort); 參數:pstrRemoteIp服務器IP地址; nRemotePort服務器端口號 5.1.2 實現文件傳輸 將監控中心作為Socket Server,啟動監聽: DT_Net_InitServer(TRUE); DT_Net_StartListen
19、(ServerIP,ServerPort); 然后設置回調函數: DT_Net_SetCallBack(self,LPNET_ACCEPT_CALLBACK, LPNET_RECV_CALLBACK,LPNET_DISCONN_CALLBACK, LPNET_LOG_CALLBACK); DT_Net_SetFileCallBack(PChar('d
20、:temps'),LPNET_ SEN DFILE_CALLBACK,LPNET_RECVFILE_CALLBACK,LPNET_ABORTFILE_CALLBACK); 各站點作為Socket Client,也設置回調函數,并主動去連接Server: DT_Net_InitServer(FALSE);
21、; DT_Net_SetCallBack(self,LPNET_ACCEPT_CALLBACK, LPNET_RECV_CALLBACK,LPNET_DISCONN_CALLBACK, LPNET_LOG_CALLBACK); DT_Net_SetFileCallBack(PChar('c:tempc'), LPNET_ SEN DFILE_CALLBACK,LPNET_RECVFILE_C
22、ALLBACK,LPNET_ABORTFILE_CALLBACK); DT_Net_ConnectRemote(ServerIP,ServerPort); 每個站點和監控中心之間建立唯一的獨立通道,當連接建立成功后,就可以利用該套接字在該站點與監控中心之間收發文件: DT_Net_SendFile(theSocket,FileName); 5.2 XML文件封裝協議 不同的數據最終封裝成的XML文件是不同的,但是為了便于處理,把每一個XML文件分成兩個主要的部分(Head和Data),如圖3所示: 圖3 XML結構示意圖 (1) Head部分 系統中的任何一個XML數據文件都有相同的Head(數據包頭),表明該XML文件的優先級(priority)、數據種類(FrameType)、來自何處(FromStationNo,站點編號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安陽車管預約管理辦法
- 自動監控資質管理辦法
- 種植設備設施管理辦法
- 福建游戲游藝管理辦法
- 育嬰護理知識培訓課件
- 肥厚型心肌病
- 股票技術課件
- 原材料管理培訓課件
- 肝癌中醫教學課件
- 廣東20年高考數學試卷
- 美容與整形外科學基礎
- 二年級勞動教育全冊教案
- 市政、園林取費定額
- 精準設計支架助力習作表達-統編小學語文教材習作單元教學例談 論文
- 自動扶梯采購投標方案(技術方案)
- 醫學院《病歷書寫》評分表
- 《戰略性績效管理》復習資料
- 駐足思考瞬間整理思路并有力表達完整版
- 河南省南陽市2022-2023學年高一下學期7月期末考試物理試題(PDF版含答案)
- 大學生創新創業教程完整全套課件
- Module 6 Unit1 Ill draw the pictures(教學設計)-2022-2023學年英語四年級下冊 -外研版(一起)
評論
0/150
提交評論