Web服務(wù)組合的敏捷軟件開(kāi)發(fā)研究論文
敏捷思想為軟件開(kāi)發(fā)帶來(lái)了新思路。面向服務(wù)應用的普及以及Web服務(wù)的出現為敏捷開(kāi)發(fā)關(guān)于構件和精益的思想提供了新的實(shí)現途徑。不同粒度的Web服務(wù)組合滿(mǎn)足不同業(yè)務(wù)需求,也符合快速交付可以使用軟件思想。
當今的軟件行業(yè)依舊在焦油坑中痛苦掙扎,為平衡項目時(shí)間、預算、成本、質(zhì)量等基本要素,從管理到開(kāi)發(fā)過(guò)程提出眾多解決方案,可問(wèn)題依舊很難得到解決[ 1 ]。隨著(zhù)《敏捷宣言》和《敏捷原則》的發(fā)布,敏捷開(kāi)發(fā)思想逐步普及。隨著(zhù)互聯(lián)網(wǎng)的出現,軟件開(kāi)發(fā)按老套路很難跟上市場(chǎng)變化。
目前,軟件功能變化快,業(yè)務(wù)交叉增多,用戶(hù)需求變化快,因此需要將新思想和開(kāi)發(fā)技術(shù)引入到軟件開(kāi)發(fā)中。隨著(zhù)面向服務(wù)應用的增多,擁有不同軟硬件資源的單位為軟件開(kāi)發(fā)用戶(hù)提供了大量Web服務(wù)。充分利用這些服務(wù)也符合敏捷開(kāi)發(fā)中精益思想和快速使用軟件的思想。
1 敏捷軟件開(kāi)發(fā)思想
瀑布模型將軟件開(kāi)發(fā)的過(guò)程設計成一個(gè)線(xiàn)性過(guò)程,主要分為5個(gè)階段:需求分析、設計、編碼實(shí)現、測試和部署維護,依次線(xiàn)性進(jìn)行,只有當前一個(gè)階段任務(wù)完成后,才能進(jìn)行下一個(gè)階段。只有到測試階段才能發(fā)現問(wèn)題,而要解決這些問(wèn)題,幾乎要再來(lái)一遍,很難適應中途需要變更的項目。前一個(gè)階段出現錯誤會(huì )被后一個(gè)階段放大,可能造成災難性后果。
在互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的今天,業(yè)務(wù)改變更快、更頻繁。業(yè)務(wù)需求分析和設計往往還沒(méi)完成,市場(chǎng)和消費需求已經(jīng)發(fā)生變化,這就要求軟件開(kāi)發(fā)能適應新時(shí)代要求。在這種背景下提出敏捷開(kāi)發(fā),軟件工程的另一個(gè)重要進(jìn)展是基于構件的開(kāi)發(fā)。
盡可能利用可復用構件,組裝成新系統,提高軟件使用率,減少故障和降低成本,提高系統質(zhì)量;跇嫾南到y,更適用Internet技術(shù)和分布式系統開(kāi)發(fā)的需要[ 2 ]。二戰后日本豐田公司陷入困境,豐田開(kāi)始從全新的角度思考制造、物流和新產(chǎn)品研發(fā)活動(dòng),并逐步形成豐田生產(chǎn)系統這一新型的生產(chǎn)方式。
豐田生產(chǎn)系統的根本思想是精益原則,即消除浪費,并對浪費的概念重新進(jìn)行定義,即“不能為客戶(hù)創(chuàng )造價(jià)值的事物都是浪費”[ 3 ]。浪費也是軟件開(kāi)發(fā)中的常見(jiàn)問(wèn)題,過(guò)度文檔設計到最后卻不能變成實(shí)實(shí)在在的軟件,導致開(kāi)發(fā)軟件反復返工、開(kāi)發(fā)人員頻繁跳槽、經(jīng)常加班等。Web服務(wù)能很好地共享資源,減少浪費,方便連通不同企業(yè)、不同信息平臺,合理整合業(yè)務(wù)鏈內的上中下游企業(yè)資源。
2 Web服務(wù)組合
所謂Web服務(wù)組合是指通過(guò)服務(wù)查找以及服務(wù)之間的接口集成,將多個(gè)自治Web服務(wù)根據需求進(jìn)行組合,從而提供新的、功能更強的Web服務(wù)。從粒度意義上講,Web服務(wù)組合是對Web服務(wù)進(jìn)行更大規模封裝,并將該封裝結果作為一個(gè)Web服務(wù)展現給外界。從順序意義上講,Web服務(wù)組合是一個(gè)滿(mǎn)足用戶(hù)需求的Web服務(wù)調用序列[ 4 ]。
如游客想到北京旅游,希望在提供旅游業(yè)務(wù)的網(wǎng)站上完成整個(gè)旅行安排。其要求如下:首先,選擇景點(diǎn),包括人文和自然;其次,選擇交通工具以及所選交通工具的價(jià)格類(lèi)型,希望根據預計的旅游時(shí)間和當天的.天氣選擇交通工具,如果天氣晴朗則坐飛機,否則坐火車(chē);
再次,酒店預定和支付。在這個(gè)案例中用戶(hù)涉及的服務(wù)主要是景點(diǎn)服務(wù)(ws1)、交通服務(wù)(ws2)、酒店服務(wù)(ws3)、支付服務(wù)(ws4)。提供這些服務(wù)的提供商并不是一家,但商家之間需要相互合作。這4個(gè)服務(wù)是大的復合型服務(wù),其也是更多具體服務(wù)的組合。
具體的服務(wù)可以劃分為多個(gè)層次,每個(gè)層次可由復合服務(wù)和原子服務(wù)組成。葉子節點(diǎn)處的服務(wù)都是原子結點(diǎn)。按從上到下邏輯劃分,具體組合由下而上填充服務(wù),組合成更具體服務(wù)。因此,進(jìn)行Web服務(wù)組合的第一步是對業(yè)務(wù)流程進(jìn)行分析,劃分業(yè)務(wù)單元。
Web服務(wù)組合層次結構
3 快速交付可使用軟件
當用戶(hù)提出需求時(shí),不可能一次性將所有需求都表達清楚,而且開(kāi)發(fā)過(guò)程不可能一直等待所有需求都最終確定。這就需要開(kāi)發(fā)人員針對用戶(hù)需求做優(yōu)先級排序,先解決優(yōu)先級最高、最緊迫、用戶(hù)最關(guān)心的需求。由于Web服務(wù)都是已封裝好的業(yè)務(wù)功能,可快速使用,縮短開(kāi)發(fā)時(shí)間。
在基于服務(wù)架構的系統中,不同業(yè)務(wù)Web服務(wù)可根據需要進(jìn)行組合和替換,增強軟件靈活性和適應性,更好適應多變需求,減少不必要浪費。近年來(lái)網(wǎng)絡(luò )上Web 服務(wù)數量急劇上升,從Internet 上尋找滿(mǎn)足需求的服務(wù)變得困難[ 5 ]。
為讓W(xué)eb服務(wù)成為計算機可理解的軟件實(shí)體, 將語(yǔ)義Web技術(shù)引入Web 服務(wù), 形成能夠在語(yǔ)義層面支持Web服務(wù)間互操作的語(yǔ)義Web服務(wù),使基于Web的服務(wù)應用更靈活、更智能;谡Z(yǔ)義的服務(wù)描述主要是利用本體表述領(lǐng)域內知識,使服務(wù)描述帶有語(yǔ)義。本體是共享的概念模型的形式化的規范說(shuō)明[ 6 ]。
本體對于Web網(wǎng)絡(luò )的意義在于:本體通過(guò)統一術(shù)語(yǔ)概念及其聯(lián)系的解釋?zhuān)U述網(wǎng)絡(luò )上的數據、程序、網(wǎng)頁(yè)及其它網(wǎng)絡(luò )資源包含的語(yǔ)義[ 7 ]。Web服務(wù)語(yǔ)義是指服務(wù)提供者與服務(wù)請求者之間就使用某個(gè)具體服務(wù)的必需條件、交互過(guò)程及服務(wù)運行結果所達成的共識或協(xié)議[ 8 ]。
用語(yǔ)義標識描述Web服務(wù),最終目的是實(shí)現語(yǔ)義Web服務(wù)自動(dòng)查找、組合調用,改變軟件開(kāi)發(fā)模式,使計算機可以參與到開(kāi)發(fā)過(guò)程中,加快軟件開(kāi)發(fā)進(jìn)度、降低人工成本、提高開(kāi)發(fā)效率。
由于Web服務(wù)不同于傳統軟件開(kāi)發(fā),所提供的Web服務(wù)并不是針對具體用戶(hù)需求專(zhuān)門(mén)設定,服務(wù)功能粒度和用戶(hù)期望有一定區別。因此,需要一種智能化技術(shù)組合Web服務(wù),可以實(shí)現動(dòng)態(tài)調整和自我修正。
神經(jīng)網(wǎng)絡(luò )是用大量神經(jīng)元的互連以及對各連接權值分布來(lái)表示特定的概念或知識。在知識獲取過(guò)程中,其只要求專(zhuān)家提出范例及相應的解,通過(guò)特定學(xué)習算法對樣本進(jìn)行學(xué)習, 通過(guò)網(wǎng)絡(luò )內部自適應算法不斷修改連接權值分布達到要求, 并將專(zhuān)家求解實(shí)際問(wèn)題的啟發(fā)式知識和經(jīng)驗分布到網(wǎng)絡(luò )神經(jīng)元的權值和閥值上 [ 9 ]。
知識表示不再是規則,而是分布于整個(gè)網(wǎng)絡(luò )中的權值和閾值,神經(jīng)網(wǎng)絡(luò )利用領(lǐng)域專(zhuān)家解決實(shí)際問(wèn)題樣本訓練神經(jīng)網(wǎng)絡(luò ), 使神經(jīng)網(wǎng)絡(luò )在測試數據輸入條件下能獲得與專(zhuān)家方案盡可能接近的結果。根據規則集生成神經(jīng)網(wǎng)絡(luò ),如圖2所示。
神經(jīng)網(wǎng)絡(luò )訓練web服務(wù)
基于規則的神經(jīng)網(wǎng)絡(luò )推導眾多的服務(wù)組合,可通過(guò)計算機自動(dòng)實(shí)現。減少人工選擇組合時(shí)間,開(kāi)發(fā)人員可以省去繁雜的選擇比較過(guò)程。知識庫集中領(lǐng)域專(zhuān)家經(jīng)驗,使降低開(kāi)發(fā)人員之間溝通不便。使用大量自動(dòng)化智能技術(shù)和軟件復用技術(shù),可以快速設計和開(kāi)發(fā)出可使用的軟件,從而降低浪費,提高開(kāi)發(fā)效率。
4 結語(yǔ)
敏捷開(kāi)發(fā)強調快速開(kāi)發(fā)能滿(mǎn)足業(yè)務(wù)需求的軟件,業(yè)務(wù)本身隨市場(chǎng)變化而變化。用戶(hù)有更直接體驗,與開(kāi)發(fā)人員溝通起來(lái)更加明確,也可更清楚描述出自己所需軟件產(chǎn)品。
Web服務(wù)使孤立資源能真正整合,但服務(wù)提供者不會(huì )按照每個(gè)需求者的需求提供個(gè)性化服務(wù)。為完成具體業(yè)務(wù)功能,需要進(jìn)行Web服務(wù)組合。不同方案組合就是一次次重構,可避免浪費,同時(shí)也可加快開(kāi)發(fā)進(jìn)度。
【W(wǎng)eb服務(wù)組合的敏捷軟件開(kāi)發(fā)研究論文】相關(guān)文章:
對于基礎Web服務(wù)信息評價(jià)指標體系研究的論文10-30
服務(wù)軟件開(kāi)發(fā)技術(shù)思考論文01-12
組合式的家具設計研究論文11-04
價(jià)格競爭與營(yíng)銷(xiāo)戰略組合研究論文10-22
關(guān)于邯鋼基于WEB的客戶(hù)服務(wù)平臺設計論文11-17
研究銀行服務(wù)轉型論文04-02