關于面向服務的架構(SOA)的很多優勢已經廣為人知,包括:降低集成成本、提高資產重復使用率,并且使IT部門能夠更快地對業務中的變化和法規要求作出反應。但是,人們對它的缺陷又了解多少呢?
SOA的先行者們都非常清楚,當企業服務實現關鍵應用時很有可能會產生一些具有挑戰性的問題。SOA是對IT規律的擴展,它既是設計和架構方面的重大改革,也是應用開發和業務上的改進。在這里,一些早期的SOA使用者和相關專家給出了在建設新一代數據中心過程中如何跨越障礙的SOA最佳實踐。
1. 繼續已經開展的流程
Dow Corning公司企業設計師Joseph Gaus指出,了解SOA的起點相當于尋找受眾的過程。他說:“從最開始就應當瞄準那些已經具備多種應用的系統及其用戶?!睂τ贒ow Corning公司的多數關鍵業務流程(例如從訂單到現金的處理流程)而言,SAP 是主系統。在過去,這家專業的化學企業也允許其他系統涉足該流程,例如,該公司一項基于Web的應用允許客戶以在線方式發出訂單。Gaus說:“我們已經習慣于這一流程,而且負責支持該流程的員工也習慣于圍繞該流程建設其他的應用?!贝送?,其他的多種應用也圍繞該流程建立,因此也為重復使用創造了機會。他說:“通過這樣的流程可以更好地體現SOA的價值?!?
2. 切勿忽視互操作性的問題
三年前,當Washington Group International公司開始實施其SOA項目時,標準和工具還遠不像今天這樣成熟。該公司應用集成經理Rich Colton指出,其中非常關鍵的一項挑戰就是建設一系列適用于Java和Microsoft .Net客戶端的Web服務。Colton發現,World Wide Web Consortium(W3C)標準在Java 2平臺企業版中的實施方法與在.Net中的方法是大相徑庭的。例如,這兩種環境處理遠程過程調用(RPC)的方式是完全不同的,而且每一種環境都支持不同的消息負載或內容。他說:“我們在最初就發現互操作性是一個非常關鍵的問題,但實際實施卻沒有那么簡單。W3C標準也不是能夠輕易實現的,因為并不是每一家企業都能夠實施所有的部分?!痹谶^去的幾年中,互操作性已經有了大幅度的改善,但還沒有達到自動化的程度。他說,對于程序員來說,測試工作仍然是相當關鍵的。
3. 不要輕易打開錢包
專業SOA咨詢企業Linthicum Group首席執行官Dave Linthicum認為,當企業的IT部門開始著手實施SOA項目時,最先要考慮的事情往往是購買新的技術。但在投資新的技術平臺之前,IT部門需要清楚地了解所有的信息源并確保以文檔的形式記錄每個系統定義數據的方式。如果沒有做好這些準備工作,企業很可能選擇不適合最終技術布局、服務管理要求和安全戰略的治理工具。他說:“每一件事情都是相互關聯的。企業需要全面了解數據,與數據互操作的服務,以及將它們結合在一起的流程?!?
4. 認真考慮治理的問題
DaVita公司首席應用集成開發主管Bryan Grant指出,為整個企業基礎設施建立一套新的框架并非易事,測試和錯誤都是不可避免的。DaVita是一家通過網絡提供腎透析服務的企業,擁有約1255個門診中心,而且每個中心所生成的數據都會匯集到一個中心地點并且提供給多種應用。開放式的平臺可以允許IT小組重復使用各種應用、提供新的服務并且將各類傳統應用和打包應用結合起來。然而,將這套系統從點對點式的連接方式轉變為更加開放的平臺存在著很大的困難。他說:“要想讓這樣的系統一開放就運轉正常是根本不可能的?!盌aVita目前正集中精力來改善治理的問題,了解哪些系統正在連接,并且確保投入生產的服務真正發揮生產能力。該公司在實現這些目標后才會購買必要的軟件來幫助實現最終的目標。Grant說:“我們過去在治理方面做得并不好?!?
5. 多給員工一點激勵
Gaus說,在過去的幾年中,Dow Corning公司的開發小組在應用元素的提煉、組件庫的建立和代碼的重復使用方面干得非常出色。但是,利用已經經過考慮的方法建立新的應用要比真正采用SOA方法更加簡便,也更節省成本。他說:“在運行和建設新的應用之前,最關鍵的是了解應用需要哪些企業數據,以及需要哪些業務流程,并在這些數據和流程的基礎上建立相應的服務。這個前期的工作所需的成本通常會更高?!彼硎?,為了避免以老方式來做事,公司正在考慮將SOA項目預算中的某個比例,例如5%作為獎金發放給有作為的員工。
6. 更務實的預算有益無害
Linthicum說,“人們都渴望知道應當如何制定預算。但事實上,人們根本不了解預算制定的復雜性,因此,他們常常低估成本?!彼浗ㄗh根據各種變量來確定一份SOA項目定價指導方針,而這些變量通常應當包括數據元素的數量、系統和流程的復雜性,以及所需的新服務等。
通常,與SOA建設項目有關的時間和勞動力是應當考慮的主要因素,而不是購買技術所需的成本。企業常常需要顧問的幫助,而且應當充分利用企業內部的資源。例如,精通架構、安全、數據管理、網絡和應用開發的企業內部員工。在時間的問題上,Linthicum認為SOA項目中每套正常復雜度的系統所需的開發時間應當為三至四個月。如果是一個有六套系統的項目,則需要兩年的時間來完成計劃、注資、部署和完成全過程。如果企業想在這一過程中占據主動地位,就必須在前期花足夠的時間來完成詳細的時間安排和勞動力規劃工作。他說:“如果企業對時間的需求估計不足,參與項目的人員很可能會失去信心,因為超期很可能會使項目超出原有的預算?!?
7. 不要在文檔問題上敷衍了事
DaVita公司的Grant指出,在SOA開發周期的每一個過程中都必須有明確的文檔策略和流程要求。他說:“如果將75%的精力都放在規劃和文檔上,并將剩余25%的精力放在開發工作中,整個項目將會變得更容易管理?!?
8. 注冊并非靈丹妙藥
Washington Group的Colton認為,文檔服務屬性是SOA項目中一個比較麻煩的部分。Colton目前正在實施的一個項目是找到一種方法來同時跟蹤服務相關技術細節,如轉換要求和服務依存關系,并且跟蹤功能問題,如涉及的進程。一些商用的注冊并不能同時提供兩類信息,而且Colton也不希望匆忙地進行不成熟的技術采購。他說:“我們開發了一個電子表格來幫助我們理解所有需要跟蹤的信息。在這一過程中,我們既可以自己解決問題,也可以尋找適合的商用解決方案來滿足需求?!?
9. 不要忘記網絡的問題
Linthicum表示,很明顯,SOA必然會增加網絡的負荷。要想實現合理的網絡設計,性能建模是必不可少的,而很多企業在這方面做的并不到位。他說:“企業可以分析各類服務的行為來建立性能模型,然后將其擴大一萬倍。通過建模,企業可以了解一些情況,包括:要發送的數據包有多少個?網絡最多能夠提供多大的帶寬?”
10. 不必太強調技術
SOA是一項業務行為,因此在溝通時也應當以業務作為討論的重點。Washington Group的Colton談到:“在談話時應當盡量避免IT語言而使用商業語言。沒有人關心它是如何實現的,人們真正關心的是它能夠滿足哪些商業流程的需要?!?
作者:Rich Colton Washington Group International公司 應用集成經理