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

SOA: 規(guī)則先行

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

來(lái)源:泛普軟件

為了確保企業(yè)級(jí)SOA項(xiàng)目的成功,必須為SOA項(xiàng)目的開(kāi)發(fā)、部署以及服務(wù)的管理制定相應(yīng)的策略,并保證這些策略得以一一貫徹實(shí)施。

SOA(Service-Oriented Architecture)可以給我們帶來(lái)的好處非常多: 提高代碼的重用性、降低集成成本、更加安全,同時(shí)帶給企業(yè)更大的靈活性。然而,要真正獲得這些好處,除了在編碼時(shí)要保證程序質(zhì)量外,更重要的是人們必須在開(kāi)發(fā)和部署策略和流程上做更多的工作。

聽(tīng)起來(lái)也許與我們的直覺(jué)不太一致,SOA相比其他的開(kāi)發(fā)模式,組織必須更加強(qiáng)調(diào)紀(jì)律和原則。直覺(jué)告訴我們: 靈活往往意味著更少的規(guī)則或者說(shuō)約束,然而,實(shí)事并非如此。

想想今天的汽車(chē)產(chǎn)業(yè): 我們之所以能夠在為福特車(chē)購(gòu)買(mǎi)輪胎時(shí)候,可以不到福特的專(zhuān)賣(mài)店里去購(gòu)買(mǎi)福特牌的輪胎,正是得益于標(biāo)準(zhǔn)化,各種規(guī)范和規(guī)則給了我們很大的靈活性,保證我們可以在其他的地方購(gòu)買(mǎi)輪胎,而根本不用擔(dān)心它們與自己的汽車(chē)不配套。

對(duì)SOA而言,也正是標(biāo)準(zhǔn)化使其具有跨組織的特性。SOA的實(shí)現(xiàn)并非易事,為了確保IT人員不至于被其復(fù)雜性弄得不知所措,業(yè)內(nèi)推出了多種支持軟件,包括注冊(cè)軟件、知識(shí)庫(kù)和運(yùn)行時(shí)的管理系統(tǒng)等,這些軟件將幫助組織貫徹各種規(guī)定的執(zhí)行。然而,實(shí)施SOA需要的遠(yuǎn)不是使用SOA工具這么簡(jiǎn)單,它需要IT部門(mén)甚至整個(gè)組織對(duì)軟件系統(tǒng)的設(shè)計(jì)進(jìn)行認(rèn)真地分析,制定設(shè)計(jì)規(guī)范。

SOA治理

設(shè)計(jì)規(guī)范定義各種接口,統(tǒng)一開(kāi)發(fā)思路,同時(shí)描述各子系統(tǒng)功能劃分,其基本目標(biāo)是提高系統(tǒng)的模塊化程度,以及基于服務(wù)API提供定義良好的抽象模型。在確定設(shè)計(jì)規(guī)范的過(guò)程中,必須與有關(guān)人員進(jìn)行溝通,還應(yīng)該對(duì)此過(guò)程進(jìn)行記錄,而且一旦確定就應(yīng)該嚴(yán)格執(zhí)行。

設(shè)計(jì)規(guī)范及其執(zhí)行通常被稱(chēng)為“策略(Policies)”,SOA策略的制定以及執(zhí)行過(guò)程被稱(chēng)為SOA治理(SOA Governance)。治理與軟件架構(gòu)是相關(guān)的,而且共同發(fā)揮作用: 采用相同的方式進(jìn)行程序編碼、確定標(biāo)準(zhǔn)、進(jìn)行管理為建立最合理的軟件架構(gòu)提供了基礎(chǔ)保證,而SOA治理則為軟件系統(tǒng)的架構(gòu)師和設(shè)計(jì)人員提供所需要的環(huán)境。

“如果沒(méi)有SOA治理,IT人員將會(huì)被各種版本W(wǎng)eb服務(wù)的‘DLL Hell’所折磨,”SOA的注冊(cè)軟件提供商Systinet的首席軟件架構(gòu)師兼創(chuàng)始人Roman Stank說(shuō),“SOA治理保證軟件的一致性和可預(yù)測(cè)性,它保證一個(gè)大的應(yīng)用可以通過(guò)一個(gè)個(gè)小的系統(tǒng)組建而成。”

如果組織中已經(jīng)有了一個(gè)非常良好IT治理,這將為SOA治理提供一個(gè)非常好的基礎(chǔ)。反之,如果組織過(guò)去沒(méi)有建立正式的治理規(guī)則,在向SOA遷移的過(guò)程中,可能需要進(jìn)行更多的改變,包括如何管理開(kāi)發(fā)過(guò)程和運(yùn)轉(zhuǎn)流程等。

“如果沒(méi)有建立適當(dāng)?shù)闹卫砟P?,大多?shù)組織可能會(huì)失敗得很慘?!盉uton集團(tuán)副總裁Anne Thomas Manes說(shuō),“SOA是一種行為,它不是你能夠買(mǎi)得到東西,你必須改變自己的行為方式才能有效果?!?

關(guān)于SOA治理的說(shuō)法往往能讓IT人員很矛盾。開(kāi)發(fā)人員,特別那些具有創(chuàng)新意識(shí)的開(kāi)發(fā)人員就非常擔(dān)心這些策略和規(guī)則會(huì)束縛他們。更糟糕的是,根據(jù)他們的經(jīng)驗(yàn),很多策略往往是不現(xiàn)實(shí)的,他們擔(dān)心治理會(huì)導(dǎo)致瓶頸的出現(xiàn),會(huì)帶來(lái)一些不實(shí)際的、過(guò)于理想化的東西。不過(guò),只要小心,建立一種支持面向服務(wù)架構(gòu)的治理流程,并且給那些遵守這些流程的人以明顯的回報(bào),是完全可能的。

確定合適的策略

Systinet的Stank認(rèn)為,有效的治理依賴(lài)確定策略的過(guò)程,也就是采用何種方式做出決定、為此進(jìn)行溝通并且執(zhí)行這種決定的方式。

一個(gè)好的SOA治理過(guò)程應(yīng)該類(lèi)似于市民大會(huì),而不是法令的頒布?!霸赟OA治理過(guò)程中,組織最容易犯的錯(cuò)誤就是溝通和協(xié)調(diào)不足?!盉urton集團(tuán)的Manes說(shuō)。

做出決定可以采用很多方式,但最終這還是一個(gè)社會(huì)性的過(guò)程,必須基于組織的文化背景。

“像LinkedIn(這是一種類(lèi)似俱樂(lè)部的交友網(wǎng)站,加入者可以在這里結(jié)交很多興趣愛(ài)好相同的人,也可以認(rèn)識(shí)生意伙伴——譯者注)這樣的社會(huì)性軟件系統(tǒng)的產(chǎn)生,有助于SOA治理過(guò)程得到更多人的參與,”Infravio市場(chǎng)部副總裁Miko Matsumura說(shuō),“人是具有社會(huì)性的,這一觀點(diǎn)正在被普遍接受。因此,SOA治理必須按照組織動(dòng)力學(xué)和人在組織中如何表現(xiàn)來(lái)綜合最佳實(shí)踐。”

某大型金融服務(wù)結(jié)構(gòu)的企業(yè)架構(gòu)師描述了缺少溝通會(huì)如何給治理帶來(lái)困難,他說(shuō): “作為企業(yè)IT治理的一部分,如果在企業(yè)中針對(duì)SOA項(xiàng)目建立了一種正式的評(píng)估體系后,就指望那些根本不了解這些策略的開(kāi)發(fā)人員會(huì)遵守和執(zhí)行,是不現(xiàn)實(shí)的。這些策略必須落到紙上,而且讓他們了解,還要說(shuō)清楚對(duì)他們的要求。因此,如果你制定出的策略像納稅代碼那么復(fù)雜或者還要復(fù)雜的話(huà),其結(jié)果一定不會(huì)太好?!?

有些組織在企業(yè)軟件架構(gòu)組中建立了卓越中心(Center of Excellence)或者是其他類(lèi)似的小組,專(zhuān)門(mén)提供資源和指導(dǎo),充當(dāng)企業(yè)最佳實(shí)踐的知識(shí)庫(kù),他們負(fù)責(zé)使用支持SOA治理流程的各種工具。

加拿大消費(fèi)者忠誠(chéng)計(jì)劃供應(yīng)商Andre Hebert就把SOA治理融入它們的日常經(jīng)營(yíng)過(guò)程中?!拔覀兘⒘塑浖軜?gòu)的路線(xiàn)圖,遵循它已成為常識(shí)。任何時(shí)候提出新項(xiàng)目,或者內(nèi)外部需要什么新功能,我們都會(huì)讓架構(gòu)委員會(huì)來(lái)把一下關(guān),” Andre Hebert技術(shù)和電子商務(wù)副總裁說(shuō),“SOA治理已經(jīng)與企業(yè)每天的活動(dòng)密不可分了?!?

簡(jiǎn)而言之,治理流程應(yīng)該讓人們更易于用正確的方式做事,而難于用錯(cuò)誤的方式做事?!敖ǖ氖菍W(xué)校,而不是監(jiān)獄?!盡indreef公司CTO Mark Ericson說(shuō),“目的是幫助人們遵循最佳實(shí)踐,而不是約束他們?!?

從標(biāo)準(zhǔn)起步

策略可以影響服務(wù)生命周期的每一個(gè)環(huán)節(jié),包括設(shè)計(jì)、部署和運(yùn)行。例如,一個(gè)設(shè)計(jì)策略可能是規(guī)定企業(yè)的命名空間,一個(gè)部署策略可能要求生產(chǎn)級(jí)的服務(wù)滿(mǎn)足WS-I(Web Services Interoperability)組織的某些規(guī)定,而一個(gè)運(yùn)行策略可能要求所有部署的服務(wù)必須使用企業(yè)安全基礎(chǔ)設(shè)施進(jìn)行管理。

不過(guò),對(duì)大多數(shù)組織而言,從各種標(biāo)準(zhǔn)開(kāi)始制定策略是一個(gè)不錯(cuò)辦法。畢竟,正是這些標(biāo)準(zhǔn)讓SOA成為可能。每個(gè)企業(yè)都要決定它們?cè)谑裁磿r(shí)候、什么地方使用什么標(biāo)準(zhǔn)。例如,您的企業(yè)需要WS-Security和WS-Policy標(biāo)準(zhǔn)嗎?在什么樣的情況下需要?

你可以在各個(gè)策略中分別采用對(duì)應(yīng)的標(biāo)準(zhǔn),但一個(gè)更好的辦法是建立一個(gè)交互性框架(Interoperability Framework,IF)。建立IF是一種特殊的策略,在IF中可以列出整個(gè)組織范圍內(nèi)使用的全部標(biāo)準(zhǔn),并指出在什么地方使用,以及某個(gè)決議所處的狀態(tài): 批準(zhǔn)(Approved)、實(shí)施(De facto)、剛剛形成(Emerging)、保持(Sustain)、將廢棄(Sunset),或者處于醞釀之中。

上述狀態(tài)本身的意義比較清楚,這里只特別對(duì)保持(Sustain)和將廢棄(Sunset)做一些說(shuō)明。“保持(Sustain)”的意思是,雖然組織已經(jīng)決定在相應(yīng)的領(lǐng)域采用其他標(biāo)準(zhǔn),然而舊的標(biāo)準(zhǔn)也還可以使用。“將廢棄(Sunset)”意味著,開(kāi)發(fā)人員應(yīng)該盡快地從這些標(biāo)準(zhǔn)轉(zhuǎn)向更實(shí)用的標(biāo)準(zhǔn)。

IF可以分別跟蹤各個(gè)策略在標(biāo)準(zhǔn)上的快速變化,使得它們易于被管理??傮w而言,IF是一個(gè)非常好的起點(diǎn),畢竟在標(biāo)準(zhǔn)上達(dá)成一致是最容易的一項(xiàng)策略。

充分利用SOA治理資產(chǎn)

治理流程會(huì)產(chǎn)生策略、XML規(guī)范、WSDL文檔、各種文件和各種其他的東西,它們大都分布在組織內(nèi)的很多地方。有效的交流意味著不僅僅是將這些東西E-mail給別人或者把它們發(fā)不到網(wǎng)站上。為了提高可用性,治理的內(nèi)容應(yīng)該是可搜索、被版本化的,準(zhǔn)確地說(shuō)就是容易被借鑒和參考的。而且,其中大部分的內(nèi)容還應(yīng)該以一種電腦可以動(dòng)態(tài)查找或綁定的格式保存。

Registry(注冊(cè))軟件是一種基本工具,除了保證一些關(guān)鍵的治理活動(dòng)自動(dòng)進(jìn)行外,組織也用它們來(lái)對(duì)治理的資料進(jìn)行管理或者就這些資料進(jìn)行交流。Registry(注冊(cè))工具是服務(wù)的引用中心或者是系統(tǒng)的記錄中心。可以把它設(shè)想成這樣的地方: 組織內(nèi)的供應(yīng)者在這里把服務(wù)廣告出去,而使用者則在這里找到它們所需要的服務(wù)——這是保證服務(wù)的可用性、版本化,以及符合內(nèi)外部的各種需求的一個(gè)控制點(diǎn)。

有些供應(yīng)商提供一種稱(chēng)為“Repository-Registry”的工具軟件,這些軟件可以用來(lái)保存服務(wù)所需的WSDL文檔以外的元數(shù)據(jù)。因?yàn)镽epository和Registry軟件對(duì)于開(kāi)發(fā)流程非常重要,所以應(yīng)該采用那些能和組織的開(kāi)發(fā)環(huán)境緊密集成的軟件。例如,如果你采用Eclipse開(kāi)發(fā)環(huán)境,就應(yīng)該選擇那些有Eclipse插件的Registry軟件。

Registry提供API接口,應(yīng)用程序可以在運(yùn)行時(shí)找到所需的服務(wù)或者與策略保持動(dòng)態(tài)的聯(lián)系。例如,附帶的元數(shù)據(jù)可以告訴服務(wù)的消費(fèi)者,該服務(wù)需要什么樣的安全策略,從而使服務(wù)的客戶(hù)端能夠動(dòng)態(tài)地進(jìn)行調(diào)整以適應(yīng)服務(wù)的新要求。

如果運(yùn)行策略能夠在Web服務(wù)管理系統(tǒng) (Web Services Management,WSM)表示,效率將是最高的,Actional、AmberPonit、Blue Titan以及其他的SOA軟件供應(yīng)商都提供類(lèi)似的產(chǎn)品。大多數(shù)WSM產(chǎn)品可以保證運(yùn)行時(shí)SOAP包滿(mǎn)足某些條件。例如,WSM可以保證某些服務(wù)必須采用一種專(zhuān)門(mén)的安全協(xié)議,或者它們必須被封裝在符合某種特殊規(guī)范的XML文檔中。

這樣的WSM系統(tǒng)是最理想的: 它不僅讓人們管理策略、進(jìn)行版本化,以及在設(shè)計(jì)和運(yùn)行時(shí)發(fā)現(xiàn)策略,而且還能提高策略的重用性。同時(shí),能獨(dú)立地為某個(gè)特殊的服務(wù)制定和管理策略,這一特性有助于充分利用現(xiàn)有的策略資產(chǎn)。

一般而言,企業(yè)應(yīng)該盡可能地實(shí)現(xiàn)治理流程的自動(dòng)化。這需要企業(yè)在人力、組織保證和工具上進(jìn)行投資,從而為企業(yè)實(shí)施SOA創(chuàng)造條件。如果執(zhí)行得當(dāng),治理流程和相關(guān)的基礎(chǔ)設(shè)施很可能是企業(yè)在部署SOA項(xiàng)目時(shí)惟一需要集中的要素。

規(guī)則的執(zhí)行貫穿到設(shè)計(jì)到運(yùn)行的整個(gè)過(guò)程治理策略(Governance Polices)包括規(guī)則的制定和執(zhí)行。規(guī)則的執(zhí)行貫穿到設(shè)計(jì)到運(yùn)行的整個(gè)過(guò)程,而運(yùn)行階段除了涉及到服務(wù)的提供者外,還涉及到服務(wù)的消費(fèi)者。 

執(zhí)行是關(guān)鍵

如果沒(méi)有人監(jiān)督實(shí)施,各種建筑規(guī)范本身并不能保證大樓的安全和舒適。與此類(lèi)似,除非得到貫徹執(zhí)行,否則,SOA策略就一文不值。

有些策略可以在WSM中形成規(guī)則,或者單獨(dú)開(kāi)發(fā)系統(tǒng),這樣可以保證得到自動(dòng)執(zhí)行。但也有些策略主要用于改變和規(guī)范人們的行為,如規(guī)定在生產(chǎn)級(jí)的應(yīng)用中使用的服務(wù)必須在生產(chǎn)注冊(cè)中心進(jìn)行登記,就難于保證它被自動(dòng)執(zhí)行。

企業(yè)的項(xiàng)目管理中心常常是執(zhí)行策略的“一站式”機(jī)構(gòu)。項(xiàng)目經(jīng)理可以指導(dǎo)項(xiàng)目符合各種規(guī)定,同時(shí)不給項(xiàng)目帶來(lái)太多的負(fù)擔(dān)。其他辦法還有在進(jìn)行資金投入之前,由SOA治理小組對(duì)項(xiàng)目進(jìn)行評(píng)估。

最重要的是,SOA策略的目標(biāo)需要和經(jīng)濟(jì)上的激勵(lì)措施相結(jié)合。否則,要滿(mǎn)足SOA的要求、支持服務(wù)很可能會(huì)成為一個(gè)火藥桶。“在現(xiàn)實(shí)生活中,開(kāi)發(fā)部門(mén)常常因?yàn)槊媾R資金和開(kāi)發(fā)時(shí)間的壓力而不愿意或者不去遵循SOA治理的要求。因此,沒(méi)有一個(gè)有效的治理流程,SOA項(xiàng)目的部署就很難順利進(jìn)行,特別是在跨部門(mén)時(shí),”MIC的首席架構(gòu)師Bob Laird說(shuō),“如果組織中有些部門(mén)不支持SOA,SOA的優(yōu)勢(shì)就很難發(fā)揮出來(lái)?!?

SOA策略的執(zhí)行還應(yīng)該根據(jù)反饋進(jìn)行調(diào)整。如果發(fā)現(xiàn)某個(gè)服務(wù)或者某個(gè)流程不符合要求,需要對(duì)此進(jìn)行修改。另一方面,不符合要求也有可能表明某個(gè)策略過(guò)于嚴(yán)格或者表述得不是很清楚。應(yīng)該確保反饋流程順暢,這有助于對(duì)策略進(jìn)行調(diào)整和改善。

同樣,無(wú)論策略考慮得多么周全,有時(shí)候開(kāi)發(fā)人員為了組織利益的最大化在執(zhí)行策略時(shí)還是會(huì)有例外發(fā)生。應(yīng)該保證每個(gè)策略都有一個(gè)提出例外和批準(zhǔn)例外的規(guī)定流程。通常會(huì)依據(jù)角色,制定一個(gè)策略負(fù)責(zé)人,他(她)有權(quán)批準(zhǔn)例外。

擬定內(nèi)部合同

策略不應(yīng)該非常寬泛,而應(yīng)該是具體針對(duì)服務(wù)的各種規(guī)則,因而最好用某種形式的合同來(lái)表述。這聽(tīng)起來(lái)有些奇怪,在你的組織中一個(gè)部門(mén)和另一個(gè)部門(mén)訂立合同。然而,這些合同可以保證提供者交付的是服務(wù),而不僅僅是程序代碼。

“合同把消費(fèi)者(Consumer)和生產(chǎn)者(Producer)的生命周期聯(lián)系起來(lái),”Systinet的Stanek解釋說(shuō),“合同是描述雙方需求的一個(gè)參考點(diǎn)?!焙贤粌H僅是服務(wù)級(jí)別的協(xié)議,它可以約定消費(fèi)者的行為,從而讓服務(wù)的提供者制定開(kāi)發(fā)計(jì)劃。其目的是讓生產(chǎn)者對(duì)消費(fèi)者的需求有一定了解。

合同對(duì)雙方同意遵守的策略進(jìn)行詳細(xì)描述。盡管在合同的表述上目前沒(méi)有標(biāo)準(zhǔn),不過(guò)不妨參考用“金、銀、銅”來(lái)定義服務(wù)的級(jí)別,還可以參考一些模板來(lái)映射概念和制定的策略。這里的合同與其說(shuō)是法律文書(shū),還不如說(shuō)是支持消費(fèi)者和生產(chǎn)者進(jìn)行交互的約定。

盡早著手

在SPA項(xiàng)目早期治理很容易被忽略。這在SOA項(xiàng)目的試驗(yàn)階段影響不大,但隨著服務(wù)開(kāi)始進(jìn)入生產(chǎn)階段,情形就會(huì)大不一樣。事實(shí)上,很多組織不是從一開(kāi)始就考慮到治理,而是到事情發(fā)展到不可收拾了才想到它。

SOA治理始于人們對(duì)治理的美好期待,而要真正實(shí)現(xiàn)人們心中的目標(biāo)需要方方面面人員的共同努力,包括設(shè)計(jì)者、編碼者和服務(wù)的使用者,不僅涉及開(kāi)發(fā)人員,也涉及IT管理者和業(yè)務(wù)部門(mén)的領(lǐng)導(dǎo)。無(wú)論如何,參與者對(duì)SOA的認(rèn)可和支持是目標(biāo)達(dá)成的基礎(chǔ)和前提。

AmberPoint產(chǎn)品戰(zhàn)略副總裁Ed Horst認(rèn)為,企業(yè)應(yīng)該盡早建立治理的基礎(chǔ)設(shè)施?!氨M可能早地引入管理、注冊(cè)和安全的工具,哪怕只有一點(diǎn)點(diǎn),這對(duì)養(yǎng)成良好的習(xí)慣非常重要。一旦在這些方面養(yǎng)成了壞習(xí)慣,隨著SOA項(xiàng)目規(guī)模的擴(kuò)大,將會(huì)大大增添治理的復(fù)雜性。比如,如果沒(méi)有部署管理系統(tǒng),開(kāi)發(fā)人員就可能把管理邏輯硬編碼到Web服務(wù)中,這要花時(shí)間。更重要的是,當(dāng)他們?cè)谡嬲墓芾硐到y(tǒng)下部署SOA項(xiàng)目時(shí),也不知道如何獲得管理信息。” (ccw)

發(fā)布:2007-04-22 11:04    編輯:泛普軟件 · 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樓

咨詢(xún):400-8352-114

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

QQ在線(xiàn)咨詢(xún)

泛普昆明OA快博其他應(yīng)用

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