999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Tcn中間件系統的設計與實現

2017-03-09 16:56:45霍長娟孫洪平
網絡安全與數據管理 2017年5期
關鍵詞:進程服務系統

霍長娟,孫洪平

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

Tcn中間件系統的設計與實現

霍長娟1,孫洪平2

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

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

Tcn;多進程模型;Tcn協議;LoadRunner

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編程接口進行開發的。

2 軟件說明

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

2.1 產品目錄結構

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

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函數再創建子進程,所以很顯然能提高工作效率。

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協議以及語法語義要求,如果符合,進一步分析出需要調用的服務名,然后去哈希表中尋找該服務入口,根據指針指向調用相應的服務,完成此次請求。

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

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

5 測試結果

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

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

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

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

6 結論

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

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

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

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

[4] DREPPER U.How to write shared libraries[M].Retrieved Jul,2004.

Design and implementation of Tcn middleware system

Huo Changjuan1,Sun Hongping2

(1. Accounting Center of China Aviation, Beijing 100028, China; 2. The Company of Beijing Gao Yang Jin Xin, Beijing 100050, China)

This paper describes the design and implementation of a middleware—The Cocklebur Network based on message communication.The system has the following characteristics:multi-process model,pre-created child process mechanism,which can improve system response speed;programming API is easy to use, they use Tcn software protocol to work and can use standard C library functions and header files for development of applications and services;Tcn designs and implements two ways (dynamic library and static links ) to load user services;at the same time this software also supports file transfer, load balancing and other functions.After LoadRunner testing, the software has a good performance to meet the needs of most businesses.

The Cocklebur Newtork; multi-process model;Tcn-protocol;LoadRunner

TP311

A

10.19358/j.issn.1674- 7720.2017.05.005

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

2016-10-08)

霍長娟(1982-),女,碩士研究生,中級工程師,主要研究方向:軟件工程、數據庫安全。

孫洪平(1978-),男,本科,高級工程師,主要研究方向:軟件工程。

猜你喜歡
進程服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 亚洲精品天堂在线观看| 天天爽免费视频| 中文字幕第1页在线播| 一级毛片a女人刺激视频免费| 中文字幕乱码中文乱码51精品| 久久狠狠色噜噜狠狠狠狠97视色 | 欧美成在线视频| 婷婷综合亚洲| 午夜视频在线观看区二区| 免费国产高清精品一区在线| 91九色视频网| 大陆精大陆国产国语精品1024 | 久久综合九色综合97婷婷| 国模私拍一区二区三区| 亚洲国产午夜精华无码福利| 国产女人水多毛片18| 日韩人妻精品一区| 亚洲成a∧人片在线观看无码| 亚洲精品国产日韩无码AV永久免费网| 久久婷婷五月综合97色| 国产丝袜第一页| 91人妻日韩人妻无码专区精品| 免费a级毛片视频| av尤物免费在线观看| 日韩黄色在线| 国产成人福利在线| av在线无码浏览| 国产91在线|日本| 国产chinese男男gay视频网| 91视频国产高清| 亚洲国产综合自在线另类| 国产精品成人观看视频国产| 国产一级毛片在线| 国产精品爽爽va在线无码观看| 成人国产一区二区三区| 日本免费高清一区| 久久人搡人人玩人妻精品一| 成年免费在线观看| 免费在线a视频| 久久免费视频6| 国产在线拍偷自揄观看视频网站| 91麻豆精品视频| 久久成人18免费| 精品国产成人高清在线| aa级毛片毛片免费观看久| 一级香蕉视频在线观看| 超碰aⅴ人人做人人爽欧美| 国产aⅴ无码专区亚洲av综合网| 亚洲AⅤ无码国产精品| 人妻无码中文字幕第一区| 婷婷伊人久久| 欧洲欧美人成免费全部视频| 国产真实乱子伦视频播放| 成年女人18毛片毛片免费| 精品国产一区91在线| 日韩精品毛片人妻AV不卡| 丁香婷婷激情综合激情| 四虎永久在线| 自拍中文字幕| 亚洲性影院| 欧美天堂久久| 911亚洲精品| 嫩草国产在线| 麻豆精品视频在线原创| 久草网视频在线| 国产污视频在线观看| 性欧美在线| 67194在线午夜亚洲 | 波多野结衣一区二区三视频| 91在线播放免费不卡无毒| 日韩乱码免费一区二区三区| 欧美性猛交xxxx乱大交极品| 欧美一级视频免费| 国产一区二区精品福利| 成人日韩欧美| 欧美a级完整在线观看| 日韩第一页在线| 动漫精品中文字幕无码| 色香蕉影院| 毛片免费视频| 国产色伊人| 欧美天堂在线|