監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

如何應(yīng)對(duì)SOA開發(fā)的挑戰(zhàn)

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來源:泛普軟件 如何應(yīng)對(duì)SOA開發(fā)的挑戰(zhàn)

您剛好接觸到SOA?,F(xiàn)在,所有需要您完成的就是構(gòu)建系統(tǒng)。這很容易,對(duì)吧?

恭喜您!項(xiàng)目架構(gòu)師剛剛交給您——企業(yè)開發(fā)人員——新的面向服務(wù)的架構(gòu)(SOA),以供系統(tǒng)實(shí)現(xiàn)業(yè)務(wù)實(shí)踐?,F(xiàn)在,您只需構(gòu)建系統(tǒng)即可。

當(dāng)然,SOA方法在設(shè)計(jì)和組織業(yè)務(wù)功能以及IT基礎(chǔ)架構(gòu)方面極佳。SOA模型有助于確保系統(tǒng)的靈活性、可重用性和互操作性,使現(xiàn)在和將來進(jìn)行管理和修改更容易。它也能節(jié)約成本。它只是可能不像光芒四射的新SOA一樣容易實(shí)現(xiàn)。

考慮一個(gè)類似的例子——建造一所房子。設(shè)計(jì)者可能非常優(yōu)秀,但是那并不意味著他們?cè)O(shè)計(jì)的房子是可以信賴的。擔(dān)任建筑師的一位朋友講述了他的第一項(xiàng)任務(wù)的故事:落實(shí)一個(gè)公司的新辦公室計(jì)劃,它占用了一座巨大辦公樓的整個(gè)一層。新的入口處看起來富麗堂皇——直到我的朋友意識(shí)到前任建筑師忽略了一根承重柱子,這根承重柱子直接矗立在地板中央?,F(xiàn)在他有三個(gè)選擇:切段柱子,大樓也就破壞了;逐漸習(xí)慣于有一根柱子立在地板中央破壞美觀;或者更改計(jì)劃以反映現(xiàn)實(shí)。

開始之前

設(shè)計(jì)一個(gè)系統(tǒng)的架構(gòu)也與此相同。如果在別人將SOA交給您的時(shí)候您才第一次了解SOA,那么您可能從一開始就遇到了麻煩。開發(fā)人員必須從業(yè)務(wù)流程的開端就參與業(yè)務(wù)流程的設(shè)計(jì)。對(duì)于保證真實(shí)性是SOA的一部分,開發(fā)人員的看法是非常寶貴的。這個(gè)看法來自技術(shù)、將來的發(fā)展以及特別的考慮等通用領(lǐng)域。

例如,在技術(shù)方面,開發(fā)人員與架構(gòu)師的看法可能會(huì)不同。當(dāng)然,在我們的房子上面搭上涼棚很好,但是我們將怎樣拉回屋頂呢?與此類似,寫下過程A將與過程B進(jìn)行通信是容易的。但是,實(shí)際上,要使過程A與過程B通信良好可能需要能夠獲獎(jiǎng)的——而且費(fèi)用最大的——編程技巧。

靈活性也是SOA的目標(biāo)之一,但是它可能會(huì)走得太遠(yuǎn)。認(rèn)為家庭辦公室有一天會(huì)被用作臥室——但是或許不是用作廚房——可能是聰明的想法。同樣,比如說,要求某種服務(wù)來處理所有的輸入可能沒有意義。調(diào)整SOA,反映出什么是難以做到的以及什么是很可能做到的,就能夠確保得到一種較好的結(jié)果。

開發(fā)人員不只是在規(guī)劃過程中令人掃興的人。他們往往了解不久后將成為可能并且會(huì)在SOA里出現(xiàn)的技術(shù)。在建造一所房子時(shí),您可以預(yù)期某一天完成地下室,并且包括簡(jiǎn)單的基礎(chǔ)結(jié)構(gòu)。同樣,一家公司現(xiàn)在可能不提供無(wú)線服務(wù),但是開發(fā)人員可以將它作為未來的可能性,這很可能帶來全新的業(yè)務(wù)面貌——以及SOA的重要部分。

另外,開發(fā)人員可能知道SOA必須處理的特殊問題。例如,采用在Web上分布的組件服務(wù)模型時(shí),通信的安全性可能比現(xiàn)有的內(nèi)部應(yīng)用需要更多的關(guān)注。

最后,在設(shè)計(jì)期間的信息流不應(yīng)該僅僅是單向的。開發(fā)人員應(yīng)該從架構(gòu)師那里獲悉業(yè)務(wù)的結(jié)構(gòu)——以及未來的方向。在以后的開發(fā)過程里,了解并且保持這個(gè)觀點(diǎn)對(duì)于指導(dǎo)決策將是至關(guān)重要的。

為開始做好準(zhǔn)備

在開始開發(fā)過程之前,您需要從SOA的角度考慮技能、標(biāo)準(zhǔn)和工具等的特殊方面。這一部分是一種新SOA思維傾向。例如,既然整個(gè)服務(wù)思想是創(chuàng)造多個(gè)可重用組件,開發(fā)人員就必須超越一個(gè)應(yīng)用程序的界限進(jìn)行思考。您必須開始重用現(xiàn)有的服務(wù),并且想像您的同事如何重用您的服務(wù)。打破舊的習(xí)慣,并且通過將服務(wù)鏈接在一起而不是通過編寫新代碼來構(gòu)建應(yīng)用程序,這可能是困難的。正確的態(tài)度將走向成功。

開發(fā)人員應(yīng)該擁有面向服務(wù)的開發(fā)的正確技能。在業(yè)務(wù)流程、數(shù)據(jù)和元數(shù)據(jù)管理、消息傳遞和事務(wù),以及安全性等方面,可能需要一些訓(xùn)練。因?yàn)檫@應(yīng)該是一個(gè)迅速的過程,在必要時(shí),您希望人們已經(jīng)為開始做好了準(zhǔn)備。

將您的開發(fā)過程流線化。從一開始就使應(yīng)用程序的生命周期標(biāo)準(zhǔn)化——包括交付階段——能夠緩解以后的麻煩。

早早建立您的標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)可能是結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)的接口標(biāo)準(zhǔn)(比如WSDL)、協(xié)議標(biāo)準(zhǔn)(比如SOAP)、傳輸標(biāo)準(zhǔn)(例如HTTP和JMS),等等。要注意這些標(biāo)準(zhǔn)可能在現(xiàn)有的基礎(chǔ)設(shè)施和環(huán)境中遇到問題。

您可能需要面向Web服務(wù)的工具和一個(gè)SOA。不僅要考慮開發(fā)的特征,而且要考慮在企業(yè)內(nèi)與其他成員通信的特征。如果您的可視化界面能夠?qū)⒛墓ぷ鞅磉_(dá)為非技術(shù)類型,那么您就可以節(jié)省很多工作量。您的工具應(yīng)該能夠處理細(xì)節(jié),例如元數(shù)據(jù)庫(kù)、XML索引和規(guī)則引擎。

煩惱的時(shí)刻

即使有了正確的培訓(xùn)、態(tài)度、標(biāo)準(zhǔn)和工具,SOA開發(fā)也可能是困難的,這不足為奇。大多數(shù)業(yè)務(wù)流程基于實(shí)際的程序,這些程序復(fù)雜并且要求多個(gè)異步步驟。例如,一個(gè)簡(jiǎn)單的采購(gòu)訂單,可能涉及幾天的復(fù)雜工作流,并且要求幾個(gè)負(fù)責(zé)人簽署意見。您將面對(duì)無(wú)意義的副本,亂七八糟的數(shù)據(jù),以及缺少集成。

雖然您一次只能開發(fā)一種服務(wù),但是您必須專注于整個(gè)系統(tǒng):保持靈活性是困難的。即使您從實(shí)現(xiàn)一些高使用率的服務(wù)開始,您也必須知道它們將如何與其他服務(wù)交互。您一層一層地進(jìn)行開發(fā)——核心應(yīng)用程序基礎(chǔ)、公用服務(wù)層以及定制門戶層——但是您必須知道所作的更改是否真的沒有干擾其他層。

牢牢記住SOA的目標(biāo)是重要的:靈活性、可重用性和互操作性。的確,對(duì)于給定的服務(wù),有時(shí)看起來您只能挑選其中兩個(gè),或者可能只能挑選其中一個(gè)。但是那些是目標(biāo)。

事實(shí)上,有時(shí)精練而靈活的組件的想法好像自相矛盾。如果它是精練的,它又怎能靈活地完成全部的工作?如果它足夠靈活,能夠處理所有事務(wù),難道它會(huì)不復(fù)雜嗎?難道它會(huì)是精練的嗎?是的,要達(dá)到那個(gè)美妙的結(jié)合點(diǎn),需要一些折衷。

服務(wù)必須可供多個(gè)應(yīng)用程序使用,因此,必須正確地開發(fā)。此外,我們需要維護(hù)并增強(qiáng)服務(wù),因此,它們必須簡(jiǎn)單。

這是不是聽起來全部不可能?不是的。它只需要一個(gè)更大的視角??紤]一下房子的例子。您能僅僅掛起那扇門而完全不考慮到其他任何事情嗎?不,因?yàn)槿绻T不在這個(gè)位置,這里將開一扇窗。如果門在這里,它會(huì)影響墻里的布線。如果門在那里,它就影響了另一扇門的設(shè)置。您將找到合適的位置,但不是僅僅專注于那扇門:您必須查看它周圍的一切。利用SOA進(jìn)行開發(fā)的情況也是一樣的。

為目前的需求進(jìn)行開發(fā)是艱難的;為將來的需求進(jìn)行開發(fā)則是一項(xiàng)更大的挑戰(zhàn)。除了觀察其他所有組件以外,您還需要留心觀察將來的可能性。如果您的服務(wù)是考慮到將來的需求而創(chuàng)建的,那么它們就可能用于將來的應(yīng)用程序。這里有一個(gè)技巧:如果服務(wù)完全與當(dāng)今業(yè)務(wù)實(shí)踐相匹配,那么它可能不支持對(duì)業(yè)務(wù)實(shí)踐的更改。如果服務(wù)接收特定的輸入,就使輸入通用化。如果該服務(wù)處理五個(gè)進(jìn)程,那就讓它處理十個(gè)進(jìn)程。如果它將結(jié)果傳輸給另一個(gè)服務(wù),那么使另一個(gè)服務(wù)是可以選擇的。您需要的不是一套扳鉗,而是一把月牙扳鉗。

將來會(huì)出問題嗎?試著想像從現(xiàn)在起三年后,您正在將這種服務(wù)轉(zhuǎn)換到一個(gè)新職能。您希望它如何簡(jiǎn)化您的工作?請(qǐng)記住,該代碼直接將轉(zhuǎn)換重用于為企業(yè)提高勞動(dòng)生產(chǎn)率和節(jié)約成本,并且為您節(jié)省了開發(fā)時(shí)間。

節(jié)拍在繼續(xù)

盡管最初幾個(gè)服務(wù)不是流程的結(jié)束,但是它在不斷進(jìn)行的過程中是一個(gè)有價(jià)值的里程碑。在執(zhí)行了這些最初的組件之后,您應(yīng)該能夠判斷它們是否達(dá)到了您的目標(biāo)。其他服務(wù)能否容易地使用這些服務(wù)?如果能的話,那很好。如果地板不是水平的,那么現(xiàn)在就弄平,然后在上面進(jìn)行建造。

在這個(gè)過程中,開發(fā)人員在某處發(fā)現(xiàn)意外的困難不足為奇。例如,因?yàn)榉N種原因,事實(shí)可能證明兩個(gè)業(yè)務(wù)流程終究不能使用同一個(gè)組件。在開發(fā)過程中,您應(yīng)該有一種適當(dāng)?shù)臋C(jī)制,與架構(gòu)師交流需要進(jìn)行哪些更改。SOA不是青銅鑄成的:它是某臺(tái)機(jī)器上的一些小東西,正如您所使用的其他一切事務(wù)一樣。從假定更改是必不可少的開始,構(gòu)建您需要加入任何所需更改的觸點(diǎn)。

您如何發(fā)出某些任務(wù)不能執(zhí)行的調(diào)用?在不可能與“我們不能完成”之間有很大的差別。如果您陷入了這樣的困境,不要不戰(zhàn)而降。首先,進(jìn)行一些研究。在討論區(qū)中詢問如何處理這樣的情況。如果有人已經(jīng)解決了您需要執(zhí)行的任務(wù),那就表明您可能能夠完成它。即使他們的情況只是有點(diǎn)類似于您的情況,您也可以在這個(gè)有價(jià)值的問題上獲得一個(gè)看問題的角度。

如果那樣不能產(chǎn)生一個(gè)答案,那就回去找架構(gòu)師協(xié)商。向架構(gòu)師解釋困難。SOA可能需要修改。但是也可能是架構(gòu)師們對(duì)此有設(shè)想,而您沒有。請(qǐng)記住他們是解決方案的一部分:如果他們有解決方案,那就使用它。

因?yàn)檫@是一個(gè)企業(yè)開發(fā)項(xiàng)目,因此,讓企業(yè)知道情況將如何發(fā)展是很重要的。您應(yīng)該經(jīng)常報(bào)告成果。解釋已完成的每個(gè)服務(wù)的意義,展示它在整個(gè)開發(fā)中所處的位置。當(dāng)整個(gè)應(yīng)用程序完成時(shí),證明它們的商業(yè)價(jià)值。您應(yīng)該使用一種方法來衡量投資收益:讓每個(gè)人都了解它。

這不僅對(duì)于企業(yè)來說是重要的,而且對(duì)于開發(fā)人員來說也是重要的。所有為腦海中的大圖——以及未來——所作的特殊的編碼工作都將獲得補(bǔ)償。并且企業(yè)會(huì)承認(rèn)這種工作的價(jià)值。現(xiàn)在該是舉行慶功宴的時(shí)候了。

SOA的未來

在2002年,Gartner Group稱SOA為“現(xiàn)代應(yīng)用程序開發(fā)過程中惟一非常重要的主題”。執(zhí)行SOA方法能夠幫助您更迅速地完成項(xiàng)目,并且更快地兌現(xiàn)投資收益率。不過,它仍是一種新方法,并非每個(gè)人都是這方面的專家。隨著時(shí)間的流逝,您和您的同事將能更熟練地實(shí)現(xiàn)面向服務(wù)的架構(gòu)。您可以利用更多、更好的工具。那時(shí)將出現(xiàn)改進(jìn)的策略,并且成為標(biāo)準(zhǔn)問題的標(biāo)準(zhǔn)解決方案。在正確的計(jì)劃和觀點(diǎn)指導(dǎo)下,您精心打造的服務(wù)將能夠在許多年內(nèi)不斷運(yùn)作、發(fā)展和改善。(IT專家網(wǎng))

發(fā)布:2007-04-23 11:37    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
南京OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普南京OA快博其他應(yīng)用

南京OA軟件 南京OA新聞動(dòng)態(tài) 南京OA信息化 南京OA快博 南京OA行業(yè)資訊 南京軟件開發(fā)公司 南京門禁系統(tǒng) 南京物業(yè)管理軟件 南京倉(cāng)庫(kù)管理軟件 南京餐飲管理軟件 南京網(wǎng)站建設(shè)公司