[發明專利]一種異步調用轉同步調用的實現方法在審
| 申請號: | 201710936510.3 | 申請日: | 2017-10-10 |
| 公開(公告)號: | CN107770258A | 公開(公告)日: | 2018-03-06 |
| 發明(設計)人: | 張睿;郭宏光;黃浩然;饒國輝;余存;張欣;崔曉優;劉翼;張自朋;申艷紅;耿戰霞;周玉勇;賈帥鋒;靳瑋瑋;閆靜衛;甄宏宇;李鳳龍;趙東杰;吳春昇;龔程 | 申請(專利權)人: | 許繼電氣股份有限公司;許繼集團有限公司;國家電網公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06 |
| 代理公司: | 鄭州睿信知識產權代理有限公司41119 | 代理人: | 吳敏 |
| 地址: | 461000 河*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 異步 調用 同步 實現 方法 | ||
技術領域
本發明屬于直流輸電監控系統中的通信技術領域,具體涉及一種異步調用轉同步調用的實現方法。
背景技術
在直流輸電的監控系統中,一般采用基于網絡連接的客戶端/服務器模式,而在客戶端需要調用服務端的函數執行某些功能時,通常有兩種調用方式,異步調用或同步調用。
所謂同步調用,就是在發出一個功能調用時,在沒有得到結果之前,該調用就不返回。圖1為一個客戶端從服務器端獲取數據的同步調用的流程示意圖。在這個同步調用流程中,客戶端發出調用請求后,請求的內容在服務端執行,在這個執行過程中,客戶端一直在等待執行結果,只有當服務端的請求結束并返回結果后,客戶端才繼續向下執行。
異步的概念和同步相對。當一個異步過程調用發出后,調用者不能立刻得到結果。實際處理這個調用的部件在完成后,通過狀態、通知和回調來通知調用者。圖2為一個客戶端從服務器端獲取數據的異步調用的流程示意圖。在這個異步調用流程中,客戶端發出調用請求后,請求內容在服務端執行,但是客戶端不等待執行結果,而是繼續向下執行,服務器的請求執行結束并返回結果時,客戶端是在另外的處理函數返回部分繼續執行。
同步調用的優勢在于流程清晰,邏輯明確,異步調用因為可以在客戶端和服務端同時執行,因此效率較高。
在直流輸電的監控系統中,由于網絡調用本身是基于異步方式的,因此客戶端和服務器交互時,默認的都是異步方式。在大多數的應用場景中,這種方式都是比較合適的,如數據的獲取和刷新等,異步方式執行效率高,并且不互相等待,用戶體驗好。但有一些應用場景,如命令的執行,由于這些應用場景需要立刻獲取到執行結果,再根據執行結果的不同判斷下一步的執行過程,使用異步調用時流程較為復雜,圖3為一個在異步模式下的命令執行流程示意圖。從流程圖中可知,在異步模式下,當需要調用執行完畢后才進行下一步操作的步驟,都需要再啟動一個循環體,不停的判斷調用的執行狀態,導致流程中出現循環和分支,較為復雜,如果再考慮每個執行步驟的失敗可能,則流程圖會更加復雜。圖4為同步模式下的命令執行流程,從流程圖可知,流程相對簡化,并且都是順序執行,沒有循環和分支。
因此,如何在異步網絡中實現同步調用,值得商榷。
發明內容
本發明所要解決的技術問題是在某些應用場景需要調用執行完畢后才進行下一步操作時,采用異步調用時流程較為復雜,因而,需要得到一種異步調用網絡中實現同步的方法。
為解決上述技術問題,本發明提供了一種異步調用轉同步調用的實現方法,包括步驟:
1)在客戶端創建一個代理函數;
2)在需要進行調用方式轉換時,異步函數調用代理函數,由代理函數向服務端發起調用請求消息,將代理函數鎖定,使代理函數進入等待狀態;
3)當客戶端監測到服務端調用返回時,解除代理函數鎖定,并記錄服務端返回的執行結果。
步驟2)中,在鎖定代理函數的同時,開始計時,計時超時而沒有收到服務端調用返回時直接解除代理函數鎖定,并返回默認的返回值。
當網絡錯誤造成功能調用出錯時,解除代理函數鎖定并返回默認的返回值。
所述默認的返回值為調用出錯。
本發明采用在客戶端設置代理函數,由代理函數發起調用請求,并在發起請求的同時將代理函數鎖定,使代理函數進入等待狀態,直至客戶端接收到服務端的調用返回時,解除代理函數鎖定,把原本異步模式下的調用,轉為同步調用,使得客戶端與服務端或者其他需要使用異步調用方式進行交互的流程,能夠按照同步調用的方式設計,從而簡化流程的執行過程,同時,通過超時的處理,避免流程死鎖。
附圖說明
圖1為同步調用流程示意圖;
圖2為異步調用流程示意圖;
圖3為異步模式下的命令執行流程圖;
圖4為同步模式下的命令執行流程圖;
圖5為本發明所述的異步調用到同步調用的轉換示意圖。
具體實施方式
下面結合附圖對本發明的技術方案做進一步說明:
如圖5所示,本發明提供了一種用于直流輸電監控系統中客戶端與服務端進行交互的異步調用轉同步調用的實現方法,該方法包括如下步驟:
步驟101:在客戶端(函數調用方)創建一個代理函數,用于所有異步函數調用;
步驟102:當需要進行調用方式轉換時,通過這個代理函數完成調用,此函數在服務端的執行結果返回前,都不會返回,即將代理函數鎖定;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于許繼電氣股份有限公司;許繼集團有限公司;國家電網公司,未經許繼電氣股份有限公司;許繼集團有限公司;國家電網公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201710936510.3/2.html,轉載請聲明來源鉆瓜專利網。





