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