key words: SOA
come from
here2004年5月12日據業內分析,面向服務的架構(SOA)的基本概念--重用性和互用性--已經提出了大約20年。那么SOA具有哪些新的特色呢?為什么其他技術和標準都慘遭失敗,而SOA卻能夠成功呢?BEA的首席信息官Rhonda Hocker回答了有關SOA如何發揮IT潛力方面的問題。
問:您認為SOA的哪些方面在其成功中起到了至關重要的作用?
答:第一點就是靈活性。就長期以來在廣大公司中的知名度而言,SOA可能名列IT架構第一,而內容一直在變化。一個SOA實質上就是一套松散耦合的服務。在必要的情況下,每一項服務都可以進行構造和替換,而相關的費用很低。松散耦合甚至還可以讓架構適應一些改變,并不像傳統的緊耦合架構表現得那么脆弱;在一個SOA中,您能夠使用一種服務替換另一種服務,無需考慮下列技術:接口問題,它是否在Web服務和XML的通用標準中已經定義。這就是通過互用性所體現出來的靈活性。靈活性還表現為利用現有資產、遺留應用程序和數據庫的能力,通過將他們擴展到SOA中,而非進行替換,使其成為整個企業解決方案的組成部分。最終結果就是具備快速高效發展的能力,換句話說,就是按照業務需求"有機地"進行適應。這就是真正的新特色。
第二點就是"業務相關性":SOA就是最終表現為對業務人員意義重大這一層面上的IT架構。如果您也相信IT架構的核心問題就是業務和IT專家的聯盟和協作,那么這就是關鍵。今天的SOA服務能夠完成映射為業務流程活動的各部分工作:例如,想起一個命名為"更新客戶訂單狀態"的服務。這種服務與那些能夠參與創造和使用這些服務定義新流程的業務分析人員密切相關,因而能夠形成那種服務驅動型的企業。因為Web服務已將其大部分技術作了摘要,所以幾乎不再需要技術說明。公司和IT業能夠將關注的重點轉移到業務邏輯和通訊上。他們最終共享"服務"的通用語言。也就是說,是真正的新特色,在IT架構的交付中具有深刻的蘊涵。
問:您認為什么是SOA成功的最大障礙呢?
答:SOA是新型IT架構的藍圖。由于總是伴隨著大的變化發生,因此最大的障礙就是組織,而非技術。主要包括以下幾個方面:
管理:共享服務是SOA方法的核心。這種快速組裝應用或編排流程的能力是在一些現有的能被共享的服務的基礎上實現的。共享資源需要進行管理。
開發文化:切換到SOA要求開發風格發生極大的變化。大多數開發人員仍然適應那種將每一個應用程序作為一個獨立的問題解決的方式。目前可以重用的代碼還非常少。在SOA中,開發人員需要編寫自己的應用程序,同時還要留意要讓自己編寫的代碼可以重用,不僅包括使用現有代碼,還要包括計劃在未來的應用程序中重用他們的代碼。
業務流程架構技能:SOA方法讓公司和IT合作伙伴能夠在業務流程的創造中完成更高效率的協同工作。他們的成功將有賴于其實施業務流程架構的技能。也需要他們靈活應對業務流程并且要將自己看作是業務流程架構設計師。
這些方面的確都具有極大的挑戰性,但是便于管理。最后,那些善于管理,IT和業務人員知道如何有效合作,流程和架構技能受到重視的公司將會從自身的SOA中得到更多的回報。這幾乎是最好的方式,它有助于解決IT 問題。
問:現在的SOA與以前的集成/連通標準,如CORBA有哪些不同之處?
答:很好,我將會用案例說明以上我所描述的兩個SOA有別于其他標準的優點。問題是為什么分布式架構中的CORBA和其他方法無法表現出這些優點呢?
高度概括性的回答就是:CORBA比SOA具有更大的技術難度,在其執行過程中需要強大的技能和知識支持。那些技能十分貧乏,如果沒有真正的CORBA標準將會無濟于事。而比較而言,SOA簡單,基于真正通用的標準。這就確保了構造它們的這些技能是廣泛可用的。
更為詳細的回答請您查看他們的架構方法和原理的基本差別。
在一個SOA中,分布式資產就是"粗粒度"服務,它可以完成一些非常有用的功能,如"更新客戶訂單狀態"。使用CORBA,分布式資產就是一些對象,每個對象都擁有自己的屬性和方法。例如,訂單對象具有"狀態"屬性和"更新"方法。這樣對架構設計師而言是相當繁瑣的,它需要具有很高水平的知識和技能。在這種細粒度級別之下很難保證一致性。而使用SOA,會控制少和動力少,卻易于管理。這種方法在技術上并不是非常強大,但在IT成功方面的組織和人員角色上卻體現出了相當的敏捷度。
問:為什么SOA會成功而CORBA會導致失敗呢?
答:SOA會成功主要取決于合作伙伴的幫助。就重用效率或企業廣泛一致性而言,由中心IT組織獨立推動的架構都無法在長時間的運行中獲得成功。我認為使用SOA,我們將會擁有第一個業務合作伙伴幫助推動企業架構的實例。這不是因為他們喜歡架構本身,而是因為他們的支持是基于SOA的業務相關性的,很快就可以從結果上看出,開發生命周期改變了它的重點,由原來較長的交付周期應用程序的交付轉變成小單元代碼--服務的交付和集成。持續的結果將使業務合作伙伴效忠于這種方法。
問:Java在SOA的潛在成功中起到了什么作用?
答:Java作為實現服務的最流行的編程標準,是非常重要的。Java社區的規模和技能保證大量高質量的技能可以用于構造SOA。這就是Java實現幫助SOA成功的方式。也就是說,Java只是實現服務的一種方式。沒有一個大的IT組織會只運作一個單一的編程標準。有利的方面就是使用SOA您不需要一個單一的編程標準。服務范例的定義只能以Web服務和XML的接口標準識別出這種內在的多相性并設立需求。