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

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

申請免費試用、咨詢電話:400-8352-114

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

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

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

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

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

開始之前

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

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

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

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

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

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

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

在開始開發(fā)過程之前,您需要從SOA的角度考慮技能、標(biāo)準(zhǔn)和工具等的特殊方面。這一部分是一種新SOA思維傾向。例如,既然整個服務(wù)思想是創(chuàng)造多個可重用組件,開發(fā)人員就必須超越一個應(yīng)用程序的界限進行思考。您必須開始重用現(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īng)該是一個迅速的過程,在必要時,您希望人們已經(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)促進組織(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ù)的工具和一個SOA。不僅要考慮開發(fā)的特征,而且要考慮在企業(yè)內(nèi)與其他成員通信的特征。如果您的可視化界面能夠?qū)⒛墓ぷ鞅磉_為非技術(shù)類型,那么您就可以節(jié)省很多工作量。您的工具應(yīng)該能夠處理細節(jié),例如元數(shù)據(jù)庫、XML索引和規(guī)則引擎。

煩惱的時刻

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SOA的未來

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

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

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

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

咨詢:400-8352-114

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

QQ在線咨詢

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

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