iXcom技術白皮書_第1頁
iXcom技術白皮書_第2頁
iXcom技術白皮書_第3頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ixcomixcom技術白皮書技術白皮書1.前言.12.ixcom 簡介.23.ixcom 的功能.34.ixcom 的特點.45.基本概念.55.1.應用.55.2.節點.55.3.電文.65.4.電文號.75.4.1.映射電文號.75.5.回線.75.6.主機名.85.7.主機代號.85.8.電文實時傳輸.85.9.電文可靠傳輸.85.10.靜態連接.95.11. 動態連接.95.12.隊列.105.12.1. 發送隊列.105.12.2. 接收隊列.4.分組發送.11分組接收.116.體系結構.116.1.系統核心..1.2.基礎平臺構件層.12數據

2、處理構件層.136.2.通信管理.146.3.應用適配器層.151. 1.前言前言本文檔介紹寶信軟件的中間件產品 ixcom。ixcom 屬于消息通信中間件,它的主要功能是在應用程序間傳遞消息, 這些消息可以在不同的通信協議(基于 tcp/ip socket)、不同的主機系統和不同的應用系統。ixcom 提供簡單易用、高效可靠的分布式應用開發和通信平臺,利用它可以快速方便地開發可靠、高效的分布式應用。ixcom 提供遠程監控和控制功能,可以方便的控制通信線路和得知通信運行狀況。ixcom 提供對多種主流數據庫的支持, 支持 oracle,sqlserver 等數據庫。ixcom 提供對多種開發

3、語言的支持,支持c/c+ , java, .net,vb , delphi 等語言。2. 2.ixcomixcom 簡介簡介ixcom 是面向分布式應用的消息中間件,它為網絡環境下客戶機/服務器(c/s)結構的應用系統的開發和運行,提供了靈活和易用的基礎平臺。ixcom 提供兩種通訊模式,實時傳輸模式和可靠傳輸模式。在實時傳輸模式上,ixcom 提供快速地數據發送能力,但在通信出現異常時不能保證數據地可靠到達。在可靠傳輸模式下,ixcom 提供可靠的數據發送能力,嚴格按照應用發送電文的先后順序進行電文發送, 保證電文的可靠傳輸。一個 ixcom 的基本工作示意圖如圖 1 所示。應用程序分布在網

4、絡上的兩個結點上,當應用程序之間要傳送消息時,應用程序只需將消息電文號和消息的內容通過 ixcom 提供的接口傳給 ixcom。ixcom 便會利用網絡結點上的各個 ixcom 運行系統組成的虛擬網,將消息輸送到消息接收者所在的結點上,然后提交給消息的接收者。圖圖 1 13. 3.ixcomixcom 的功能的功能ixcom 的主要功能如下:提供端到端的實時通信服務。應用不必關心網絡通信和其它的網絡細節,應用只需關注應用業務層, 減少學習和使用的難度。提供端到端的可靠通信服務。適用于分布式環境下各種不同類型的應用開發,特別是對通信的可靠性要求較高的應用,提供多層次的異步通信機制。通信的應用雙方

5、在處理時間上可以互不相關,發送方在發送數據時接收方應用可以還未啟動。提供對發送電文的并發傳輸(通信規約必須是動態連接動態連接的)和接收電文的并發處理,適用于對效率要求比較高的業務領域。提供簡單易用、快速、高效可靠的分布式應用系統的開發平臺,應用編程接口(api)簡單且易學易用。網絡異構環境和細節對用戶完全透明并且支持多種網絡底層環境,并提供了跨操作系統的 c/c+/java 接口;ixcom 可以和具有不同通信規約的節點節點進行通信。提供 webservice,xml-rpc 接口,可以和 j2ee 和.net 進行集成。支持工業通信協議 modbus、3964r 等協議。通過 ixcom 提

6、供的協議框架,可以對通信協議進行擴展。可靠傳輸方式下,支持電文的廣播和多播發送。提供對多種消息格式(ascii 和二進制)傳輸的支持;提供快速可靠的面向事務處理的數據遞送功能,保證數據的完整性和可靠性;提供分布式(c/s 和 b/s)的管理平臺,通過 dns 服務和應用管理等方式,提供對 ixcom 的管理和監控。4. 4.ixcomixcom 的特點的特點ixcom 有以下特點:支持多種操作系統,如 ibm aix、hp-ux 、linux、windows 2000/nt/xp/2003 等。支持多種開發工具。ixcom 在所有平臺上都支持 c、c+、fortran 和 java;在 win

7、dows 系列平臺上,提供 vb/delphi/c# 等接口。網絡節點數的支持量大:網絡節點數的支持可從數十個到上千個,具體上限的多少與主機的性能有關。基于 tcp/ip socket 。支持客戶/服務器(client/server)方式。5. 5.基本概念基本概念.應用應用與具體業務有關的程序,包括客戶端處理輸入輸出的客戶程序(client)、服務端負責業務邏輯的服務程序(server)。.節點節點節點就是通信程序的宿主主機。 一個 ixcom可以和多個節點通信。一個節點主要有五個屬性:ip 地址、port 號、通信規約、主機名稱和主機代號。ipip 地址地址節點

8、的 ip 地址,可以有備用 ip 地址。portport 號號節點通信程序的監聽端口號通信規約(通信規約(protocolprotocol)ixcom 和外部主機互相通信的規約主機名稱(主機名稱(hostnamehostname)標識節點名稱,不大于 8 個 ascii 字符主機代號(主機代號(hostdchostdc)標識節點代號, 用做發送電文時的目的地, 用 2 個 ascii 字符表示。注:在本文章,沒有特殊指名的話,節點和主機是同一概念。注:在本文章,沒有特殊指名的話,節點和主機是同一概念。.電文電文在通信中間件之間傳送的數據包,一般由電文頭、電文體(數據塊)和結束符組

9、成。其中電文頭長度 an1-2 個字符,對于特定的通信規約而言, 結束符是確定不變的。數據電文數據電文(data(data message)message)用于傳送應用系統的數據塊,ixcom 不對該類型電文進行拆分,但該電文有可能被底層的tcp 協議進行拆分和重組。應答電文應答電文(ack(ack message)message)由通信的接收方發送,用于告知發送方電文是否已被正確接收。心跳電文心跳電文(heartbeat(heartbeat message)message)用于監視回線和對方通信程序的狀態, 用作狀態檢測,雙方可根據實際需要決定是否發送心跳電文。注:注:1. 1.應答電文是用

10、于保證通信的可靠傳輸。應答電文是用于保證通信的可靠傳輸。2.控制電文、心跳電文是通信相關的電文,應用不用關心此類電文。控制電文、心跳電文是通信相關的電文,應用不用關心此類電文。.電文號電文號用于標識一條電文的類型和目的, 一般在電文頭部中有電文號字段。電文號是通信雙方按業務劃分共通制定的, 它一般用長度不大于6 位的 ascii 字符表示。.4.1.映射電文號映射電文號用于歷史問題等原因,可能在同一項目中出現電文號重復的現象。為了便于應用方便處理電文, ixcom 提供映射電文號的功能,應用可以根據需對每個電文號定義它的映射電文號, 該映射電文號必須是全局唯一的,也

11、就是說在同一項目中雖然電文號可以重復, 但映射電文號必須是唯一的。注:若項目中有重復電文號,注:若項目中有重復電文號,ixcomixcom 和應用之間的接口有如下約定:和應用之間的接口有如下約定:1) 應用發送電文時,提供的電文號必須是映射電文號。當ixcom 發送電文時,ixcom 會把映射電文號轉化成實際的電文號進行發送。2) ixcom 收到電文后,將把收到電文的映射電文號發送給應用,而不是原有電文號。.回線回線在通信程序雙方之間建立的一條 tcp 連接, 一條回線既可以接收也可以發送數據。一般來說,通信雙方通信程序之間需要建立兩條回線。一般情況下,在 ixcom 中采用的

12、回線模式如下:.通信模式通信模式通常來說,xcom 間通信,雙方都有一個客戶端和服務端。甲方要發數據給乙方,甲方 xcom 的客戶端把數據發給乙方的服務端。反之, 乙方發數據給甲方, 是乙方的客戶端把數據發給甲方的服務端。socketsocket 類型類型write c 客戶端 session 讀寫:本方作為客戶端,主動連接對方,連接建立后,該 socket 連接可以對應值對應值說明說明發送電文。 服務器端 session 讀寫:本方作為服務器端,read s 等待對方主動連接,連接建立后,該 socket連接上可以接收電文并且發送底層應答(按規約情況而定)。 read_writ

13、ecs 客戶端和服務端兩個session都讀寫,融合以上兩個 session 的功能。 .主機名主機名用于在通信時標識通信節點的主機名字。.主機代號主機代號用于在電文收發時標識發送方和接收方,一般在電文頭部中有主機代號的字段,用 2 個大寫 ascii 碼字母表示。.電文實時傳輸電文實時傳輸電文實時傳輸指電文必須在規定的時間內必須傳遞到目標節點。ixcom 在規定時間內提供快速可靠的傳輸機制,保證消息傳遞的實時性和可靠性,但在異常(網絡設備異常或對等機進程異常)時不保證消息的可靠傳輸。在異常情況下,應用發送給 ixcom 的電文數據將被丟棄,ixcom

14、 將給應用錯誤返回值,應用必須考慮電文重發或其它處理機制。0.電文可靠傳輸電文可靠傳輸電文可靠傳輸指電文的傳遞在時間上無特殊的要求,在網絡連通的情況下必須保證消息可靠的傳遞到目標節點。 電文發送時,在遇到可恢復的故障(包括機器故障或網絡故障)情況下,通過后續重發電文能夠保證消息的可靠傳輸。1.靜態連接靜態連接指通信雙方建立的 tcp/ip 連接一直保持, 直到停止通信程序或異常終止。當通信出現異常時,客戶端必須具備重新連接服務端功能,當通信出現異常時,客戶端必須具備重新連接服務端功能,保證通信的可靠性。保證通信的可靠性。靜態連接示意圖如下:注:若通信規約不存在應

15、答電文,等待應答階段將不存在。2.動態連接動態連接動態 socket 通信是指計算機之間的 tcp/ip 連接方式是動態的, 當一次通信結束后,計算機之間的連接隨之關閉,下一次傳送電文時,需要重新建立 socket 連接。如下圖所示:(注:發送方在收到應答電文后必須關閉 socket 連接。)3.隊列隊列在可靠傳輸模式下,隊列是消息存儲的地方。消息在收發過程中將存儲于隊列中,可靠隊列中的消息存儲于數據庫中, 不可靠隊列中的消息存儲于內存緩沖區中。 隊列結構由消息索引和數據存儲區等部分組成。ixcom 系統提供的隊列基本類型為發送隊列和接收隊列。.

16、13.1.發送隊列發送隊列發往目的地的電文存儲在發送隊列中,電文根據發送目的地(即主機代號)分別被放到不同的邏輯發送隊列中,ixcom 核心從發送隊列中取出電文進行網絡發送。.13.2.接收隊列接收隊列ixcom 收到電文后,將根據發送方的設置(即主機代號)將電文放到相應的邏輯接收隊列中。4.分組發送分組發送應用可以根據業務的需求把發往某一主機的電文號按業務進行分組。每個組看作一個隊列,每一組電文有對應的組號(整數)。對應于每一個隊列, ixcom 有一個且同一時刻只有一個進程對該隊列進行操作發送,隊列與隊列之間的電文是互不影響的, 一個隊列中的電文堵塞,不會影

17、響其他隊列的電文。注:分組發送僅限于動態連接方式,不能用于靜態連接方式。5.分組接收分組接收應用可以根據業務的需要把來自同一主機的電文按業務進行分組。每個組看作一個隊列,每一組電文有對應的組號(整數)。對應于每一個隊列, ixcom 有一個且同一時刻只有一個進程對該隊列進行操作發送(發送給應用,比如 tuxedo),隊列與隊列之間的電文是互不影響的,一個隊列中的電文堵塞,不會影響其他隊列的電文。6. 6.體系結構體系結構本節描述 ixcom 的基本組成和運行方式。在應用系統進行數據通訊時,應用進程通過ixcom 接口函數,將電文放入隊列中。ixcomixcom 核心進程從隊列中

18、取出消息,根椐電文中的電文號,通過ixcom 之間(或與其它通信程序)建立的數據通道,將該電文傳送到接收者所在 ixcomixcom(或其它通信程序)(或其它通信程序)。接收者所在的 ixcomixcom 核心收到電文后將電文寫入接收隊列中,接收應用進程通過調用 ixcom 的接口函數,從接收隊列中取出電文。至此,一個電文傳遞完畢。.系統核心系統核心系統核心由兩大部分組成, 即基礎平臺構件層和數據處理構件層。.1.1.基礎平臺構件層基礎平臺構件層基礎平臺構件層由以下幾部分組成,包括事件分派、 socket 傳輸、進程管理、數據庫連接池和線程池。事件分派事件分派事件分派主要工作是建立 socket 連接、維護監控通信鏈路;從通信鏈路中讀取數據并分派給協議插件。socketsocket 傳輸傳輸應用電文發送和處理。進程管理進程管理進程管理主要工作是管理和維護 ixcom 的各進程。數據庫連接池數據庫連接池數據庫連接池主要工作是在電文可靠傳輸模式下,提高數據庫訪問速度的效率。線程池線程池線程池主要工作在于提高在并發處理電文時的處理效率。.1.2.數據處理構件層數據處理構件層數據處理構件層由以下幾部分組成,包括電文交換、電文時序控制、數據轉換、協議插件和異常處理。電文存儲電文存儲電

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論