TIBCO
Rendezvous(或稱為TIBCO RV)産品是一種中間件,它具有釋出/訂閱(Publish/Subscribe)、基于主題尋址(Subject-Based
Addressing) 和自定義資料資訊(Self-Describing Data
Messages)等專利技術功能,使不同應用平台上的資訊在一個共享的虛拟總線Information
Bus(TIB)上進行傳輸交換。這些技術能有效地幫助企業從傳統的請求/應答(Request/Reply)模式轉到自動資料接受的事件驅動模式(Event-Driven,或稱之為Push)。TIBCO
RV 有助于在各種應用系統中擷取資訊和資料,能将異構平台有機地聯結起來, 通過以即插即用(Plug &Play)
、位置無關(Location-Independent)和分布式服務(Distributed Services)的方式在WAN 和LAN
間配置系統。并且TIBCO RV 具有認證消息傳遞(Certified Message Delivery) 、容錯(Fault Tolerance)
和分布式隊列(Distributed Queue)功能。因為使用TIBCO RV
不用考慮網絡的技術細節,而隻需專注于企業應用的開發,是以能快速建立和配置一個可伸縮的分布式應用系統。
Rendezvous 的優點:
l
加快應用的開發,減少維護費用;
唯一獨立于硬體、作業系統、網絡和協定平台供應商;
動态元件替換:程序可以随時加載、退出、替換,而不影響系統運作;
屏蔽網絡細節;
應用伸縮性高;
位址無關,簡化增加/改變元件;
提高分布系統的生命期;
n 一般特性:
·
分布式隊列實作一對多資訊傳送;
安全資訊傳送;
備援機制實作容錯;
所有平台間對等傳輸;
與其他通訊協定并存于統一系統;
支援多種資料内部交換格式;
系統開銷低,容易嵌入;
線程安全,多線程安全保護;
支援多點傳送;
n 通訊和資料特性:
異步通訊;
釋出/訂閱,可靠的廣播(broadcast)/多點傳播(multicast)機制;
點對點請求/應答;
基于主題消息傳送;
自定義資料資訊與硬體/作業系統無關;
透明的資訊打包或重組;
n 認證資訊傳遞:
明确的資訊認證,確定資訊傳送到目的地;
在程序中斷和重新啟動狀态下確定要傳遞的資訊不丢失;
分布式隊列,自動實作負載均衡功能;
傳遞資訊給隊列種的某一成員;
隊列成員程序保持異步運作;
n 容錯:
通過備援程序實作系統容錯;
監控活動的備援程序;
n 開發特點:
提供Java、C、C++、ActiveX、.NET、Perl 的API 庫;
源碼相容所有的平台;
支援同步/異步事件管理結構;
Rendezvous Daemon(rvd)為應用程序傳遞資訊,過濾主題資訊,配置設定資訊;
Rendezvous Routing Daemon(rvrd) 在WAN 和LAN 間跨網段有效地傳遞資訊,對TIBCO Rendezvous
應用編碼不做任何修改;
RV 在目前的操作環境中加入兩個元件:
ü
API 庫。每個應用程式連接配接到RV API 庫的某一版本;
RV 通訊Daemon 程序。在大多數環境,每台主機上面運作一個Daemon 程序。
下圖示範了一個簡單環境中兩個系統進行互動的過程。主機1
上運作應用
程式A
和一個daemon 程序,主機2 上運作兩個應用程式B 和C,它們通過單個daemon 程序連接配接到網絡上。所有這三個應用程式可以進行互相通訊。

任何主機上可以運作任意數量的RV
應用程式。通常一個主機上的所有RV應用程式共享同一個RV Daemon 程序。
Rendezvous
Daemon 程序
應用程式依賴RV
Daemon 背景程序進行可靠和高效的網絡通訊。(通常RVDaemon 程序和RV 應用程式運作在同一主機上;但是RV
應用程式也可以連接配接到遠端daemon。)
RV
應用程式試圖連接配接到RV daemon 程序。如果daemon 沒有運作,應用程式将自動啟動它并連接配接到daemon 程序。RV daemon
負責通訊的所有細節:如資料的傳輸,包的排序,接收确認包,重發請求,将資訊派發到适當的應用程式程序等。它為RV 應用程式隐藏了所有這些細節。
RV 隻是一個消息中間件産品,XML 資料可以通過RV 消息進行傳遞,但它不提供對XML 資料的處理能力。
可以通過幾種方式來實作XML
資料的處理:
使用TIBCO
BusinessWorks 産品對包含XML 資料的RV 消息進行各種處理,如映射、變換、合并、分解等;
使用第三方XML
工具或API,以程式設計方式對RV 消息中的XML 資料進行處理。
RV 本身隻提供一些背景Daemon 程式以及API 接口供使用者使用。使用者使用這些API,選擇RV 支援的開發語言(如C/C++,Java 等)開發相應的RV
應用程式,并通過背景Daemon 程序進行消息的發送或接收。
使用者也可以選擇TIBCO
基于RV 開發的一些其他産品(如BusinessWorks,各種Adapter 等)來簡化應用程式的開發。
概述
Adapter for
ActiveDatabase可以把某個資料庫中資料的變化可以發送給其他的資料庫或應用。它把釋出/訂閱與請求/回複機制擴充到資料庫層面,使資料庫應用可以使用多種不同層次的消息傳遞服務。它支援所有的ODBC相容資料庫,包括DB2,
Oracle, Sybase, Informix, Microsoft SQL Server, TimesTen in-memory
database等。
特色
事先定義的資料庫表中的行發生插入、修改或删除操作時,可以把資料按照TIBCO
Rendezvous消息格式釋出
建立資料的拷貝,按照資料值來釋出資料
直接引用新的資料來釋出資訊。
可以使用參數定義釋出消息的主題,即可以根據釋出資料的内容動态床架主題。
可以使用可靠傳輸和保證傳輸兩種方式進行資料的釋出。
保證傳輸的接收者可以事先在保證傳輸資訊的釋出者上注冊。
事先定義的資料庫表中的行發生插入、修改或删除操作時,可以訂閱按照TIBCO
Rendezvous消息格式釋出的資料變化
可以使用含有通配符的主題名稱訂閱消息
可以使用可靠傳輸和保證傳輸兩種方式進行資料的訂閱。
可以根據消息數量或逾時時間進行批處理送出。
可以使用基于TIBCO Rendezvous 用戶端應用定義特定的主題使用RV消息格式向資料庫發送SQL語句或存儲過程。
使用内建的函數來配置釋出代理和訂閱代理,修改資訊内容。
配置TIBCO
Adapter for ActiveDatabase 來滿足需求:
定義資料庫表間關系,釋出所有的相關表内容。
使用定期檢查或通知機制監測資料庫的改變。
基于的标準:
通過ODBC連接配接多種資料庫
與其他TIBCO ActiveEnterprise元件實作互操作。
使用TIBCO Hawk進行系統監控。
支援的系統平台
Windows
HP-UX
Solaris
AIX
Linux
支援的資料庫系統
Oracle
Sybase
MSSQL
DB2 for OS/390
DB2 for AS/400
DB2 UDB for Windows and Unix
對于消息中間件,絕大多數熟悉的是 IBM
MQ, 這是目前使用最廣泛的中間件産品。國内還有一款中間件 TongLinkQ, 結構和 MQ 相似。其實在國外還有一款叫 Rendzvous 的消息中間件應用也非常廣泛,隻是在國内應用不多,是以在國内并沒有 MQ 那麼大的名氣。這款消息中間件的設計和 MQ 是完全不同的,有很多不同的特性特點,使得它在某些應用場景具備更多的優勢。 總結一下 Rendzvous 的架構特點,和 MQ 的架構以及 JMS 消息中間件的架構做比較。深入了解和比較這些中間件産品,才能用的準用的好它們。
先總結一下消息中間件的功能,以上的三類中間件都實作了這些功能。
Ø 實作消息的異步發送接收,釋出訂閱,使得兩端的應用解耦。
Ø 實作消息持久化機制,保證消息可靠性傳輸。
Ø 優化網絡傳輸,支援斷點續傳。
1. 分布式結構 VS 星型結構 ,推送 VS 接收, 服務端緩存 VS 用戶端緩存 。
RV 和 MQ 都是分布式結構的, 和 JMS 消息中間件的星型結構不同。分布式消息中間件的 Server 在應用環境裡都會部署多個,彼此互聯,沒有主備之分。 JMS 消息中間件的應用部署一般都是主備兩個 Server ,消息的發送和接收應用平時和主 Server 相連,有問題時切換到備 Server ,主備 Server 共用公共的儲存設備來儲存消息。
MQ 和 JMS 消息中間件都采用消息接收端主動接收消息的方式。消息從發送端發出後,首先會緩存到 Server 上, 接收端應用發起一個接收消息的請求, Server 把消息作為應答傳回給接收端。接收端不執行接收動作,消息就會一直在 Server 上儲存。
RV 和這兩種消息中間件都不同,使用的是消息推送的模式。消息從發送端發出後,并不在 Server 上緩存, Server 隻做路由把消息推送給消息接收端。消息接收端隻要連接配接上 Server ,訂閱要接收的消息,這些消息就會源源不斷地從 Server 那裡推送過來,消息先緩存到接收用戶端的隊列裡,接收端應用再從隊列裡取消息。
總之 RV 是一個分布式結構,推送消息模式,用戶端緩存的消息中間件。分布式結構适用于分布是應用系統,友善做擴充,推送加用戶端緩存适用于高實時性消息的處理,消息需要在第一時間到達目的地,過時的消息的沒有必要儲存下來的,消息接收端應用需要做的事情就是不斷地處理已經推送到的消息。
2. 使用廣播群組播來實作一對多的釋出訂閱 。
MQ 和 JMS 消息中間件在 IP 層都使用點對點的傳輸方式,而 RV 在 IP 層使用的是廣播或者多點傳播的方式。 使用廣播或者多點傳播可以直接實作一對多的釋出訂閱形式,釋出應用釋出消息到 RV 網絡上,這些消息會廣播到網絡的每一個節點上,每一個訂閱應用都會收到這些消息。而 MQ 和 JMS 實作釋出訂閱就要麻煩的多了, 都是在 Server 按消息的 Topic 來緩存消息,為每一個訂閱者拷貝每一條消息的引用。當所有訂閱者都從 Server 上取走某條消息,這條消息才在 Server 上删除。
3. UDP
VS TCP 。
MQ 和 JMS 消息中間件不論是 Server 和 Server 的通信,還是 Server 和 Client 的通信,在傳輸層都使用 TCP 協定,保證消息傳輸連接配接的可靠性。而 RV 在 Server 和 Server 之間的通信使用了 UDP 協定,犧牲可靠性來達到高實時性的需求。 RV 有兩種可靠性級别, RV
Reliable 和 RVCM 。 RV
Reliable 模式使用基于 UDP 增加了一定可靠機制的 TRDP 協定,在一定範圍内具有消息包的檢查和重傳機制,保證了一定程度的消息可靠性,但不保證消息不丢失。 RVCM 在 RV
Reliable 基礎上更進一步,在消息級别具有消息确認和重傳機制,可以保證消息絕對不丢失。對于長度在 1500 個位元組以下的消息, RV
Reliable 釋出消息能達到 150 萬筆消息每秒,接收也能達到 50 萬筆消息每秒。傳輸消息的性能是非常好的。
4. 使用消息 Subject 做收發兩端的比對 。
MQ 和 JMS 消息中間件在 Server 端按 Queue 和 Topic 來緩存消息,消息的發送端和接收端按 Queue 和 Topic 的名字來比對。每個 Server能建立的 Queue 和 Topic 是有限的,這也就限制了使用 MQ 和 JMS 消息中間件建構的應用,這些應用在做消息收發處理的時候隻能使用粗粒度的消息分類。
RV 不在 Server 端緩存消息,也沒有 Server 端的 Queue 和 Topic 。它是使用消息的 Subject 來做消息發送端和接收端的比對的。每個消息都有 Subject , Subject 格式是多個字元串的串接,沒有數目或者長度的限制。比如在市場資料系統裡,行情資料消息的 Subject 裡包含金融品種的名字,這樣的 Subject 可以有上百萬個。消息訂閱端可以細到隻接收某個市場的某個品種的行情資料。
RV 使用優化的算法實作 Subject 的篩選。如果 RV 網絡上有一萬種消息,一個 RV
Server 被一千個消息接收端連接配接,每個接收端訂閱不同的 Subject 。那 RV
Server 的工作就類似一個超級的郵件分檢員,對每一個從 RV 網絡上廣播而來的消息做 Subject 的判斷,判斷是否在這一千個訂閱的 Subject 的範圍内,是則将消息推送到訂閱此消息的接收端,否則将消息抛棄。當資料量很大時,這種篩選工作是需要很高效率的。
總之, RV 的最大特點是推送模式,把一個資料生産者的資料以最快的速度推送到多個資料消費者那裡。 RV 從金融市場資料系統的需求中産生而來,正是這些特點使得它在證券系統得到最廣泛的應用。
原文釋出時間為:2011-09-24