Web服務組合的敏捷軟體開發研究論文

Web服務組合的敏捷軟體開發研究論文

  敏捷思想為軟體開發帶來了新思路。面向服務應用的普及以及Web服務的出現為敏捷開發關於構件和精益的思想提供了新的實現途徑。不同粒度的Web服務組合滿足不同業務需求,也符合快速交付可以使用軟體思想。

  當今的軟體行業依舊在焦油坑中痛苦掙扎,為平衡專案時間、預算、成本、質量等基本要素,從管理到開發過程提出眾多解決方案,可問題依舊很難得到解決[ 1 ]。隨著《敏捷宣言》和《敏捷原則》的釋出,敏捷開發思想逐步普及。隨著網際網路的出現,軟體開發按老套路很難跟上市場變化。

  目前,軟體功能變化快,業務交叉增多,使用者需求變化快,因此需要將新思想和開發技術引入到軟體開發中。隨著面向服務應用的增多,擁有不同軟硬體資源的單位為軟體開發使用者提供了大量Web服務。充分利用這些服務也符合敏捷開發中精益思想和快速使用軟體的思想。

  1 敏捷軟體開發思想

  瀑布模型將軟體開發的過程設計成一個線性過程,主要分為5個階段:需求分析、設計、編碼實現、測試和部署維護,依次線性進行,只有當前一個階段任務完成後,才能進行下一個階段。只有到測試階段才能發現問題,而要解決這些問題,幾乎要再來一遍,很難適應中途需要變更的專案。前一個階段出現錯誤會被後一個階段放大,可能造成災難性後果。

  在網際網路和移動網際網路快速發展的今天,業務改變更快、更頻繁。業務需求分析和設計往往還沒完成,市場和消費需求已經發生變化,這就要求軟體開發能適應新時代要求。在這種背景下提出敏捷開發,軟體工程的另一個重要進展是基於構件的開發。

  儘可能利用可複用構件,組裝成新系統,提高軟體使用率,減少故障和降低成本,提高系統質量。基於構件的系統,更適用Internet技術和分散式系統開發的需要[ 2 ]。二戰後日本豐田公司陷入困境,豐田開始從全新的角度思考製造、物流和新產品研發活動,並逐步形成豐田生產系統這一新型的生產方式。

  豐田生產系統的根本思想是精益原則,即消除浪費,並對浪費的概念重新進行定義,即“不能為客戶創造價值的事物都是浪費”[ 3 ]。浪費也是軟體開發中的常見問題,過度文件設計到最後卻不能變成實實在在的軟體,導致開發軟體反覆返工、開發人員頻繁跳槽、經常加班等。Web服務能很好地共享資源,減少浪費,方便連通不同企業、不同資訊平臺,合理整合業務鏈內的上中下游企業資源。

  2 Web服務組合

  所謂Web服務組合是指透過服務查詢以及服務之間的介面整合,將多個自治Web服務根據需求進行組合,從而提供新的、功能更強的Web服務。從粒度意義上講,Web服務組合是對Web服務進行更大規模封裝,並將該封裝結果作為一個Web服務展現給外界。從順序意義上講,Web服務組合是一個滿足使用者需求的Web服務呼叫序列[ 4 ]。

  如遊客想到北京旅遊,希望在提供旅遊業務的網站上完成整個旅行安排。其要求如下:首先,選擇景點,包括人文和自然;其次,選擇交通工具以及所選交通工具的價格型別,希望根據預計的旅遊時間和當天的.天氣選擇交通工具,如果天氣晴朗則坐飛機,否則坐火車;

  再次,酒店預定和支付。在這個案例中使用者涉及的服務主要是景點服務(ws1)、交通服務(ws2)、酒店服務(ws3)、支付服務(ws4)。提供這些服務的提供商並不是一家,但商家之間需要相互合作。這4個服務是大的複合型服務,其也是更多具體服務的組合。

  具體的服務可以劃分為多個層次,每個層次可由複合服務和原子服務組成。葉子節點處的服務都是原子結點。按從上到下邏輯劃分,具體組合由下而上填充服務,組合成更具體服務。因此,進行Web服務組合的第一步是對業務流程進行分析,劃分業務單元。

  Web服務組合層次結構

  3 快速交付可使用軟體

  當用戶提出需求時,不可能一次性將所有需求都表達清楚,而且開發過程不可能一直等待所有需求都最終確定。這就需要開發人員針對使用者需求做優先順序排序,先解決優先順序最高、最緊迫、使用者最關心的需求。由於Web服務都是已封裝好的業務功能,可快速使用,縮短開發時間。

  在基於服務架構的系統中,不同業務Web服務可根據需要進行組合和替換,增強軟體靈活性和適應性,更好適應多變需求,減少不必要浪費。近年來網路上Web 服務數量急劇上升,從Internet 上尋找滿足需求的服務變得困難[ 5 ]。

  為讓Web服務成為計算機可理解的軟體實體, 將語義Web技術引入Web 服務, 形成能夠在語義層面支援Web服務間互操作的語義Web服務,使基於Web的服務應用更靈活、更智慧。基於語義的服務描述主要是利用本體表述領域內知識,使服務描述帶有語義。本體是共享的概念模型的形式化的規範說明[ 6 ]。

  本體對於Web網路的意義在於:本體透過統一術語概念及其聯絡的解釋,闡述網路上的資料、程式、網頁及其它網路資源包含的語義[ 7 ]。Web服務語義是指服務提供者與服務請求者之間就使用某個具體服務的必需條件、互動過程及服務執行結果所達成的共識或協議[ 8 ]。

  用語義標識描述Web服務,最終目的是實現語義Web服務自動查詢、組合呼叫,改變軟體開發模式,使計算機可以參與到開發過程中,加快軟體開發進度、降低人工成本、提高開發效率。

  由於Web服務不同於傳統軟體開發,所提供的Web服務並不是針對具體使用者需求專門設定,服務功能粒度和使用者期望有一定區別。因此,需要一種智慧化技術組合Web服務,可以實現動態調整和自我修正。

  神經網路是用大量神經元的互連以及對各連線權值分佈來表示特定的概念或知識。在知識獲取過程中,其只要求專家提出範例及相應的解,透過特定學習演算法對樣本進行學習, 透過網路內部自適應演算法不斷修改連線權值分佈達到要求, 並將專家求解實際問題的啟發式知識和經驗分佈到網路神經元的權值和閥值上 [ 9 ]。

  知識表示不再是規則,而是分佈於整個網路中的權值和閾值,神經網路利用領域專家解決實際問題樣本訓練神經網路, 使神經網路在測試資料輸入條件下能獲得與專家方案儘可能接近的結果。根據規則集生成神經網路,如圖2所示。

  神經網路訓練web服務

  基於規則的神經網路推導眾多的服務組合,可透過計算機自動實現。減少人工選擇組合時間,開發人員可以省去繁雜的選擇比較過程。知識庫集中領域專家經驗,使降低開發人員之間溝通不便。使用大量自動化智慧技術和軟體複用技術,可以快速設計和開發出可使用的軟體,從而降低浪費,提高開發效率。

  4 結語

  敏捷開發強調快速開發能滿足業務需求的軟體,業務本身隨市場變化而變化。使用者有更直接體驗,與開發人員溝通起來更加明確,也可更清楚描述出自己所需軟體產品。

  Web服務使孤立資源能真正整合,但服務提供者不會按照每個需求者的需求提供個性化服務。為完成具體業務功能,需要進行Web服務組合。不同方案組合就是一次次重構,可避免浪費,同時也可加快開發進度。

最近訪問