基於SOA的企業應用系統整合研究

2021-06-05 01:27:08 字數 4294 閱讀 1856

隨著企業資訊化建設的不斷加強和計算機技術的快速發展,以及網際網路的應用,加強了企業內部和企業之間的資訊交流,由於目前我國很多大中型企業部署的應用系統是由不同的企業生產的,這些產品在開發時採用不同的程式語言和實現平台,採用的資料交換格式和通訊協議存在差異,因而使得企業在不同系統間實現資訊互相傳遞與共享非常困難,對原有應用系統與實施的新應用系統不能進行有效整合,在企業中形成了乙個個「資訊孤島」。

傳統的企業應用整合方法按整合層次分為資料整合、業務流程整合和面向服務的整合。其中資料整合實現了資料的規範化,但是不是其他應用能共享的格式,擴充套件困難;業務流程整合通過中介軟體技術整合了多個業務流程層,但是它只在企業內部進行,不適應企業間業務流程組合。這些整合方法不具備靈活性,而且整合方法複雜、成本高。現在企業競爭激烈,企業業務在快速增長並不斷變化,要適應這種發展必須採取一種脫離面向技術的解決方案,在企業新增應用系統時,不需要再從底層技術去開發。基於面向服務架構(service oriented architecture,soa)的企業應用系統整合,提供了乙個統一的、標準化的、可配置的業務整合平台,可以解決不同型別的異構系統之間難以有效整合的問題。

1.1 soa的技術基礎與web服務

soa是一種體系架構,它說明了一種設計思想,那麼在具體應用中需要用現有的技術來實現soa。現階段,在軟體的實現上,soa的服務主要利用web服務(web services)實現;在服務的編排方面,利用業務過程執行語言(business process exeution language,bpel)實現;在服務的通訊方面,利用企業服務匯流排(enterprise service bus,esb)實現。所以,我們一般認為web services、bpel和esb是實現soa的技術基礎。

目前實現soa的最主要手段是web服務。web服務是基於xml和https的一種服務,其通訊協議主要基於soap,用wsdl進行服務描述,通過uddi來發現和獲得服務的元資料,它能在現有各種不同平台的基礎上構建乙個通用的、與平台無關、與語言無關的技術層。各種不同平台的應用程式都可以通過這個技術層來實現彼此間的資訊交換和整合。

1.2 web服務的體系結構

web服務是一種部署在web上的物件或元件,它是基於服務提供者、服務請求者和服務註冊中心3個角色並由發布、查詢、繫結和呼叫3個動作構建。

在web的服務體系中,3個角色的作用分別為:服務註冊中心用於註冊已經發布的服務提供者,對其分類,並提供搜尋服務;服務請求者是服務的使用者,它可以通過服務註冊中心來尋找自己所需要的服務,然後呼叫該服務;服務提供者是服務的所有者,它發布自己的服務,對使用自身服務的請求進行響應。

3個動作的作用分別為:發布是使服務提供者向服務註冊中心註冊自己的功能及訪問介面;查詢是服務請求者向服務註冊中心查詢特定種類的服務;繫結和呼叫是使服務請求者能夠使用服務提供者所提供的服務。

1.3 web服務的核心技術

1.3.1 xml

可擴充套件標記語言(extensible markup language,xml)是w3c制定的可擴充套件的文字標記語言,它可以作為定義資料描述語言的語言,如標記語法或詞彙、交換格式和通訊協議,用來實現企業內部和企業之間的電子資料交換。它具有內容與形式分離、良好的擴充套件性、良好的跨平台移植性和良好的自描述性等特點,而且xml是web服務平台中表示資料的基本格式,與http甲構成了web服務的主要技術基礎。

1.3.2 wsdl

web服務描述語言(web services description language,wsdl)是描述服務的基礎規範,描述了web服務的呼叫介面。wsdl是由microsoft和ibm合作開發的一種基於xml的協議語言,用來定義web服務並描述如何訪問這些服務;它是基於xml的語言,它用於描述web服務及其函式、引數和返回值。因為是基於xml的,所以wsdl既是機器可閱讀的,又是人可閱讀的。

wsdl為各種各樣的訊息互動模式提供了支援,它支援沒有響應的單向輸入訊息,請求伸應,以及帶響應或不帶響應的單向傳送,其中後兩種模式使服務能夠指定它需要的其他服務。

1.3.3 soap

簡單物件訪問協議(****** object access protocol,soap)用於web service呼叫xml訊息。soap是乙個基於xml的,用於分布式計算環境下資料交換的簡單、輕量級協議。web服務使用soap作為它的標準通訊協議。因為soa是平台無關和廠商無關的標準,因此儘管soa並不必須使用soap,但在帶有單獨it基礎架構的合作夥伴之間的松耦合互操作中soap仍然是支援服務呼叫的最好方法。

1.3.4 uddi

統一描述、發現和整合協議(universal description,discovery and integration,uddi)是web服務架構下的服務描述、發現和整合機制。uddi規範定義了乙個發布和發現有關web服務資訊的標準方法,uddi相當於web服務在internet中的註冊中心,所有在其中註冊了的web服務都可以被整個internet中的客戶程式所知道。uddi指定了一種機制,對於web服務提供商來說,該機制可以公布web服務的存在,對於web服務的使用者來說,該機制可以定位感興趣的web服務。

uddl分為3種型別:(1)私有uddi服務註冊中心,它描述了乙個組織內部可見的服務;(2)專有uddi服務註冊中心,它描述了乙個或多個組織可見的服務;(3)公有uddi服務註冊中心,它描述了公共可見的服務。在具體應用中可以根據需要選擇不同種類的uddi服務註冊中心。

2面向服務的應用整合模型框架

圖所示為一種通過web服務實現面向服務的整合模型框架。

在該框架中,我們看到它包含以下幾個層次。

a.表示層。

該層由企業門戶和企業應用程式構成。企業門戶為客戶提供服務,向不同的客戶提供不同的訪問方式和認證授權,通過呼叫不同的web服務,客戶得到自己需要的資訊;企業應用程式是企業內部使用的應用程式系統。

b.業務層。

該層是企業所有業務的邏輯集合,它是通過面向服務的業務流程執行語言(ws—bpel語言)進行業務流程描述。其中oasis標準組織已將business process execution language(bpel)定義為基於標準的方法,使用該方法可以編排由服務構成的業務流程。2023年,ws—bpel 2.0被批准為標準語言。作為一種執行語言,ws—bpel定義了如何表示業務流程中的活動,以及流控制邏輯、資料、訊息相關性和異常處理等。

業務層將存在的web服務操作連線,按照特定的規則統一描述到某個業務流程中,將粗粒度服務編排和組合成企業不同的業務流程,實現動態化。業務過程描述文件中包含了它要使用的服務的引用(如:服務名稱、使用服務的位址和wsdl文件的存放位置),bpel文件中標明了每個服務的使用順序。業務層中還有能理解ws—bpel過程描述文件的工作流引擎,該引擎負責按順序或必要的邏輯來使用服務。

c.服務層。

該層是業務層的乙個平台,定義了匯流排提供的細粒度的api介面,通過web services封裝只是將api用基於xml的wsdl重新描述,但是服務仍然是細粒度的,而服務引擎(service engine)代表了粗粒度服務的實現,它使用原有系統的api重新組合成具有更粗粒度的服務。

d.整合層。

該層是通過企業服務匯流排(esb)來實現,企業服務匯流排描述服務的元資料和服務註冊管理;在服務請求者和提供者之間傳遞資料及對這些資料進行轉換,並支援同步模式和非同步模式等。企業服務匯流排提供基於標準的連線服務,將應用中實現的功能或者資料資源轉化為服務請求者能以標準的方式來訪問的服務。企業服務匯流排(esb)是soa的基礎架構,在整個結構體系中,每個服務都是通過企業服務匯流排來進行互相訪問。

假設當有乙個服務請求者a想尋找乙個web服務,那麼它要通過相關的呼叫協議通過入站埠進入到esb中,這時就可以找到已經存在uddi中的對應的web服務b,然後通過出站埠,將訊息提供給服務請求者a。

esb可以通過發現、路由、匹配和選擇,支援服務之間的動態互動,解耦服務請求者和服務提供者。

e.作業系統層。

該層是由整個整合框架中的最小單元組成,這些基本服務是應用系統整合的基石。這些基本服務(資料或業務單元)通過單獨封裝成單個web服務,用web services封裝應用系統可遮蔽原有系統的實現細節,消除不同技術之間整合的困難。web services封裝使外部應用程式以統一的鬆散耦合的方式使用系統服務,當業務的實現邏輯需要更改時,只要web services的wsdl介面不變,無論系統的業務邏輯、實現技術甚至是更換全新的應用系統,客戶程式都不需要作任何改動。我們將各種api介面用wsdl進行再描述,然後通過http與soap共同進行傳輸。

soa可以滿足各種資訊整合的要求,動態地適應企業流程的更新與重組,體現了跨平台、靈活性和易擴充套件。只要將企業的應用系統看作是一組組服務,那麼就可以通過重新組合編排這些服務來滿足企業需要。但是soa技術的資料標準和web技術還處在不斷完善階段,web服務語言還有許多不相容,這都制約了web服務整合應用的發展。

基於SOA的企業應用系統整合研究

位元網 隨著企業資訊化建設的不斷加強和計算機技術的快速發展,以及網際網路的應用,加強了企業內部和企業之間的資訊交流,由於目前我國很多大中型企業部署的應用系統是由不同的企業生產的,這些產品在開發時採用不同的程式語言和實現平台,採用的資料交換格式和通訊協議存在差異,因而使得企業在不同系統間實現資訊互相傳...

系統整合的2種方式

我以前是不是寫過一篇類似的東西,說系統整合的 今天做乙個別的事情的時候,突然想到系統整合的問題。我覺得系統整合歸結來說只有2種方式。分別畫圖說明,圖略粗糙 1 從天上走 這張圖里,系統a和系統b,都開放了一些介面。實現方式可以有很多,web service rpc rmi,都有可能,總之是發布了介面...

系統整合 管理的常識 重點

專案的特點 1 臨時性 2 獨特性 3 漸進明細 資訊系統整合特點 1 滿足客戶和使用者需求為根本出發點 2 客戶使用者需求不夠明確 複雜多變 3 選擇最適合使用者需求和投資規模的產品和技術 4 高技術與高技術的整合 5 系統工程 6 專案團隊年輕 流動率高 7 強調溝通的重要性 專案管理核心知識域...