XCOM

XCOM

iXcom 是面向分散式套用的訊息中間件,它為網路環境下客戶機/伺服器(C/S)結構的套用系統的開發和運行,提供了靈活和易用的基礎平台。

XCOM
創建XCOM共享空間,眾人拾柴火焰高,讓我們在此空間種子、澆水、開花、結果

iXcom技術白皮書

1. 前言... 1

2. iXcom簡介... 2

3. iXcom的功能... 3

4. iXcom的特點... 4

5. 基本概念... 5

5.1. 套用... 5

5.2. 節點... 5

5.3. 電文... 6

5.4. 電文號... 7

5.4.1. 映射電文號... 7

5.5. 回線... 7

5.6. 主機名... 8

5.7. 主機代號... 8

5.8. 電文實時傳輸... 8

5.9. 電文可靠傳輸... 8

5.10. 靜態連線... 9

5.11. 動態連線... 9

5.12. 佇列... 10

5.12.1. 傳送佇列... 10

5.12.2. 接收佇列... 11

5.13. 分組傳送... 11

5.14. 分組接收... 11

6. 體系結構... 11

6.1. 系統核心... 12

6.1.1. 基礎平台構件層... 12

6.1.2. 數據處理構件層... 13

6.2. 通信管理... 14

6.3. 套用適配器層... 15


1. 前言

本文檔介紹寶信軟體的中間件產品iXcom。iXcom屬於訊息通信中間件,它的主要功能是在應用程式間傳遞訊息,這些訊息可以在不同的通信協定(基於TCP/IP Socket)、不同的主機系統和不同的套用系統。

iXcom提供簡單易用、高效可靠的分散式套用開發和通信平台,利用它可以快速方便地開發可靠、高效的分散式套用。

iXcom提供遠程監控和控制功能,可以方便的控制通信線路和得知通信運行狀況。

iXcom提供對多種主流資料庫的支持,支持Oracle,SQLServer等資料庫。

iXcom提供對多種開發語言的支持,支持C/C++ , Java, .NET, VB , Delphi等語言。

2. iXcom簡介

iXcom 是面向分散式套用的訊息中間件,它為網路環境下客戶機/伺服器(C/S)結構的套用系統的開發和運行,提供了靈活和易用的基礎平台。

iXcom提供兩種通訊模式,實時傳輸模式和可靠傳輸模式。在實時傳輸模式上,iXcom提供快速地數據傳送能力,但在通信出現異常時不能保證數據地可靠到達。在可靠傳輸模式下,iXcom提供可靠的數據傳送能力,嚴格按照套用傳送電文的先後順序進行電文傳送,保證電文的可靠傳輸。

一個iXcom 的基本工作示意圖如圖1 所示。應用程式分布在網路上的兩個結點上,當應用程式之間要傳送訊息時,應用程式只需將訊息電文號和訊息的內容通過iXcom提供的接口傳給iXcom。iXcom 便會利用網路結點上的各個iXcom運行系統組成的虛擬網,將訊息輸送到訊息接收者所在的結點上,然後提交給訊息的接收者。

圖1

3. iXcom的功能

iXcom的主要功能如下:

Ø 提供端到端的實時通信服務。套用不必關心網絡通信和其它的網路細節,套用只需關注套用業務層,減少學習和使用的難度。

Ø 提供端到端的可靠通信服務。適用於分散式環境下各種不同類型的套用開發,特別是對通信的可靠性要求較高的套用,提供多層次的異步通信機制。通信的套用雙方在處理時間上可以互不相關,傳送方在傳送數據時接收方套用可以還未啟動。

Ø 提供對傳送電文的並發傳輸(通信規約必須是動態連線的)和接收電文的並發處理,適用於對效率要求比較高的業務領域。

Ø 提供簡單易用、快速、高效可靠的分散式套用系統的開發平台,套用編程接口(API)簡單且易學易用。網路異構環境和細節對用戶完全透明並且支持多種網路底層環境,並提供了跨作業系統的C/C++/Java接口;

Ø iXcom可以和具有不同通信規約的節點進行通信。

Ø 提供WebService,XML-RPC接口,可以和J2EE和.NET進行集成。

Ø 支持工業通信協定Modbus、3964R等協定。

Ø 通過iXcom提供的協定框架,可以對通信協定進行擴展。

Ø 可靠傳輸方式下,支持電文的廣播和多播傳送。

Ø 提供對多種訊息格式(ASCII和二進制)傳輸的支持;提供快速可靠的面向事務處理的數據遞送功能,保證數據的完整性和可靠性;

Ø 提供分散式(C/S和B/S)的管理平台,通過DNS服務和套用管理等方式,提供對iXcom的管理和監控。

4. iXcom的特點

iXcom有以下特點:

Ø 支持多種作業系統,如IBMAIX、HP-UX 、Linux、Windows 2000/NT/XP/2003 等。

Ø 支持多種開發工具。iXcom在所有平台上都支持C、C++、Fortran和JAVA;在Windows 系列平台上,提供VB/Delphi/C# 等接口。

Ø 網路節點數的支持量大:網路節點數的支持可從數十個到上千個,具體上限的多少與主機的性能有關。

Ø 基於TCP/IP Socket 。

Ø 支持客戶/伺服器(Client/Server)方式。

5. 基本概念

5.1.套用

與具體業務有關的程式,包括客戶端處理輸入輸出的客戶程式(Client)、服務端負責業務邏輯的服務程式(Server)。

5.2.節點

節點就是通信程式的宿主主機。一個iXcom可以和多個節點通信。一個節點主要有五個屬性:IP位址、Port號、通信規約、主機名稱和主機代號。

Ø IP地址

節點的IP位址,可以有備用IP位址。

Ø Port

節點通信程式的監聽連線埠號

Ø 通信規約(Protocol

iXcom和外部主機互相通信的規約

Ø 主機名稱(hostname

標識節點名稱,不大於8個ascii字元

Ø 主機代號(HostDC

標識節點代號,用做傳送電文時的目的地,用2個ascii字元表示。

註:在本文章,沒有特殊指名的話,節點和主機是同一概念。

5.3.電文

在通信中間件之間傳送的數據包,一般由電文頭、電文體(數據塊)和結束符組成。

其中電文頭長度an>1-2個字元,對於特定的通信規約而言,結束符是確定不變的。

Ø 數據電文(Data Message)

用於傳送套用系統的數據塊,iXcom不對該類型電文進行拆分,但該電文有可能被底層的TCP協定進行拆分和重組。

Ø 應答電文(ACK Message)

由通信的接收方傳送,用於告知傳送方電文是否已被正確接收。

Ø 跳電(Heartbeat message)

用於監視回線和對方通信程式的狀態,用作狀態檢測,雙方可根據實際需要決定是否傳送心跳電文。

註:

1. 應答電文是用於保證通信的可靠傳輸。

2. 控制電文、心跳電文是通信相關的電文,套用不用關心此類電文。

5.4.電文號

用於標識一條電文的類型和目的,一般在電文頭部中有電文號字

段。電文號是通信雙方按業務劃分共通制定的,它一般用長度不大於6位的ASCII字元表示。

5.4.1. 映射電文號

用於歷史問題等原因,可能在同一項目中出現電文號重複的現

象。為了便於套用方便處理電文,iXcom提供映射電文號的功能,套用可以根據需對每個電文號定義它的映射電文號,該映射電文號必須是全局唯一的,也就是說在同一項目中雖然電文號可以重複,但映射電文號必須是唯一的。

註:若項目中有重複電文號,iXcom和套用之間的接口有如下約定:

1) 套用傳送電文時,提供的電文號必須是映射電文號。當iXcom傳送電文時,iXcom會把映射電文號轉化成實際的電文號進行傳送。

2) iXcom收到電文後,將把收到電文的映射電文號傳送給套用,而不是原有電文號。

5.5.回線

在通信程式雙方之間建立的一條TCP 連線,一條回線既可以接收也可以傳送數據。一般來說,通信雙方通信程式之間需要建立兩條回線。

一般情況下,在iXcom中採用的回線模式如下:

5.6.通信模式

通常來說,XCOM間通信,雙方都有一個客戶端和服務端。甲方要發數據給乙方,甲方XCOM的客戶端把數據發給乙方的服務端。反之,乙方發數據給甲方,是乙方的客戶端把數據發給甲方的服務端。

<> <> <> <> <> <> <> <> <> <> <> <>

Socket類型

對應值

說明

WRITE

C

客戶端session讀寫:本方作為客戶端,主動連線對方,連線建立後,該Socket連線可以傳送電文。

READ

S

伺服器端session讀寫:本方作為伺服器端,等待對方主動連線,連線建立後,該Socket連線上可以接收電文並且傳送底層應答(按規約情況而定)。

READ_WRITE

CS

客戶端和服務端兩個session都讀寫,融合以上兩個session的功能。

5.7.主機名

用於在通信時標識通信節點的主機名字。

5.8.主機代號

用於在電文收發時標識傳送方和接收方,一般在電文頭部中有主機代號的欄位,用2個大寫ascii碼字母表示。

5.9.電文實時傳輸

電文實時傳輸指電文必須在規定的時間內必須傳遞到目標節點。iXcom在規定時間內提供快速可靠的傳輸機制,保證訊息傳遞的實時性和可靠性,但在異常(網路設備異常或對等機進程異常)時不保證訊息的可靠傳輸。在異常情況下,套用傳送給iXcom的電文數據將被丟棄,iXcom將給套用錯誤返回值,套用必須考慮電文重發或其它處理機制。

5.10. 電文可靠傳輸

電文可靠傳輸指電文的傳遞在時間上無特殊的要求,在網路連通的情況下必須保證訊息可靠的傳遞到目標節點。電文傳送時,在遇到可恢復的故障(包括機器故障或網路故障)情況下,通過後續重發電文能夠保證訊息的可靠傳輸。

5.11. 靜態連線

指通信雙方建立的TCP/IP連線一直保持,直到停止通信程式或異常終止。當通信出現異常時,客戶端必須具備重新連線服務端功能,保證通信的可靠性。靜態連線示意圖如下:

註:若通信規約不存在應答電文,等待應答階段將不存在。

5.12. 動態連線

動態socket通信是指計算機之間的TCP/IP連線方式是動態的,當一次通信結束後,計算機之間的連線隨之關閉,下一次傳送電文時,需要重新建立socket連線。如下圖所示:

(註:傳送方在收到應答電文後必須關閉socket連線。)

5.13. 佇列

在可靠傳輸模式下,佇列是訊息存儲的地方。訊息在收發過程中將存儲於佇列中,可靠佇列中的訊息存儲於資料庫中,不可靠佇列中的訊息存儲於記憶體緩衝區中。佇列結構由訊息索引和數據存儲區等部分組成。iXcom 系統提供的佇列基本類型為傳送佇列和接收佇列。

5.13.1. 傳送佇列

發往目的地的電文存儲在傳送佇列中,電文根據傳送目的地(即主機代號)分別被放到不同的邏輯傳送佇列中,iXcom核心從傳送佇列中取出電文進行網路傳送。

5.13.2. 接收佇列

iXcom收到電文後,將根據傳送方的設定(即主機代號)將電文放到相應的邏輯接收佇列中。

5.14. 分組傳送

套用可以根據業務的需求把發往某一主機的電文號按業務進行分組。每個組看作一個佇列,每一組電文有對應的組號(整數)。對應於每一個佇列,iXcom有一個且同一時刻只有一個進程對該佇列進行操作傳送,佇列與佇列之間的電文是互不影響的,一個佇列中的電文堵塞,不會影響其他佇列的電文。

註:分組傳送僅限於動態連線方式,不能用於靜態連線方式。

5.15. 分組接收

套用可以根據業務的需要把來自同一主機的電文按業務進行分組。每個組看作一個佇列,每一組電文有對應的組號(整數)。對應於每一個佇列,iXcom有一個且同一時刻只有一個進程對該佇列進行操作傳送(傳送給套用,比如tuxedo),佇列與佇列之間的電文是互不影響的,一個佇列中的電文堵塞,不會影響其他佇列的電文。

6. 體系結構

本節描述iXcom的基本組成和運行方式。

在套用系統進行數據通訊時,套用進程通過iXcom接口函式,將電文放入佇列中。iXcom 核心進程從佇列中取出訊息,根椐電文中的電文號,通過iXcom 之間(或與其它通信程式)建立的數據通道,將該電文傳送到接收者所在iXcom(或其它通信程式)。接收者所在的iXcom 核心收到電文後將電文寫入接收佇列中,接收套用進程通過調用iXcom的接口函式,從接收佇列中取出電文。至此,一個電文傳遞完畢。

6.1.系統核心

系統核心由兩大部分組成,即基礎平台構件層和數據處理構件層。

6.1.1. 基礎平台構件層

基礎平台構件層由以下幾部分組成,包括事件分派、socket傳輸、進程管理、資料庫連線池執行緒池

事件分派

事件分派主要工作是建立socket連線、維護監控通信鏈路;從通信鏈路中讀取數據並分派給協定外掛程式。

Socket傳輸

套用電文傳送和處理。

進程管理

進程管理主要工作是管理和維護iXcom的各進程。

資料庫連線池

資料庫連線池主要工作是在電文可靠傳輸模式下,提高資料庫訪問速度的效率。

執行緒池

執行緒池主要工作在於提高在並發處理電文時的處理效率。

6.1.2. 數據處理構件層

數據處理構件層由以下幾部分組成,包括電文交換、

電文時序控制、數據轉換、協定外掛程式和異常處理。

電文存儲

電文存儲包括電文的寫入和讀取。當收到一條電文時,iXcom要把它寫入資料庫,以便後續的套用處理;當有待發數據時,iXcom要從資料庫中讀取相應的數據,然後通過基礎平台層傳送給目的地。

電文時序控制

若套用電文存在業務關係,iXcom傳送電文是嚴格按照套用寫入電文的先後順序進行電文傳送。

數據轉換

當電文中存在二進制數據時,iXcom可以通過該電文號所對應的轉換格式把該電文內容全部轉換成ascii碼電文,方便套用的處理。

協定外掛程式

異常處理

當iXcom收到異常數據時(如電文號不對等),會給對方傳送底層負應答電文。

6.2.通信管理

通信管理主要由幾部分組成,包括運行管理、平台監控、配置管理和日誌管理。

運行管理

通過運行管理功能,可以啟動和關閉回線,可以置回線開啟和關閉狀態。

平台監控

通過平台監控,可以實時獲取當前通信狀態(線上或離線)。

配置管理

通過配置管理:

Ø 可以查看當前主機配置信息,可以查看當前電文號配置信息。

Ø 可以修改原有主機信息(比如IP位址或port號),可以增加電文號,可以新增回線。

日誌管理

通過日誌管理,可以查看各條回線的通信狀態信息,從而進行通信跟蹤維護和排障。

6.3.套用適配器層

套用適配器是套用和iXcom進行溝通的橋樑,套用通過適配器

把待發數據傳送給iXcom進行處理;iXcom通過適配器把待處理數據傳送給套用進行處理。

相關搜尋

熱門詞條

聯絡我們