1. 程式人生 > >ESB開發WebService接口

ESB開發WebService接口

尋址 信息系統 過濾 執行 ace 數據庫查詢 流程 技術 位置

1 概述

在進行系統間集成時經常利用WebService,但是從建立WebService和調用的重復性和維護性的工作量都相當大。

首先簡單介紹一下,ESB全稱為Enterprise Service Bus,即企業服務總線。它是傳統中間件技術與XML、Web服務等技術結合的產物。ESB提供了網絡中最基本的連接中樞,是構築企業神經系統的必要元素。ESB的出現改變了傳統的軟件架構,可以提供比傳統中間件產品更為廉價的解決方案,同時它還可以消除不同應用之間的技術差異,讓不同的應用服務器協調運作,實現了不同服務之間的通信與整合。從功能上看,ESB提供了事件驅動和文檔導向的處理模式,以及分布式的運行管理機制,它支持基於內容的路由和過濾,具備了復雜數據的傳輸能力,並可以提供一系列的標準接口。

2 預期讀者

1. 數通暢聯新進員工

2. 廣大技術愛好者

3 名詞解釋

AEAI ESB:應用集成平臺主要作為企業信息系統的“龍骨”來集成各業務系統,一般稱之為企業服務總線(Enterprise Service BUS,ESB),在數通暢聯軟件的產品家族中應用集成平臺命名為AEAI ESB。

Web Server:是一種開發web服務的技術規範,按照web services規範開發的web服務組件,可以用來進行企業應用系統集成。

傳輸服務: 必須確保通過企業總線互連的業務流程間的消息的正確交付,傳輸還包括基於內容的路由功能。

多種服務集成方式:如HTTP ,WEB等。

通信:服務發布、訂閱,響應 請求,同步異步消息,路由和尋址等;

服務安全: 認證和授權、不可否認和機密性、安全標準的支持等;

服務質量: 事務,服務的可交付性等;

服務等級: 性能、可用性等

4 總體思路

1. 簡單的賬號、密碼驗證接口,輸入賬號及密碼驗證成功與否。

2. 初步了解WebService相關知識

5 實現步驟

5.1 簡單參數與簡單返回值

首先創建WS服務,樣例為Demo,別名“賬戶”, 本WebService服務裏面只有一個操作operation1, 兩個入參(userCode、userPassword)及一個出參(RESULT),與DemoOperation1子流程綁定。通過向瀏覽器傳入words參數,執行子流程的業務。服務地址在右側,可以通過它來定位本WebService服務。

技術分享

技術分享技術分享

1. 在添加的操作上右鍵點擊技術分享,在彈出的頁面中選擇需要綁定流程的位置,點擊OK後將在對應位置自動生成基本的流程,可到對應位置進行流程的編輯,本例將樣例創建於基礎樣例中。

技術分享

2. 在子流程中創建流程。

技術分享

a) 首先接收參數(賬號、密碼)通過判斷是否為空,並添加到全局變量中。

技術分享

b)通過分支判斷如果賬號密碼為空則直接輸出。

技術分享

c) 如果有值,則進行數據庫查詢,並判斷是否正確並輸出

技術分享

3. 利用soapUI測試,結果如下圖:

技術分享

技術分享

5.2 簡單參數與簡單返回值

復用樣例Demo,別名“賬戶”, 本WebService服務裏面只有一個操作operation2, 添加對象參數及一個出參(RESULT),與DemoOperation2子流程綁定。通過向瀏覽器傳入words參數,執行子流程的業務。服務地址在右側,可以通過它來定位本WebService服務。

技術分享

1. 在入參過多的情況下可以采用添加對象參數的形式,在項目下創建com.xcorp.xproject.model包,在保重創建參數類,如下圖:

技術分享

技術分享

技術分享

2. 流程圖復用簡單參數與簡單返回值,並在代碼中進行擴展開發,如下圖:

技術分享

a) 接收新建的參數類,並獲取參數。

技術分享

b) 分支及判斷與上例一致,在輸出節點是我們通過jsonObject對象返回,如圖:

技術分享

3. 利用soapUI測試,結果如下圖:

技術分享

5.3 對象參數與簡單返回值

首先創建WS服務,樣例為UserCode,別名“賬戶”, 本WebService服務裏面只有一個操作test, 一個入參對象reqInfo及一個出參(RESULT),與UserCodeTest子流程綁定。通過向瀏覽器傳入words參數,執行子流程的業務。服務地址在右側,可以通過它來定位本WebService服務。

技術分享

1. 在項目下創建com.xcorp.xproject.model包,在保重創建參數類,如下圖:

技術分享

2. 在子流程中創建流程。

技術分享

a) 首先接收對象參數(賬號、密碼),並添加到全局變量中。

技術分享

b) 通過分支判斷如果賬號密碼為空則直接輸出。

技術分享

c) 進行數據庫查詢,並判斷是否正確並輸出

技術分享

3. 利用soapUI測試,結果如下圖:

技術分享

5.4 簡單參數與ResultStatus返回值

首先創建WS服務,樣例為UserCode,別名“賬戶”, 本WebService服務裏面只有一個操作test1, 兩個入參對象userCode、userPassword及一個出參對象(RESULT),與UserCodeTest1子流程綁定。通過向瀏覽器傳入words參數,執行子流程的業務。服務地址在右側,可以通過它來定位本WebService服務。

技術分享

1. 在項目下創建com.xcorp.xproject.model包,在保重創建參數類,如下圖:

技術分享

2. 在子流程中創建流程。

技術分享

a) 首先接收對象參數(賬號、密碼),並添加到全局變量中。

技術分享

b) 進行數據庫查詢,並判斷是否正確並輸出

技術分享

3. 利用soapUI測試,結果如下圖:

技術分享

5.5 簡單參數與返回值對象List

首先創建WS服務,樣例為UserCode,別名“賬戶”, 本WebService服務裏面只有一個操作test3, 一個入參對象reqInfo及一個出參(RESULT)list集合,與UserCodeTest3子流程綁定。通過向瀏覽器傳入words參數,執行子流程的業務。服務地址在右側,可以通過它來定位本WebService服務。

技術分享

1. 在項目下創建com.xcorp.xproject.model包,在保重創建參數類,如下圖:

技術分享

2. 在子流程中創建流程。

技術分享

a) 首先接收對象參數(賬號、密碼),並添加到全局變量中。

技術分享

b) 進行數據庫查詢,並判斷是否正確並輸出

技術分享

3. 利用soapUI測試,結果如下圖:

技術分享

6 心得總結

以上為筆者通過ESB進行的Web Service接口的開發,實現不同類型的入參及不同類型出參的演示的操作。

在工作中,要學會對自己鎖定的目標堅定不移。否則,遇到困難,只要有機會,有退路,我們就會本能地嘗試繞過,或者退卻。只有瞄著目標不放,我們才會 窮盡全力推翻,或者跨越那些障礙。通過這篇文檔的整理編寫使筆者對以往做過的內容也加深了記憶。善於記錄,勤加整理,溫故知新,才能使自己更快成長。

ESB開發WebService接口