一 概述
面向服務的架構(Service Oriented Architecture,SOA)繼承了組件化的核心思想,并將其應用到更廣闊的領域。SOA是一種軟件設計的方式,它將企業(yè)級IT系統(tǒng)設計的重點放在業(yè)務流程的設計上,而不是底層的應用開發(fā)或者系統(tǒng)集成的技術細節(jié)。換句話說,SOA是一套可重用的網(wǎng)絡服務的集合,他們之間通過標準化的、與平臺無關的接口進行通信。
下表中對比了SOA和分布式組件化架構的異同:
面向服務的體系結構是設計和構建松散耦合軟件解決方案的方法。通過應用SOA,一個企業(yè)可以使用一組分布式服務來構成并組織應用程序。這樣,他們就能通過重用他們自己的資產和他們伙伴的業(yè)務功能,來構造新的應用程序和修改現(xiàn)有的應用程序參考。
下面將詳細介紹SOA在企業(yè)信息化中的作用。
二 更好地支持業(yè)務流程的控制和管理
由于SOA是在計算環(huán)境下設計、開發(fā)、應用、管理分散的邏輯(服務)單元的一種規(guī)范,這就決定了SOA的廣泛性。SOA要求開發(fā)者從服務集成的角度來設計應用軟件,即使這么做的利益不會馬上顯現(xiàn)。SOA要求開發(fā)者超越應用軟件來思考,并考慮復用現(xiàn)有的服務,或者檢查如何讓服務被重復利用。SOA鼓勵使用可替代的技術和方法(例如消息機制),通過把服務聯(lián)系在一起而非編寫新代碼來構架應用。經(jīng)過適當構建之后,這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規(guī)模應用代碼的開發(fā),使得在商業(yè)環(huán)境許可的時間內對變化的市場條件做出快速的響應。
SOA也不僅僅是一種開發(fā)的方法論,它還包含管理。例如,應用SOA后,管理者可以方便地管理這些搭建在服務平臺上的企業(yè)應用,而不是管理單一的應用模塊。其原理是通過分析服務之間的相互調用,SOA使得公司管理人員方便地獲取什么時候、什么原因、哪些商業(yè)邏輯被執(zhí)行的數(shù)據(jù)信息,這樣就幫助了企業(yè)管理人員或應用架構師迭代地優(yōu)化他們的企業(yè)業(yè)務流程、應用系統(tǒng)。
SOA的一個中心思想就是讓企業(yè)應用徹底擺脫面向技術的解決方案的束縛,輕松應對企業(yè)商業(yè)服務變化、發(fā)展的需要。企業(yè)IT架構環(huán)境中單個應用程序是無法包容業(yè)務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口。
服務是從業(yè)務流程的角度來看待技術的:這是從上向下看的。這種角度同一般的從可用技術所驅動的商業(yè)視角是相反的。因為服務的優(yōu)勢很清楚,它們會同業(yè)務流程結合在一起,能夠更加精確地表示業(yè)務模型、更好地支持業(yè)務流程。相反,我們可以看到,以應用程序為中心的企業(yè)應用模型,迫使業(yè)務用戶將其能力局限為應用程序的能力。
企業(yè)流程(EntERPrise Process)是流經(jīng)企業(yè)框架的空氣,它賦予業(yè)務模型里的組件以生命,并更加清晰地定義了它們之間的關系。服務被定義用來支持業(yè)務流程,因而自始至終地貫穿整個流程:各種服務組件在流程和邏輯實現(xiàn)過程中的裝配操作,理解業(yè)務流程是定制服務的關鍵所在。
三 SOA有利于企業(yè)業(yè)務的集成
傳統(tǒng)的應用集成方法,如:點對點集成、企業(yè)消息總線或EAI、基于業(yè)務流程的集成等,都很復雜、昂貴,而且不靈活。這些集成方法難于快速適應基于企業(yè)現(xiàn)代業(yè)務變化不斷產生的需求。
基于SOA的應用開發(fā)和集成可以很好地解決其中的許多問題。它描述了一套完善的開發(fā)模式來幫助客戶端應用連接到服務上。這些模式定制了系列機制用于描述服務、通知及發(fā)現(xiàn)服務、與服務進行通信。
不同于傳統(tǒng)的應用集成方法的是,在SOA中,圍繞服務的所有模式都是以基于標準的技術實現(xiàn)的。大部分的通信中間件系統(tǒng),如RPC、CORBA、DCOM、EJB和RMI,也同樣如此。可是它們的實現(xiàn)都不是很完美的,在權衡交互性以及標準定制的可接受性方面總是存在問題。
SOA試圖排除這些缺陷。因為幾乎所有的通信中間件系統(tǒng)都有固定的處理模式,如RPC的功能、CORBA的對象等等。然而,服務既可以定義為功能,又可同時對外定義為對象、應用等等。這使得SOA可適應于任何現(xiàn)有系統(tǒng),并使得系統(tǒng)在集成時不必刻意遵循任何特殊定制。
四 基于webservice的SOA架構體系
SOA使得應用系統(tǒng)的設計清晰化,而且促進組件的重用。一個新的服務種類可能需要利用運行在現(xiàn)有的跨部門、甚至跨企業(yè)的多臺計算機上的應用。理想的情況下,一個團隊開發(fā)的客戶端應該可以與另一團隊開發(fā)的服務器端模塊不用或少用中間件直接相聯(lián),但更多的情況下,各個組件之間的異構性使得一個由網(wǎng)關(Gateway)、適配器、封裝器、集成總站(Integration Hub)和業(yè)務流程引擎(BPM)組成的集成層成為必要。
很多的企業(yè)應用由于缺乏同一的長遠的規(guī)劃,通常情況下很少共享數(shù)據(jù),幾乎從不共享程序邏輯。但很多的服務具有通用性,而非某一應用獨有,一個通用服務架構(Common ServiceArchitecture)能幫助企業(yè)在上述的原則下共享部分數(shù)據(jù)和程序邏輯。
web服務是目前在SOA架構體系中最合適的一種實現(xiàn)。通過在SOA架構下使用webservices,整個信息系統(tǒng)內大部分的業(yè)務功能或者具體的應用系統(tǒng)將作為一個服務來開發(fā),服務的接口是基于標準的,無論是對外連系統(tǒng)的交互還是信息系統(tǒng)內部的相互調用會變得更加容易。不僅提高了互操作性,而且對于系統(tǒng)的集成、擴展變得更容易實現(xiàn)和管理。
在于外部系統(tǒng)的交互上,由于使用webservices技術,交互的雙方只通過webservices服務接口來進行,與雙方的具體實現(xiàn)是無關的,通訊協(xié)議是基于通用的HTTP/HTTPS的,數(shù)據(jù)采用XML封裝,這些技術要不就是普遍流行的就是公認的標準技術。Webservices的使用使得這種B2BI更容易開發(fā)實現(xiàn),同時在交互業(yè)務發(fā)生變更需要進行實現(xiàn)的更改或者擴展時,不需要更改交互的接口,只需要在后端實現(xiàn)上做出相應變更。
在另一方面,對于整個信息化系統(tǒng)平臺內部來說,Web服務使得系統(tǒng)內部各個應用可以相互獨立的開發(fā)。應用平臺內部的各個應用系統(tǒng)之間通過Web服務的方式這種標準、通用的方式來相互協(xié)調。業(yè)務規(guī)則的變更引起的系統(tǒng)重構可以嚴格限制在一定范圍之內,而不會影響到整個系統(tǒng)。
在一個以SOA體系架構構造的平臺系統(tǒng)中,完全可以把一些公用的功能作為web服務來開發(fā),例如:用戶身份驗證和授權。不再需要為每個應用都去開發(fā)這些功用的功能了,通用功能作為服務來開發(fā),不僅降低了其他應用的開發(fā)、集成難度,而且也最大限度地重用了應用平臺內的資源。
五 結束語
SOA是一種新興的組件模型,它通過定義規(guī)范的契約和接口實現(xiàn)了不同平臺軟件之間的平順對接。本文介紹了SOA的技術框架和優(yōu)勢,并提出其在企業(yè)信息化系統(tǒng)構建中的具體應用,掌握SOA的思想和技術將有利于快速、高效地開發(fā)企業(yè)信息化系統(tǒng)。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:SOA在企業(yè)信息化系統(tǒng)中的應用
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083934576.html