• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種設計通信順序進程通道服務的方法

      2019-02-14 07:26:49
      上海電機學院學報 2019年4期
      關(guān)鍵詞:序列化進程序號

      趙 揚

      (中國證券登記結(jié)算有限責任公司上海分公司, 上海 200120)

      使用進程代數(shù)方法以通信順序進程(Communicating Sequential Processes, CSP)為模型,對網(wǎng)絡分布式軟件中的進程進行形式化驗證是確認其系統(tǒng)并發(fā)行為的有效理論途徑[1]。它適用于基于CSP原語和實用概念構(gòu)建的軟件。然而,在技術(shù)應用層面,金融行業(yè)開始將區(qū)塊鏈技術(shù)用來構(gòu)建大規(guī)模網(wǎng)絡分布式應用[2]。面向金融科技行業(yè)而設計的領(lǐng)域特定編程語言尚不成熟[3],以面向?qū)ο蟮耐ㄓ镁幊陶Z言實現(xiàn)CSP原語、實用概念的做法對構(gòu)建大規(guī)模、可擴展、其并發(fā)特性可驗證的網(wǎng)絡分布式系統(tǒng)依然具有現(xiàn)實意義[4-8]。例如,Ian等[6]提出,通道被抽象為了具有緩沖或者非緩沖類型,具備數(shù)量不確定的讀取或者寫入端的語言級別對象,進程可以通過它發(fā)送和接收消息。但是,不支持分布在網(wǎng)絡主機上的進程之間相互通信。 文獻[5]以及對它的修訂文獻[9],采用基于名稱解析方法訪問遠程對象的機制,實現(xiàn)了適用于進程在網(wǎng)絡主機之間進行通信的通道[10]。進程使用通道的基本過程:① A進程在本地創(chuàng)建通道對象;② A進程發(fā)布通道對象的名稱;③ B進程通過名稱服務解析獲取通道的讀取或者寫入端對象;④ A和B通過對象發(fā)送消息。

      在工程上,文獻[5,9]存在兩方面的問題 :① 在可靠性方面,系統(tǒng)采用無冗余設計的遠程對象訪問服務。如果有關(guān)功能的實現(xiàn)發(fā)生故障,那么系統(tǒng)就無法管理通道實例;② 在擴展性方面,系統(tǒng)對語言級別對象進行序列化和反序列化,在時間和空間上均存在額外開銷[11]。如果進程委托遠程對象訪問服務管理大量的通道實例,那么進程頻繁創(chuàng)建、加入、獲取通道對象會延長系統(tǒng)的響應時間。

      1 設計方法

      在Kademlia 等[12]網(wǎng)絡上設計管理和實現(xiàn)通道的方法可以解決以上兩方面的問題。該方法的核心是:① 該對等網(wǎng)絡采用將鍵字與節(jié)點標識的散列值進行按位“抑或”后,比較相對距離的方法,每個節(jié)點都實現(xiàn)了相對可靠的查找和讀寫塊表中哈希鍵值的功能,每個節(jié)點都可以為查找通道提供名稱解析功能,不存在單點故障。而且用戶可以查找至多3個鄰近的節(jié)點,以副本形式保存哈希鍵值[13],該特性為實現(xiàn)冗余提供了可能。因此,構(gòu)建可靠且本質(zhì)上具備擴展特性的通道服務是可能的。② 在網(wǎng)絡主機之間對語言級別的通道對象序列化和反序列化產(chǎn)生額外開銷之事實,啟發(fā)了以簡化的方式對通道進行抽象和實現(xiàn)的構(gòu)想。即選擇使用遠程過程調(diào)用實現(xiàn)進程同步通信,可以降低對通道對象序列化和反序列化產(chǎn)生的額外開銷,提高系統(tǒng)性能。

      2 設計通道

      通道必須滿足以下原則:① 進程之間是匿名的;② 進程之間的通信是同步的;③ 進程之間的通信是有序的。在本文闡述的方法中,通道被重新抽象為滿足以上原則的一組可被遠程調(diào)用的過程,以及它們所操作的狀態(tài)數(shù)據(jù)。這些過程被設計為在對等網(wǎng)絡節(jié)點上運行著的有狀態(tài)的網(wǎng)絡服務的一部分。因此,在設計中不存在對通道進行具有創(chuàng)建、銷毀語義的操作,通道也不具有在面向?qū)ο蟮某橄笾械纳芷凇T谠O計中通道是包含實現(xiàn)以下功能的過程:① 接收調(diào)用者關(guān)于讀取和寫入操作的請求;② 按照順序?qū)ψx取和寫入操作進行匹配;③ 向調(diào)用者返回有關(guān)讀取和寫入操作之請求的應答。

      為了使設計符合原則①和②的要求,采用分別對讀取和寫入請求的數(shù)量進行判定的方式控制同步通信。具體在上述過程②中,當調(diào)用者發(fā)出有關(guān)讀取和寫入請求的數(shù)量分別達到了為同步通信而設置的數(shù)量時,在通道上才會發(fā)生同步通信,然后服務向每個調(diào)用者返回關(guān)于讀取或者寫入請求的應答。因此,服務對讀取和寫入請求的處理,分別與讀取和寫入請求的數(shù)量有關(guān),而與調(diào)用者無關(guān)。而且,進程無需加入通道即可進行讀取和寫入操作。

      為了使設計符合原則③的要求,采用2種可遞增的序號,確定有關(guān)調(diào)用時的交互操作和同步通信的順序。具體的,通道被設計保存以下狀態(tài)信息:① 調(diào)用者和會話序號;② 消息序號。以會話序號保證進程在多次調(diào)用通道服務的交互過程中順序的一致性的做法,可以保證進程間同步通信的過程滿足偏序關(guān)系,以消息序號控制讀取和寫入操作同步的做法,就是保證進程間同步通信的過程滿足全序關(guān)系。例如,為了滿足順序關(guān)系,服務只響應同時滿足以下2個條件的讀取和寫入請求,其他請求會被忽略:① 在調(diào)用者有序發(fā)出的所有讀取或者寫入請求中,按照調(diào)用者分組后存在最大的會話序號。② 在調(diào)用者有序發(fā)出的所有讀取或者寫入請求中,其消息序號與通道當前的消息序號在數(shù)值上是相同的。

      在實現(xiàn)中通道是有狀態(tài)的。服務按照通道的名稱分別保存:① 消息序號;② 調(diào)用者和會話序號。

      3 管理通道

      在本文闡述的方法中,對通道的管理也被抽象為實現(xiàn)查找和配置功能的一組可被遠程調(diào)用的過程。這些過程被設計為在對等網(wǎng)絡節(jié)點上運行著的有狀態(tài)的網(wǎng)絡服務的另外一部分。在設計中對通道的管理包含以下功能:① 根據(jù)通道的名稱定位服務;② 配置或者修改通道的參數(shù)和狀態(tài)。

      在網(wǎng)絡節(jié)點上的進程調(diào)用遠程過程讀取或者向通道寫入消息之前,它通過遠程調(diào)用一個實現(xiàn)查找功能的過程在網(wǎng)絡中尋找服務。在設計上該功能采用Kademlia網(wǎng)絡中實現(xiàn)的路由算法。因為該路由算法盡可能保證了在網(wǎng)絡擾動的條件下的穩(wěn)定和可靠[14-15],所以在任意網(wǎng)絡節(jié)點上的進程,均可以根據(jù)通道的名稱定位到相同的服務。同時,因為其采用哈希算法的性質(zhì),決定了結(jié)果在空間具有均勻分布的特點,在本質(zhì)上存在負載均衡的效果。

      根據(jù)通道的名稱,在網(wǎng)絡節(jié)點上的進程定位服務以后,通過遠程調(diào)用一個實現(xiàn)配置功能的過程,設定通道的參數(shù)。通道服務按照通道的名稱保存參數(shù)信息,它被設計為包括:① 緩沖隊列的大小;② 讀取的數(shù)量;③ 寫入的數(shù)量;④ 健康狀態(tài)。其中,①被用來設計具有緩沖特性的通道,②和③被用作同步通信的條件,④被用于標志是否中毒[8]。

      在實現(xiàn)中,通道的參數(shù)和狀態(tài)信息,均按照通道的名稱分組后以鍵值的方式保存在鄰近的節(jié)點中。

      4 結(jié) 語

      在區(qū)塊鏈底層Kademlia覆蓋網(wǎng)絡中,工程人員可以根據(jù)CSP模型中通道的概念,采用新方法設計和實現(xiàn)通道服務。與文獻[5,9]相比,該方法利用在Kademlia網(wǎng)絡上實現(xiàn)的穩(wěn)定可靠的路由算法,解決了將通道抽象為語言級別對象時,集中式名稱解析服務、對象訪問機制而產(chǎn)生的可靠性和擴展性問題[13]。雖然在強烈的網(wǎng)絡擾動中,通道服務的正確性可能會受到有限影響[14-16],但是金融行業(yè)采用的技術(shù)系統(tǒng),具有較強的穩(wěn)定性,可以滿足關(guān)鍵應用的可靠性要求。系統(tǒng)開發(fā)人員可以使用該方法設計實現(xiàn)的通道服務,構(gòu)建需要通過CSP模型,驗證并發(fā)特性的大規(guī)模網(wǎng)絡分布式應用,測試人員可以使用人工或者自動化方式對系統(tǒng)進行初步的形式化分析。

      猜你喜歡
      序列化進程序號
      如何建構(gòu)序列化閱讀教學
      甘肅教育(2020年14期)2020-09-11 07:58:36
      債券市場對外開放的進程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      技術(shù)指標選股
      技術(shù)指標選股
      技術(shù)指標選股
      技術(shù)指標選股
      Java 反序列化漏洞研究
      作文訓練微格化、序列化初探
      語文知識(2015年12期)2015-02-28 22:02:15
      社會進程中的新聞學探尋
      民主與科學(2014年3期)2014-02-28 11:23:03
      我國高等教育改革進程與反思
      云林县| 平南县| 梅河口市| 股票| 张掖市| 桂东县| 荃湾区| 云霄县| 清镇市| 江津市| 舞钢市| 黔西县| 荆门市| 饶平县| 铁岭市| 中方县| 吴堡县| 桂阳县| 梅州市| 龙里县| 安仁县| 永定县| 手游| 荣昌县| 嵊泗县| 晋宁县| 旌德县| 南木林县| 涟源市| 武宣县| 轮台县| 泉州市| 广元市| 富宁县| 斗六市| 六盘水市| 田阳县| 古丈县| 台中市| 廉江市| 曲阜市|