第2章 面向服務體系架構(SOA)技術概要
2.1 SOA概述
SOA的思想最初由Gartner公司提出,由于當時的技術水平和市場環境尚不具備真正實施SOA的條件,因此當時SOA并未引起人們的廣泛關注,SOA在當時沉寂了一段時間。伴隨著互聯網的浪潮,越來越多的企業將業務轉移到互聯網領域,帶動了電子商務的蓬勃發展。為了能夠將公司的業務打包成獨立的、具有很強伸縮性的基于互聯網的服務,人們提出了Web服務的概念,這可以說是SOA的發端。
SOA不是一種語言,也不是一種具體的技術而是一種軟件系統架構。SOA是一種架構模型,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。SOA解決方案由可重用的服務組成,帶有簡單、精確定義的接口用于服務間的通訊,SOA提供了一種操作,通過這種操作,可以集成現有的各種應用程序,不論它們采用什么平臺或語言開發。SOA的實質就是為企業核心業務提供端到端的服務,并且已成為現階段企業信息化發展的方向。
2.1.1 SOA的基本概念
SOA是英文Service.OrientedArchitecture,即面向服務架構的縮寫。當于“架構”結合時,面向服務便具有了一個技術內涵。SOA是一個術語,代表一個模型,其中的自動化邏輯可分解為小的、不同的邏輯單元。這些單元組成一個較大的業務自動化邏輯片段,并可以對這些單元進行獨立地分布式部署。
SOA的關鍵是“服務”的概念,W3C將服務定義為:服務提供者完成一組工作,為服務使用者交付所需的最終結果。最終結果通常會使使用者的狀態發生變化,但也可能使提供者的狀態改變,或者雙方都產生變化。
Service-architecture.com將SOA定義為:本質上是服務的集合,服務間彼此通信,這種通信可能是簡單的數據傳送,也可能是兩個或更多的服務協調進行某些活動。服務間需要某些方法進行連接。所謂服務就是精確定義、封裝完善、獨立于其他服務所處環境和狀態的函數。
Looselycoupled.corn將SOA定義為:按需連接資源的系統,在SOA中,資源被作為可通過標準方式訪問的獨立服務,提供給網絡中的其他成員。與傳統的系統結構相比,Gartner則將SOA描述為:客戶端朋艮務器的軟件設計方法,一項應用由軟件服務和軟件服務使用者組成,SOA與大多數通用的客戶端/服務器模型的不同之處,在于它著重強調軟件組件的松散耦合,并使用獨立的標準接口。
雖然不同的廠商、IT組織或個人對SOA有著不同的理解,因此本人認為可以從上述廠家與個人的定義中總結出SoA的特性定義:SOA是一個開放的、可擴展的、聯邦的、可組合的架構,促進面向服務并由自治的、高質量的、廠商多樣化的、互操作性的、可發現的和潛在可復用的服務組成,利用Web服務來實現。
2.1.2 SOA的基本特征
SOA是一種粗粒度、松耦合的服務架構,其服務之間通過簡單的、精確定義的接口進行相互通訊,不涉及底層編程接口和通訊模式。這種結構主要具備如下幾個特征:
(1)服務的封裝:將服務封裝成用于業務流程的可重用組件的應用程序函數。它提供信息或簡化業務數據從一個有效的、一致的狀態向另一個狀態的轉變,封裝隱藏了復雜性。
(2)服務的重用:服務的可重用性設計顯著地降低了成本。為了實現可重用性,服務只工作在特定處理過程的上下文中,獨立于底層實現和客戶需求的變更。
(3)服務的互操作:在SOA中,通過服務之間既定的通信協議進行互操作。
(4)服務是自治的功能實體:服務是由組件組成的組合模塊,是自包含和模塊化的,SOA非常強調架構中提供服務的功能實體的完全獨立自主的能力。
(5)服務之間的松耦合度:服務請求者到服務提供者的綁定與服務之間應該是松耦合的。這就意味著,服務請求者不知道提供者實現的技術細節,比如程序設計語言、部署平臺。服務請求者往往通過消息調用操作,請求消息和響應,而不是通過使用API和文件格式。
2.1.3 SOA的體系結構
SOA體系結構中的基本元素是服務,服務是一個自包含的、無狀態的實體,可以由多個組件組成。它通過事先定義的界面響應服務請求。它也可以執行諸如編輯和處理事務等離散性任務。服務本身并不依賴于其他函數和過程的狀態。用什么技術實現服務,并不在其定義中加以限制。
SOA體系結構包含:服務請求者,服務提供者,服務注冊,它們的關系如圖2.1示:
圖2-1 SOA體系結構圖
服務提供者是一個提供符合契約的服務的實體,并將自己的服務和接口契約發布到服務注冊中心。
服務請求者是一個應用程序或一個需要調用服務的另一個服務,它發現并調用其他的軟件服務達到它所需要的服務功能。
服務代理者是服務的儲存庫,產生由服務提供者發布的接口,可以使服務請求者查找服務提供者的接口。
2.2基于Web服務的SOA應用基本協議與技術
SOA本質上依賴Web服務,Web服務是一種部署在Web上的組件、對象,是可以通過網絡訪問的應用程序接口。Web服務定義了一套標準的互操作規范,根據這個規范,可以在任何平臺實現互操作。這一規范,主要由四個技術協議組成:XML,SOAP,UDDI,WSDL。
2.2.1XML協議
XML是可擴展的標記語言(Extensible Markup Language)簡稱,XML是目前用來描述數據和交換數據的一種標準,是用結構化的方法存儲數據的純文本格式。XML由W3C于1998年2月發布,XML的最大優點是它的數據存儲格式不受顯示格式的制約,任何設備都可以讀取它,因為它的格式本身就是文本文件。
XML的主要特點有:
(1)XML使用Unicode字符集,可生成英文、中文、希臘文或梵文等多種語言。
(2)可將多個來源(包括其他XML文檔和二進制文件)匯合進一個XML文檔。
(3)可利用DTD或Schema(模式)管理一致性問題。DTD主要用于文檔型文檔,Schema主要用數據型文檔。
(4)具有很好的擴展性,可定義自己的元素和屬性。
(5)通過XML可從關系數據庫管理系統中提取數據到結構化文檔。它還被設計成可對各種數據對象進行操作。
(6)XML標記不涉及文檔如何顯示,只表示文檔的結構。
XML的文檔結構主要包含兩個部分:文檔序言與文檔體。文檔序言包含指定關鍵特性和文件數據的元數據,文檔體包含數據,一個簡單的XML文檔實例如下所示:
<產品>
<鞋子>
<尺寸>40碼<廣尺寸>
<顏色>黑色</顏色>
<產地>杭州叫產地>
</鞋子>
</產品>
其中是一個聲明,說明了該文檔是XML格式,使用XML的1.0版本和中文字符集標準的編碼方法。指定編碼方法是為了保證每個字符能被對應的編碼方式正確的讀取,通常的編碼方式還有UTF-8、UTF-16。在XML中用以標記文本的基本構件稱為元素,元素由一個開始標簽與一個結束標簽組成,在XML的例子中,<產品>與</產品>組成一個根元素,<鞋子>與組成一個子元素。<鞋子>元素包含三個元素,<產品>元素的三個孫元素每個都包含了文本內容數據。
綜上所述,Web服務要運行,需要使用一種平臺中立的方法來描述數據與數據交換,XML以標準化的文本格式以一種簡單的方法格式化數據,成為了Web服務的技術基礎。
2.2.2 DISCO協議
DISCO的全稱是Dis.Co Service(集散服務系統)是一個意圖將分散的服務資源進行有效的整合和管理的平臺。DISCO協議被用來發現位于特定域上的Web服務,DISCO協議的背后推動者是Microsoft,它的工作原理是,為客戶機提供一個單獨的位置,以便將企業中的所有發布的Web服務進行定位。每個公司都應有一個DISCO文件存在Web服務上,某個客戶機會檢查這個DISCO文件,并知道為這個公司所發布的每個Web服務的WSDL文件進行定位。DISCO協議與UDDI協議功能上有相似的作用,它們的區別是,UDDI協議是定位于Internet上可用的Web服務的中心倉庫,DISCO協議不但可以用于動態發現Web服務,還可以用于在未知的域上詢問所有可能的Web服務。
DISCO協議格式比較簡單,DISCO協議基本上是一個指向WSDL文件的指針集合。一個具體的DISCO文檔如下示例:
一個發布的DISCO文檔其實是一個XML文檔,以元素
2.2.3 UDDI協議
UDDI的全稱是Universal Description, Discovery, and Integration(通用描述、發現和集成),由uddi.org進行維護。UDDI規范一個由Web服務所構成的邏輯上的云狀服務,同時也定義了一種編程接口,這種編程接口提供了描述Web服務的簡單框架。規范包括幾份相關的文檔和一份XML Schema,用來定義基于SOAP的注冊和發現Web服務的協議。
UDDI規范、XML Schema和UDDI注冊中心集群之間的關系如圖2-2所描述UDDI注冊中心集群能為Web服務提供一次注冊,到處發布的功能。
圖2-2 UUDI關系圖
UDDI注冊使用的核心信息模型由XML Schema定義,使用XML是因為它提供了平臺無關的數據描述并很自然的描述了數據的層次關系。選擇XML Schema是因為它支持豐富的數據類型,便捷的描述方式及其按信息模型對數據進行驗證的能力。UDDI XMLSchema定義了四種主要信息類型,它們是技術人員在需要使用合作伙伴所提供的Web服務時必須了解的技術信息。商業實體信息、服務信息、綁定信息和服務調用規范的說明信息。
UUDI有四種主要的數據結構,它們中每一種代表一個XML元素,它們分別為:
·業務信息保存在一個businessEntity元素中。
·服務信息保存在一個businessService元素中。
·綁定信息保存在一個bingdingTemplate元素中。
·為服務提供的規范保存在一個tModels元素中。
這四種數據結構都要保持獨立,因此只能使用唯一的標志符或鍵碼來單獨訪問它們,由UDDI注冊表產生的每一個標志符都采用一個通用唯一ID的形式。一個UDDI是一個依照算法產生的十六進制字符串,該算法可以確保任何兩個UDDI不相同。
一個UDDI的簡單形式的示例:FCZX1315-1719-2226-ZJ13-WYZJWYFXYJ100N。
基于SOA的中小型企業業務流集成應用研究(一)
http://articles.e-works.net.cn/SOA/Article95112.htm
基于SOA的中小型企業業務流集成應用研究(二)上
http://articles.e-works.net.cn/SOA/Article95113.htm
基于SOA的中小型企業業務流集成應用研究(二)下
http://articles.e-works.net.cn/SOA/Article95114.htm
基于SOA的中小型企業業務流集成應用研究(三)上
http://articles.e-works.net.cn/SOA/Article95130.htm
基于SOA的中小型企業業務流集成應用研究(三)下
http://articles.e-works.net.cn/SOA/Article95133.htm
基于SOA的中小型企業業務流集成應用研究(四)
http://articles.e-works.net.cn/SOA/Article95189.htm
基于SOA的中小型企業業務流集成應用研究(五)上
http://articles.e-works.net.cn/SOA/Article95191.htm
基于SOA的中小型企業業務流集成應用研究(五)下
http://articles.e-works.net.cn/SOA/Article95221.htm
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/