使用TIBCO構建Web Service
可能各位看到這篇文章的標題時,腦子中都會浮現這樣一個疑問:TIBCO是什麼?
首先我在這裏簡單介紹一下TIBCO,TIBCO 軟件公司 (納斯達克股票代碼:TIBX) 的總部設在加利福尼亞州的帕羅奧多,該公司致力於研發企業軟件,幫助各大公司在面向服務的架構 (SOA) 和業務流程管理 (BPM) 方面取得成功。TIBCO 擁有 3000 多家客戶,在 40 個國家/地區設立了辦事處,爲世界頂級的企業創造了更好的知名度和敏捷度 - TIBCO 稱之爲“The Power of Now?”。 TIBCO 着眼於利用並拓展其軟件能力,幫助各公司邁向 Predictive
Business:這是一種令人欣喜而又新穎的業務運行方式,它能夠讓公司預見客戶的需要、創造商機並避免潛在問題。作爲在企業內部實時傳輸數據的基礎,TIBCO 軟件能夠獨一無二地將公司的運營和業績信息與期望的業務表現和業務規則信息關聯起來,使企業能夠在出現威脅和機遇之前做出預測和響應。
TIBCO BusinessWorks是第一個利用Web服務標準(如SOAP、WSDL、UDDI和WSFL)提供高級業務集成(包括業務流程集成、實時監控和企業門戶)的解決方案。通過推出TIBCO BusinessWorks,TIBCO公司提供了這樣一種組件式解決方案,使幾乎所有的企業都可迅速進行業務集成,不論他們解決業務問題的方法如何。TIBCO
BusinessWorks擴展了TIBCO提供的解決方案範圍,並與所有TIBCO產品完全兼容,從而允許BusinessWorks客戶可隨着企業的成長逐步發展爲一個企業級集成平臺。TIBCO估計BusinessWorks 將使集成技術對全世界70%多的企業客戶產生吸引力。
使用TIBCO一年左右了,在這期間有不少的痛苦和感慨,和別的技術不一樣,TIBCO在遇到問題的時候,Google基本是沒有什麼用的,網上相關的資料少之又少,好在TIBCO提供的幫助文檔足夠強大。
TIBCO環境的簡單介紹
TIBCO需要一個自己的Runtime Agent環境來支持整個系統的運行,其上通過BusinessWorks來提供高級業務集成,程序的部署通過TIBCO Administrator來實現。程序的開發有自己的一套IDE,稱爲TIBCO Designer。
TIBCO Designer是一個基於流程的可視化開發環境,TIBCO裏面封裝了很多拖拽即可使用的適配器(組件),如JDBC、TCP、JSM、RMI、SOAP。。。(當然也可以自己添加adapter)。開發人員在開發的時候只需要根據自己的流程畫出自己的“流程圖”就好了,不需在去做底層的開發,這樣使設計和開發人員可以把更多的精力用於實際業務的處理。大家看他的安裝目錄會發現Spring的部分組件和JDOM、log4J等Jar包含其中。其實他的基本實現原理還是基於IOC的,甚至就直接使用Spring的jar。這個相信你在使用的時候會發現的。
設計一個簡單的Web Service
首先新建一個Project,然後按照下圖所示,建立好相應的文件夾:
注:圖中紅圈處可以選擇端口號、是否使用SSL安全連接
我們的需求是,用戶傳過來一個Name,我們根據這個Name到數據庫中檢索對應的記錄,並將檢索結果返回給用戶,所以我們還需要建立一個JDBC連接,用來連接數據庫。
注:圖中紅圈處可以選擇連接類型,包括JDBC、JNDI等
注:圖中紅圈處可以選擇使用的JDBC驅動
在對應的地方填寫數據庫地址、用戶名、密碼等,然後點擊下方的“Test Connection”按鈕,對JDBC連接進行測試。
JDBC連接成功
JDBC連接失敗
現在我們來定義Web Service的輸入、輸出、失敗數據結構,在這裏我們使用XML Schema來定義,在/Resources/XMLSchema目錄中拖拽一個XML的Schema組件,當然在這裏我們也可以導入一個已經存在的xsd文件。
雙擊拖拽過來的XML Schema組件,進入Schema的編輯界面,在這裏定義數據結構
再拖拽一個PortType組件進來,雙擊這個PortType組件,來定義相關的Operation
選中這個Operation,點擊下方的Message Table右側的“+”號,來添加輸入、輸出、異常的數據結構,這裏的Message Details只能選擇前面我們在WSDL中定義好的Message
這樣我們的WSDL文檔就定義好了,現在我們來實現這個WSDL,我們在/MainProc目錄中拖拽一個Process進來,TIBCO中的一個Process其實在運行的時候是相當於一個單獨線程,每個Process都有一個“Strat”和一個“End”,表示Process的開始和結束。我們能夠根據業務的流程通過可視化的操作方式來實現程序。
雙擊拖拽過來的Process組件,進入Process設計界面,由於我們需要實現一個Web Service,所以我們需要拖拽一個SOAP的SOAPEventSource組件進來,在SOAPEventSource這個組件中,我們需要選擇剛剛定義好的WSDL、HTTP Connection、SOAP版本等,如果我們在一個WSDL文檔中定義了多個PortType和Operation,那麼在這裏我們要選擇實現哪一個PortType的哪一個Operation。
在組件中我們可以填寫對應的SQL語句,在SQL Statement中可以使用“?”來實現數據的傳入,如果在SQL Statement中使用了“?”,則需要在下面的Prepared Paramenters中增加對應的定義(注意:Prepared Paramenters中的定義順序要和SQL Statement中的順序一致)。
打開JDBC Query的Input選項卡,對剛剛在Prepared Paramenters中定義的變量進行賦值。
打開JDBC Query的Output選項卡,可以看到ResultSet的輸出結構,如果看不到的話,可以點擊下方的“Fetch”按鈕。
返回相關信息,在異常情況下需要返回SOAPSendFault,正常情況下返回SOAPSendReply。在這兩個組件中我們可以對返回值進行設置
好了,下次我會介紹一些對這個程序的優化,這個簡單的程序可優化之處還是很多的,在後面我還會介紹如何使用TIBCO Administrator進行程序的部署等等……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.