引言
在國內常見的信息化開發及實施項目中,大多數開發的工作量都集中於為適應不同客戶的 需求差異,對特定模塊進行修改,最終達到客戶期望的軟件功能特性。但是對於開發廠商來 說,面對不同的客戶開發不同的軟件版本,將導致重復勞動、成本上升、維護量加大、兼容 和穩定性下降等一系列問題。所以,開發者認識到實現軟件的產品化,才能具備較短的項目 周期與較強的市場競爭力,盡可能地適應不同客戶的需求,而不會因此而泥足深陷,是客戶 滿意度與商業利益的一個平衡點。
Transceiver 概念
Transceiver 就是為滿足不同應用程序和業務項目具有差異性的通訊需求而設計開發的通 用通訊產品化軟件。可用於在多個應用系統間進行平台中立應用中立的統一管控的通訊和數 據交換,設計初衷就是為了減少通訊模塊的重復開發與增強通訊軟件的集中管理。通過將發 送(Send)與接收(Receive)抽象為等同的一個從信源(Source)到信宿(Target)的數據流過程 ,集成現有常用通訊方式的收發處理,及對通訊異常的容錯緩沖處理(Queue),構成了 Transceiver 足以滿足企業級通訊需求的強大功能。
以下為Transceiver 應用舉例
通訊方向 信源(Source) 緩沖(Queue) 信宿(Target) 實現功能 C1.發送數據 S1.從本地FILE獲得 如信宿出現異常,數據可在Transceiver中緩沖,並由Transceiver負 責重發 T1.提交到遠端TCP端口 向遠端傳輸文件 C2.接收數據 S2.從遠端POP3獲得 T2.提交到另一SMTP賬號 郵件轉發 C3.發送數據 S3.從本地DB獲得 T3.提交到遠端HTTP頁面 從數據庫讀取並提交到網頁 C4.接收數據 S4.從遠端FTP獲得 T4.提交到本地COM進行處理 從遠端獲取並交由COM處理 C5.接收數據 S5.從遠程DCOM獲得 T5.提交到本地MSMQ隊列 從遠程組件獲取存入消息隊列等待處理
在Transceiver 中信源(Source)和信宿(Target)都被統一視為端口(Port),如S1~S5、T1 ~T5,它們都是由Transceiver在運行時創建和管控的通訊組件;而類似C1~C5的幾個通訊過 程定義被視為信道(Channel),一個可以完成基本通訊功能的Channel由兩個Port構成(一個為 Source,一個為Target) ,Queue為通訊異常時的容錯處理層。 如表所示, Transceiver 可 以為發送/接收兩類通訊過程提供全程支持。並且對信源和信宿的類型、數量和對應關系不做 任何限定,可以自由設置Source與Target的匹配關系。
以上表格只是列舉了Transceiver通訊功能的幾個用例,Transceiver抽象整合了 Application、Data和Protocol三個層面的數據通訊元素,可以適應復雜多變的通訊需求,為 應用程序的通訊需求提供最大化的靈活性和重用性。 附圖1: Transceiver 通訊端口(Port) 的交互能力
Transceiver
功能 1. LAN/WAN、不同操作系統/應用系統間的數據發送(Send)/接收(Receive)服務 Transceiver目前可支持的通訊端口(Port)有:
通訊方式 交互層 發送端 接收端 推薦環境 TCP 協議 √ √ 企業快速以太網/沒有防火牆的網絡 FTP 協議 √ √ 網絡間的文件傳輸/具有文件服務器的環境 SMTP 協議 √ B2C情況/具有郵件發送服務器 POP3 協議 √ B2C情況/具有郵件接收服務器 HTTP 協議 √ √ 跨越防火牆的網絡/Internet環境 FILE 數據 √ √ 從本地文件讀取/寫入到本地文件 MSMQ 數據 √ √ 與大型主機等其它系統/不同應用間 DB 數據 √ √ 定制的數據庫結構下/不同應用間 COM/DCOM 應用 √ √ 業務邏輯映射到專用模塊接口/有特定數據處理需求的環境
正如Transceiver 應用舉例所示, 按Transceiver對Port和Channel的定義,以上 Send/Receive兩端各八種Port自由組合,即可實現8x8共64種靈活的通訊方式,足以滿足復雜 多變的企業應用通訊環境。 注:由於UDP協議的需求環境與TCP類似而缺乏連接安全性,所以 作者沒有專門實現,如有需要可以靈活增加;而在應用層面,用Delphi也很容易實現CORBA和 EJB的組件接口(Port),成為Transceiver Shell的有機組成部分。
2. 用於緩沖處理的Queue機制,可對通訊異常情況進行數據緩沖隊列跟蹤與數據重發。
3. 數據日志記錄,可對數據的時間、內容、來源、去向、緩沖次數、當前狀態 進行全程 記錄。
4. 多語言支持,提供數據轉換與用戶界面的多語言支持接口,用戶可根據語言需求自由 添加界面語言類型和數據轉碼組件。
Transceiver 實現 Transceiver由Transceiver Service和Transceiver Console兩部分組 成, Transceiver Service又可劃分為Transceiver Kernel和Transceiver Shell兩個邏輯層 。
附圖2: Transceiver 設計架構
一、 Transceiver Console簡介
Console的功能是以控制面板應用程序形式為Transceiver Service提供有效的Port、 Channel定義與規則以及對傳輸日志、數據隊列、環境參數等進行設置,不通過Console,用 戶也可以通過直接修改Transceiver的系統配置庫和注冊表對上述內容進行手工設置,限於篇 幅,只向大家提供三幅截圖,說明界面多語言動態支持、Transceiver Shell Port定義、 Transceiver Channel定義三個方面的運行效果,實現細節不做贅述。
附圖 3: Transceiver Console 的多語言動態支持 ( 附圖 4 、 5 界面語言均不同 )
附圖 4: 通過 Transceiver Console 為 Transceiver Server 定義通訊 Port
附圖 5: 組合 SourcePort 和 TargetPort 為 Transceiver Server 定義通訊 Channel