克服SOA实施过程中的障碍
Jonathan Mack說,現(xiàn)在SOA實(shí)施“并不像許多分析機(jī)構(gòu)或Web研討會(huì)所指出的那樣普遍”。原因很簡(jiǎn)單:成功的SOA實(shí)施是頗具挑戰(zhàn)性的。Jonathan Mack概述了三大挑戰(zhàn):
\u0026#xD;\n- 解決早于SOA的架構(gòu)——將現(xiàn)有企業(yè)資產(chǎn)整合到SOA里去。 \u0026#xD;\n
- 說服公司采用SOA——用具體的事實(shí)(而不是總體的陳述)闡述為什么SOA能夠產(chǎn)生與其成本相稱的效益,得公司涉眾(stakeholders)信服。 \u0026#xD;\n
- 設(shè)計(jì)最有效的SOA路線圖——定義實(shí)現(xiàn)SOA愿景的過程。 \u0026#xD;\n
雖然大部分SOA實(shí)踐者們提倡在現(xiàn)有企業(yè)應(yīng)用之上構(gòu)建一個(gè)瘦服務(wù)層、盡量重用已經(jīng)存在的功能,但這樣實(shí)施的挑戰(zhàn)性常常比通常認(rèn)為的要大得多。Jonathan Mack指出:
\u0026#xD;\n過去構(gòu)建的遺留系統(tǒng)(legacy systems)是一些零散的批處理或在線處理程序,它們必須按特定的順序組合起來才能產(chǎn)生有意義的業(yè)務(wù)功能。那些遺留的處理程序是用于滿足實(shí)際需要的, 它們常常是根據(jù)實(shí)際開發(fā)流程得到的、而不是與具體的功能相對(duì)應(yīng)。從服務(wù)的觀點(diǎn)來看,這些程序缺乏一致性和含義。 \u0026#xD;\n關(guān)于解決這一問題的實(shí)際辦法,Jonathan Mack概述如下:
\u0026#xD;\n\u0026#xD;\n- 為你將構(gòu)建的服務(wù)增加一個(gè)瘦服務(wù)層作為過渡。所以要?jiǎng)?chuàng)建一些便于插入服務(wù)層的組件,以便遺留系統(tǒng)的程序員們可以按他們過去的方式進(jìn)行工作(即用明確定義的輸入輸出來設(shè)計(jì)程序)。 \u0026#xD;\n
- 從一開始就在服務(wù)層中留好監(jiān)控與異常處理鉤子(hooks)。SOA最重要的優(yōu)點(diǎn)之一,就是它可以精確監(jiān)控應(yīng)用的活動(dòng)。 \u0026#xD;\n
- 若服務(wù)(service)比點(diǎn)對(duì)點(diǎn)的交互(point-to-point interaction)更具優(yōu)勢(shì),那就構(gòu)建專門的服務(wù)。應(yīng)為服務(wù)的構(gòu)建定義和發(fā)布明確的標(biāo)準(zhǔn)。最重要的一則標(biāo)準(zhǔn)就是:該服務(wù)存在多個(gè)客戶。 \u0026#xD;\n
- 不要迷信卓越中心(Centers of Excellence)。確保擁有一個(gè)小型團(tuán)隊(duì),選擇成員時(shí)應(yīng)特別注重他們與其他開發(fā)者協(xié)同工作的能力。從一開始就通過合作共同構(gòu)建將來作為服務(wù)層基礎(chǔ)的公共服務(wù)。 \u0026#xD;\n
- 盡量構(gòu)建直接與主機(jī)(mainframe)交互的原子服務(wù),盡量用ESB軟件來構(gòu)建合成服務(wù)。保持原子服務(wù)層與合成服務(wù)層的分離。 \u0026#xD;\n
可重用性(reusability)是SOA的一大賣點(diǎn)。不幸的是,這常常是一種信念,而非事實(shí)。能夠支持這一觀點(diǎn)的數(shù)據(jù)很少很少。Jonathan Mack說:?
\u0026#xD;\n要使重要涉眾(stakeholders)信服,你的闡述要更加具體才行。雖然用圖來解釋“SOA如何能幫助解決錯(cuò)綜復(fù)雜的 系統(tǒng)所面臨的問題”很不錯(cuò),但公司里的涉眾想更具體地知道這一努力將如何產(chǎn)生與成本相稱的效益。而且,他們很擅長(zhǎng)分辨ROI預(yù)估里數(shù)字的虛實(shí)。不論 你采用何種方式實(shí)施SOA,假如你希望被認(rèn)真對(duì)待的話,你就必須提供非常實(shí)在的數(shù)字。 \u0026#xD;\n至于SOA路線圖,最近出現(xiàn)了兩種流行的SOA實(shí)施途經(jīng):
\u0026#xD;\n- 企業(yè)級(jí)(自上而下的)SOA實(shí)施途經(jīng):風(fēng)險(xiǎn)很高,最初預(yù)算要幾百萬美元。另外,根據(jù)不同的規(guī)模與復(fù)雜程度,這類項(xiàng)目的耗費(fèi)基本無法準(zhǔn)確預(yù)估。 \u0026#xD;\n
- 草根級(jí)(自下而上的)SOA實(shí)施途經(jīng):將SOA元素(包括服務(wù)和基礎(chǔ)設(shè)施)作為現(xiàn)有業(yè)務(wù)驅(qū)動(dòng)的IT任務(wù)來實(shí)現(xiàn)。這種途徑一般不會(huì)成功。一來,最終得到的服務(wù)僅限于特定的業(yè)務(wù)問題,對(duì)企業(yè)的其他部分來說可能不適用(甚至是錯(cuò)的)。二來,構(gòu)建SOA層所需的時(shí)間與開銷將有損于項(xiàng)目里的其他業(yè)務(wù)需求。 \u0026#xD;\n
Jonathan Mack提出的另一種途徑是:
\u0026#xD;\n逐步構(gòu)建SOA。大部分廠商已經(jīng)覺悟過來,認(rèn)識(shí)到了這是最合理的途徑。然而,這做起來并不容易。企業(yè)服務(wù)總線 (Enterprise Server Bus,ESB)的核心元素——對(duì)不同系統(tǒng)間的信息進(jìn)行轉(zhuǎn)換與轉(zhuǎn)化的能力,以及路由消息的能力——以及用于傳遞消息的消息傳遞基礎(chǔ)設(shè)施,這些必須從一開始 就要具備。公共(共享的)服務(wù)(如登錄、監(jiān)控和異常處理等)也應(yīng)該是最早實(shí)現(xiàn)的。 \u0026#xD;\n SOA圍繞IT業(yè)吵鬧了將近10年,由于整體復(fù)雜性,至今仍沒有萬無一失的成功實(shí)施方案。每一個(gè)新的SOA項(xiàng)目“必須有明確的務(wù)實(shí)態(tài)度,必須對(duì)成功的實(shí)施步驟(及代價(jià))有深入的研究和理解”。
總結(jié)
以上是生活随笔為你收集整理的克服SOA实施过程中的障碍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新浪微博铁粉数量怎么查看 新浪微博铁粉查
- 下一篇: “全裸”:看向京的雕塑艺术展