tuxedo客户端调用java_tuxedo调用客户端_tuxedo调用java socket_调用tuxedo
圖1 Tuxedo網關連接Web服務器和Tuxedo
Tuxedo網關采用“請求/應答”模式,不僅將Web服務器的請求發送到Tuxedo平臺,同時,接收Tuxedo平臺的處理結果,將處理結果回送到Web服務器,至此,完成一次交易。
3 總體設計
3.1 系統結構
從系統并發能力和Tuxedo對客戶端的并發限制考慮,Tuxedo網關采用多進程并發服務器模型,由多個進程協同處理來自Web服務器的Tuxedo訪問請求。同時,采用并發方式,可以實現對Tuxedo用戶License的共享復用。
從吞吐量考慮,Tuxedo網關與Web服務器的通信采用長連接、異步讀寫方式,與Tuxedo的通信采用異步調用方式,每個進程可以同時處理多個Tuxedo訪問請求。
系統中包含INIT、MANAGER和PROXY三類進程,INIT進程和MANAGER進程在整個系統中各有一個,PROXY進程的數量可以根據需要配置,各自功能如下:
MANAGER進程:負責與Web服務器的通信,接受來自Web服務器的連接和訪問請求并回送結果;將請求分發給PROXY進程處理并接收PROXY進程的結果;負責流量控制和系統本身的負載均衡;守護PROXY進程。
PROXY進程:負責與Tuxedo服務通信;應用協議與ATMI協議的轉換;調用Tuxedo服務并接收調用結果。每個PROXY進程連接一個Tuxedo系統,可以通過本地客戶端或WorkStation方式與Tuxedo通信。
INIT進程:MANAGER進程的守護進程。MANAGER進程與Web服務器之間采用基于TCP/IP的Socket長連接,與PROXY進程之間采用FIFO通信。
圖2 Tuxedo網關系統結構
3.2 工作流程
WEB服務器訪問Tuxedo服務的一個完整的交易過程如下所示:
1. 啟動Tuxedo網關,端口;
2. WEB服務器主動連接Tuxedo網關的端口,Tuxedo網關接受連接;
3. WEB服務器將應用數據按照協議封裝成報文,通過TCP/IP協議發送到Tuxedo網關;
4. Tuxedo網關接收到該報文,MANAGER進程根據一定規則將其分配給指定的PROXY進程處理;
5. PROXY進程接收到MANAGER進程發送的請求,將報文轉換為TuxedoATMI類型的數據,通過ATMI接口調用Tuxedo服務;
6. PROXY進程接收到Tuxedo服務返回的結果,將其轉換為特定格式發給MANAGER進程;
7. MANAGER進程接收到PROXY進程的結果,將其按照協議封裝成報文發送給WEB服務器;
8. WEB服務器接收到Tuxedo網關發來的響應,解析報文,取出應用數據,至此完成一次訪問。
整個過程中,WEB服務器和Tuxedo服務之間傳遞的應用數據對Tuxedo網關透明,Tuxedo網關只負責協議轉換,應用數據的具體格式和內容由WEB服務器與Tuxedo服務協商確定。
3.3 部署方式
根據訪問Tuxedo服務方式的不同,Tuxedo網關可以采取兩種部署方式。
一種方式是將Tuxedo網關與Tuxedo服務部署在同一用戶環境下,Tuxedo網關做為本地客戶端與Tuxedo通信。調用tuxedo
另一種方式是將Tuxedo網關部署在任意用戶環境下,Tuxedo網關通過WorkStation方式與Tuxedo通信。
第一種方式效率較高,但僅限于訪問同一用戶環境下的Tuxedo服務;第二種方式具有更大的靈活性,可以訪問不同Tuxedo平臺的服務,但效率會受一定的影響。
4 總結
Tuxedo網關使基于Java和.NET平臺的Web服務器能夠實時訪問Tuxedo服務,局域網內在WindowsJava客戶端看到的單次訪問時間可以達到1ms以內(消息長度1k以內),處理能力1800TPS(非極限,對應CPU僅15%左右)以上,為前后臺之間的通信提供了一種新的解決方案,有望替代Jolt、WTC等產品的部分功能,節約成本。
這是自畢業以來獨立完成的比較復雜的一個系統,也是最感興趣的一個系統,基本上涵蓋了從需求分析到設計、實現、測試的整個過程,在這個過程中得到了很多同事的幫助,學到了不少知識。
當親自動手,從零開始的時候,很多事情并沒有想象的那么簡單。在這個過程中出現了許多意想不到的困難,很多時候甚至產生放棄的念頭,幸運的是總能得到同事的支持和鼓勵,風雨過后見彩虹,最終得以實現了最基本的功能。
補充2012年9月測試數據:
并發處理能力:14000QPS,非極限,單PC機客戶端測試程序能力有限
服務端資源占用:CPU idle 35%,vsz 800M, rss 350M, loadAverage<2
服務端配置:UNIX, 2*2core(UltraSPARC,1.5GHz),16G Mem
客戶端配置:PC WinXP,2*2core(Intel,2.2GHz), 2G Mem,120thread/process *7
本文來自電腦雜談,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-27448-1.html
總結
以上是生活随笔為你收集整理的tuxedo客户端调用java_tuxedo调用客户端_tuxedo调用java socket_调用tuxedo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基础之线程(1)
- 下一篇: 游戏设计的100个原理(1-5)