1. 程式人生 > >系統介面規範以及常見的介面技術概述和比較

系統介面規範以及常見的介面技術概述和比較

一、基本要求:


為了保證系統的完整性和健壯性,系統介面應滿足下列基本要求:
1、介面應實現對外部系統的接入提供企業級的支援,在系統的高併發和大容量的基礎上提供安全可靠的接入;
2、提供完善的資訊保安機制,以實現對資訊的全面保護,保證系統的正常執行,應防止大量訪問,以及大量佔用資源的情況發生,保證系統的健壯性;
3、提供有效的系統的可監控機制,使得介面的執行情況可監控,便於及時發現錯誤及排除故障;
4、保證在充分利用系統資源的前提下,實現系統平滑的移植和擴充套件,同時在系統併發增加時提供系統資源的動態擴充套件,以保證系統的穩定性;
5、在進行擴容、新業務擴充套件時,應能提供快速、方便和準確的實現方式。

二、介面通訊方式:
介面基本採用了同步請求/應答方式、非同步請求/應答方式、會話方式、廣播通知方式、事件訂閱方式、可靠訊息傳輸方式、檔案傳輸等通訊方式:
1、同步請求/應答方式:客戶端向伺服器端傳送服務請求,客戶端阻塞等待伺服器端返回處理結果;
2、非同步請求/應答方式:客戶端向伺服器端傳送服務請求,與同步方式不同的是,在此方式下,伺服器端處理請求時,客戶端繼續執行;當伺服器端處理結束時返回處理結果;
3、會話方式:客戶端與伺服器端建立連線後,可以多次傳送或接收資料,同時儲存資訊的上下文關係;
4、廣播通知方式:由伺服器端主動向客戶端以單個或批量方式發出未經客戶端請求的廣播或通知訊息,客戶端可在適當的時候檢查是否收到訊息並定義收到訊息後所採取的動作;
5、事件訂閱方式:客戶端可事先向伺服器端訂閱自定義的事件,當這些事件發生時,伺服器端通知客戶端事件發生,客戶端可採取相應處理。事件訂閱方式使客戶端擁有了個性化的事件觸發功能,極大方便了客戶端及時響應所訂閱的事件;
6、檔案傳輸:客戶端和伺服器端通過檔案的方式來傳輸訊息,並採取相應處理;
7、可靠訊息傳輸:在介面通訊中,基於訊息的傳輸處理方式,除了可採用以上幾種通訊方式外,還可採用可靠訊息傳輸方式,即通過儲存佇列方式,客戶端和伺服器端來傳輸訊息,採取相應處理。

三、介面安全要求:

為了保證系統的安全執行,各種介面方式都應該保證其接入的安全性。
介面的安全是系統安全的一個重要組成部分。保證介面的自身安全,通過介面實現技術上的安全控制,做到對安全事件的“可知、可控、可預測”,是實現系統安全的一個重要基礎。
根據介面連線特點與業務特色,制定專門的安全技術實施策略,保證介面的資料傳輸和資料處理的安全性。
系統應在接入點的網路邊界實施介面安全控制。
介面的安全控制在邏輯上包括:安全評估、訪問控制、入侵檢測、口令認證、安全審計、防惡意程式碼、加密等內容。

四、傳輸控制要求:

傳輸控制利用高速資料通道技術實現把前端的大資料量併發請求分發到後端,從而保證應用系統在大量客戶端同時請求服務時,能夠保持快速、穩定的工作狀態。
系統應採用傳輸控制手段降低介面網路負擔,提高介面吞吐能力,保證系統的整體處理能力。具體手段包括負載均衡、伸縮性與動態配置管理、網路排程等功能:
1、負載均衡:為了確保介面服務吞吐量最大,介面應自動地在系統中完成動態負載均衡排程;
2、伸縮性與動態配置管理:由系統自動伸縮管理方式或動態配置管理方式實現佇列管理、存取資源管理,以及介面應用的恢復處理等;
3、網路排程:在雙方介面之間設定多個網路通道,實現介面的多資料通道和容錯性,保證當有一網路通道通訊失敗時,進行自動的切換,實現介面連線的自動恢復。

五、介面技術:
5.1 J2EE/EJB
5.1.1. 技術描述
Enterprise JavaBean (EJB) 是可重用的、可移植的 J2EE 元件。EJB 包括三種主要型別:會話 bean、實體 bean和訊息驅動的bean。會話bean執行獨立的、解除耦合的任務,譬如檢查客戶的信用記錄。實體bean是一個複雜的業務實體,它代表資料庫中存在的業務物件。訊息驅動的bean用於接收非同步JMS 訊息。

圖 5.1.1 J2EE/EJB 描述
EJB 由封裝業務邏輯的方法組成,眾多遠端和本地客戶端可以呼叫這些方法。另外,EJB 在容器裡執行,這樣開發人員只要關注bean裡面的業務邏輯,不必擔心複雜、容易出錯的問題,譬如事務支援、安全性和遠端物件訪問、快取記憶體和併發等。在EJB規範中,這些特性和功能由EJB容器負責實現。
容器和服務提供者實現了EJB的基礎構造,這些基礎構造處理了EJB的分散式、事務管理、安全性等內容。EJB規範定義了基礎構造和Java API的為了適應各種情況的要求,而沒有指定具體實現的技術、平臺、協議。
EJB的上層的分散式應用程式是基於物件元件模型的,低層的事務服務用了API技術。EJB技術簡化了用JAVA語言編寫的企業應用系統的開發、配置和執行。

5.1.2. 技術特點
優點:基於規範的平臺,不受限於特定的作業系統或硬體平臺;基於元件體系結構,簡化了複雜元件的開發;提供對事務安全性以及持續性的支援;支援多種中介軟體技術。
缺點:與特定於某個作業系統或平臺的實現技術相比,效能還有待進一步提高,且資源佔用量較大。

5.2 Web Service
5.2.1. 技術描述
Web Service是一種自包含、模組化的應用,是基於網路的、分散式的模組化元件,它執行特定的任務,遵守具體的技術規範,這些規範使Web Service能與其它相容的元件進行互操作。可以在網路上(一般是Internet)上被描述、釋出、定位和呼叫。
Web Service體系主要由以下三部分組成:傳輸協議、服務描述和服務發現,由一系列標準組成,主要有:XML(可擴充套件的標記語言)、SOAP(簡單物件訪問協議)等。

圖 5.2.1 Web Service描述
上圖顯示了Web Service(中央)、客戶端軟體應用程式(左側)及其使用的資源(包括資料庫、其它Web Service等)(右側)之間的關係。Web Service通過使用標準協議(如 HTTP)交換XML訊息來與客戶端和各種資源進行通訊。在Web Server上部署Web Service後,由Web Server負責將傳入的XML訊息路由到Web Service。Web Service 將匯出 WSDL 檔案,以描述其介面,其它開發人員可以使用此檔案來編寫訪問此Web Service的元件。
5.2.2. 技術特點
Web Service使用標準技術,應用程式資源在各網路上均可用。因為Web Service基於HTTP 、XML和SOAP等標準協議,所以即使以不同的語言編寫並且在不同的作業系統上執行,它們也可以進行通訊。因此,Web Service適用於網路上不同系統的分散式應用。
優點:適用於網路上不同系統的分散式應用、標準性好、擴充套件性好、耦合度低;內容由標準文字組成,任何平臺和程式語言都可以使用;格式的轉換基本不受限制,可以滿足不同應用系統的需求。
缺點:當XML內容較大時,解釋程式的執行效率較低,一般不適合用於實現大批量資料互動的介面。

5.2 交易中介軟體
5.3.1. 技術描述
交易中介軟體是專門針對聯機交易處理系統而設計的。聯機交易處理系統需要處理大量併發程序,涉及到作業系統、檔案系統、程式語言、資料通訊、資料庫系統、系統管理、應用軟體等多個環節,採用交易中介軟體技術可以簡化操作。
交易中介軟體是一組程式模組,用以減少開發聯機交易處理系統所需的程式設計量。X/OPEN組織專門定義了分散式交易處理的標準及參考模型,把一個聯機交易系統劃分成資源管理(RM)、交易管理(TM)和應用(AP)三部分,並定義了應用程式、交易管理器、多個資源管理器是如何協同工作的。資源管理器是指資料庫和檔案系統,交易管理器可歸入交易中介軟體。
5.3.2. 技術特點
優點:開放的體系結構,滿足大使用者量與實時性的要求,提供交易的完整性、控制併發、交易路由和均衡負載的管理。
缺點:處理大資料量交易效率不高。

5.4. 訊息中介軟體
5.4.1. 技術描述
基於訊息中介軟體的介面機制主要通過訊息傳遞來完成系統之間的協作和通訊。
通過訊息中介軟體把應用擴充套件到不同的作業系統和不同的網路環境。通過使用可靠的訊息佇列,提供支援訊息傳遞所需的目錄、安全和管理服務。當一個事件發生時,訊息中介軟體通知服務方應該進行何種操作。其核心安裝在需要進行訊息傳遞的系統上,在它們之間建立邏輯通道,由訊息中介軟體實現訊息傳送。訊息中介軟體可以支援同步方式和非同步方式,實際上是一種點到點的機制,因而可以很好的適用於面向物件的程式設計方式。
訊息中介軟體可以保證訊息包傳輸過程的正確、可靠和及時。
訊息中介軟體提供以下基本功能:訊息佇列、觸發器、資訊傳遞、資料格式翻譯、安全性控制、資料廣播、錯誤恢復、資源定位、訊息及請求的優先順序設定、擴充套件的除錯功能等。
5.4.2. 技術特點
訊息中介軟體能夠在任何時刻將訊息進行傳送或者儲存轉發,不會佔用大量的網路頻寬,可以跟蹤事務,並且通過將事務儲存到磁碟上實現網路故障時系統的恢復。
優點:為不同的企業應用系統提供了跨多平臺的訊息傳輸;除支援同步傳輸模式外,還支援非同步傳輸,有助於在應用間可靠地進行訊息傳輸。
缺點:與其它中介軟體技術一樣,存在高流量的效能瓶頸問題。
5.5. SOCKET
5.5.1. 技術描述
Socket(套接字)用於描述IP地址和埠。應用程式通過Socket向網路發出請求或應答網路請求。
Socket使用客戶/伺服器模式,服務端有一個程序(或多個程序)在指定的埠等待客戶來連線,服務程式等待客戶的連線資訊,一旦連線上之後,就可以按設計的資料交換方法和格式進行資料傳輸。客戶端在需要的時刻發出向服務端的連線請求,然後傳送服務申請訊息包,服務端向客戶端返回業務介面服務處理結果訊息包。
5.5.2. 技術特點
此類介面不需要其它軟體支援,只要介面雙方做好相關約定(包括IP地址、埠號、包的格式)即可;包的格式沒有統一標準,可以隨意定義。
優點:實現簡單、效能高。
缺點:標準性差、擴充套件性差。
5.6. CORBA
5.6.1. 技術描述
CORBA即公共物件請求代理體系結構,是一個具有互操作性和可移植性的分散式面向物件的應用標準。
CORBA標準主要分為3個層次:物件請求代理、公共物件服務和公共設施。最底層是ORB(物件請求代理),規定了分佈物件的定義(介面)和語言對映,實現物件間的通訊和互操作,是分佈物件系統中的“軟匯流排”;在 ORB之上定義了很多公共服務,可以提供諸如併發服務、名字服務、事務(交易)服務、安全服務等各種各樣的服務, 同時ORB也負責尋找適於完成這一工作的物件,並在伺服器物件完成後返回結果;最上層的公共設施則定義了元件框架,提供可直接為業務物件使用的服務,規定業務物件有效協作所需的協定規則。
客戶將需要完成的工作交給ORB,由ORB決定由哪一個物件例項完成這個請求,然後啟用這個物件,將完成請求所需要的引數傳送給這個啟用的物件。除了客戶傳送引數的介面外,客戶不需要了解其它任何資訊,不必關心伺服器物件的與服務無關的介面資訊,這就大大簡化了客戶程式的工作。ORB需要提供在不同機器間應用程式間的通訊,資料轉換,並提供多物件系統的無縫連線。
5.6.2. 技術特點
CORBA具有模型完整,獨立於系統平臺和開發語言,被支援程度廣泛的特點。
優點:以一種中介軟體的方式為不同程式語言提供協同工作的可能;對作業系統沒有特殊的要求和依賴;與主流的體系架構(如J2EE)關係密切。當需要整合的兩個企業應用軟體互為異構,由不同的程式語言實現時(如Java與C++),CORBA可以實現兩種語言的協同工作。
缺點:龐大而複雜,並且技術和標準的更新相對較慢;效能與具體業務實現有關。
5.7. 檔案
5.7.1. 技術描述
檔案介面定義了服務端與客戶端檔案存放路徑、檔名命名規則和檔案格式,並開放相應的讀/寫操作許可權。
介面的通訊過程包括三種:
 同一主機內可以共享一個路徑;
伺服器端向客戶端開放路徑,客戶端定時檢視此路徑下是否有新的檔案,可以採用FTP等方式取走服務端開放的路徑下的檔案;
客戶端向伺服器端開放路徑,由服務端將檔案寫入,客戶端定時檢視此路徑下是否有新的檔案。
網路傳輸方式應支援對通訊機的IP地址、帳戶、口令、存取目錄的驗證。
介面應支援以下主流網路協議:FTP、FTAM等。
資料傳輸應支援:
 實時、高效和安全可靠地傳送批量資料;
 斷點續傳功能;
 資料壓縮傳輸;
 傳輸過程中的差錯控制。
5.7.2. 技術特點
優點:檔案介面不需要其它軟體支援,只要介面雙方約定好路徑、格式、處理方式即可,實現簡單、傳輸批量資料效率較高。
缺點:格式沒有統一標準,標準性差;需要開放檔案系統許可權,安全性差。
5.8. 過程呼叫和共享資料表
5.8.1. 技術描述
過程呼叫和共享資料表技術實現了服務端向客戶端開放可直接呼叫的過程和可直接進行讀寫操作的共享資料表,客戶端直接呼叫服務端過程和對共享資料表進行讀寫操作。
介面支援各種資料庫連線方式,如Login、DB Link等。
介面的通訊過程包括兩種:
客戶端直接呼叫服務端開放的過程或對服務端開放的共享資料表進行增、刪、改和查詢操作,完成業務處理;
客戶端向開放的共享資料表中寫入服務請求資料,服務端定時掃描共享資料表並作出響應,根據服務請求資料中的介面服務型別程式碼,進行不同的業務邏輯處理,然後向共享資料表中寫入處理結果資料;客戶端定時掃描共享資料表,根據處理結果資料並作出響應,進行業務後續處理。
5.8.2. 技術特點
此類介面不需要其它軟體支援,只要介面雙方做好相關約定即可;但介面沒有統一標準,而且需要開放資料庫許可權,安全性差。
優點:實現簡單、傳輸批量資料效率較高。
缺點:標準性差、適用場合有限、安全性差。


六、介面技術比較

介面技術 主要優點 主要缺點 對介面型別適用程度
同步 非同步 批量 頻繁
J2EE/EJB 開放標準
跨平臺
提供事務、
安全性的支援 效能一般
資源佔用多 ★★★ ★★★ ★★ ★★★
Web Service 標準性好
擴充套件性好
耦合度低 效能一般 ★★★ ★★ ★ ★★
交易中介軟體 開放的體系結構
提供事務、
安全性的支援
提供佇列的管理
支援併發管理 大資料量交易
效率不高 ★★★ ★★★ ★ ★★★
訊息中介軟體 開放的體系結構
滿足大使用者量與實時性的要求
支援併發管理 大資料量交易
效率不高 ★★ ★★★ ★★★ ★★
SOCKET 實現簡單
效能高 標準性差
擴充套件性差 ★★ ★★ ★★ ★★
CORBA 開放標準
跨語言
跨平臺 開發複雜
產品成熟度低
效能一般 ★★★ ★★ ★★ ★★★
檔案 實現簡單
傳輸批量資料
效率較高 標準性差
安全性差 ★ ★★ ★★★ ★
過程呼叫
和共享表 實現簡單
傳輸批量資料
效率較高 標準性差
安全性差
適用場合有限 ★ ★★ ★★★ ★★