close

企業級的應用大致經歷了三個階段:

以大型機為核心的主機/終端模式,

以檔案服務為核心的檔案伺服器模式和以資料服務為核心的客戶端/伺服器模式。

主機/終端模式屬於單層結構,它的典型代表是 IBM OS/390 系統,所有資料、應用邏輯、使用者介面都存放在主機上,終端機不具有持久儲存和計算能力。

執行應用程式時,終端將使用者介面下載到本機記憶體中,處理能力完全依賴主機的輸送量和通訊網路的頻寬。

檔案伺服器模式屬於兩層結構,它的主要代表是 Novell Netware 網路操作系統,所有檔案和資料都儲存在伺服器上,客戶端是功能完善的電腦系統,負責提供用戶介面並處理業務邏輯。

客戶端/伺服器模式可以分為以資料庫管理系統(DBMS)為核心的兩層結構和以中間件(application  server)為核心的多層結構。

 

在三層結構中,客戶端只處理展示層邏輯(presentation),即顯示使用者介面、接收用戶輸入資料、提交交易請求、顯示交易處理結果。

應用伺服器只處理應用邏輯,即負責維護客戶端和伺服器之間的通訊連接,提供命名、通信、事務、安全、併發、持久性、負載均衡等應用服務,做到最大限度的利用系統資源。

後臺資料庫只提供資料服務,即負責資料儲存、查詢、複製等服務。

展示層、應用邏輯層和資料層在物理分佈上是非常靈活的,它們既可以同時分佈在同一台主機上,也可以分佈在不同的主機上。

根據業務需求,可以對應用伺服器層進行擴展,這樣子就形成了多層結構。

 

Tuxedo 是支撐三層結構的強大的中介軟體。它具備上述所有實用特性,並且性能高,穩定性好。它不僅部署靈活,而且針對不同的部署進行了相應的優化。

 

Tuxedo 系統的關鍵特性

1、名字服務和位置透明性


公告板(BB)為 Tuxedo 應用程式提供了名字服務。為了便於快速訪問,它作為共用內存中的一個結構存在,在運行時系統中,公告版會被複製到每個參與的節點上,

Tuxedo 系統根據名字資訊、配置資訊和環境資訊自動把請求平衡分派到可用的伺服器上,並根據數據內容為客戶請求選擇路由,為伺服器請求選擇優先順序。

開發人員把應用程式編成邏輯入口項(稱有名服務)函數的調用,Tuxedo 系統會把這些邏輯請求映射到伺服器節點及伺服器進程上。

由於客戶機請求的是有名服務,而不是某個具體的後臺進程,因此後臺進程和伺服器的分佈對客戶機來說是透明的。

 

2、強大的 C/S 通信能力

Tuxedo 系統遮罩了硬體、網路、資料庫和作業系統的複雜性,提供了一套簡單統一的程式設計介面,使程式師可以把精力集中在業務邏輯的實現上。

而不必為資料庫、作業系統和網路通信協定的複雜性、異構性和可靠性擔憂。

 C/S 通信方面,Tuxedo 系統不僅支援請求/應答式通信模式(同步、非同步、嵌套、轉發),

而且還支援交易狀態的會話通信方式、基於發佈/訂閱的事件代理方式、基於單播/多播的消息通知方式、基於訊息佇列的可靠消息存儲和轉發方式。

在消息傳遞方面,Tuxedo 提供了 CARRAYSTRINGVIEW32FML32XML 和 MBSTRING 類型緩衝區來承載消息。

此外,Tuxedo 還支援用戶自訂訊息緩衝區類型,以滿足特定資料交換需求。

在消息傳輸過程中,Tuxedo 的高效資料壓縮機制平均可以壓縮掉 80%資料,大大提高了網路傳輸效率。

 

3、強大的連線交易性能

 Tuxedo 客戶機和伺服器之間,以及伺服器和伺服器之間的通信中,網路上傳輸的只是一些相對較少的客戶或伺服器的請求和伺服器的處理結果,而不在是兩層結構中客戶機和 DBMS 之間的大量 SQL 請求和應答。

Tuxedo 能夠使多個客戶連接到一個伺服器進程。由這個伺服器進程統一存取資料庫,為客戶機的請求服務。

這樣,資料庫為處理連接所需的資源大大減小。

此外,利用 Tuxedo 特有的一些機制也能夠極大的提高應用系統的性能。比如,利用非同步 RPC 機制實現扇出並行,利用轉發機制實現流水線並行,利用 MSSQ 實現多處理並行。

所有這些因素使 Tuxedo 應用系統具有極高的性能。


4、強大的分散式事務協調能力

作為一個強大的 TP MonitorTuxedo 協調分散式事務的機制後來形成了 XA 規範。

如,一個用戶端發起的事務需要對 4 個資料資源做同步修改,所有的操作都在兩個 Tuxedo伺服器的監控下完成,

對用戶端來說,只有四個操作都成功的時候,事務才算成功,才能交易,否則就是失敗的,必須回滾。

Tuxedo 使用全域事務來跟蹤事務參與者,使用兩階段提交協定來協調事務,這樣就可確保每個資源管理器都能正確的處理事務的提交和回滾。

Tuxedo 還能在網路故障或全域資源鎖死時協調全域事務的恢復。


5、完善的負載均衡機制

Tuxedo 系統使用負載均衡機制來把客戶請求平均地分佈到每一個提供相同服務的後臺伺服器進程上。

負載均衡機制避免了系統中一部分伺服器空閒而另一部分伺服器卻很忙的情況,有效的保證了系統高效的運行。

Tuxedo 系統支援主機級和進程級的負載均衡。如果應用程式分佈在多台主機上,則當客戶請求到達的時候 ,

Tuxedo 系統會根據主機的計算能力來分發請求,請求到達某個主機後,Tuxedo 系統會在多個對等的進程之間進行進程級負載均衡。

在預設的情況下,Tuxedo 系統自動的做負載均衡,但使用者也可以通過配置負載因數的方法來干預系統的負載平衡調度,

Tuxedo 系統會動態的計算每個伺服器請求佇列中負載因子的總和,然後將請求放進負載最小的伺服器佇列中。

通過配置 MSSQMultiple server single queue)可以實現進程級的負載均衡。

 

6、Data Dependent Routing

資料依賴路由(Data Dependent Routing DDR)是根據請求緩衝區中指定欄位的取值範圍,來把請求映射到某個伺服器組上的演算法。

如下圖 Server1  Server2 是兩個完全相同的伺服器進程,它們都提供 A 務,但是它們部署在不同的伺服器中,

Server 1 只受理取款低於$500 的交易,Server 2只受理取款高於$500 的服務,

當用戶端發出交易請求的時候,取款低於$500 的交易請求會被分發到 Server 1 去處理,取款高於$500 的請求會被分發到 Server 2 去處理。

 

123  

 


7、請求的優先順序

請求的優先順序是 Tuxedo 系統的一個重要特性。在實際的應用中,某些服務請求經常需

要比其他服務請求有更高的優先順序,例如:航空公司取消訂座的優先順序要比訂座的優先順序高。原因不言而喻。

如下圖,伺服器提供了三個服務 ABC  優先順序分別是 505070。在上一個請

求完成時,伺服器要從佇列中選擇下一個請求,這個請求的選取首先是由優先順序決定的,

而不是根據請求在佇列中的位置來決定的,因此第三個請求 C 會先出隊。為了防止低優先

級請求總是得不到處理,每 10 個請求,會按照 FIFO 次序來做一次請求選擇。


2012-11-17_182601  


8、容錯和透明故障遷移

保證業務應用持續正常地運行是 Tuxedo 系統的關鍵特性之一。Tuxedo 通過提供多個備用的伺服器組來避免系統中出現單點故障。

它的系統部件始終在監視著應用程式、事務、網路和主機狀態。

當故障發生時,Tuxedo 系統邏輯上會把故障部件從系統中清除,並且啟動故障恢復程序,把請求消息和事務重新路由到系統中的其它部件上去處理。

整個過程不會造成服務中斷,因此對用戶端工作站來說是完全透明的

 

9、安全性

Tuxedo 通過一個結構化的安全介面提供驗證(Authentication)、授權(Authorization)和存取控制(access control)

該介面允許 Kerberos 或類似的使用者自訂驗證模組和應用系統集成。

使用者能用存取控制清單保護服務、佇列和事件免遭沒有授權的訪問。

Tuxedo的安全特性還包括資料加密(Encryption)

Tuxedo 支援兩種類型的資料加密,即網路級加密和應用級加密


1234  

 


10、開放性和易用性

Tuxedo 系統具有非常好的開放性,它的核心部件可以運行在所有現在主流的伺服器操作系統上。

Tuxedo 的伺服器端支援 C/C++COBOL 開發語言,用戶端支援 C/C++JavaVisual studio.NETDelphiPowerBuilderDevelop/2000 等 RAD 工具,以及 4GL 和 CASE 工具。

Tuxedo 支援很多工業標準,如 X/Open 工業標準、CORBA 分散式標準、羽量級目錄訪問協議(LADP)等等。

Tuxedo 提供簡潔 API 使使用者程式能夠透明地在客戶機和伺服器之間、伺服器和服務器之間進行各種方式的通信,極大的減輕了開發人員的難度和負擔。

 

 

 

 

 

 

 

 

arrow
arrow

    Burgess 發表在 痞客邦 留言(0) 人氣()