明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

面向服務(wù)開發(fā)的7項(xiàng)原則

[摘要]未來的軟件結(jié)構(gòu)要求有一套新的開發(fā)方法。你們公司做好準(zhǔn)備了嗎?by Jason Bloomberg當(dāng)今關(guān)于Web服務(wù)(web services)的描述主要是關(guān)于集成的。走出不景氣階段的企業(yè)都把降低集成...
未來的軟件結(jié)構(gòu)要求有一套新的開發(fā)方法。你們公司做好準(zhǔn)備了嗎?
by Jason Bloomberg
當(dāng)今關(guān)于Web服務(wù)(web services)的描述主要是關(guān)于集成的。走出不景氣階段的企業(yè)都把降低集成成本作為一個(gè)明顯的目標(biāo)。運(yùn)用公開的、基于標(biāo)準(zhǔn)的、松散藕合的Web服務(wù)技術(shù)就給企業(yè)提供了一個(gè)不是很昂貴的集成方法。然而,Web服務(wù)不僅僅是使集成簡(jiǎn)單化了,它們的用處更多。實(shí)際上,它們將注定要從根本上改變?nèi)藗儎?chuàng)建和使用軟件的方式。

為了擺脫老式的思考方式,軟件專家必須要了解Web服務(wù)的技術(shù),并且要了解Web服務(wù)可以給我們帶來怎樣的前景。下面的面向服務(wù)開發(fā)的七項(xiàng)原則——它們是隨著老式思考方式轉(zhuǎn)變到新的思考方式而產(chǎn)生的——為你形成這種新層次的觀念提供了指南。

1. 動(dòng)態(tài)的服務(wù)替代了靜態(tài)的組件
構(gòu)建一個(gè)Web服務(wù)不僅僅是像傳統(tǒng)的組件開發(fā)期望的那樣創(chuàng)建具有特殊功能的軟件。一個(gè)Web服務(wù)的Web服務(wù)描述語(yǔ)言(WSDL)文件動(dòng)態(tài)地描述了Web服務(wù)的功能。所以,開發(fā)人員只需要指出在哪里找到WSDL文件,這樣調(diào)用Web服務(wù)的軟件在運(yùn)行時(shí)就可以找到對(duì)服務(wù)功能的描述。該原則要求在運(yùn)用Web服務(wù)的系統(tǒng)中顯示邏輯層同商業(yè)邏輯層和持久(persistence)邏輯層分離開。當(dāng)開發(fā)人員構(gòu)建一個(gè)Web服務(wù)時(shí),他們可能不知道那個(gè)服務(wù)是如何被調(diào)用的、或者Web服務(wù)使用者的用戶界面將是怎樣的。一個(gè)Web服務(wù)架構(gòu)師不能將商業(yè)邏輯和顯示邏輯結(jié)合起來。

2. 服務(wù)呈現(xiàn)(Exposure)和響應(yīng)(Reflection)替代了傳統(tǒng)的系統(tǒng)集成
當(dāng)今的系統(tǒng)架構(gòu)師根據(jù)系統(tǒng)級(jí)的需求來集成項(xiàng)目。架構(gòu)師計(jì)劃各種組件應(yīng)該如何集成。作為這種top-down方法的替代,面向服務(wù)的開發(fā)采用了一種bottom-up的方法。在任何系統(tǒng)結(jié)構(gòu)形成前,系統(tǒng)中的每個(gè)組件都呈現(xiàn)成一個(gè)Web服務(wù)。然后,每個(gè)服務(wù)(查詢一個(gè)服務(wù)自己的功能)給外部系統(tǒng)提供它們?cè)L問服務(wù)所需要的信息。

在構(gòu)建一個(gè)系統(tǒng)時(shí),Web服務(wù)架構(gòu)師首先考慮系統(tǒng)的需求,并進(jìn)行服務(wù)裝配。在服務(wù)裝配過程中,架構(gòu)師訪問服務(wù)的動(dòng)態(tài)描述,它們只代表了實(shí)際的API的一部分。然后,架構(gòu)師確定系統(tǒng)的結(jié)構(gòu),即使在運(yùn)行前,單獨(dú)的組件及其接口并沒有被完全地描述。

3. 為廣泛的適用性編寫代碼替代了為可重用性編寫代碼
為可重用性編寫代碼是面向?qū)ο缶幊痰囊粋(gè)重要的特點(diǎn)。實(shí)際上,對(duì)開發(fā)人員來說,編寫可重用的代碼可能比為單獨(dú)用途的應(yīng)用程序編寫代碼更具挑戰(zhàn)性。因此,靈活的軟件方法(如Extreme Programming(XP))就避開了可重用性。在XP中,如果外來的功能進(jìn)入到代碼中,那么開發(fā)人員就重新編寫、或重構(gòu)(refactor)代碼,直到它盡可能地簡(jiǎn)單。

雖然重構(gòu)可以形成一些重用的方法,因?yàn)樽罱K代碼滿足很多情況,但這種方法同傳統(tǒng)的為可重用性編寫的代碼不同,因?yàn)樗哪康氖莿?chuàng)建靈活的和廣泛適用的代碼。重用性和廣泛適用性的代碼的區(qū)別是很小的,但它們卻是面向服務(wù)的開發(fā)過程的本質(zhì)。最好的方法就是把面向服務(wù)開發(fā)的結(jié)構(gòu)性原則同靈活的開發(fā)原則結(jié)合起來。