1. 程式人生 > >soa文章摘抄

soa文章摘抄

企業服務 超過 新版本 構造 合作 模型 ask soa架構 portlet

from: http://blog.vsharing.com/fengjicheng/MC19136/

淺析深究什麽是SOA? (入選推薦日誌,加10幣)淺析深究什麽是SOA?

金蝶中間件有限公司總經理 奉繼承 博士

閱讀提示:

本文探討SOA概念背後的核心內涵,如何將SOA落地的實務方法。

金蝶中間件作為全球領先的SOA解決方案供應商,擁有中國唯一全球第四通過Java EE 5.0認證的SOA基礎平臺;中國唯一完整實現TOG-SOA標準模型的中間件解決方案;與北京大學合作,國家“核高基”科技重大專項成果,承擔振興國家基礎軟件的責任和使命; 中國唯一入選Gartner全球有能力提供SOA服務的十九家軟件廠商。本文就是根據金蝶中間件readySOA解決方案整理而成的通俗科普文章。

本文介紹的主要內容包括:為什麽需要SOA;如何準確理解SOA;SOA如何落地;介紹金蝶中間件ready SOA解決方案。

1.背景

IT行業就是術語和縮寫流行的行業,各大廠商都喜歡隔三差五地推出一些新概念。為了不落人後,大家都喜歡爭先恐後地跟進。有深入研究、務實研發的供應商,能夠將概念落地,不斷推出創新的產品和服務,贏得競爭優勢。但“貼標簽”的也大有人在,而且趨勢是越貼越多,跟風炒作,“魚目混珠,泥沙俱下”,以至於“混繞視聽”了。

SOA就是這俱多“三字母”縮寫的概念之中的最流行和熱門的一個。但目前,SOA概念和解決方案,話語權方面基本上被國外巨頭所控制,特別是大的中間件廠商。

但是真正能夠完整實現SOA的落地解決方案和案例很少,刻意包裝的成分比較多,特別是應用架構方面。重技術,輕方法論,造成企業實施SOA缺乏足夠的架構方法、SOA治理、SOA實施運維方面的最佳實踐,因此企業實施SOA缺乏系統的指導。

另一方面,國內的不少軟件企業,由於不能提供完整意義上的SOA解決方案,只能提供部分的組件,小部分特性符合SOA思想,所以就任意曲解SOA的含義,隨意解析SOA的概念。以至於國內沒有一家軟件企業不宣傳SOA,不宣稱其產品符合SOA架構的。由此造成,許多企業和客戶對SOA是非常茫然的,對SOA的價值也轉向懷疑和抵觸。

這種廠商之間的無序競爭,不利於國內企業的自主創新,也不利於企業導入和實施有效的SOA,實現SOA的商業價值。

本文試圖就SOA的來龍去脈,外延內涵和前世今生,來一個全面的闡釋。一家之言,權作業界參考,希望帶動大家做一些更深入的思考。文章比較長,如果興趣不夠,也可以就此打住。

2.為什麽需要SOA

SOA的出現不僅僅是廠商炒作的結果,本質上是兩種力量驅動的結果:需求拉動、技術推動。業務需求的拉動,希望解決業務應用的問題;技術發展的推動,使得SOA具備了技術上的可行性,軟件技術的發展推動了IT創新的商業價值。

2.1.需求拉動

需求拉動方面,主要來自於兩種信息化的困境。一個是“信息孤島”造成基於系統之間互聯互通的整合需求;另一個是業務的變化所導致對IT靈活性,以適應變化的需求。

目前國內外基本情況類似,經過30年的信息化建設,許多企業和政府部門都在不同時期、應用不同技術、與不同的廠商合作,建設了不同規模的應用系統,造成了信息化不是沒有系統,而是信息孤島太多的問題,而且不是沒有數據,而是信息不一致,難以整合。因此,互連互通是當前信息化中的核心問題和核心需求。順便說一句,那些認為中國企業的信息化起步晚,歷史負擔少,可以快速部署全新SOA,可以運用推倒重來的策略是不了解中國企業信息化,自我想當然的結果。事實上,我國信息化無論是金融、電信、電力等大行業,還是中小工商企業,“孤島現象”還是非常嚴重,遺留系統的整合不一定就少,而且我國軟件供應商的系統普遍架構能力比較弱,整合難度一點也不低。

這種互聯互通需求,既包括企業內的各種應用系統之間的集成,也包括集團企業總部與下屬企業、企業與上下遊夥伴之間的業務協同。

技術分享

企業內互聯互通的需求

另一方面,激烈的競爭和產業變革,需要企業不斷調整其組織、流程和商業模式,以獲得競爭優勢,造成業務的不斷變化,而且隨著經濟全球化,這種變革的步伐在不斷加快。但僵化的IT基礎設施難以迅速響應這種變化,造成IT與業務的不平衡和不匹配。因此,IT的靈活性以適應業務變革的需求,也是當前信息化建設過程中所面臨的最大挑戰。而且這方面的變革速度和變革幅度比國外許多企業都要大得多,畢竟我們的企業還是在快速成長,快速成熟的過程之中。

技術分享

業務靈活性的需求需要一種新的架構技術來支撐企業實現其快速的靈活應變的業務戰略。傳統的信息化方法和軟件研發方法是基於業務需求的直接映射。這種需求驅動的信息系統最大的缺陷就是對變化的適應性差,這也是傳統軟件工程造成的“軟件危機”最直接的表現。如果要滿足業務需求的柔性,就需要按照架構驅動,對業務進行適當的抽象,通過服務的表達和業務過程的原子化,來滿足系統是按照企業架構來構造,這種架構是動態重構技術來支撐的,我們今天知道了,這種架構就是SOA。

2.2.技術推動

軟件出現最早是用於科學計算,然後是計算機輔助設計、輔助制造等等工業應用。在企業管理領域大規模應用後,業務需求不斷的變化、系統不斷增加、流程更復雜、系統越來越不堪重負,出現了需求交付方面的重大挑戰,以至於人們用“軟件危機”來描述軟件工業所面臨的困境。

軟件技術發展過程中,一直在尋求解決四個基本問題的方法:質量問題、效率問題、互操作問題、柔性構造問題。這些問題今天依然困擾著軟件行業。

造成這個局面的原因是異構性和標準規範的滯後。

  • 屏蔽異構性

異構性表現在計算機的軟硬件之間的異構性,包括硬件(CPU和指令集、硬件結構、驅動程序等),操作系統(不同操作系統的API和開發環境)、數據庫(不同的存儲和訪問格式)等等。長期以來,高級語言依賴於特定的編譯器和操作系統API來編程,而他們是不兼容的,因此軟件必須依賴於開發和運行的環境。

造成異構的原因源自市場競爭、技術升級以及保護投資等因素。希望屏蔽異構平臺的差異性問題是促成中間件發展的驅動力之一。而支持SOA架構的中間件平臺,已經在很大程度上屏蔽了系統環境的差異性,提供了一致的計算環境。

  • 實現互操作

因為異構性,產生的結果是軟件依賴於計算環境,使得各種不同軟件之間在不同平臺之間不能移植,或者移植非常困難。而且,因為網絡協議和通信機制的不同,這些系統之間還不能有效地相互集成。

造成互操作性不好的原因,主要是標準的滯後。解決軟件之間的互操作性問題也是促成中間件發展的驅動力之一。而SOA技術從一開始就強調了標準的重要性,包括中間件平臺的實現上都是基於全球共同的標準來實現。

  • 共性凝練和復用

軟件應用領域越來越多,相同領域的應用系統之間許多基礎功能和結構是有相似性的,每次開發系統都從零開始絕對不是一種好的方法,也是對質量和效率的很大的傷害。

盡可能多地凝練共性並復用以提高軟件開發效率和質量,通過中間件通過提供簡單、一致、集成的開發和運行環境,簡化分布式系統的設計、編程和管理,這也是SOA發展的重要推動力。

軟件技術發展內容,包括更好的程序設計語言、更好的平臺和軟件開發技術,如面向對象、組件開發、面向服務等等。而這方面,在技術上逐漸發展的成果大部分都凝聚在今天的SOA解決方案之中。 技術分享 程序設計語言的發展

而這些技術推動因素,從本質上是通過復用、松耦合、互操作(標準)等機制來提高軟件質量、加快軟件研發效率、使研發出來的產品能夠相互集成並靈活適應變化。

這些技術因素逐漸推動了SOA架構的形成和發展。

技術分享


SOA架構的發展

3.如何準確理解SOA

我並不打算介紹SOA的定義,事實上到現在為止,還沒有一個權威的SOA標準定義,因為從不同角度,不同廠商和學術團隊會有不同的答案。爭論定義本身,不是目的。

OASIS(一個SOA標準組織)給予出的SOA定義“SOA是一個範式,用於組織和利用可能處於不同所有權範圍控制下的分布式系統。”

維基百科給出的SOA定義“面向服務的體系結構(Service-oriented architecture)是構造分布式系統的應用程序的方法。它將應用程序功能作為服務發送給最終用戶或者其他服務。它采用開放標準、與軟件資源進行交互並采用表示的標準方式。”。

這些定義本身,一般人員要準確理解是非常困難的,既便是專業人士,未必能夠深刻理解其內涵。如何更加形象理解SOA?怎麽通俗化解析SOA的核心含義?

3.1.如何形象理解SOA

事實上,SOA的思想我國很早就有了,印刷術的發展過程其思想就完整體現了SOA的核心含義。

印刷的內容――文字,在秦始皇統一六國之前,各國的文字是不統一的,據說許多常用的文字有十幾種寫法和讀音,妨礙了各國之間的文化交流,就象SOA之前,各種軟件平臺、各種開發工具和各種接口的組件之間,沒有統一的標準,對軟件系統之間的整合造成巨大的困難。

因此,偉大的始皇帝統一了六國文字,“書同文、車同軌”就是通過標準解決“復用”和“互操作”等問題。這也為大規模的印刷和文明發展提供了一個良好的基礎,這種“統一封裝”的文字,對文化交流起到了一個“互操作”的標準作用。

技術分享
SOA的形象解析

在沒有印刷術之前,書籍要依賴於手工抄寫,這樣效率當然是非常低下,而且質量也不能獲得一致性的保證,也就是書籍還無法“復用”。中國人首先發明了刻版印刷術,就是將書籍刻成一塊一塊的凸字版,然後就可以大規模進行印刷了,當印刷出來的書籍脫銷時,下次還可以繼續使用,大大提高了效率,這就是“復用”,軟件通過組件的封裝,也可以達到重復和在不同場合多次使用的“復用”效果。

刻版印刷術有個很大的問題就是文字之間是緊耦合的,同樣一個字,在另一部書之中是不能“復用”的,必須重新雕刻,也就是說刻版印刷是沒有“編排”特性的。就如軟件技術中微軟VB開發的Com+組件就只能在Windows環境之中使用,它不能與Java開發的EJB組件進行復用和編排,因為他們與開發環境和運行環境是緊耦合的,要在UNIX環境下使用,必須重新開發(相當於重新“刻版”)。活字印刷就是通過文字與版面之間的松耦合,通過“排版”來實現一部書的印刷版面的,這種松耦合就大大提高了文字的字模之間的復用和編排效率。我們標準封裝的“服務”就類似一個一個的字模,通過服務編排(“排版”)來實現業務流程。

統一文字和活字印刷促進了人類文明進步,而SOA促進全球IT架構和應用的革命。

3.2.SOA的核心要素

要準確全面理解SOA,首先必須理解SOA的核心要素:

技術分享 SOA的核心要素 SOA的目標就是實現靈活可變的IT系統。要達到靈活性,通過三個途徑來解決:標準化封裝、復用、松耦合可編排。 互操作(標準化封裝)、復用、松耦合等SOA技術的內在機制,也是中間件技術和產品的本質特征。
  • 標準化封裝(互操作性)

傳統軟件架構,因為封裝的技術和平臺依賴性,一直沒有徹底解決互操作問題。互聯網前所未有的開放性意味著各節點可能采用不同的組件、平臺技術,對技術細節進行了私有化的約束,構件模型和架構沒有統一標準,從而導致架構平臺自身在組件描述、發布、發現、調用、互操作協議及數據傳輸等方面呈現出巨大的異構性。各種不良技術約束的結果是軟件系統跨互聯網進行交互變得困難重重,最終導致了跨企業/部門的業務集成和重組難以靈活快速的進行。

在軟件的互操作方面,傳統中間件只是實現了訪問互操作,即通過標準化的API實現了同類系統之間的調用互操作,而連接互操作還是依賴於特定的訪問協議,如JAVA使用RMI,CORBA使用IIOP等。而SOA通過標準的、支持Internet、與操作系統無關的SOAP協議實現了連接互操作。而且,服務的封裝是采用XML協議,具有自解析和自定義的特性,這樣,基於SOA的中間件還可以實現語義互操作。

SOA要實現互操作,就是通過一系列的標準族,來實現訪問、連接和語義等各種層面的互操作。

  • 軟件復用

軟件復用,即軟件的重用,也叫再用,是指同一事物不作修改或稍加改動就多次重復使用。從軟件復用技術的發展來看,就是不斷提升抽象級別,擴大復用範圍。最早的復用技術是子程序,人們發明子程序,就可以在不同系統之間進行復用了。但是,子程序是最原始的復用,因為這種復用範圍是一個可執行程序內復用,靜態開發期復用,如果子程序修改,意味著所有調用這個子程序的系統必須重新編譯、測試和發布。

技術分享


SOA的復用

為了解決這個問題,人們發明了組件(或者叫控件),如MS操作系統下的DLL組件。組件將復用提升了一個層次,因為組件可以在一個系統內復用(同一種操作系統),而且是動態、運行期復用。這樣組件可以單獨發展,組件與組件調用者之間的耦合度降低。

為解決分布式網絡計算之間的組件復用,人們發明了企業對象組件,如(Com+,.NET,EJB等),或者叫分布式組件。通過遠程對象代理,來實現企業網絡內復用,不同系統之間復用。

傳統架構的核心是組件對象的管理。但分布式組件也是嚴重依賴其計算環境,由於構件實現和運行支撐技術之間存在著較大的異構性,不同技術設計和實現的構件之間無法直接組裝式復用。

而現代SOA的重要特征就是以服務為核心,如WebService,SCA/SDO等。通過服務,或者服務組件來實現更高層次的復用、解耦和互操作,即SOA架構中間件。

因為服務是通過標準封裝,服務組件之間的組裝、編排和重組,來實現服務的復用。而且這種復用,可以在不同企業之間,全球復用,達到復用的最高級別,並且是動態可配置的復用。

  • 耦合關系

SOA架構在松耦合解耦過程也發展到了最後的境界。傳統軟件將軟件之中核心三部分網絡連接、數據轉換、業務邏輯全部耦合在一個整體之中,形成“鐵板一塊”的軟件,“牽一發而動全身”,軟件就難以適應變化。分布式對象技術將連接邏輯進行分離,消息中間件將連接邏輯進行異步處理,增加了更大的靈活性。消息代理和一些分布式對象中間件將數據轉換也進行了分離。而SOA架構,通過服務的封裝,實現了業務邏輯與網絡連接、數據轉換等進行完全的解耦。

技術分享
SOA不斷解耦的過程

總之,從科學哲學的角度來看,SOA是一個不斷解構的過程,傳統軟件強調系統性,耦合度過高,所以需要松耦合(解耦);SOA也是一個組件粒度的平衡,集成電路趨勢是集成度越來越高,軟件發展的趨勢是相反的過程;SOA是架構,更是方法,反映了人們對哲學思想的追求的原動力。

按照這個特性,SOA基本上來說與WebService並不是同一個概念,SOA並不一定需要WebService實現,理論上可以在其他技術體系下,實現SOA。但事實上,到目前為止,能夠實現SOA架構風格的技術就是WebService,因為它的特性和廠商的支持力度,使得WebService成為了實現SOA實現技術的事實標準。也正因為WebService技術的成熟,才使得已經提出10多年了的SOA思想和概念,得以能夠實現落地,成為一種可以使用的技術。這也就是回答了SOA和WebService的關系。

3.3.SOA的架構框架(Framework)

SOA的核心主體是服務。所謂“服務(Service)”,從業務角度而言,服務是一個可重復的經過標準封裝的任務,例如: 檢查帳號余額;開新帳戶等等…。SOA的目標是通過服務的流程化來實現業務的靈活性,所謂流程(Process)是由一系列相互關聯的任務所組成,實現一個具體的業務功能。一個流程可以由一系列服務來實現。

技術分享
SOA治理

服務就像一堆“元器件”,這些元器件通過封裝形成標準服務,他們有相同的接口和語義表達規則。但服務要組裝成一個流程和應用,還需要有效的“管理”,包括如何註冊服務、如何發現服務、如何包裝服務的安全性和可靠性,這些就是SOA治理。SOA治理乃是將SOA這一堆元器件,進行有效組裝,形成一個“產品”的關鍵,否則它永遠是一堆器件,而無法形成一個有機整體。

SOA治理的方法和體系,就是區別於一般組件開發的技術的重要區別和特征。

一個正確的框架,是指導我們開發和實施SOA架構的基礎。由IBM提案,國際開放群組(The Open Group)提出了一個SOA架構的參考模型,這個架構框架目前是產業界最權威和嚴謹的SOA架構標準。The Open Group是一個非營利標準化組織,是一個廠商中立和技術中立的機構,致力於提出各種技術框架和理論結構,致力於促進全球市場的業務效率。The Open Group已有超過20年的標準制定與推廣歷史。在1996年,由X/Open與Open Software Foundation合並組成。The Open Group最有名是作為UNIX商標的認證機構。在過去,協會最出名的是其出版的Single UNIX Specification,它擴充了POSIX標準而且是UNIX的官方定義,其成員包括IT用戶、供應商以及政府機構。The Open Group在中國的創始會員為金蝶集團,金蝶集團負責成立了中國分會。TOG在1993年提出的The Open Group Architecture Framework (TOGAF) 架構框架,是一套行之有效的企業架構。歷經15年9個版本發展,支持開放、標準的SOA參考架構,已被80%的福布斯( Forbes)全球排名前50的公司使用。這個SOA參考模型為:

技術分享
SOA標準模型 根據這個模型,完整的SOA架構由五大部分組成,分別是:基礎設施服務、企業服務總線、關鍵服務組件、開發工具、管理工具等。 SOA基礎實施是為整個SOA組件和框架提供一個可靠的運行環境,以及服務組件容器,它的核心組件是應用服務器等基礎軟件支撐設施,提供運行期完整、可靠的軟件支撐。

企業服務總線是指由中間件基礎設施產品技術實現的、通過事件驅動和基於XML消息引擎,為SOA提供的軟件架構的構造物。企業服務總線ESB提供可靠消息傳輸、服務接入、協議轉換、數據格式轉換、基於內容的路由等功能,屏蔽了服務的物理位置,協議和數據格式。在SOA基礎實現的方案上,應用的業務功能能夠被發布、封裝和提升(Promote)成為業務服務(Business Service);業務服務的序列可以編排成為BPM的流程,而流程也可以被發布和提升為復合服務(Composited Service),業務服務還可以被外部的SOA系統再次編排和組合。ESB是實現SOA治理的重要支撐平臺,是SOA解決方案的核心,從某種意義上說,如果沒有ESB,就不能算作嚴格意義上的SOA。

關鍵服務實現,是SOA在各種業務服務組件的分類。一般來說,一個企業級的SOA架構通常包括:交互服務、流程服務、信息服務、夥伴服務、企業應用服務和接入服務。這些服務可能是一些服務組件,也可能是企業應用系統(如ERP)所暴露的服務接口等等。這些服務都可以接入ESB,進行集中統一管理。

開發工具和管理工具:提供完善的、可視化的服務開發和流程編排工具,涵蓋服務的設計、開發、配置、部署、監控、重構等完整的SOA項目開發生命周期。

按照這個模型,許多SOA解決方案是只提供部分實現。這個行業中,許多國內的企業為了搭上SOA的便車,經常以偏概全,混繞概念。應該說真正按照SOA的思想和模型來構建整個企業的IT架構的案例是非常之少的。許多國外廠商的宣傳案例,基本上是停留在部署應用服務器,開發了部分WebService組件,可以實現部分數據集成,這個層次而已,而這些WebService是部署在ESB平臺之上的,就已經很不錯了。實現了服務流程重組,實現SOA治理的案例就更是很少見到了。

國內有許多軟件企業開發的系統,宣傳是SOA架構的。基本上有幾種情況,其一,有些開發組件和開發平臺廠商,他們也自稱中間件企業,基本上是提供一個工作流平臺,許多還不支持BPEL的業務流程管理,只是傳統的XPDL/WfMC工作流平臺(Workflow不同於支持服務流程的Business Process),最常見的案例是OA辦公審批,或者服務組件開發工具,而所謂的ESB產品大部分都是EAI的升級,可以與Webservice進行接口而已,就宣稱這是ESB產品了,基本的服務註冊、服務編排和安全管理都不具備。這些解決方案只是提供了許多WebService開發的組件,而不提供SOA治理的核心架構,相當於造了許多元器件,但還不能提供整機產品。

其二,許多宣稱SOA架構的應用軟件,基本上可以說是“支持”SOA,而不能稱為“基於SOA”架構。因為支持SOA一般是指可以將其某些功能,封裝為服務(WebService),可以在SOA架構之中進行管理,這比較容易達到。而“基於SOA”是指應用系統的業務功能都是封裝為服務,通過ESB進行集中管理,業務實現是通過BPEL業務流程管理進行編排,用戶交互是通過交互服務(如門戶)進行管理,整個解決方案可以達到標準服務封裝、服務復用、松耦合、服務編排與重組,並且基本符合TOG-SOA的架構模型。

按照這個標準,IT用戶就可以了解到真正的SOA架構的框架模型,就可以識別是否是企業所需要的架構。

講到這裏,我們已經很清楚了,對於SOA的理解,有些學者或者咨詢公司強調SOA不是一種技術,也不是軟件,而是一種思想,一種架構風格。我認為這也是不完全準確的,這種觀點認為SOA僅僅是思想和方法,將使得SOA成為一種不可知論,飄在空中,很難落地。

4.SOA如何落地

自從1996年Garnter的分析師首次提出SOA的概念,到今天,已經過去10多年了,在前幾年這個概念並沒有引起多大的註意,只是到這幾年在技術上WebService的成熟,以及互聯網的普及,SOA作為企業架構的主要技術,才逐漸占據了產業的主流。

因為商業策略的不同,有些企業提出SOA已經過時,有些企業還認為SOA還沒有達到成熟的階段等等這些論點。從商業概念炒作周期來看,我認為SOA正當喧囂之後的理性期,是業界和IT用戶真正拋棄“炒作”,踏踏實實發揮SOA的商業價值的時候了,SOA需要落地。

SOA將來真正推廣到企業中應用,要落地,就不能離開幾個基本的東西:支撐SOA的基礎中間件平臺、符合SOA架構的應用系統(如ERP等)、構建SOA的方法論。

技術分享
SOA落地途徑

4.1.架構方法論

方法和工具構成了工程技術域,要構建SOA架構的企業信息系統,確保業務和IT的真正匹配,首先必須從方法論入手。

許多企業的IT系統“孤島”現象嚴重,本質上是缺乏足夠有效的整體規劃或者架構規劃造成的。形象地說,構建企業IT大廈如同我們蓋房子是一樣的道理。我們許多企業建設信息系統時就采用了蓋鄉村民宅的做法。蓋鄉村民宅不需要嚴謹的規劃,也沒有復雜的地下設施建設(如自來水供水、排水、供氣、地下停車場等),也沒有需要建設汙水處理、雨水收集等復雜的配套設施。而事實上,企業IT系統建設應該如城市建設,首先需要城市總體規劃,然後根據功能區規劃,設計和建設小區配套設施,“三通一平”實質就是構建建築之間的公共基礎設施,確保每棟建築之間不是“孤島”,然後每棟建築還需詳細的設計和工程施工。如果要消除信息孤島,實現IT與業務的一致性,也需要有效的企業架構規劃和設計。

技術分享


為什麽需要架構規劃

透過現象看本質,SOA代表著一種面向服務的IT架構風格,SOA的技術本質和出發點,在於IT架構。而IT架構,是組織的企業架構的重要組成部分,它和組織的戰略架構、業務架構一起,形成一個自上而下、緊密聯系、相輔相成的有機整體。SOA代表著一種正在蓬勃興起的革命性IT架構理念,和傳統技術體系區別的關鍵特征之一就在於SOA是戰略導向和業務驅動的。而國際和國內的各方面經驗都告訴我們,對於一個組織而言,捕獲戰略、梳理業務和IT的最有效的措施就是架構。

企業架構(Enterprise Architecture,EA),是從多個角度對組織的構件層次描述的規劃藍圖,從各個層面反映組織的願景、戰略、業務、服務、人員、技術和產品及其相互之間的關系,輔以其管控和演進的規則。

一個企業架構內容包括業務架構(Business Architecture)、應用架構(Application Architecture)、信息架構(Information Architecture)、技術架構(Technology Architecture)等。

真正可以落地的SOA建設,必須且只能從架構出發。沒有架構,"SOA"將變成一盤無法真正解決各種運營問題的技術和產品的大雜燴。優良的架構填補了業務需求與實際信息系統以及基礎設施設計之間難以逾越的鴻溝。

在所有的架構開發方法(ADM- Architecture Development Methods)之中,開放群組TOG的TOGAF是目前最權威和最有影響力的一種。The Open Group於1993年開始應客戶要求制定系統架構的標準,在1995年發表The Open Group Architecture Framework (TOGAF) 架構框架。TOGAF的基礎是美國國防部的信息管理技術架構(Technical Architecture for Information Management: TAFIM)。TOAGF是一個架構框架,簡而言之,TOGAF是一種協助開發、驗收、運行、使用和維護架構的工具,它是基於一個叠代(Iterative)的過程模型,支持最佳實踐和一套可重用的現有架構資產。它可設計、評估並建立組織的正確架構。TOGAF的關鍵是架構開發方法ADM:一個可靠的,行之有效的方法,以發展能夠滿足商務需求的企業架構。而2008年發布的TOGAF 9.0是符合SOA架構開發的最新版本。TOGAF所提出的“無邊界信息流(Boundaryless Information Flow)”理念和願景,是解決目前企業信息化孤島問題的最有效方式。

技術分享


TOGAF架構內容

4.2.基於SOA的應用系統

基於SOA的應用系統構建方法與傳統軟件架構方法有所不同。

首先基於SOA的應用系統建模和管理的組件層次是服務:

技術分享


面向服務的工程

基於服務的應用系統的本質特征是松耦合,以基本業務功能(服務封裝)為系統的基本實現單元,然後通過服務編排(流程管理)來“組裝”業務應用系統。相對於以往的應用系統,是面向技術組件,由系統程序實現業務流程,在復用、耦合方面都存在靈活性問題。

技術分享


軟件工程和系統設計的演進過程

基於SOA的應用系統構建過程是:

技術分享


基於SOA的應用構建過程

服務建模是第一步,也就是服務識別和顆粒度確定。服務識別是方法論的第一步,服務識別的主要任務,是確定在一定範圍內(通常是企業範圍,或若幹業務場景範圍內)可能成為服務的候選者列表,並確定服務的顆粒度,以及標識服務的接口。服務建模也就確定了應用系統架構的耦合程度。

服務封裝階段的主要任務是對服務進行規範性的描述,其中包括輸入/輸出消息等功能性屬性,以及服務在業務層面的諸多屬性。並決定服務以何種形式向外提供服務。服務可能是新開發的業務功能和業務對象的封裝,也可能是遺留系統的服務封裝,將遺留系統的軟件資產以服務的形式進行封裝,在新的架構上利用已有的資產。

服務治理就是將已經封裝好的服務進行集中統一有效的管理。通過ESB基礎設施,提供服務註冊、存儲、安全控制和版本管理等。服務註冊階段的主要任務是將服務註冊到服務庫。此時需要決定服務的命名、安全、性能、時間特性。

服務編排就是根據業務流程的需求,對服務進行組合和組裝。服務組裝是以實現業務流程為目的,通過對業務服務的組合和組裝,實現更粗粒度的業務服務,實現最終的業務需求。

應用交付階段主要任務是完成業務系統服務化組裝和服務部署,實現業務按需交付。

基於SOA的應用系統是SOA架構的重要組成部分,也是SOA落地的地基。

4.3.支撐SOA的中間件平臺

SOA方法論和基於SOA的應用系統要落地的支撐工具和技術基礎就是中間件平臺。這個在3.3.SOA的架構框架(Framework)之中已經闡述清楚了。

根據TOG-SOA模型,完整的SOA架構五大部分中,基礎設施服務、企業服務總線、開發工具、管理工具等,都是中間件的基礎平臺。

交付服務之中的門戶,也是需要支持JSR168和JSR286標準的Portlet容器和個性化交互以及終端適配的支撐平臺。

業務流程管理需要支持BPEL規範的流程引擎和流程建模的工具,這個中間件平臺用來支持服務的組合和服務流程編排,以滿足業務重組的需求,來實現業務的靈活性。

SOA要落地的最後支撐平臺就是滿足SOA規範的中間件技術。

5.金蝶Ready SOA解決方案

金蝶作為全球領先的SOA解決方案供應商,一直以來堅持腳踏實地,自主創新,與北京大學等高校合作,承擔振興國家基礎軟件的責任和使命,將國際領先的技術與方法,結合中國企業的實際需求,探索國內信息化的最佳實踐,提供SOA的完整解決方案。通過多年的努力,金蝶成為中國唯一入選Gartner全球有能力提供SOA服務的十九家軟件廠商之一。

金蝶讓SOA落地的解決方案品牌為”readySOA”,意為可以落地、可以實施的SOA。

金蝶readySOA的核心內涵包括三個方面:

  • 結合TOGAF而形成的SOA實施方法論;
  • 擁有中國唯一全球第四通過Java EE 5.0認證的SOA基礎設施,中國唯一完整實現TOG-SOA標準模型的金蝶Apusic中間件平臺;
  • 國內第一套基於SOA實現的企業應用軟件金蝶EAS。

我們有這幾方面的綜合經驗,所有金蝶ERP產品都是通過SOA架構去優化的,實現了標準的服務封裝,通過金蝶中間件SOA的完整平臺來支撐,並可以通過BPEL流程來進行編排和重組,而TOGAF是SOA架構最權威的方法論體系,可以指導企業如何導入、部署和運營SOA架構。

5.1.金蝶readySOA實施方法

金蝶readySOA實施方法包括結合TOGAF形成的SOA實施方法、SOA架構成熟度模型等。

TOGAF架構開發方法ADM提供了可靈活利用的組織企業架構的開發和治理的過程。一個成功的SOA落地項目的建設並非一蹴而就,而是分階段逐步實現的,其生命周期過程主要可以分為初步階段、架構階段、實施階段、變更管理階段四大環節完成。通常要從組織的某個獨立的業務單元開始,之後再由小及大,逐漸在跨組織範圍的整體業務中擴散,逐步完善整個組織的SOA 平臺,最終實現隨需應變的企業IT架構。針對SOA項目的指導,TOGAF定義了其架構開發方法ADM各階段和SOA項目全生命周期的各階段之間的映射關系,形成了具有良好操作性的架構開發方法體系。

技術分享


基於TOGAF的SOA實施方法論更詳細的金蝶中間件readySOA實施方法論參加金蝶發布相關白皮書和技術資料出版物。

5.2.金蝶readySOA中間件平臺

金蝶中間件按照TOG-SOA的架構模型,開發了一套完整實現其模型的中間件平臺產品系列:

技術分享


金蝶Apusic中間件SOA完整實現產品系列

金蝶Apusic應用服務器(AAS)為企業應用提供穩定、高效、安全的開發平臺與運行引擎,是所有組件和服務的容器與計算環境。

金蝶Apusic消息中間件(AMQ)提供消息傳輸服務的基礎系統軟件,保障數據在復雜的網絡中高效、穩定、安全、可靠的傳輸,並確保傳輸的數據不錯、不重、不漏、不丟,是實現SOA分布式計算的集成通信平臺。

金蝶Apusic 企業服務總線(AESB)以面向服務的方式,實現異構、分布式系統之間集成共享、互聯互通的基礎軟件平臺,是SOA治理(服務註冊、服務存儲、服務路由、安全控制和版本管理)的基礎設施。

金蝶Apusic業務流程管理(ABPM)是一款面向業務的、具有高度擴展性和強大整合能力的流程中間件,支持BPEL協議,完整並有力支撐了業務流程管理的全生命周期,實現服務的組合和流程編排。

金蝶Apusic數據交換和管理平臺AEI(Apusic Exchange & Integrator),能夠針對分布式的異構數據源,對數據進行分析、采集、轉換、清洗、影射、持久等操作,提供分布式數據源之間數據集成和交換的解決方案,實現SOA的信息服務。

金蝶Apusic門戶平臺(APS-Apusic Portal Server)使組織的應用、人員、信息、流程有機聚合,使用戶能夠通過單一渠道訪問所需的個性化信息,它支持標準的JSR Portlet的交互和個性化編排。

金蝶Apusic OperaMasks開發平臺,是構建SOA服務和集成化的開發平臺。AOM AppFrame是開放高效的基礎應用運行平臺,為企業應用開發提供構件化的編程模型與運行期支撐;AOM Studio是全開發生命周期支持的集成開發環境,為企業應用開發提供從代碼開發、展現設計,到配置管理、協同開發的一站式支持;而 AOM BizModeler以直觀快速的圖形化方式地對業務邏輯進行分析建模、服務封裝、流程編排、部署發布。

金蝶Apusic Universal Manager是金蝶中間件2.0產品的統一管控平臺,依托於MaaS理念,基於瀏覽器的、完全可視化的、擁有插件體系可擴展的管控平臺。

金蝶中間件Ready SOA支撐平臺產品完全按照TOG-SOA參考架構進行設計,傳承了金蝶十余年從事大規模關鍵性企業級應用開發以及核心基礎設施建設之豐富經驗。在SOA項目的全生命周期的建設過程中,金蝶Ready SOA支撐平臺,能夠有效地簡化新項目開發和已有項目資產集成的過程,提升效率,降低運維成本。對期望通過建設SOA來改善其業務和IT基礎設施的靈活性,提升業務敏捷性的組織而言,金蝶Ready SOA支撐平臺是最佳選擇。

6.結束語

事實上,SOA這個話題內容是如此豐富,要闡述清楚SOA各方面的內容,哪怕寫成一套叢書,也是有許多議題無法講述清楚的。SOA引起業界的廣泛關註,最近金蝶中間件等企業參與支持的中國SOA標準工作組正式啟動,可以預期SOA將在中國得到更大的普及,讓更多的企業能否利用SOA的強大優勢,來增強IT競爭力。

SOA不是過時了,也不是空中樓閣,它需要落地,期望更多的務實的中國企業和業界人士,更多做些腳踏實地的研發,共同為SOA在中國的落地生根而努力。

0

soa文章摘抄