TIBCO Rendezvous — 技术介绍
http://blog.csdn.net/tiercel2008/article/details/6799952
TIBCO Rendezvous — 技術介紹
1.1.1.????? TIBCO Rendezvous — 技術介紹
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 不用考慮網絡的技術細節,而只需專注于企業應用的開發,所以能快速建立和配置一個可伸縮的分布式應用系統。
TIBCO Rendezvous 的優點:
l?? 加快應用的開發,減少維護費用;
l?? 唯一獨立于硬件、操作系統、網絡和協議平臺供應商;
l?? 動態組件替換:進程可以隨時加載、退出、替換,而不影響系統運行;
l?? 屏蔽網絡細節;
l?? 應用伸縮性高;
l?? 地址無關,簡化增加/改變組件;
l?? 提高分布系統的生命期;
1.1.1.1.?????????? TIBCO Rendezvous 的特點:
n? ??一般特性:
·?????????? ??分布式隊列實現一對多信息傳送;
·?????????? ??安全信息傳送;
·?????????? ??冗余機制實現容錯;
·?????????? 所有平臺間對等傳輸;
·?????????? 與其他通訊協議并存于統一系統;
·?????????? 支持多種數據內部交換格式;
·?????????? 系統開銷低,容易嵌入;
·?????????? 線程安全,多線程安全保護;
·?????????? 支持多點傳送;
n? ??通訊和數據特性:
·?????????? ??異步通訊;
·?????????? ??發布/訂閱,可靠的廣播(broadcast)/多播(multicast)機制;
·?????????? ??點對點請求/應答;
·?????????? ??基于主題消息傳送;
·?????????? ??自定義數據信息與硬件/操作系統無關;
·?????????? ??透明的信息打包或重組;
n? ??認證信息傳遞:
·?????????? ??明確的信息認證,確保信息傳送到目的地;
·?????????? ??在進程中斷和重新啟動狀態下確保要傳遞的信息不丟失;
·?????????? ??分布式隊列,自動實現負載均衡功能;
·?????????? ??傳遞信息給隊列種的某一成員;
·?????????? ??隊列成員進程保持異步運行;
n? ??容錯:
·?????????? ??通過冗余進程實現系統容錯;
·?????????? ??監控活動的冗余進程;
n? ??開發特點:
·?????????? ??提供Java、C、C++、ActiveX、.NET、Perl 的API 庫;
·?????????? ??源碼兼容所有的平臺;
·?????????? ??支持同步/異步事件管理結構;
1.1.1.2.?????????? TIBCO Rendezvous 包含的組件
TIBCO Rendezvous Daemon(rvd)為應用進程傳遞信息,過濾主題信息,分配信息;
TIBCO Rendezvous Routing Daemon(rvrd) 在WAN 和LAN 間跨網段有效地傳遞信息,對TIBCO Rendezvous 應用編碼不做任何修改;
1.1.1.3.?????????? TIBCO Rendezvous 部署方法
TIBCO 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 應用程序隱藏了所有這些細節。
1.1.1.4.?????????? XML 功能的實現
TIBCO RV 只是一個消息中間件產品,XML 數據可以通過RV 消息進行傳遞,但它不提供對XML 數據的處理能力。
可以通過幾種方式來實現XML 數據的處理:
使用TIBCO BusinessWorks 產品對包含XML 數據的RV 消息進行各種處理,如映射、變換、合并、分解等;
使用第三方XML 工具或API,以編程方式對RV 消息中的XML 數據進行處理。
1.1.1.5.?????????? 如何使用TIBCO Rendezvous
TIBCO RV 本身只提供一些后臺Daemon 程序以及API 接口供用戶使用。用戶使用這些API,選擇RV 支持的開發語言(如C/C++,Java 等)開發相應的RV 應用程序,并通過后臺Daemon 進程進行消息的發送或接收。
用戶也可以選擇TIBCO 基于RV 開發的一些其他產品(如BusinessWorks,各種Adapter 等)來簡化應用程序的開發。
1.1.2.????? TIBCO Adapter for ActiveDatabase — 技術介紹
概述
TIBCO Adapter for ActiveDatabase可以把某個數據庫中數據的變化可以發送給其他的數據庫或應用。它把發布/訂閱與請求/回復機制擴充到數據庫層面,使數據庫應用可以使用多種不同層次的消息傳遞服務。它支持所有的ODBC兼容數據庫,包括DB2, Oracle, Sybase, Informix, Microsoft SQL Server, TimesTen in-memory database等。
特色
事先定義的數據庫表中的行發生插入、修改或刪除操作時,可以把數據按照TIBCO Rendezvous消息格式發布
l?? 創建數據的拷貝,按照數據值來發布數據
l?? 直接引用新的數據來發布信息。
l?? 可以使用參數定義發布消息的主題,即可以根據發布數據的內容動態床架主題。
l?? 可以使用可靠傳輸和保證傳輸兩種方式進行數據的發布。
l?? 保證傳輸的接收者可以事先在保證傳輸信息的發布者上注冊。
事先定義的數據庫表中的行發生插入、修改或刪除操作時,可以訂閱按照TIBCO Rendezvous消息格式發布的數據變化
l 可以使用含有通配符的主題名稱訂閱消息
l 可以使用可靠傳輸和保證傳輸兩種方式進行數據的訂閱。
l 可以根據消息數量或超時時間進行批處理提交。
l?? 可以使用基于TIBCO Rendezvous 客戶端應用定義特定的主題使用RV消息格式向數據庫發送SQL語句或存儲過程。
使用內建的函數來配置發布代理和訂閱代理,修改信息內容。
配置TIBCO Adapter for ActiveDatabase 來滿足需求:
定義數據庫表間關系,發布所有的相關表內容。
使用定期檢查或通知機制監測數據庫的改變。
基于的標準:
l 通過ODBC連接多種數據庫
l 與其他TIBCO ActiveEnterprise組件實現互操作。
l 使用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
?
?
TIBCO RV, IBM MQ和JMS消息中間件的對比分析
對于消息中間件,絕大多數熟悉的是?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?從金融市場數據系統的需求中產生而來,正是這些特點使得它在證券系統得到最廣泛的應用。
總結
以上是生活随笔為你收集整理的TIBCO Rendezvous — 技术介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铁砧
- 下一篇: Can't find dependent