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

SOA: 規(guī)則先行

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

來源:泛普軟件

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

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

聽起來也許與我們的直覺不太一致,SOA相比其他的開發(fā)模式,組織必須更加強調紀律和原則。直覺告訴我們: 靈活往往意味著更少的規(guī)則或者說約束,然而,實事并非如此。

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

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

SOA治理

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

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

“如果沒有SOA治理,IT人員將會被各種版本Web服務的‘DLL Hell’所折磨,”SOA的注冊軟件提供商Systinet的首席軟件架構師兼創(chuàng)始人Roman Stank說,“SOA治理保證軟件的一致性和可預測性,它保證一個大的應用可以通過一個個小的系統(tǒng)組建而成?!?

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

“如果沒有建立適當的治理模型,大多數組織可能會失敗得很慘?!盉uton集團副總裁Anne Thomas Manes說,“SOA是一種行為,它不是你能夠買得到東西,你必須改變自己的行為方式才能有效果。”

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

確定合適的策略

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

一個好的SOA治理過程應該類似于市民大會,而不是法令的頒布?!霸赟OA治理過程中,組織最容易犯的錯誤就是溝通和協調不足?!盉urton集團的Manes說。

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

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

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

有些組織在企業(yè)軟件架構組中建立了卓越中心(Center of Excellence)或者是其他類似的小組,專門提供資源和指導,充當企業(yè)最佳實踐的知識庫,他們負責使用支持SOA治理流程的各種工具。

加拿大消費者忠誠計劃供應商Andre Hebert就把SOA治理融入它們的日常經營過程中。“我們建立了軟件架構的路線圖,遵循它已成為常識。任何時候提出新項目,或者內外部需要什么新功能,我們都會讓架構委員會來把一下關,” Andre Hebert技術和電子商務副總裁說,“SOA治理已經與企業(yè)每天的活動密不可分了?!?

簡而言之,治理流程應該讓人們更易于用正確的方式做事,而難于用錯誤的方式做事。“建的是學校,而不是監(jiān)獄?!盡indreef公司CTO Mark Ericson說,“目的是幫助人們遵循最佳實踐,而不是約束他們?!?

從標準起步

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

不過,對大多數組織而言,從各種標準開始制定策略是一個不錯辦法。畢竟,正是這些標準讓SOA成為可能。每個企業(yè)都要決定它們在什么時候、什么地方使用什么標準。例如,您的企業(yè)需要WS-Security和WS-Policy標準嗎?在什么樣的情況下需要?

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

上述狀態(tài)本身的意義比較清楚,這里只特別對保持(Sustain)和將廢棄(Sunset)做一些說明?!氨3郑⊿ustain)”的意思是,雖然組織已經決定在相應的領域采用其他標準,然而舊的標準也還可以使用?!皩U棄(Sunset)”意味著,開發(fā)人員應該盡快地從這些標準轉向更實用的標準。

IF可以分別跟蹤各個策略在標準上的快速變化,使得它們易于被管理??傮w而言,IF是一個非常好的起點,畢竟在標準上達成一致是最容易的一項策略。

充分利用SOA治理資產

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

Registry(注冊)軟件是一種基本工具,除了保證一些關鍵的治理活動自動進行外,組織也用它們來對治理的資料進行管理或者就這些資料進行交流。Registry(注冊)工具是服務的引用中心或者是系統(tǒng)的記錄中心??梢园阉O想成這樣的地方: 組織內的供應者在這里把服務廣告出去,而使用者則在這里找到它們所需要的服務——這是保證服務的可用性、版本化,以及符合內外部的各種需求的一個控制點。

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

Registry提供API接口,應用程序可以在運行時找到所需的服務或者與策略保持動態(tài)的聯系。例如,附帶的元數據可以告訴服務的消費者,該服務需要什么樣的安全策略,從而使服務的客戶端能夠動態(tài)地進行調整以適應服務的新要求。

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

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

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

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

執(zhí)行是關鍵

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

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

企業(yè)的項目管理中心常常是執(zhí)行策略的“一站式”機構。項目經理可以指導項目符合各種規(guī)定,同時不給項目帶來太多的負擔。其他辦法還有在進行資金投入之前,由SOA治理小組對項目進行評估。

最重要的是,SOA策略的目標需要和經濟上的激勵措施相結合。否則,要滿足SOA的要求、支持服務很可能會成為一個火藥桶?!霸诂F實生活中,開發(fā)部門常常因為面臨資金和開發(fā)時間的壓力而不愿意或者不去遵循SOA治理的要求。因此,沒有一個有效的治理流程,SOA項目的部署就很難順利進行,特別是在跨部門時,”MIC的首席架構師Bob Laird說,“如果組織中有些部門不支持SOA,SOA的優(yōu)勢就很難發(fā)揮出來?!?

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

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

擬定內部合同

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

“合同把消費者(Consumer)和生產者(Producer)的生命周期聯系起來,”Systinet的Stanek解釋說,“合同是描述雙方需求的一個參考點?!焙贤粌H僅是服務級別的協議,它可以約定消費者的行為,從而讓服務的提供者制定開發(fā)計劃。其目的是讓生產者對消費者的需求有一定了解。

合同對雙方同意遵守的策略進行詳細描述。盡管在合同的表述上目前沒有標準,不過不妨參考用“金、銀、銅”來定義服務的級別,還可以參考一些模板來映射概念和制定的策略。這里的合同與其說是法律文書,還不如說是支持消費者和生產者進行交互的約定。

盡早著手

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

SOA治理始于人們對治理的美好期待,而要真正實現人們心中的目標需要方方面面人員的共同努力,包括設計者、編碼者和服務的使用者,不僅涉及開發(fā)人員,也涉及IT管理者和業(yè)務部門的領導。無論如何,參與者對SOA的認可和支持是目標達成的基礎和前提。

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

發(fā)布:2007-04-22 11:04    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
昆明OA系統(tǒng)
聯系方式

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

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

咨詢:400-8352-114

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

QQ在線咨詢

泛普昆明OA快博其他應用

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