初探 SOA(補(bǔ)充)
更新時間:2009年01月09日 18:31:56 作者:
SOA是一種應(yīng)用框架,它著眼于日常的業(yè)務(wù)應(yīng)用,并將它們劃分為單獨(dú)的業(yè)務(wù)功能和流程,即所謂的服務(wù)。它使用戶可以構(gòu)建、部署和整合這些服務(wù),且無需依賴應(yīng)用程序及其運(yùn)行計算平臺,從而提高業(yè)務(wù)流程的靈活性。
這種業(yè)務(wù)靈活性可使企業(yè)加快發(fā)展速度,降低總體擁有成本,改善對及時、準(zhǔn)確信息的訪問。SOA 有助于實現(xiàn)更多的資產(chǎn)重用、更輕松的管理和更快的開發(fā)與部署,在當(dāng)今的業(yè)務(wù)環(huán)境中,變化是毫無疑問的,因此快速響應(yīng)客戶需求、市場機(jī)遇和外部威脅的敏捷性,輕松應(yīng)對企業(yè)商業(yè)服務(wù)變化、發(fā)展的需要比以往任何時候都更顯重要。
各種企業(yè)都認(rèn)識到組件化、模塊化、互操作和可伸縮基礎(chǔ)設(shè)施的價值:
組件化:利用標(biāo)準(zhǔn)化的應(yīng)用程序和資源服務(wù)接口
互操作:實現(xiàn)應(yīng)用程序和/或資源之間的輕松信息交換
模塊化:混合搭配、添加刪除、業(yè)務(wù)流程與基礎(chǔ)設(shè)施
可伸縮:從現(xiàn)有資源起步,隨需添加其他資源
SOA的目標(biāo)在于讓IT變得更有彈性,以便更快地響應(yīng)業(yè)務(wù)單位的需求使得企業(yè)應(yīng)用擺脫面向技術(shù)的解決方案的束縛。SOA可以用蝙蝠來做比喻,蝙蝠要利用自己的超聲波捕捉食物,也需要超聲波了躲避障礙物,企業(yè)也一樣,既想利用軟件來贏利,也希望軟件來規(guī)避企業(yè)的的風(fēng)險。
SOA要求開發(fā)者從服務(wù)集成的角度來設(shè)計應(yīng)用軟件,要求開發(fā)者超越應(yīng)用軟件來思考,在服務(wù)的基礎(chǔ)上進(jìn)行技術(shù)構(gòu)建,并考慮復(fù)用現(xiàn)有的服務(wù),或者檢查如何讓服務(wù)被重復(fù)利用,讓業(yè)務(wù)需要成為功能組件選擇中的驅(qū)動因素。它鼓勵使用可替代的技術(shù)和方法(例如:消息機(jī)制),通過把服務(wù)聯(lián)系在一起而非編寫新代碼來構(gòu)架應(yīng)用。SOA想要實現(xiàn)企業(yè)資源共享,首先要把應(yīng)用和資源轉(zhuǎn)換成服務(wù)(Service)然后把這些服務(wù)變成標(biāo)準(zhǔn)的服務(wù),形成資源的共享。
SOA服務(wù)具有平臺獨(dú)立的自我描述XML文檔,旨在提高業(yè)務(wù)流程之間和 IT 應(yīng)用程序之間的模塊化和重用程度,Web服務(wù)描述語言(WSDL, Web Services Description Language)是用于描述服務(wù)的標(biāo)準(zhǔn)語言。
SOA 服務(wù)用消息進(jìn)行通信,該消息通常使用XML Schema來定義(也叫做XSD, XML Schema Definition)。消費(fèi)者和提供者或消費(fèi)者和服務(wù)之間的通信多見于不知道提供者的環(huán)境中。服務(wù)間的通訊也可以看作企業(yè)內(nèi)部處理的關(guān)鍵商業(yè)文檔。
在一個企業(yè)內(nèi)部,SOA服務(wù)通過一個扮演目錄列表角色的登記處來進(jìn)行維護(hù)。應(yīng)用程序在登記處尋找并調(diào)用某項服務(wù)。統(tǒng)一描述,定義和集成是服務(wù)登記的標(biāo)準(zhǔn)。每項SOA服務(wù)都有一個與之相關(guān)的服務(wù)品質(zhì)(QoS, quality of service)。QoS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信,以及誰能調(diào)用服務(wù)的策略。
不同種類的操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)相互交織,這便是IT企業(yè)的現(xiàn)狀。一些現(xiàn)存的應(yīng)用程序被用來處理當(dāng)前的業(yè)務(wù)流程(business processes),因此從頭建立一個新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對業(yè)務(wù)的變化做出快速的反應(yīng),利用對現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)的投資來解決新的業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新的互動渠道,并呈現(xiàn)一個可以支持有機(jī)業(yè)務(wù)(organic business)的構(gòu)架。SOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇從而可以通過不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù),從而保護(hù)了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。
要運(yùn)行,管理SOA應(yīng)用程序,企業(yè)需要SOA基礎(chǔ),這是SOA平臺的一個部分。SOA基礎(chǔ)必須支持所有的相關(guān)標(biāo)準(zhǔn),和需要的運(yùn)行時容器。
WSDL,UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來描述服務(wù);UDDI用來注冊和查找服務(wù);而SOAP,作為傳輸層,用來在消費(fèi)者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機(jī)制,其他的技術(shù)為可以服務(wù)實現(xiàn)其他類型的綁定。一個消費(fèi)者可以在UDDI注冊表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過SOAP來調(diào)用服務(wù)。
SOA的概念并非什么新東西,它代表的是一次進(jìn)化,而不是一次革命,SOA以借助現(xiàn)有的應(yīng)用來組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。我認(rèn)為現(xiàn)有的web服務(wù)、工作流、中間件以及現(xiàn)在炒得火熱的SAAS都是SOA在不同層度上的實現(xiàn)。但它們也有所區(qū)別,Web服務(wù)是技術(shù)規(guī)范,是利用一組標(biāo)準(zhǔn)實現(xiàn)的服務(wù),而SOA是設(shè)計原則一種架構(gòu)模式,用Web服務(wù)來實現(xiàn)SOA的好處是你可以實現(xiàn)一個中立平臺,來獲得服務(wù),而且隨著越來越多的軟件商支持越來越多的Web服務(wù)規(guī)范,你會取得更好的通用性。SOA和SAAS我思想相近,而SOA是站在軟件架構(gòu)和設(shè)計的角度來看待軟件是如何被架構(gòu)起來的東西,SAAS則是站在應(yīng)用的角度來看待軟件是如何被應(yīng)用的,軟件可以通過SaaS使用SOA的方法提供給用戶,也帶給SaaS系統(tǒng)松散的耦合,我相信在不久的將來,SOA和SAAS將會很好的結(jié)合起來,來指導(dǎo)我們的開發(fā)和應(yīng)用。
各種企業(yè)都認(rèn)識到組件化、模塊化、互操作和可伸縮基礎(chǔ)設(shè)施的價值:
組件化:利用標(biāo)準(zhǔn)化的應(yīng)用程序和資源服務(wù)接口
互操作:實現(xiàn)應(yīng)用程序和/或資源之間的輕松信息交換
模塊化:混合搭配、添加刪除、業(yè)務(wù)流程與基礎(chǔ)設(shè)施
可伸縮:從現(xiàn)有資源起步,隨需添加其他資源
SOA的目標(biāo)在于讓IT變得更有彈性,以便更快地響應(yīng)業(yè)務(wù)單位的需求使得企業(yè)應(yīng)用擺脫面向技術(shù)的解決方案的束縛。SOA可以用蝙蝠來做比喻,蝙蝠要利用自己的超聲波捕捉食物,也需要超聲波了躲避障礙物,企業(yè)也一樣,既想利用軟件來贏利,也希望軟件來規(guī)避企業(yè)的的風(fēng)險。
SOA要求開發(fā)者從服務(wù)集成的角度來設(shè)計應(yīng)用軟件,要求開發(fā)者超越應(yīng)用軟件來思考,在服務(wù)的基礎(chǔ)上進(jìn)行技術(shù)構(gòu)建,并考慮復(fù)用現(xiàn)有的服務(wù),或者檢查如何讓服務(wù)被重復(fù)利用,讓業(yè)務(wù)需要成為功能組件選擇中的驅(qū)動因素。它鼓勵使用可替代的技術(shù)和方法(例如:消息機(jī)制),通過把服務(wù)聯(lián)系在一起而非編寫新代碼來構(gòu)架應(yīng)用。SOA想要實現(xiàn)企業(yè)資源共享,首先要把應(yīng)用和資源轉(zhuǎn)換成服務(wù)(Service)然后把這些服務(wù)變成標(biāo)準(zhǔn)的服務(wù),形成資源的共享。
SOA服務(wù)具有平臺獨(dú)立的自我描述XML文檔,旨在提高業(yè)務(wù)流程之間和 IT 應(yīng)用程序之間的模塊化和重用程度,Web服務(wù)描述語言(WSDL, Web Services Description Language)是用于描述服務(wù)的標(biāo)準(zhǔn)語言。
SOA 服務(wù)用消息進(jìn)行通信,該消息通常使用XML Schema來定義(也叫做XSD, XML Schema Definition)。消費(fèi)者和提供者或消費(fèi)者和服務(wù)之間的通信多見于不知道提供者的環(huán)境中。服務(wù)間的通訊也可以看作企業(yè)內(nèi)部處理的關(guān)鍵商業(yè)文檔。
在一個企業(yè)內(nèi)部,SOA服務(wù)通過一個扮演目錄列表角色的登記處來進(jìn)行維護(hù)。應(yīng)用程序在登記處尋找并調(diào)用某項服務(wù)。統(tǒng)一描述,定義和集成是服務(wù)登記的標(biāo)準(zhǔn)。每項SOA服務(wù)都有一個與之相關(guān)的服務(wù)品質(zhì)(QoS, quality of service)。QoS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信,以及誰能調(diào)用服務(wù)的策略。
不同種類的操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)相互交織,這便是IT企業(yè)的現(xiàn)狀。一些現(xiàn)存的應(yīng)用程序被用來處理當(dāng)前的業(yè)務(wù)流程(business processes),因此從頭建立一個新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對業(yè)務(wù)的變化做出快速的反應(yīng),利用對現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)的投資來解決新的業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新的互動渠道,并呈現(xiàn)一個可以支持有機(jī)業(yè)務(wù)(organic business)的構(gòu)架。SOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇從而可以通過不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù),從而保護(hù)了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。
要運(yùn)行,管理SOA應(yīng)用程序,企業(yè)需要SOA基礎(chǔ),這是SOA平臺的一個部分。SOA基礎(chǔ)必須支持所有的相關(guān)標(biāo)準(zhǔn),和需要的運(yùn)行時容器。
WSDL,UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來描述服務(wù);UDDI用來注冊和查找服務(wù);而SOAP,作為傳輸層,用來在消費(fèi)者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機(jī)制,其他的技術(shù)為可以服務(wù)實現(xiàn)其他類型的綁定。一個消費(fèi)者可以在UDDI注冊表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過SOAP來調(diào)用服務(wù)。
SOA的概念并非什么新東西,它代表的是一次進(jìn)化,而不是一次革命,SOA以借助現(xiàn)有的應(yīng)用來組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。我認(rèn)為現(xiàn)有的web服務(wù)、工作流、中間件以及現(xiàn)在炒得火熱的SAAS都是SOA在不同層度上的實現(xiàn)。但它們也有所區(qū)別,Web服務(wù)是技術(shù)規(guī)范,是利用一組標(biāo)準(zhǔn)實現(xiàn)的服務(wù),而SOA是設(shè)計原則一種架構(gòu)模式,用Web服務(wù)來實現(xiàn)SOA的好處是你可以實現(xiàn)一個中立平臺,來獲得服務(wù),而且隨著越來越多的軟件商支持越來越多的Web服務(wù)規(guī)范,你會取得更好的通用性。SOA和SAAS我思想相近,而SOA是站在軟件架構(gòu)和設(shè)計的角度來看待軟件是如何被架構(gòu)起來的東西,SAAS則是站在應(yīng)用的角度來看待軟件是如何被應(yīng)用的,軟件可以通過SaaS使用SOA的方法提供給用戶,也帶給SaaS系統(tǒng)松散的耦合,我相信在不久的將來,SOA和SAAS將會很好的結(jié)合起來,來指導(dǎo)我們的開發(fā)和應(yīng)用。
相關(guān)文章
詳解DES&3DES算法的原理以及C#和JS的實現(xiàn)
DES?全稱為?Data?Encryption?Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法。3DES?算法通過對?DES?算法進(jìn)行改進(jìn),增加?DES?的密鑰長度來避免類似的攻擊。本文就來聊聊它們的原理與實現(xiàn)吧2023-03-03刪除SVN三種方法delSvn(windows+linux)
今天想清除目錄下的SVN信息,在網(wǎng)上找了找,說是有三種方法2012-03-03使用 FFmpeg 命令拼接mp3音頻文件異常問題及解決方法
這篇文章主要介紹了使用 FFmpeg 命令拼接mp3音頻文件異常問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03lambda 表達(dá)式導(dǎo)致 Arthas 無法 redefine 的問題
這篇文章主要介紹了lambda 表達(dá)式導(dǎo)致 Arthas 無法 redefine 的問題,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06