《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > Tcn中間件系統的設計與實現
Tcn中間件系統的設計與實現
2017年微型機與應用第5期
霍長娟1,孫洪平2
1. 中國航空結算有限責任公司,北京 100028;2. 北京高陽金信信息技術有限公司,北京 100050
摘要: 主要介紹了一款基于消息通信的中間件軟件——The Cocklebur Network,即Tcn中間件的設計與實現。該系統具有以下特點:多進程模型、預先創建子進程機制,提高系統響應速度;編程API簡單易用,都是圍繞Tcn軟件中專有的協議——Tcn協議展開,可運用標準的C語言庫函數與頭文件進行各種應用服務的開發;Tcn設計并實現了通過動態庫與靜態鏈接兩種方式加載用戶服務;同時此款軟件還支持文件傳輸、負載均衡等功能。經過LoadRunner測試,該軟件有較好的性能,可以滿足大多數企業需要。
Abstract:
Key words :

  霍長娟1,孫洪平2

 ?。?. 中國航空結算有限責任公司,北京 100028;2. 北京高陽金信信息技術有限公司,北京 100050)

       摘要:主要介紹了一款基于消息通信的中間件軟件——The Cocklebur Network,即Tcn中間件的設計與實現。該系統具有以下特點:多進程模型、預先創建子進程機制,提高系統響應速度;編程API簡單易用,都是圍繞Tcn軟件中專有的協議——Tcn協議展開,可運用標準的C語言庫函數與頭文件進行各種應用服務的開發;Tcn設計并實現了通過動態庫與靜態鏈接兩種方式加載用戶服務;同時此款軟件還支持文件傳輸、負載均衡等功能。經過LoadRunner測試,該軟件有較好的性能,可以滿足大多數企業需要。

  關鍵詞:Tcn;多進程模型;Tcn協議;LoadRunner

  中圖分類號:TP311文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.005

  引用格式:霍長娟,孫洪平.Tcn中間件系統的設計與實現[J].微型機與應用,2017,36(5):14-17,20.

0引言

  中間件是分布式系統中的一層支撐軟件,它位于操作系統和應用程序之間,負責對應用程序及開發人員屏蔽系統中硬件、網絡、操作系統和編程語言等方面的異構性并向他們提供統一的運行平臺和友好的開發環境。目前主流的中間件有Weblogic、Tuxedo、Websphere等,這些中間件都擁有各自的應用領域。本文主要介紹一款基于消息通信的中間件軟件(The Cocklebur Network,Tcn),即Tcn中間件的設計與實現,在保持屏蔽各種異構性功能的基礎上,它的設計與實現又有自身的特點,由于Tcn涉及的模塊較多,本文將從多進程模型[12]、用戶服務加載兩方面內容進行重點介紹,最后給出測試結論。

1系統架構

  Tcn中間件屬于消息通信中間件,完全結合實踐設計,擴展性好,易于使用。下面以銀行取款案例說明Tcn的架構設計,如圖1所示,客戶在柜臺客戶端(這里稱為Tcn Client)發起取款請求,Tcn Client通過Tcn協議[3] 與服務器(這里稱為Tcn Server)進行通信,在Tcn Server中,管理進程Tcnd負責管理整個Tcn Server,是整個系統的中樞,工作進程Tcnw負責響應客戶端的請求,并根據配置文件等信息調用與之對應的取款服務(這里稱為Service),這就是取款業務在Tcn中間件中的工作流程,另外,Tcn Client端的取款請求以及供Tcnw調用的取款Sevice都是基于Tcn編程接口進行開發的。

001.jpg

2軟件說明

  Tcn軟件主要由運行系統與開發系統組成。運行系統作為整個系統的中樞,控制著所有資源的申請、回收、釋放,調度系統中的全部應用服務。開發系統提供C語言的庫函數與頭文件,供用戶開發應用程序。

  2.1產品目錄結構

  Tcn軟件假定安裝在AIX環境中/home/tcn目錄下,產品的目錄結構如下:

  /home/tcn/bin//執行文件存放位置

  /home/tcn/inc//開發環境頭文件

  /home/tcn/lib//開發環境函數庫

  /home/tcn/cfg//配置文件與重建Tcn模版存放位置

  /home/tcn/cfg/app.conf//配置文件模版

  /home/tcn/cfg/tcn.mk//重建Tcn的腳本模版

  /home/tcn/sample//用戶服務例子

  2.2運行系統組成

  運行系統由5部分組成:核心進程、管理工具、配置文件、日志文件、環境變量。

  (1)核心進程:整個系統的運行關鍵部分。

  tcnd:負責對整個系統進行監控管理的守護進程。

  tcnw:負責接受客戶端訪問、調用服務、返回處理結果的進程。

  tcnlogd:負責登記系統日志。

  (2)管理工具

  tcnx:用于啟動、關閉、重啟Tcn系統,檢查運行狀態,檢查配置文件語法。

  tcnr:熱重啟腳本,先檢查配置文件語法,然后發送重啟信號。

  tcns:檢查Tcn系統是否為運行的腳本。

  tcnping:用于測試服務器節點是否可以連通。

  tcnas:用于監控服務器運行狀態等信息。

  (3)配置文件:整個tcn系統運行的依據。

  (4)日志文件:記錄系統運行時的錯誤、警告、提示等信息。

  (5)環境變量:Tcn的運行需要設置2個環境變量TCN_CONFIG、PATH。

  TCN_CONFIG:設置Tcn系統的配置文件路徑。

  PATH:將Tcn可執行文件目錄加入到PATH環境變量中,以便Tcn的管理工具可以通過PATH查找到。

  2.3開發系統組成

  Tcn開發系統由編程頭文件與函數庫組成。

  (1)頭文件

  tpdi.h:用戶編程API的頭文件。

  tpft.h:用于傳輸文件的編程頭文件。

  (2)函數庫

  libtpdi.a:用戶編程API的函數庫。

3多進程模型

  3.1多進程模型機制

  整個Tcn Server通過多進程模型機制對外提供服務,設計多進程模型的目的是為了提高響應速度和系統整體運行效率并達到無縫重啟。所謂多進程模型就是系統中存在兩種進程,如圖2所示。一種是對外提供服務的進程worker process,此類進程用于響應客戶端請求并調用相應的服務;另一種進程就是預先創建的子進程(這里稱之為prefork worker process),時刻處于ready狀態,準備成為worker process。為什么多進程模型機制能提高系統的響應速度?在傳統中間件系統中,當服務連接請求到達之后,fork函數會為服務連接請求創建子進程,并分配相應資源,進而對外提供服務,而在Tcn系統中,系統啟動之初,管理進程Tcnd就根據配置文件的參數設置預先創建N個子進程(prefork worker process)等待用戶服務請求,這些子進程一直處于ready狀態,當用戶服務請求到達之后,直接對外提供服務,而不需要fork函數再創建子進程,所以很顯然能提高工作效率。

 

002.jpg

  3.2創建、回收進程

  如何保證預先創建的子進程個數既能滿足對外提供服務又不會造成資源浪費?如圖2所示,在多進程模型中,完成這種預先創建的機制主要涉及3個活動:fork創建子進程、reclaim回收進程、布告板(bulletin board)信息的維護。也就是說,無論創建還是回收子進程都是以布告板信息為依據的,因為布告板中記錄著系統當前的worker process的個數,目前處于busy、ready還是idle狀態等信息,管理進程Tcnd就是根據這些信息進行動態創建回收子進程,進而保證資源平衡。

  3.3配置文件中的指令

  配置文件是Tcn系統啟動、重啟的依據,通過修改配置文件,對Tcn系統進行功能裁剪。配置文件提供多達40條指令,這些指令控制著資源的申請、進程數量、監聽端口、負載均衡、增加主機訪問控制、導出用戶服務等。在多進程模型中,有兩個指令發揮重要作用:

  (1)MinfreeDaemons:最小空閑子進程數量,默認值為5。

  (2)MaxfreeDaemons:最大空閑子進程數量,默認值為10。

  Tcn啟動之初,管理進程會根據配置文件預先創建N個子進程,即N個prefork worker process,N設置為大于1的整數,后續的創建與回收主要以當前負載為基準,管理進程時刻關注著布告板(bulletin board)中的worker進程信息,查看當前的負載情況,同時根據MinfreeDaemons和MaxfreeDaemons的值來維護prefork worker process的個數進行資源的平衡。

4用戶服務加載

  用戶服務加載主要是指Tcn系統如何通過接口與用戶服務程序進行連接。Tcn設計并實現出通過動態庫[4] 與靜態鏈接兩種方式加載用戶服務程序的方法,相比其他中間件,大大提高了軟件的靈活性,方便開發人員使用。

  4.1靜態鏈接

  像大多數中間件一樣,Tcn提供靜態鏈接的方式加載用戶服務程序。所謂靜態鏈接,在Tcn中就是指用戶服務程序不被編譯成動態庫文件,而是通過服務程序源文件重建成Tcn的工作進程——Tcnw來實現,當客戶端發起服務請求時,管理進程Tcnd直接分配Tcnw進程,調用相應服務,響應請求。目前大多數中間件都是這種加載方式。靜態鏈接的方式最大的缺點就是在更新服務時必須停止系統。

  4.2動態庫

  Tcn除提供靜態鏈接外,還提供另外一種方式加載用戶服務,即動態庫加載。所謂動態庫加載就是用戶服務程序被編譯成動態庫文件,同時用戶服務程序與動態庫文件的關系(即哪些用戶服務程序被編譯成哪個動態庫文件)記錄到配置文件中,Tcn啟動時,根據配置文件加載動態庫到系統中,同時建立一個哈希列表,記錄用戶服務程序與動態庫文件之間的關系。如圖3所示,當客戶端服務請求到達之后,會話句柄分析服務請求(request)是否符合Tcn協議以及語法語義要求,如果符合,進一步分析出需要調用的服務名,然后去哈希表中尋找該服務入口,根據指針指向調用相應的服務,完成此次請求。

003.jpg

  通過動態庫加載用戶服務程序可以實現在不停止系統運行的情況下通過熱啟動的方式來變更服務。例如,當出現取款服務需要緊急變更而系統中的取款服務又沒有運行(run)完時,就需要動態庫加載。Tcn是這樣解決的,保持系統中的取款服務繼續運行,修改取款服務程序源文件(由于取款服務源文件之前已經被編譯成動態庫文件,目前系統中取款服務是通過調用動態庫加載的,與取款服務源程序文件已經沒有關系,因此這時可以修改取款服務源文件),修改完源文件后,再編譯成動態庫文件,進而把原動態庫文件替換掉即可,最后通過熱啟動Tcn,就可以根據配置文件重新加載新的服務。在整個過程中,系統中舊有的取款服務一直處于running狀態,直到結束,這就是通過加載動態庫方式,不需要重啟機器就可以變更服務的過程。

  動態庫加載服務的方式大大提高了軟件的靈活性,尤其在要求不能宕機的實際生產業務中,將體現出其重要作用。

5測試結果

  為了證明Tcn產品的性能及穩定性,確保其高吞吐率及在高并發環境中的持續穩定運行,針對Tcn系統進行了壓力測試。本次測試的范圍,選取foo服務進行測試(服務foo就是接收來自客戶端發送的字符串,然后應答相同的字符串)。在性能測試過程中,測試Tcn系統的并發能力和平均響應時間。在負載均衡測試過程中模擬關閉一個負載節點,能否自動將請求轉發至其他的節點。

004.jpg

  以性能測試為例,經過10 h的測試,成功率為100%,如表1所示。通過分析測試結果,平均響應時間都在毫秒級,從資源監控的結果圖(圖4~圖9)中可以看出,CPU、內存、磁盤I/O均消耗很少,網絡I/O相對較為繁忙。因此在較高的TPS情況下,Tcn服務器自身消耗較少的系統資源。

  

005.jpg

  在測試結果中,短鏈接的TPS遠遠低于長鏈接的TPS,短鏈接的平均響應時間也高于長鏈接。長鏈接能大幅提升系統整體性能,但是長鏈接在長時間的空閑后,網絡鏈接依然存在,無法收發報文,通常的解決辦法是定時發送探測報文;另外長鏈接也不利于實現負載均衡。所以Tcn服務器實現一定請求次數的長鏈接后就會斷開鏈接,這樣既能保留長鏈接的優點,也利于實現負載均衡。在負載均衡測試中,模擬關閉一個負載節點,在負載節點切換過程中,并未對代理服務器的資源占用造成較大幅度變動。以下給出短鏈接的測試結果:

  VUs: LoadRunner中的虛擬用戶數,模擬客戶端的數量。

6結論

  本文概要介紹了Tcn軟件的概念及基本功能,結合其特點,重點描述了多進程模型機制的原理、實現,用戶加載服務的兩種方法。最后給出了利用LoadRunner進行性能及壓力測試的測試報告,證明Tcn系統在高并發環境中能保持高吞吐率并且持續穩定運行。

  參考文獻

 ?。?] STEVENS W R.UNIX 網絡編程[M].楊繼張,譯. 北京:人民郵電出版社,2009.

 ?。?] STEVENS W R.TCP/IP詳解[M].范建華,譯.北京:機械工業出版社,2000.

 ?。?] SURHONE L M, TENNOE M T, HENSSONOW S F. External data representation[M].Betascript Publishing,2010.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美理论在线播放| 亚洲精品在线观看视频| 欧美在线精品免播放器视频| 亚洲欧美在线观看| 欧美在线电影| 久久国产精品99久久久久久老狼| 欧美一区二视频| 日韩一区二区免费高清| 亚洲黄色性网站| 亚洲一区二区影院| 在线免费观看一区二区三区| 国产精品一二一区| 日韩视频在线免费| 亚洲精选中文字幕| 欧美日韩在线看| 久久国产精品黑丝| 久热国产精品视频| 久久久久久久999精品视频| 亚洲免费影视| 欧美色123| 国产一区二区三区日韩| 美女被久久久| 亚洲国产精品成人va在线观看| 亚洲午夜精品久久久久久app| 欧美日韩国产一级片| 日韩视频在线观看一区二区| 欧美视频福利| 99精品热视频| 欧美综合国产精品久久丁香| 免费看av成人| 欧美午夜精品久久久久久超碰| 欧美视频第二页| 国产精品呻吟| 另类人畜视频在线| 激情久久一区| 一本久道久久综合狠狠爱| 美女视频一区免费观看| 99re6热在线精品视频播放速度| 欧美激情一区在线| 国产日韩高清一区二区三区在线| 欧美精品久久久久久久久久| 亚洲欧美伊人| 欧美精选午夜久久久乱码6080| 欧美日韩三级电影在线| 国产午夜精品全部视频播放| 日韩特黄影片| 欧美日韩麻豆| 久久久久免费| 亚洲视频成人| 一区二区三区精密机械公司| 免费久久久一本精品久久区| 欧美日韩国产小视频| 欧美精品色一区二区三区| 黄色成人91| 99成人免费视频| 精品成人国产| 欧美亚韩一区| 欧美日韩国产色视频| 国产精品高清在线观看| 欧美一区二区啪啪| 久久久久久久999精品视频| 日韩天堂在线视频| 一区二区高清视频| 欧美在线地址| 欧美日韩国产欧美日美国产精品| 国产精品国产福利国产秒拍| 亚洲精品日韩一| 午夜精品久久久久久99热| 欧美日韩一区在线观看视频| 亚洲精品欧美精品| 欧美激情区在线播放| 激情另类综合| 亚洲欧洲一区二区三区在线观看| 亚洲欧美网站| 久久久人成影片一区二区三区| 久久精品国产清高在天天线| 欧美成人免费在线观看| 欧美一级久久| 欧美视频一区二区在线观看| 亚洲欧美经典视频| 欧美激情一区二区三区高清视频| 一色屋精品视频在线观看网站| 欧美1区3d| 久久久99免费视频| 宅男噜噜噜66一区二区| 久久国产精品免费一区| 欧美va天堂va视频va在线| 欧美成年人网| 午夜视频在线观看一区二区三区| 久久精品国产免费| 欧美在线播放高清精品| 亚洲国产精品久久久久婷婷老年| 欧美电影资源| 国产精品劲爆视频| 亚洲乱码精品一二三四区日韩在线| 亚洲美女精品一区| 欧美黄色免费| 欧美一乱一性一交一视频| 亚洲欧美日韩国产一区| 欧美激情一区二区三级高清视频| 久久爱91午夜羞羞| 亚洲激情欧美激情| 亚洲欧美激情一区二区| 亚洲欧美视频在线| 亚洲精品综合在线| 欧美激情第9页| 国产精品免费看片| 久久人人爽国产| 亚洲黄色在线观看| 亚洲精品欧美在线| 欧美吻胸吃奶大尺度电影| 亚洲欧美在线播放| 欧美精品免费在线观看| 夜夜嗨av色综合久久久综合网| 欧美华人在线视频| **网站欧美大片在线观看| 一区二区三区精品久久久| 美女视频一区免费观看| 国产精品日日摸夜夜添夜夜av| 欧美精品一区二区三区久久久竹菊| 久久av一区二区三区亚洲| 久久久久九九九| 国产欧美日韩免费看aⅴ视频| 亚洲激情成人在线| 亚洲精品一区二区三区婷婷月| 欧美激情一区二区三区在线| 久久久久久久久久久久久久一区| 亚洲摸下面视频| 国产精品mv在线观看| 亚洲激情小视频| 欧美不卡在线视频| 国内精品久久国产| 你懂的国产精品永久在线| 伊人久久婷婷色综合98网| 亚洲一区精品在线| 亚洲少妇自拍| 亚洲级视频在线观看免费1级| 91久久综合亚洲鲁鲁五月天| 一本色道久久88综合亚洲精品ⅰ| 亚洲女女做受ⅹxx高潮| 国产亚洲精品一区二区| 激情视频一区二区| 一区二区三区欧美在线观看| 欧美丰满高潮xxxx喷水动漫| 精品91在线| 亚洲人成网站999久久久综合| 欧美大片免费观看| 亚洲视频成人| 亚洲黄页视频免费观看| 欧美激情在线狂野欧美精品| 久久免费国产精品1| 国产精品免费视频xxxx| 久久综合给合久久狠狠色| 欧美1区免费| 在线亚洲+欧美+日本专区| 久热精品在线| 欧美国产综合视频| 黄色成人免费网站| 91久久久在线| 久久久av毛片精品| 性欧美xxxx视频在线观看| 日韩亚洲欧美综合| 欧美精品国产一区二区| 国产麻豆日韩| 亚洲精品三级| 欧美xart系列在线观看| 欧美激情国产高清| 亚洲高清视频在线观看| 国产精品www994| 久久久水蜜桃| 亚洲一区区二区| 亚洲风情亚aⅴ在线发布| 欧美欧美天天天天操| 美女视频网站黄色亚洲| 亚洲欧美日韩久久精品| 国产精品网红福利| 在线一区二区三区做爰视频网站| 欧美看片网站| 欧美精品亚洲二区| 欧美午夜电影网| 欧美与黑人午夜性猛交久久久| 中文精品一区二区三区| 午夜国产不卡在线观看视频| 136国产福利精品导航网址| 国产精品久久国产三级国电话系列| 久久久久久午夜| 久久精品av麻豆的观看方式| 国产精品国内视频| 一二三区精品福利视频| 亚洲精品久久久一区二区三区| 久久精品国产综合| 黄色精品一二区| 国产精品卡一卡二卡三| 欧美夫妇交换俱乐部在线观看| 久久免费视频在线| 国产精品高清在线观看| 在线观看亚洲| 亚洲国产精品久久久| 欧美黑人在线播放| 国产精品v一区二区三区| 美女尤物久久精品| 欧美日韩国产综合视频在线观看| 久久久久久伊人| 亚洲欧美久久久| 欧美剧在线免费观看网站| 欧美三级视频在线| 日韩午夜一区| 狠狠色狠狠色综合人人| 欧美少妇一区二区| 在线日韩欧美| 国产一区二区三区观看| 国产亚洲精品aa午夜观看| 欧美精品国产精品日韩精品| 亚洲福利在线视频| 亚洲乱码精品一二三四区日韩在线| 亚洲品质自拍| 国产精品家庭影院| 欧美喷潮久久久xxxxx| 欧美午夜精品久久久久久浪潮| 亚洲先锋成人| 亚洲日本视频| 国产一区二区精品丝袜| 六十路精品视频| 亚洲一区二区黄| 欧美日韩不卡合集视频| 国产在线精品成人一区二区三区| 国产亚洲精品aa午夜观看| 久久亚裔精品欧美| 蜜臀久久99精品久久久画质超高清| 欧美吻胸吃奶大尺度电影| 久久视频在线视频| 久久av在线| 麻豆av一区二区三区久久| 免费不卡中文字幕视频| 一区二区福利| 午夜一区在线| 欧美日韩一区二区三区四区五区| 亚洲午夜免费视频| 亚洲美女在线一区| 久久精品国产69国产精品亚洲| 亚洲免费影视| 亚洲视频一二三| 亚洲欧美日韩一区在线观看| 小黄鸭精品密入口导航| 欧美另类亚洲| 欧美精品国产精品日韩精品| 国产精品免费视频观看| 国产在线拍偷自揄拍精品| 一区二区三区四区蜜桃| 日韩视频一区二区三区在线播放| 欧美自拍偷拍| 欧美11—12娇小xxxx| 欧美国产在线电影| 久久精品99国产精品日本| 亚洲午夜一区二区| 欧美香蕉大胸在线视频观看| 久久综合伊人77777麻豆| 亚洲视频在线视频| 在线精品一区| 亚洲国产天堂久久综合网| 在线亚洲欧美专区二区| 曰韩精品一区二区| 韩国v欧美v日本v亚洲v| 欧美一区二区三区视频在线| 欧美搞黄网站| 欧美xxx成人| 午夜欧美不卡精品aaaaa| 久久久综合网站| 国产精品v欧美精品v日本精品动漫| 欧美激情一区二区三区全黄| 国产精品一区在线观看| 亚洲欧洲精品一区二区三区波多野1战4| 一区二区久久| 久久精品国产99国产精品| 国产精品视频一二| 欧美视频日韩视频在线观看| 欧美黄色一区| 国产精品外国| 国产色爱av资源综合区| 久久国产婷婷国产香蕉| 国产欧美一区二区视频| 亚洲级视频在线观看免费1级| 韩国成人福利片在线播放| 国产精品亚洲一区| 国产精品一区二区三区观看| 国产啪精品视频| 欧美一区二区三区精品电影| 亚洲激情av| 欧美日韩在线一区| 欧美一区二区免费观在线| 亚洲婷婷国产精品电影人久久| 国产自产女人91一区在线观看| 在线观看中文字幕亚洲| 香蕉国产精品偷在线观看不卡| 亚洲激情欧美激情| 欧美成人一区二区在线| 欧美日韩一区自拍| 精品av久久久久电影| 99re66热这里只有精品4| 亚洲午夜羞羞片| 亚洲国产日韩精品| 欧美欧美在线| 欧美一区二区三区精品| 国产精品a久久久久久| 欧美日韩国产一级| 亚洲天堂网在线观看| 亚洲天堂免费在线观看视频| 极品少妇一区二区三区| 欧美日韩亚洲不卡| 国产精品综合av一区二区国产馆| 欧美aⅴ99久久黑人专区| 欧美.日韩.国产.一区.二区| 欧美在线免费| 亚洲亚洲精品三区日韩精品在线视频| 亚洲一区二区三区成人在线视频精品| 日韩网站在线观看| 国产色产综合色产在线视频| 日韩午夜在线观看视频| 尤物yw午夜国产精品视频明星| 国内外成人免费激情在线视频| 欧美日韩亚洲一区在线观看| 亚洲国产经典视频| 亚洲国产裸拍裸体视频在线观看乱了| 蜜桃av噜噜一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 久久精品视频免费| 欧美日韩专区| 欧美一进一出视频|