【Tuxedo】Tuxedo入门
一、Tuxedo是什么
Tuxedo:Transaction for Unix has been Extended for Distributed Operation分布式操作擴展之后的Unix事務系統。
Tuxedo是一個客戶機/服務器的中間件產品,它在客戶機和服務器之間進行調節,以保證正確的處理事務,用C語言開發的,有很高的性能。廣泛應用于電信、金融等領域。
TUXEDO是在Internet 這樣的分布式運算環境中開發和管理三層結構的客戶/服務器型關鍵任務應用系統的強有力工具。它具備分布式事務處理和應用通信功能,并提供完善的各種服務來建立、運行和管理關鍵任務應用系統。開發人員能夠用它建立跨多個硬件平臺、數據庫和操作系統的可互操作的應用系統。
Tuxedo的主要作用:屏蔽分布式環境中各種通信協議、硬件體系結構、操作系統、數據庫和其它應用服務等方面的差異,使分布于網絡節點上的應用程序的各個單元部件之間能夠進行互操作,并協調操作的一致性和完整性,最大限度地節省系統資源,提高系統性能。
二、使用Tuxedo中間件的三層架構
三層架構從左往右依次為客戶端層(表現層)、中間件服務層(業務邏輯層)、數據庫服務器層(數據層)。這種典型的三層架構應用非常廣泛。
對于使用weblogic中間件的系統一般應用B/S架構,絕大部分采用HTTP協議,少量系統使用Java編寫的客戶端,使用的是RMI協議或者J2EE里的其他協議。而對于Tuxedo中間件使用的是Tuxedo協議。
三、Tuxedo的通訊過程
Tuxedo 服務器處理請求的方式與apache有本質的區別。
Apache服務器處理請求,由客戶端發出請求到服務器,由服務器對請求進行處理后將數據返回給客戶端。
Tuxedo 服務器一次請求需要兩次進行兩次交互,Tuxedo有兩個負責通訊的進程,一個為WSL,WSL的數量可以進行配置,典型的配置一般兩、三個;WSH可以有N多個。客戶端通過IP地址和端口號與WSL建立連接,由WSL認證請求是否合法,在WSL的響應中包含了另外一個IP地址和端口號;然后,客戶端通過拿到的新的IP地址和端口號去請求WSH 。
客戶端程序由GUI 與 Tuxeo通訊兩部分組成,GUI部分主要由開發人員關心如何設計,通訊部分可能設計成幾個函數供開發人員調用。對于性能測試人員可能更關心客戶端與服務器之間的通訊過程。
四、Java調用Tuxedo的方案
Tuxedo為業界公認的性能、穩定性、健壯性都非常好的中間件之一,之所以能做到這么好的穩定性和健壯性,其采用私有的通訊協議是原因之一。因為采用私有的通訊協議,所以客戶端與服務端的通訊質量可以全部由Tuxedo保證,客戶端只需要調用Tuxedo的API即可。
但隨著現在開放平臺的不斷崛起和發展壯大,使用有別于傳統tpcall調用的方式來調用Tuxedo服務的需求越來越強烈,特別是通過Java調用Tuxedo服務的需求越來越普遍。
幸運的是,Oracle公司在這些方面已做了不少工作??傮w來講,通??捎糜贘ava做客戶端調用Tuxedo服務的方式有如下幾種:WTC、Jolt、SALT、JNI。其它如JCA、/Q等通訊方式因使用較少故不予討論。
WTC
這是最常用的調用Tuxedo服務的方式之一,這種方式只能適用于客戶端使用WebLogic做服務器的情況,即只能在WebLogic內部使用WTC服務。盡管有此限制,但WTC方式仍是目前使用最廣泛且最穩定的非C調用Tuxedo的技術之一。
優點:穩定、高效,客戶端調用簡單。
缺點:必須在系統中增加WebLogic服務器,對于本身使用非WebLogic的應用來說,采用這種方式等于是要在通訊層增加一個通訊節點,而且WebLogic外面的客戶端只能通過Http協議或EJB等方式間接調用WTC及Tuxedo服務。
Jolt
Jolt是Oracle開發的專門用于實現Java調用Tuxedo服務的一種機制,Jolt分為客戶端和服務器端兩部分,Jolt服務器相當于Tuxedo服務器的Java代理,負責與Jolt客戶端通訊并轉發請求到標準Tuxedo服務以及轉發應答給Jolt客戶端。Jolt客戶端就是一組jar包,通訊客戶端程序調用Jolt包中的API實現與Tuxedo服務器的通訊。Jolt客戶端可以運行于任何J2EE容器或純粹的JVM中。
優點:簡單,對客戶端侵入性小,客戶端只需要包含Jolt包即可。
缺點:服務端必須專門配置Jolt服務,另外Jolt并沒有包含在標準Tuxedo組件包中,需要另外購買。另據不可靠測試,Jolt性能不如WTC。
SALT
SALT是Oracle開發的將標準Tuxedo服務包裝成WebService服務的組件。SALT類似Jolt,也是在Tuxedo服務器端增加一個包裝層,實現SCA及WebService(SOAP/UDDI/WSDL)系列協議的處理。SALT也沒有包含在標準Tuxedo組件包中,需要單獨購買。
優點:客戶端無侵入性,不需要依賴于任何Tuxedo或Oracle的API及程序庫。
缺點:客戶端必須具備WebService調用的能力,另外盡管WebService協議早已經是標準協議,但不同平臺間WebService的互操作性問題仍需要實際應用的檢驗,且這個問題不容樂觀。
JNI
JNI是Java標準規范中實現Java與本地動態庫互操作的接口。通過JNI,Java程序可以調用任何用C或其它語言編寫的本地動態庫中的函數,當然就可以使用JNI的方式實現對標準C語言編寫的tpcall的調用。
優點:投入最少,不需要安裝額外的組件。Java調用簡單,高效。
缺點:穩定性是本方案需要考慮的重點,本地庫中的BUG可能導致整個JVM崩潰。必須對本地庫的異常處理及性能做大量嚴格測試,以減少出問題的可能。另外,從系統穩定性及健壯方面考慮,客戶端應該支持多JVM的負載均衡,以減少JVM崩潰導致的災難性損失。
綜上所述,使用Java調用Tuxedo服務的方式有很多,每種方式都有各自的優點和缺點,實際使用中應根據應用的具體情況權衡選擇。
總結
以上是生活随笔為你收集整理的【Tuxedo】Tuxedo入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ![CDATA[ ]]
- 下一篇: Java读取多层级xml文件