ESB開發WebService接口

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接口的開發,實現不同類型的入參及不同類型出參的演示的操作。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章