以下的文章主要是闡述DB2 9.5將業務邏輯轉換為Web Services.在此篇文章裡,我們主要是教你正確的將業務邏輯,例如存儲過程、函數、還有SQL語句——轉化為一個Web service。以下就是正文的主要內容描述。
IBM Data Web Services概述
如果你經常看看雜志,或浏覽網站,或參加會議,你就很難避免聽到或讀到關於Web services的信息。它們已經出現了一段時間了,被用來創建松耦合的應用程序。與Web services所關聯的規范和標准——例如SOAP和Web Services描述語言(WSDL)——都被良好地定義並已成熟。
當公司將他們的IT應用程序移向服務面向架構(SOA)時,這通常需要暴露存儲在一個數據服務器上作為一個Web service的後台應用程序功能和業務邏輯(例如,SQL語句和存儲過程)。使用Web service並不等同於SOA,Web service是進行SOA的至關重要的組成部分。
IBM Data Web Services(IBM DWS)是一個技術,它提出了創新,使得你可以將數據庫業務邏輯作為服務暴露出來,用於在SOA應用程序中使用。使用IBM DWS和IBM數據服務器,你可以輕松地提供封裝的業務邏輯,例如SQL腳本和程序,使它們就像Web services,只需要點擊按鈕就可以了。
沒錯;你可以將任何SQL語句或程序,右鍵單擊、生成JMS、SOAP或REST Web service終端,然後它們就可以用於生成松耦合的應用程序。此外,你可以將多個數據庫操作分組為一個或多個服務,它們可以被部署和運行於眾多的被支持應用服務器上,可以由任何客戶端通過一個Web浏覽器調用。
為了說明IBM DWS在多大程度上簡化了你達成SOA應用程序的工作,你需要了解為什麼創造了IBM DWS技術,以及使用之前的DB2軟件版本創建Web service是什麼樣子的。
在廣泛使用DB2 Web service和移植遺留應用程序到這些服務上的一個主要問題是缺乏好的基礎和工具集來快速地創建和提供它們。舉例來說,DB2的較早版本使用WebSphere對象運行時框架(WORF)來激活DB2之上的service操作。
盡管WORF可以做這項工作,但是要定義和開發這些Web services所要做的工作卻是很繁重的;特別是,它涉及創建定制數據訪問定義擴展(DADX)文件,它們是很復雜的,而且不基於任何標准。此外,WORF框架是專用於DB2產品家族的,不能很好地支持其它IBM數據服務器,例如Informix Dynamic Server。
IBM DWS是在DB2 9.5逐漸被廣泛使用的時候推出的。你可能注意到,這個Web service基礎構建被適當地命名為IBM Data Web Services。在名稱中沒有DB2;這是因為這個技術可以用於所有主流的IBM數據服務器和DB2 for IBM i(就是之前眾所周知的IBM i5/OS)。而且,它還可以用在這些數據服務器的之前版本!例如,你可以使用這個框架在一個DB2 Universal Database Version 8.2 for Windows數據庫上將業務邏輯暴露為一個Web service。
IBM DWS技術最好的部分(你將會發現的)是它提供了一個框架將業務邏輯轉換為一個Web service而不用編寫一個單獨的代碼!IBM DWS技術完全集成到IBM Data Studio中,這使得它很容易創建自下而上的Web service開發(自動地生成WSDL、XML匹配、類型匹配,等等)。
特別是,IBM DWS為IBM數據服務器提供了以下特性:
單擊創建功能,包括一個拖拉部署基礎構建(在IBM Data Studio中有一個用於Web services的新文件夾)而不需要任何編程。
全面的Web service接口支持,例如通過HTTP的SOAP、自動的WSDL生成,等等。
使用HTTP GET/POST綁定的REST風格的service接口。
Web 2.0功能(例如JSON、RSS、Feeds、使用XSLT的AJAX等等)。
將遺留應用程序組件暴露為services的功能。
生成Web services的開始和結束都是在IBM Data Studio中。例如,首先你使用IBM Data Studio創建一個數據開發項目,它是作為你將創建的Web services的一個容器來使用的,例如SQL腳本、程序、Web services和XML產品。
每一個數據開發項目都鏈接到一個數據庫連接,圍繞下面的IBM數據服務器之一:DB2 for Linux, UNIX, and Windows(Version 8或之後的版本)、DB2 for z/OS (Version 7或之後的版本)、DB2 for i (Version 5或之後的版本)和Informix Dynamic Server(Version 10或之後的版本)。
你可以選擇將你的Web services部署到眾多的供應層中去。例如,WebSphere Application Server Community Edition(Application Server/CE)被包含在IBM Data Studio中作為它的一部分來下載。
IBM DWS還可以通過IBM Data Studio部署到其它的流行應用服務器上,例如IBM WebSphere Application Server、Apache Tomcat,甚至包括IBM Data Power SOA Appliance。IBM Data Studio還提供給你生成一個Web存檔文件(WAR)用於部署到Web團隊中去的能力。
IBM DWS支持SOAP、JMS和REST終端用於Web services。終端和支持風格的多樣性使得在可以用來調用這些服務的客戶端方面具有很多選擇。當你在IBM Data Studio中創建Web service時,默認選擇是生成SOAP和REST服務;而當你部署你Web services時,你可以根據你的應用程序需求來選擇生成哪個服務。
如果你生成SOAP/HTTP風格的服務,那麼XML請求文檔就被包含在了SOAP請求信息的SOAP body元素中。IBM DWS REST風格界面支持下面的請求類型:具有一個XML請求文檔的HTTP POST、在一個URL中具有輸入參數的HTTP GET,和在請求文檔中具有URL編碼參數的HTTP POST。
IBM Data Studio還支持XSLT特性,你可以用它將樣式轉換應用到每一個服務操作;你可以使用這個選項來定制從這個服務進出的輸出輸入流。例如,你可以使一個服務的輸出是以XML的形式傳送到你的客戶端,而使用一個XSLT轉換調整顯示結果來匹配客戶的表單因素。
在IBM Data Studio中為你的Web services定義XSLT轉換的能力對於很多應用程序——不僅僅是格式化——都是非常有用的。例如,你可以用它來定制你的Web service來遵從一個現有的WSDL文檔。從IBM DWS獲得的XML格式可能不是你其它的應用程序所期待的格式;正確的格式取決於應用程序或已有的IT基礎構建和項目本身。XSLT可以用來將DWS的輸入和輸出匹配到已有的XML schema規范。
此外,你不再需要選擇自下而上或自上而下的方法來建立Web services,因為IBM DWS所生成的自下而上服務可以匹配到客戶端自上而下的格式要求。你還可以使用這個特性來獲取像JSON這樣格式的結果,或基於數據庫內容生成feed格式,例如RSS。
最後,與IBM DWS一起的還有一些測試工具,你可以用它們快速地為你的Web services執行全面和質量保證測試。到此,我們已經花費很多時間講述IBM DWS,該開始使用它了。