圖1-1 SOA計算環(huán)境的組成要素


圖1-2 SOA計算環(huán)境的標準協(xié)議棧

面向服務的計算環(huán)境,為IBM所定義的隨需應變計算環(huán)境奠定了現(xiàn)實基礎(chǔ)。隨需應變計算環(huán)境應具備以下特點,如圖1-3所示。


圖1-3 隨需應變的計算環(huán)境應該具備的特點 

(1)整合:將人、過程、應用和數(shù)據(jù)全面整合起來。

(2)虛擬化:將分布、異構(gòu)的物理資源(服務器、存儲設備等)整合起來,呈現(xiàn)為統(tǒng)一的邏輯對象,以安全和可管理的方式供使用。

(3)自主計算:如同生物體一樣,系統(tǒng)具備一些高級生物系統(tǒng)的能力,包括自我診斷和修復問題,自動配置和調(diào)整以適應環(huán)境的變化,自動優(yōu)化資源的使用效率、增強工作負荷的處理的能力,自我保護數(shù)據(jù)和信息的安全。

(4)開放標準:整個環(huán)境建立在開放的標準之上,保證系統(tǒng)的交互性。

1.2.4面向服務計算環(huán)境的現(xiàn)狀

不同的服務計算環(huán)境,采用不同的技術(shù)和產(chǎn)品,這里主要結(jié)合IBM的產(chǎn)品和技術(shù)來介紹在J2EE平臺上實現(xiàn)的服務計算環(huán)境。

主機通過增加對互聯(lián)網(wǎng)技術(shù)和標準的支持,來創(chuàng)建主機上的面向服務計算環(huán)境。比如IBM的CICS 3.1,提供了SOAP和Web服務的支持,可以將主機上的應用以Web服務的方式提供出來,供消費者使用。

多年來,IT界的主要技術(shù)提供者,一直攜手努力定義和推動Web服務的相關(guān)標準,并且在主要的幾個計算平臺上實現(xiàn)了高度兼容,包括.NET,J2EE和開源平臺(如LAMPLinux,Apache,mySQL,PHP/Perl/Python)。

IBM以J2EE為基礎(chǔ),提供了全面的、強大的服務計算環(huán)境,如圖1-4所示。


圖1-4 IBM提供的服務計算環(huán)境

在這個計算環(huán)境中,它是服務的世界。其中,Access Services提供訪問已有應用或遺留系統(tǒng)的能力,將已有系統(tǒng)中的功能和信息轉(zhuǎn)化為服務,IBM提供了訪問不同系統(tǒng)的適配器和相應的框架來幫助轉(zhuǎn)化。 Business App Services指那些通過新的計算平臺J2EE(如IBM的WebSphere Application Server)來實現(xiàn)的新應用,它們所實現(xiàn)的功能和信息也都轉(zhuǎn)化為服務提供出來。Partner Service指那些來自合作伙伴的服務,WebSphere Partner Gateway提供企業(yè)邊界處不同安全等差異的轉(zhuǎn)換。Information Service是那些跟信息(而不是活動)有關(guān)系的服務,比如將多個系統(tǒng)中異構(gòu)的數(shù)據(jù),聚合、轉(zhuǎn)換為業(yè)務需要的統(tǒng)一整齊的業(yè)務數(shù)據(jù)對象來訪問。 Process Service是指把多個服務聚合成為一個服務流程對應業(yè)務過程的服務,這種復合服務通常是長時間運行的過程。Interaction Service是把人的活動,通過人機交互以服務的方式出現(xiàn)在整個業(yè)務過程中,作為Process Service中的一部分。

在面向服務計算環(huán)境中,企業(yè)服務總線處于非常重要的位置,它提供服務的中介,解耦服務請求者和服務提供者,是服務計算環(huán)境中的核心。ESB是過去消息中間件的發(fā)展,采用了"總線"這樣一種模式來管理和簡化應用之間的集成拓撲結(jié)構(gòu),以廣為接受的開放標準為基礎(chǔ)來支持應用之間在消息、事件和服務級別上的動態(tài)互聯(lián)互通。

ESB的基本特征和能力包括:描述服務的元數(shù)據(jù)和服務注冊管理;在服務請求者和提供者之間傳遞數(shù)據(jù)及對這些數(shù)據(jù)進行轉(zhuǎn)換的能力,并支持由實踐中總結(jié)出來的一些模式如同步模式,異步模式等;發(fā)現(xiàn)、路由、匹配和選擇的能力,以支持服務之間的動態(tài)交互,解耦服務請求者和服務提供者。高級一些的能力,包括對安全的支持、服務質(zhì)量保證、可管理性和負載平衡等。

ESB所提供的基于標準的連接服務,將應用中實現(xiàn)的功能或者數(shù)據(jù)資源,轉(zhuǎn)化為服務請求者能以標準的方式來訪問的服務;當請求者來請求一個服務時,ESB 中這種中介轉(zhuǎn)化過程可能簡單到什么也沒有,也可能要很復雜的中介服務支持,包括動態(tài)地查找、選擇一個服務,消息的傳遞、路由和轉(zhuǎn)換、協(xié)議的轉(zhuǎn)換。這種中介過程,是ESB借助于服務注冊管理及問題域相關(guān)的知識(如業(yè)務方面的一些規(guī)則等)自動進行的,不需要服務請求者和提供者介入,從而實現(xiàn)了解耦服務請求者和提供者的技術(shù)基礎(chǔ)。這使得服務請求者不需要關(guān)心服務提供者的位置和具體實現(xiàn)技術(shù),雙方在保持接口不變的情況下,各自可以獨立地演變。

所以,ESB采用總線結(jié)構(gòu)模式簡化了應用之間的集成拓撲,通過源自實踐的模式,提供了基于標準的通用連接服務,使得服務請求者和服務提供者之間可以以松散耦合、動態(tài)的方式交互,從而在不同層次上使得SOA解決方案是一個松散耦合、靈活的架構(gòu)。

需要注意的是,ESB是一種架構(gòu)模式,不能簡單地等同于特定的技術(shù)或產(chǎn)品,但實現(xiàn)ESB確實需要各種產(chǎn)品在運行時和工具方面的支持。IBM有很好的產(chǎn)品支持,運行時支持包括WebSphere ESB和WebSphere Message Broker;工具支持有WebSphere Integration Developer,支持用戶以圖形界面的方式來完成相關(guān)的開發(fā)任務,如發(fā)布服務、使用各種模式、轉(zhuǎn)換消息和定義路由等。

1.2.5 面向服務的編程模型:服務組件架構(gòu)(SCA)和服務數(shù)據(jù)對象(SDO)

為了促進面向服務應用的開發(fā),IT公司聯(lián)合起來,在2005年11月發(fā)布了服務組件架構(gòu)(Service Component Architecture)和服務數(shù)據(jù)對象(Service Data Object)規(guī)范,這些公司包括IBM,BEA,Oracle,SAP等。

SCA的目標是大大地簡化服務開發(fā),直接采用Web服務和XML開發(fā)服務,使得程序員工作在底層技術(shù)上,需要應付各種異構(gòu)環(huán)境下的具體實現(xiàn)細節(jié)。其中,SCA定義和規(guī)范了技術(shù)中立和實現(xiàn)透明的服務組件、服務及服務調(diào)用和組裝;而SDO定義和規(guī)范了服務世界里的數(shù)據(jù),這些數(shù)據(jù)對象擁有清晰定義的信息模型,獨立于數(shù)據(jù)源和具體數(shù)據(jù)訪問技術(shù),使得服務訪問數(shù)據(jù)和在服務之間交換數(shù)據(jù)更方便、有效。

很多公司已經(jīng)在J2EE平臺上支持了SCA/SDO,還提供了C++的版本。IBM WebSphere Process Server 6實現(xiàn)了SCA/SDO規(guī)范,提供了最新的SOA編程模型的支持,已經(jīng)在很多實踐中被廣泛使用。


圖1-3 隨需應變的計算環(huán)境應該具備的特點 

(1)整合:將人、過程、應用和數(shù)據(jù)全面整合起來。

(2)虛擬化:將分布、異構(gòu)的物理資源(服務器、存儲設備等)整合起來,呈現(xiàn)為統(tǒng)一的邏輯對象,以安全和可管理的方式供使用。

(3)自主計算:如同生物體一樣,系統(tǒng)具備一些高級生物系統(tǒng)的能力,包括自我診斷和修復問題,自動配置和調(diào)整以適應環(huán)境的變化,自動優(yōu)化資源的使用效率、增強工作負荷的處理的能力,自我保護數(shù)據(jù)和信息的安全。

(4)開放標準:整個環(huán)境建立在開放的標準之上,保證系統(tǒng)的交互性。

1.2.4面向服務計算環(huán)境的現(xiàn)狀

不同的服務計算環(huán)境,采用不同的技術(shù)和產(chǎn)品,這里主要結(jié)合IBM的產(chǎn)品和技術(shù)來介紹在J2EE平臺上實現(xiàn)的服務計算環(huán)境。

主機通過增加對互聯(lián)網(wǎng)技術(shù)和標準的支持,來創(chuàng)建主機上的面向服務計算環(huán)境。比如IBM的CICS 3.1,提供了SOAP和Web服務的支持,可以將主機上的應用以Web服務的方式提供出來,供消費者使用。

多年來,IT界的主要技術(shù)提供者,一直攜手努力定義和推動Web服務的相關(guān)標準,并且在主要的幾個計算平臺上實現(xiàn)了高度兼容,包括.NET,J2EE和開源平臺(如LAMPLinux,Apache,mySQL,PHP/Perl/Python)。

IBM以J2EE為基礎(chǔ),提供了全面的、強大的服務計算環(huán)境,如圖1-4所示。


圖1-4 IBM提供的服務計算環(huán)境

在這個計算環(huán)境中,它是服務的世界。其中,Access Services提供訪問已有應用或遺留系統(tǒng)的能力,將已有系統(tǒng)中的功能和信息轉(zhuǎn)化為服務,IBM提供了訪問不同系統(tǒng)的適配器和相應的框架來幫助轉(zhuǎn)化。 Business App Services指那些通過新的計算平臺J2EE(如IBM的WebSphere Application Server)來實現(xiàn)的新應用,它們所實現(xiàn)的功能和信息也都轉(zhuǎn)化為服務提供出來。Partner Service指那些來自合作伙伴的服務,WebSphere Partner Gateway提供企業(yè)邊界處不同安全等差異的轉(zhuǎn)換。Information Service是那些跟信息(而不是活動)有關(guān)系的服務,比如將多個系統(tǒng)中異構(gòu)的數(shù)據(jù),聚合、轉(zhuǎn)換為業(yè)務需要的統(tǒng)一整齊的業(yè)務數(shù)據(jù)對象來訪問。 Process Service是指把多個服務聚合成為一個服務流程對應業(yè)務過程的服務,這種復合服務通常是長時間運行的過程。Interaction Service是把人的活動,通過人機交互以服務的方式出現(xiàn)在整個業(yè)務過程中,作為Process Service中的一部分。

在面向服務計算環(huán)境中,企業(yè)服務總線處于非常重要的位置,它提供服務的中介,解耦服務請求者和服務提供者,是服務計算環(huán)境中的核心。ESB是過去消息中間件的發(fā)展,采用了"總線"這樣一種模式來管理和簡化應用之間的集成拓撲結(jié)構(gòu),以廣為接受的開放標準為基礎(chǔ)來支持應用之間在消息、事件和服務級別上的動態(tài)互聯(lián)互通。

ESB的基本特征和能力包括:描述服務的元數(shù)據(jù)和服務注冊管理;在服務請求者和提供者之間傳遞數(shù)據(jù)及對這些數(shù)據(jù)進行轉(zhuǎn)換的能力,并支持由實踐中總結(jié)出來的一些模式如同步模式,異步模式等;發(fā)現(xiàn)、路由、匹配和選擇的能力,以支持服務之間的動態(tài)交互,解耦服務請求者和服務提供者。高級一些的能力,包括對安全的支持、服務質(zhì)量保證、可管理性和負載平衡等。

ESB所提供的基于標準的連接服務,將應用中實現(xiàn)的功能或者數(shù)據(jù)資源,轉(zhuǎn)化為服務請求者能以標準的方式來訪問的服務;當請求者來請求一個服務時,ESB 中這種中介轉(zhuǎn)化過程可能簡單到什么也沒有,也可能要很復雜的中介服務支持,包括動態(tài)地查找、選擇一個服務,消息的傳遞、路由和轉(zhuǎn)換、協(xié)議的轉(zhuǎn)換。這種中介過程,是ESB借助于服務注冊管理及問題域相關(guān)的知識(如業(yè)務方面的一些規(guī)則等)自動進行的,不需要服務請求者和提供者介入,從而實現(xiàn)了解耦服務請求者和提供者的技術(shù)基礎(chǔ)。這使得服務請求者不需要關(guān)心服務提供者的位置和具體實現(xiàn)技術(shù),雙方在保持接口不變的情況下,各自可以獨立地演變。

所以,ESB采用總線結(jié)構(gòu)模式簡化了應用之間的集成拓撲,通過源自實踐的模式,提供了基于標準的通用連接服務,使得服務請求者和服務提供者之間可以以松散耦合、動態(tài)的方式交互,從而在不同層次上使得SOA解決方案是一個松散耦合、靈活的架構(gòu)。

需要注意的是,ESB是一種架構(gòu)模式,不能簡單地等同于特定的技術(shù)或產(chǎn)品,但實現(xiàn)ESB確實需要各種產(chǎn)品在運行時和工具方面的支持。IBM有很好的產(chǎn)品支持,運行時支持包括WebSphere ESB和WebSphere Message Broker;工具支持有WebSphere Integration Developer,支持用戶以圖形界面的方式來完成相關(guān)的開發(fā)任務,如發(fā)布服務、使用各種模式、轉(zhuǎn)換消息和定義路由等。

1.2.5 面向服務的編程模型:服務組件架構(gòu)(SCA)和服務數(shù)據(jù)對象(SDO)

為了促進面向服務應用的開發(fā),IT公司聯(lián)合起來,在2005年11月發(fā)布了服務組件架構(gòu)(Service Component Architecture)和服務數(shù)據(jù)對象(Service Data Object)規(guī)范,這些公司包括IBM,BEA,Oracle,SAP等。

SCA的目標是大大地簡化服務開發(fā),直接采用Web服務和XML開發(fā)服務,使得程序員工作在底層技術(shù)上,需要應付各種異構(gòu)環(huán)境下的具體實現(xiàn)細節(jié)。其中,SCA定義和規(guī)范了技術(shù)中立和實現(xiàn)透明的服務組件、服務及服務調(diào)用和組裝;而SDO定義和規(guī)范了服務世界里的數(shù)據(jù),這些數(shù)據(jù)對象擁有清晰定義的信息模型,獨立于數(shù)據(jù)源和具體數(shù)據(jù)訪問技術(shù),使得服務訪問數(shù)據(jù)和在服務之間交換數(shù)據(jù)更方便、有效。

很多公司已經(jīng)在J2EE平臺上支持了SCA/SDO,還提供了C++的版本。IBM WebSphere Process Server 6實現(xiàn)了SCA/SDO規(guī)范,提供了最新的SOA編程模型的支持,已經(jīng)在很多實踐中被廣泛使用。

1.3 軟件體系結(jié)構(gòu)的演變和面向服務的設計原則

軟件開發(fā)一直是一件很難的事情,因為我們要處理的問題越來越復雜,人們處理這種復雜性最主要的手段就是抽象?;仡櫄v史,我們的抽象層次越來越高,反映在各個方面,從編程語言、平臺、開發(fā)過程、工具到模式。尤其是模式,大量出現(xiàn)在那些結(jié)構(gòu)上設計得很好的軟件系統(tǒng)中,無論是微觀層次上(對象、組件)穩(wěn)定出現(xiàn)的結(jié)構(gòu)范式,還是在宏觀層面上出現(xiàn)的架構(gòu)模式。使用哪些抽象手段來為問題域建模?如何定義組成部分之間的協(xié)作和結(jié)構(gòu)關(guān)系?如何定義從外界所看到的系統(tǒng)結(jié)構(gòu)和行為?是什么設計原則在指導我們的架構(gòu)決策?有什么最佳實踐和模式可供借鑒?所有這些,形成了不同設計風格和體系結(jié)構(gòu)范式(Architecture Paradigm)。

通常,一種體系結(jié)構(gòu)范式,包括設計原則,來自實踐的結(jié)構(gòu)式樣、組成要素和關(guān)系,以及在整個開發(fā)生命周期中它們是如何被識別、描述和控制的。體系結(jié)構(gòu)從過去單個應用包羅一切的客戶/服務器的模式,逐漸演變到三層和多層結(jié)構(gòu)的各種分布式計算模式。今天,人們開始談論和實踐面向服務、更加分布化的架構(gòu)范式。

從抽象手段而言,SOA在原有方法的基礎(chǔ)上,增加了服務、流程等元素。這些抽象手段之間的關(guān)系如圖1-5所示。

如何利用這些抽象手段,將一個業(yè)務需求轉(zhuǎn)化為流程、服務,進一步建模為服務組件,然后結(jié)合具體實現(xiàn)環(huán)境,在重用已有系統(tǒng)的功能和數(shù)據(jù)資源的基礎(chǔ)上來實現(xiàn)?如圖1-6所示是IBM總結(jié)的SOA架構(gòu)概念模式。

SOA架構(gòu)中,繼承了來自對象和組件設計的各種原則,如封裝、自我包含等。那些保證服務的靈活性、松散耦合和重用能力的設計原則,對SOA架構(gòu)來說同樣是非常重要的。

結(jié)構(gòu)上,服務總線是SOA的架構(gòu)模式之一。

關(guān)于服務,一些常見和討論的設計原則如下:

(1)無狀態(tài)。以避免服務請求者依賴于服務提供者的狀態(tài)。

(2)單一實例。避免功能冗余。


圖1-5 SOA中的重要抽象手段


圖1-6 SOA的概念架構(gòu)模式

(3)明確定義的接口。服務的接口由WSDL定義,用于指明服務的公共接口與其內(nèi)部專用實現(xiàn)之間的界線。WS-Policy用于描述服務規(guī)約,XML模式(Schema)用于定義所交換的消息格式(即服務的公共數(shù)據(jù))。使用者依賴服務規(guī)約來調(diào)用服務,所以服務定義必須長時間穩(wěn)定,一旦公布,不隨意更改;服務的定義應盡可能明確,減少使用者的不適當使用;不要讓使用者看到服務內(nèi)部的私有數(shù)據(jù)。

(4)自包含和模塊化。服務封裝了那些在業(yè)務上穩(wěn)定、重復出現(xiàn)的活動和組件,實現(xiàn)服務的功能實體是完全獨立自主的,獨立進行部署、版本控制、自我管理和恢復。

(5)粗粒度。服務數(shù)量不應該太大,依靠消息交互而不是遠程過程調(diào)用(RPC),通常消息量比較大,但是服務之間的交互頻度較低。

(6)服務之間的松耦合性。服務使用者看到的是服務的接口,其位置、實現(xiàn)技術(shù)、當前狀態(tài)等對使用者是不可見的,服務私有數(shù)據(jù)對服務使用者是不可見的。

(7)重用能力。服務應該是可以重用的。

(8)互操作性、兼容和策略聲明。為了確保服務規(guī)約的全面和明確,策略成為一個越來越重要的方面。這可以是技術(shù)相關(guān)的內(nèi)容,比如一個服務對安全性方面的要求;也可以是跟業(yè)務有關(guān)的語義方面的內(nèi)容,比如需要滿足的費用或者服務級別方面的要求,這些策略對于服務在交互時是非常重要的。WS- Policy用于定義可配置的互操作語義,來描述特定服務的期望、控制其行為。在設計時,應該利用策略聲明確保服務期望和語義兼容性方面的完整和明確。

1.4 軟件工程的演變和面向服務體系結(jié)構(gòu)

軟件工程方法和過程伴隨著軟件實踐不斷發(fā)展。軟件危機發(fā)生之后,從瀑布模型、原型方法等講究過程、文檔密集、控制較多的方法,逐漸發(fā)展到輕量級、敏捷和迭代的方法。這些方法更加人性化,避免因為過重的過程而扼殺人的主動性和創(chuàng)造性。這些方法更強調(diào)快速地交付對客戶有價值的軟件、直接的溝通、持續(xù)集成和持續(xù)質(zhì)量保證。

SOA和當前軟件工程過程的一個共同交叉點就是業(yè)務價值驅(qū)動(Business Centric),強調(diào)速度。SOA從軟件的靈活性和重用能力入手,而敏捷過程則從軟件交付效率出發(fā)。

SOA的架構(gòu)特性,使得敏捷過程非常適合SOA項目的實施。在SOA架構(gòu)中,服務的獨立性,使得每個服務可以被單獨地開發(fā)、測試和集成。一個企業(yè)中的 IT系統(tǒng),如果是基于SOA的計算環(huán)境,那么這個環(huán)境就是一個服務的生態(tài)系統(tǒng),每開發(fā)一個服務,馬上就可以獨立部署,成為這個生態(tài)系統(tǒng)中的一部分。這樣既很好地支持了持續(xù)集成、持續(xù)質(zhì)量保證,又很好地使得這個服務馬上產(chǎn)生業(yè)務價值,而不是苦等其他服務的到位。服務的特性,使得敏捷過程和SOA架構(gòu)可以有一個很好的結(jié)合,讓二者相得益彰。以我們與不同客戶合作的實踐,我們已經(jīng)充分體會到這二者在實現(xiàn)過程中的風險控制、業(yè)務需求改變的適應能力方面相互配合的好處。比如我們在中遠集運,從瀑布過程轉(zhuǎn)向了迭代的開發(fā)過程,采用了敏捷方法的原則。

在韓國的項目里,我們的團隊來自IBM中國,IBM韓國及韓國客戶自己的工程師,分處漢城和北京兩個地方,這些工程師怎樣協(xié)作才能很快地交付高質(zhì)量的系統(tǒng)而不相互牽扯?對于北京的工程師,北京的團隊無法復制客戶在漢城的已有系統(tǒng),如何測試自己開發(fā)的服務?通過服務建模,系統(tǒng)被分解為若干相互獨立的服務,我們將那些要重用已有系統(tǒng)來實現(xiàn)的服務交給漢城的隊員,其他的交給北京的隊員,并且要求每個服務開發(fā)人員提供一個簡單的"偽"實現(xiàn)(Mock Service)。一開始,這些簡單實現(xiàn)被部署在北京和漢城的測試環(huán)境中,然后各個服務開發(fā)小組開始各自獨立地開發(fā)自己所負責的服務,而流程開發(fā)人員也在同一時間開始開發(fā)他的流程,不過所基于的服務是在那些簡單實現(xiàn)之上,但是這些簡單實現(xiàn)足以支持有意義的單元和集成測試。隨后,一旦某個服務被實現(xiàn),它就被部署到實際的環(huán)境中,通過調(diào)整ESB的服務中介配置,對此服務的請求被路由到真實實現(xiàn)。一旦真實實現(xiàn)有問題,還可以換回簡單實現(xiàn),以避免影響其他服務、流程的單元和集成測試。這種靈活性帶來的隨時開發(fā)、隨時部署、隨時集成和測試對于采用敏捷過程是非常有利的。

1.5 SOA技術(shù)概覽

本節(jié)將討論目前SOA體系架構(gòu)中用到的主要技術(shù)和標準。

1.5.1 SOA的主要組件

在前面關(guān)于計算環(huán)境的討論里,我們已經(jīng)提到SOA計算環(huán)境的主要組件包括:服務運行時環(huán)境、服務總線、服務注冊庫、服務網(wǎng)關(guān)和流程引擎。通常,還會包括服務管理、業(yè)務活動監(jiān)控(Business Activity Monitoring)和業(yè)務績效管理(Business Performance Management,BPM)。另外,在服務建模、開發(fā)和編排服務等方面,我們需要相應的工具來支持。在分析、設計方面,我們需要基于服務的分析、設計方法,就是我們通常說的服務建模,包括服務的識別、定義和實現(xiàn)策略,其輸出是一個服務模型(Service Model)。

1.5.2 SOA主要技術(shù)和標準

Web服務作為實現(xiàn)SOA中服務的最主要手段。我們首先來了解跟Web Service相關(guān)的標準,它們大多以"WS-"作為名字的前綴,所以統(tǒng)稱WS-*。 Web服務最基本的協(xié)議包括UDDI,WSDL和SOAP,通過它們,我們可以提供直接而又簡單的Web Service支持,如圖1-7所示。

但是基本協(xié)議無法保證企業(yè)計算需要的安全性和可靠性,所以我們需要增加這方面的協(xié)議,比如WS-Security,WS-Reliability和 WS-ReliableMessaging;對于復雜的業(yè)務場景,我們需要WS-BPEL和WS-CDL這樣的語言來將多個服務編排成為業(yè)務流程;管理服務的協(xié)議如WS-Manageability,WSDM等。跟Web服務相關(guān)的標準,還在快速發(fā)展當中。目前在SOA產(chǎn)品和實踐中,除了基本協(xié)議外,比較重要的還包括BPEL,WS-Security,WS-Policy和SCA/SDO。如表1-1所示給出了一個基本的總結(jié),后面的章節(jié)會介紹重要的技術(shù)和標準。


圖1-7 基本W(wǎng)eb服務協(xié)議


表1-1 當前Web服務協(xié)議棧

1.5.3 SOA技術(shù)在工業(yè)界的支持現(xiàn)狀

目前,Web的標準和技術(shù)在演變當中,不同的技術(shù)環(huán)境的支持力度也不同,但是前面提到的基本核心協(xié)議,都有很好的支持。關(guān)于Web服務協(xié)議的接受和支持程度,如圖1-8所示。


圖1-8 當前Web服務的接受情況

1.6 本章小結(jié)

本章介紹了SOA基本概念,并澄清了容易混淆的一些問題,然后概要地討論了SOA的若干重要方面,包括面向服務的計算環(huán)境、編程模型、架構(gòu)風格、工程方法等。還非常簡要地介紹了SOA在工業(yè)界的支持概覽,更多的細節(jié)請參看各個部分所附的參考鏈接,它們會給讀者提供非常充分的信息和文檔,供讀者了解SOA 相關(guān)技術(shù)和標準的發(fā)展細節(jié)。通過表1-2,讀者也可以了解到工業(yè)界,包括廠家和標準化組織的參與情況。

關(guān)于作者

毛新生先生現(xiàn)任IBM中國開發(fā)中心Web 2.0首席架構(gòu)師。此前他曾任IBM軟件集團企業(yè)解決方案部大中華區(qū)和北亞地區(qū)首席架構(gòu)師與IBM SOA中國設計中心技術(shù)主管,在企業(yè)級軟件方面擁有廣泛、扎實、深厚的理論功底和豐富的設計與項目實施經(jīng)驗。2006年,毛新生先生被授予“IBM資深技術(shù)主管”稱號(STSM ,Senior Technical Staff Member),成為中國內(nèi)地第一位獲此殊榮的IBM技術(shù)人員,在全球也僅有1000多位IBM員工享有這樣的榮譽。毛新生先生于2000年加入IBM,曾先后在北京大學和IBM中國研究院從事研發(fā)工作,以研究人員,開發(fā)經(jīng)理和架構(gòu)師的身份從事過信息檢索,語音技術(shù)及其中間件,門戶,普及計算,Linux,網(wǎng)格計算,Web Service和SOA等領(lǐng)域的很多工作。毛新生先生畢業(yè)于北京大學,擁有計算機專業(yè)碩士學位。如果您想找到更多關(guān)于毛新生先生的文章,您可以搜索毛新生的BLOG。

分享到

多易

相關(guān)推薦