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