[發明專利]多進程間結構化文檔通信方法有效
| 申請號: | 201210064709.9 | 申請日: | 2012-03-13 |
| 公開(公告)號: | CN102662774A | 公開(公告)日: | 2012-09-12 |
| 發明(設計)人: | 鄧維;葉理德;趙菁;歐燕 | 申請(專利權)人: | 中冶南方工程技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F17/30 |
| 代理公司: | 湖北武漢永嘉專利代理有限公司 42102 | 代理人: | 王超 |
| 地址: | 430223 湖北省武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 進程 結構 文檔 通信 方法 | ||
技術領域
本發明涉及計算機技術及網絡通信領域,特別涉及一種多進程間通信的方法。
背景技術
在Windows應用程序開發過程中,不同系統間的多個進程或者同一個系統內部不同的多個進程間都會存在信息交換。而這些進程可能分布在網絡的同一個節點上,也可能分布在多個不同的節點上。面對少量的,無特殊結構的數據,現有技術已經可以很好的解決,一旦數據量繁雜并且要求有特殊的組織結構,往往需要結束本地數據文件或者數據之類的龐大并且昂貴的資源,這無疑提高了開發成本;而當某個程序內部數據結構變化時,與可能導致其關聯的其他進程的通信接口發生改變,使開發過程變得繁雜,可擴展性能差。
目前,對于處于同一節點的多進程間通信,常見的通信方法有:共享內存方式、匿名管道方式、命名管道方式、WM_COPYDATA(Windows程序間傳送的一種消息格式)、Sockets(網絡上的一種節點通信方式)方式等。在上述方法中,共享內存的方法對于多個進程間大量數據的通信支持最好,且具有比較好的安全性,但現有的傳統的共享內存方法訪問方式都按實際的物理地址加字節訪問的,不能按照數據的原有結構進行通信。對于在通信網絡中不同節點間多進程的通信,常采用的是Sockets方法,但進行通信的數據格式比較單一,不能支持結構化的多格式的信息,且通信接口也會隨其他進程數據結構的變化而變化,可擴展性能差。
發明內容
本發明所要解決的技術問題是:提供一種多進程間結構化文檔通信系統和方法,通過配置,可以方便地在單節點以及多節點的多進程間靈活的交換大量的各種數據,在保證數據在交換過程中的完整性、正確性以及對應的邏輯關系的同時,還能保證很好的擴展性能。
本發明解決其技術問題采用以下的技術方案:
本發明提供的多進程間結構化文檔通信方法,具體是:通信進程搜索本地通信節點的共享內存區,如果不存在,則提交創建通信用共享內存及創建結構化文檔對象的申請,申請響應后注冊本進程需通信的內容,序列化該文檔;將序列化的文檔發送至共享內存區中進行操作申請,等待直至授權;授權后,將獲取的結構化文檔對象反序列化以獲得文檔內容,再根據需求讀寫結構化文檔并保存文檔;然后序列化修改過的結構化文檔,釋放管理權限;最后通信進程提交網絡通信申請,實現多進程間結構化文檔的通信。
本發明提供的上述多進程間結構化文檔通信方法,其包括以下步驟:
步驟(1),進程注冊通信內容:
具體地,當進程啟動時,提交共享申請直至該節點存在共享內存,然后提取該進程通過配置文件生成的或根據定義規則生成的需和其它進程通信的信息,根據要求標記信息的特征;然后檢測當前共享內存數據區是否存在結構化文檔,如果不存在,則創建新的文檔;如果已經存在結構化文檔,則將需注冊的信息的特征與結構化文檔中的信息進行特征匹配,如存在相同特征的信息,則刪除文檔中已有的信息;然后再注冊對應的通信信息;
需要說明的,該步驟中所述的標記信息特征,是為每個需通信的信息分配GUID(全球唯一標識符);進程需注冊的信息包含進程名、信息名以及其對應的GUID、節點IP及端口號、與之通信的進程節點進程名稱和IP以及通信信息映射關系;
步驟(2),進程申請操作權限:
具體地,進程提交操作權限申請后,如未獲得授權,則等待直至授權;在該進程等待過程中,除操作結構化文檔的事件受阻外,其它事件仍按原有邏輯執行;
步驟(3),獲取結構化文檔對象,反序列化獲取結構化文檔并進行讀寫操作,
具體地,獲得操作權限后,則搜索共享內存的數據區,獲取結構化文檔對象,并對獲得的對象進行反序列化,提取結構化文檔,然后進行讀寫操作;
步驟(4),序列化結構化文檔并保存:
具體地,結構化文檔修改完成后,將結構化文檔進行序列化處理,保存并更新當前共享內存數據區;
步驟(5),釋放操作權限:
具體地,結構化文檔處理完成后,操作進程修改操作狀態字,并通過觸發操作完成事件將狀態字提交,以此將共享數據區的權限狀態修改為未授權;
步驟(6),提交網絡申請:
具體地,操作進程捕捉操作狀態字由未完成修改為已完成的事件生成網絡申請,其申請內容包含本進程的名稱、本進程所在節點的IP以及本進程所在節點共享內存數據區中與其相關的結構化文檔;然后通過事件發送已經生成的網絡申請;
經過上述步驟,實現對多進程間結構化文檔的通信。
上述的步驟(3)中,在操作結構化文檔時,遵守先讀后寫的原則。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中冶南方工程技術有限公司,未經中冶南方工程技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210064709.9/2.html,轉載請聲明來源鉆瓜專利網。





