面向服務(wù) 的體系結(jié)構(gòu) (Service-Oriented Architecture,SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和
編程語(yǔ)言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互。
這種具有中立的接口定義(沒(méi)有強(qiáng)制綁定到特定的實(shí)現(xiàn)上)的特征稱為服務(wù)之間的松耦合。松耦合系統(tǒng)的好處有兩點(diǎn),一點(diǎn)是它的靈活性,另一點(diǎn)是,當(dāng)組成整個(gè)應(yīng)用程序的每個(gè)服務(wù)的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)逐漸地發(fā)生改變時(shí),它能夠繼續(xù)存在。而另一方面,緊耦合意味著應(yīng)用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當(dāng)需要對(duì)部分或整個(gè)應(yīng)用程序進(jìn)行某種形式的更改時(shí),它們就顯得非常脆弱。
對(duì)松耦合的系統(tǒng)的需要來(lái)源于業(yè)務(wù)應(yīng)用程序需要根據(jù)業(yè)務(wù)的需要變得更加靈活,以適應(yīng)不斷變化的環(huán)境,比如經(jīng)常改變的政策、業(yè)務(wù)級(jí)別、業(yè)務(wù)重點(diǎn)、合作伙伴關(guān)系、行業(yè)地位以及其他與業(yè)務(wù)有關(guān)的因素,這些因素甚至?xí)绊憳I(yè)務(wù)的性質(zhì)。我們稱能夠靈活地適應(yīng)環(huán)境變化的業(yè)務(wù)為按需(On demand)業(yè)務(wù),在按需業(yè)務(wù)中,一旦需要,就可以對(duì)完成或執(zhí)行任務(wù)的方式進(jìn)行必要的更改。
雖然面向服務(wù)的體系結(jié)構(gòu)不是一個(gè)新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P停嫦驅(qū)ο蟮哪P褪蔷o耦合的,已經(jīng)存在二十多年了。雖然基于 SOA 的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計(jì)來(lái)構(gòu)建單個(gè)服務(wù),但是其整體設(shè)計(jì)卻是面向服務(wù)的。由于它考慮到了系統(tǒng)內(nèi)的對(duì)象,所以雖然 SOA 是基于對(duì)象的,但是作為一個(gè)整體,它卻不是面向?qū)ο蟮摹2煌幵谟诮涌诒旧怼OA 系統(tǒng)原型的一個(gè)典型例子是通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA),它已經(jīng)出現(xiàn)很長(zhǎng)時(shí)間了,其定義的概念與 SOA 相似。
然而,現(xiàn)在的 SOA 已經(jīng)有所不同了,因?yàn)樗蕾囉谝恍└碌倪M(jìn)展,這些進(jìn)展是以可擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language,XML)為基礎(chǔ)的。通過(guò)使用基于 XML 的語(yǔ)言(稱為 Web 服務(wù)描述語(yǔ)言( Web Service s Definition Language,WSDL))來(lái)描述接口,服務(wù)已經(jīng)轉(zhuǎn)到更動(dòng)態(tài)且更靈活的接口系統(tǒng)中,非以前 CORBA 中的接口描述語(yǔ)言(Interface Definition Language,IDL)可比了。
Web 服務(wù)并不是實(shí)現(xiàn) SOA 的惟一方式。前面剛講的 CORBA 是另一種方式,這樣就有了面向消息的 中間件 (Message-Oriented Middleware)系統(tǒng),比如 IBM 的 MQseries。但是為了建立體系結(jié)構(gòu)模型,您所需要的并不只是服務(wù)描述。您需要定義整個(gè)應(yīng)用程序如何在服務(wù)之間執(zhí)行其工作流。您尤其需要找到業(yè)務(wù)的操作和業(yè)務(wù)中所使用的軟件的操作之間的轉(zhuǎn)換點(diǎn)。因此,SOA 應(yīng)該能夠?qū)I(yè)務(wù)的商業(yè)流程與它們的技術(shù)流程聯(lián)系起來(lái),并且映射這兩者之間的關(guān)系。例如,給供應(yīng)商付款的操作是商業(yè)流程,而更新您的零件數(shù)據(jù)庫(kù),以包括進(jìn)新供應(yīng)的貨物卻是技術(shù)流程。因而,工作流還可以在 SOA 的設(shè)計(jì)中扮演重要的角色。
此外,動(dòng)態(tài)業(yè)務(wù)的工作流不僅可以包括部門(mén)之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進(jìn)行的操作。因此,為了提高效率,您需要定義應(yīng)該如何得知服務(wù)之間的關(guān)系的策略,這種策略常常采用服務(wù)級(jí)協(xié)定和操作策略的形式。
最后,所有這些都必須處于一個(gè)信任和可靠的環(huán)境之中,以同預(yù)期的一樣根據(jù)約定的條款來(lái)執(zhí)行流程。因此,安全、信任和可靠的消息傳遞應(yīng)該在任何 SOA 中都起著重要的作用。
我可以用面向服務(wù)的體系結(jié)構(gòu)做什么?
對(duì) SOA 的需要來(lái)源于需要使業(yè)務(wù) IT 系統(tǒng)變得更加靈活,以適應(yīng)業(yè)務(wù)中的改變。通過(guò)允許強(qiáng)定義的關(guān)系和依然靈活的特定實(shí)現(xiàn),IT 系統(tǒng)既可以利用現(xiàn)有系統(tǒng)的功能,又可以準(zhǔn)備在以后做一些改變來(lái)滿足它們之間交互的需要。
下面舉一個(gè)具體的例子。一個(gè)服裝零售組織擁有 500 家國(guó)際連鎖店,它們常常需要更改設(shè)計(jì)來(lái)趕上時(shí)尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產(chǎn)品。如果零售商和制造商之間的系統(tǒng)不兼容,那么從一個(gè)供應(yīng)商到另一個(gè)供應(yīng)商的更換可能就是一個(gè)非常復(fù)雜的軟件流程。通過(guò)利用 WSDL 接口在操作方面的靈活性,每個(gè)公司都可以將它們的現(xiàn)有系統(tǒng)保持現(xiàn)狀,而僅僅匹配 WSDL 接口并制訂新的服務(wù)級(jí)協(xié)定,這樣就不必完全重構(gòu)它們的軟件系統(tǒng)了。這是業(yè)務(wù)的水平改變,也就是說(shuō),它們改變的是合作伙伴,而所有的業(yè)務(wù)操作基本上都保持不變。這里,業(yè)務(wù)接口可以作少許改變,而內(nèi)部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。
另一種形式是內(nèi)部改變,在這種改變中,零售組織現(xiàn)在決定它還將把連鎖零售商店內(nèi)的一些地方出租給專賣(mài)流行衣服的小商店,這可以看作是采用店中店(store-in-store)的業(yè)務(wù)模型。這里,雖然公司的大多數(shù)業(yè)務(wù)操作都保持不變,但是它們現(xiàn)在需要新的內(nèi)部軟件來(lái)處理這樣的出租安排。盡管在內(nèi)部軟件系統(tǒng)可以承受全面的檢修,但是它們需要在這樣做的同時(shí)不會(huì)對(duì)與現(xiàn)有的供應(yīng)商系統(tǒng)的交互產(chǎn)生大的影響。在這種情況下,SOA 模型保持原封不動(dòng),而內(nèi)部實(shí)現(xiàn)卻發(fā)生了變化。雖然可以將新的方面添加到 SOA 模型中來(lái)加入新的出租安排的職責(zé),但是正常的零售管理系統(tǒng)繼續(xù)如往常一樣。
為了延續(xù)內(nèi)部改變的觀念,IT 經(jīng)理可能會(huì)發(fā)現(xiàn),軟件的新配置還可以以另外的一種方式加以使用,比如出租粘貼海報(bào)的地方以供廣告之用。這里,新的業(yè)務(wù)提議是通過(guò)在新的設(shè)計(jì)中重用靈活的 SOA 模型得出的。這是來(lái)自 SOA 模型的新成果,并且還是一個(gè)新的機(jī)會(huì),而這樣的新機(jī)會(huì)在以前可能是不會(huì)有的。
垂直改變也是可能的,在這種改變中,零售商從銷(xiāo)售他們自己的服裝完全轉(zhuǎn)變到專門(mén)通過(guò)店中店模型出租地方。如果垂直改變完全從最底層開(kāi)始的話,就會(huì)帶來(lái) SOA 模型結(jié)構(gòu)的顯著改變,與之一起改變的還可能有新的系統(tǒng)、軟件、流程以及關(guān)系。在這種情況下,SOA 模型的好處是它從業(yè)務(wù)操作和流程的角度考慮問(wèn)題而不是從應(yīng)用程序和程序的角度考慮問(wèn)題,這使得業(yè)務(wù)管理可以根據(jù)業(yè)務(wù)的操作清楚地確定什么需要添加、修改或刪除。然后可以將軟件系統(tǒng)構(gòu)造為適合業(yè)務(wù)處理的方式,而不是在許多現(xiàn)有的軟件平臺(tái)上常常看到的其他方式。
正如您可以看到的,在這里,改變和 SOA 系統(tǒng)適應(yīng)改變的能力是最重要的部分。對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),這樣的改變無(wú)論是在他們工作的范圍之內(nèi)還是在他們工作的范圍之外都有可能發(fā)生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進(jìn)行交互。與開(kāi)發(fā)人員不同的是,架構(gòu)師的作用就是引起對(duì) SOA 模型大的改變。這種分工,就是讓開(kāi)發(fā)人員集中精力于創(chuàng)建作為服務(wù)定義的功能單元,而讓架構(gòu)師和建模人員集中精力于如何將這些單元適當(dāng)?shù)亟M織在一起,它已經(jīng)有十多年的歷史了,通常用統(tǒng)一建模語(yǔ)言(Universal Modeling Language,UML),并且描述成模型驅(qū)動(dòng)的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)。
對(duì)于面向同步和異步應(yīng)用的,基于請(qǐng)求/響應(yīng)模式的分布式計(jì)算來(lái)說(shuō),SOA是一場(chǎng)革命。一個(gè)應(yīng)用程序的業(yè)務(wù)邏輯(business logic)或某些單獨(dú)的功能被模塊化并作為服務(wù)呈現(xiàn)給消費(fèi)者或客戶端。這些服務(wù)的關(guān)鍵是他們的松耦合特性。例如,服務(wù)的接口和實(shí)現(xiàn)相獨(dú)立。應(yīng)用開(kāi)發(fā)人員或者系統(tǒng)集成者可以通過(guò)組合一個(gè)或多個(gè)服務(wù)來(lái)構(gòu)建應(yīng)用,而無(wú)須理解服務(wù)的底層實(shí)現(xiàn)。舉例來(lái)說(shuō),一個(gè)服務(wù)可以用.NET或J2EE來(lái)實(shí)現(xiàn),而使用該服務(wù)的應(yīng)用程序可以在不同的平臺(tái)之上,使用的語(yǔ)言也可以不同。
SOA有以下特性
SOA服務(wù)具有平臺(tái)獨(dú)立的自我描述XML文檔。Web服務(wù)描述語(yǔ)言(WSDL, Web S
[2] ervices Description Language)是用于描述服務(wù)的標(biāo)準(zhǔn)語(yǔ)言。
SOA 服務(wù)用消息進(jìn)行通信,該消息通常使用XML Schema來(lái)定義(也叫做XSD, XML Schema Definition)。消費(fèi)者和提供者或消費(fèi)者和服務(wù)之間的通信多見(jiàn)于不知道提供者的環(huán)境中。服務(wù)間的通訊也可以看作企業(yè)內(nèi)部處理的關(guān)鍵商業(yè)文檔。
在一個(gè)企業(yè)內(nèi)部,SOA服務(wù)通過(guò)一個(gè)扮演目錄列表(directory listing)角色的登記處(Registry)來(lái)進(jìn)行維護(hù)。應(yīng)用程序在登記處(Registry)尋找并調(diào)用某項(xiàng)服務(wù)。統(tǒng)一描述,定義和集成(UDDI, Universal Description, Definition, and Integration)是服務(wù)登記的標(biāo)準(zhǔn)。
每項(xiàng)SOA服務(wù)都有一個(gè)與之相關(guān)的服務(wù)品質(zhì)(QoS, quality of service)。QoS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信(譯注:可靠消息是指,確保消息“僅且僅僅”發(fā)送一次,從而過(guò)濾重復(fù)信息。),以及誰(shuí)能調(diào)用服務(wù)的策略。
為什么選擇SOA?
不同種類(lèi)的操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)相互交織,這便是IT企業(yè)的現(xiàn)狀。一些現(xiàn)存的應(yīng)用程序被用來(lái)處理當(dāng)前的業(yè)務(wù)流程(business processes),因此從頭建立一個(gè)新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對(duì)業(yè)務(wù)的變化做出快速的反應(yīng),利用對(duì)現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)的投資來(lái)解決新的業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新的互動(dòng)渠道,并呈現(xiàn)一個(gè)可以支持有機(jī)業(yè)務(wù)(organic business)的構(gòu)架。SOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來(lái)添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇從而可以通過(guò)不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù), 從而保護(hù)了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。
如圖1的例子所示,一個(gè)使用SOA的企業(yè),可以使用一組現(xiàn)有的應(yīng)用來(lái)創(chuàng)建一個(gè)供應(yīng)鏈復(fù)合應(yīng)用(supply chain composite application),這些現(xiàn)有的應(yīng)用通過(guò)標(biāo)準(zhǔn)接口來(lái)提供功能。
服務(wù)架構(gòu)
為了實(shí)現(xiàn)SOA,企業(yè)需要一個(gè)服務(wù)架構(gòu),圖2顯示了一個(gè)例子:
在圖2中, 服務(wù)消費(fèi)者(service consumer)可以通過(guò)發(fā)送消息來(lái)調(diào)用服務(wù)。這些消息由一個(gè)服務(wù)總線(service bus)轉(zhuǎn)換后發(fā)送給適當(dāng)?shù)姆?wù)實(shí)現(xiàn)。這種服務(wù)架構(gòu)可以提供一個(gè)業(yè)務(wù)規(guī)則引擎(business rules engine),該引擎容許業(yè)務(wù)規(guī)則被合并在一個(gè)服務(wù)里或多個(gè)服務(wù)里。這種架構(gòu)也提供了一個(gè)服務(wù)管理基礎(chǔ)(service management infrastructure),用來(lái)管理服務(wù),類(lèi)似審核,列表(billing),日志等功能。此外,該架構(gòu)給企業(yè)提供了靈活的業(yè)務(wù)流程,更好地處理控制請(qǐng)求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影響其他服務(wù)的情況下更改某項(xiàng)服務(wù)。
SOA基礎(chǔ)結(jié)構(gòu)
要運(yùn)行,管理SOA應(yīng)用程序,企業(yè)需要SOA基礎(chǔ),這是SOA平臺(tái)的一個(gè)部分。SOA基礎(chǔ)必須支持所有的相關(guān)標(biāo)準(zhǔn),和需要的運(yùn)行時(shí)容器。圖3所示的是一個(gè)典型的SOA基礎(chǔ)結(jié)構(gòu)。
SOAP, WSDL, UDDI
WSDL,UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來(lái)描述服務(wù);UDDI用來(lái)注冊(cè)和查找服務(wù);而SOAP,作為傳輸層,用來(lái)在消費(fèi)者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機(jī)制,其他的技術(shù)為可以服務(wù)實(shí)現(xiàn)其他類(lèi)型的綁定。一個(gè)消費(fèi)者可以在UDDI注冊(cè)表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過(guò)SOAP來(lái)調(diào)用服務(wù)。
WS-I Basic Profile
WS-I Basic Profile,由Web服務(wù)互用性組織(Web Services Interoperability Organization)提供,是SOA服務(wù)測(cè)試與互用性所需要的核心構(gòu)件。服務(wù)提供者可以使用Basic Profile測(cè)試程序來(lái)測(cè)試服務(wù)在不同平臺(tái)和技術(shù)上的互用性。
J2EE 和 .Net
盡管J2EE和.NET平臺(tái)是開(kāi)發(fā)SOA應(yīng)用程序常用的平臺(tái),但SOA不僅限于此。像J2EE這類(lèi)平臺(tái),不僅為開(kāi)發(fā)者自然而然地參與到SOA中來(lái)提供了一個(gè)平臺(tái),還通過(guò)他們內(nèi)在的特性,將可擴(kuò)展性,可靠性,可用性以及性能引入了SOA世界。新的規(guī)范,例如 JAXB(Java API for XML Binding),用于將XML文檔定位到Java類(lèi);JAXR(Java API for XML Registry)用來(lái)規(guī)范對(duì)UDDI注冊(cè)表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用來(lái)調(diào)用遠(yuǎn)程服務(wù),這使得開(kāi)發(fā)和部署可移植于標(biāo)準(zhǔn)J2EE容器的Web服務(wù)變得容易,與此同時(shí),實(shí)現(xiàn)了跨平臺(tái)(如。NET)的服務(wù)互用。
服務(wù)品質(zhì)
在企業(yè)中,關(guān)鍵任務(wù)系統(tǒng)(mission-critical system,譯注:關(guān)鍵任務(wù)系統(tǒng)是指如果一個(gè)系統(tǒng)的可靠性對(duì)于一個(gè)組織是至關(guān)重要的,那么該系統(tǒng)就是該企業(yè)的關(guān)鍵任務(wù)系統(tǒng)。比如,電話系統(tǒng)對(duì)于一個(gè)電話促銷(xiāo)企業(yè)來(lái)說(shuō)就是關(guān)鍵任務(wù)系統(tǒng),而文字處理系統(tǒng)就不那么關(guān)鍵了。)用來(lái)解決高級(jí)需求,例如安全性,可靠性,事物。當(dāng)一個(gè)企業(yè)開(kāi)始采用服務(wù)架構(gòu)作為工具來(lái)進(jìn)行開(kāi)發(fā)和部署應(yīng)用的時(shí)候,基本的Web服務(wù)規(guī)范,像WSDL,SOAP,以及UDDI就不能滿足這些高級(jí)需求。正如前面所提到的,這些需求也稱作服務(wù)品質(zhì)(QoS,quality of services)。與QoS相關(guān)的眾多規(guī)范已經(jīng)由一些標(biāo)準(zhǔn)化組織(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分將會(huì)討論一些QoS服務(wù)和相關(guān)標(biāo)準(zhǔn)。
安全
Web服務(wù)安全規(guī)范用來(lái)保證消息的安全性。該規(guī)范主要包括認(rèn)證交換, 消息完整性和消息保密。該規(guī)范吸引人的地方在于它借助現(xiàn)有的安全標(biāo)準(zhǔn),例如,SAML(as Security Assertion Markup Language)來(lái)實(shí)現(xiàn)web服務(wù)消息的安全。OASIS正致力于Web服務(wù)安全規(guī)范的制定。
可靠
在典型的SOA 環(huán)境中,服務(wù)消費(fèi)者和服務(wù)提供者之間會(huì)有幾種不同的文檔在進(jìn)行交換。具有諸如“僅且僅僅傳送一次”( once-and-only-once delivery),“最多傳送一次”( at-most-once delivery),“重復(fù)消息過(guò)濾”(duplicate message elimination),“保證消息傳送”(guaranteed message delivery)等特性消息的發(fā)送和確認(rèn),在關(guān)鍵任務(wù)系統(tǒng)(mission-critical systems)中變得十分重要。WS-Reliability 和 WS-ReliableMessaging是兩個(gè)用來(lái)解決此類(lèi)問(wèn)題的標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)現(xiàn)在都由OASIS負(fù)責(zé)。
策略
服務(wù)提供者有時(shí)候會(huì)要求服務(wù)消費(fèi)者與某種策略通信。比如,服務(wù)提供商可能會(huì)要求消費(fèi)者提供Kerberos安全標(biāo)示,才能取得某項(xiàng)服務(wù)。這些要求被定義為策略斷言(policy assertions)。一項(xiàng)策略可能會(huì)包含多個(gè)斷言。WS-Policy用來(lái)標(biāo)準(zhǔn)化服務(wù)消費(fèi)者和服務(wù)提供者之間的策略通信。
控制
當(dāng)企業(yè)著手于服務(wù)架構(gòu)時(shí),服務(wù)可以用來(lái)整合數(shù)據(jù)倉(cāng)庫(kù)(silos of data),應(yīng)用程序,以及組件。整合應(yīng)用意味著例如異步通信,并行處理,數(shù)據(jù)轉(zhuǎn)換,以及校正等進(jìn)程請(qǐng)求必須被標(biāo)準(zhǔn)化。在SOA中,進(jìn)程是使用一組離散的服務(wù)創(chuàng)建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用來(lái)控制這些服務(wù)的語(yǔ)言。WSBPEL目前也由OASIS負(fù)責(zé)。
管理
隨著企業(yè)服務(wù)的增長(zhǎng),所使用的服務(wù)和業(yè)務(wù)進(jìn)程的數(shù)量也隨之增加,一個(gè)用來(lái)讓系統(tǒng)管理員管理所有運(yùn)行在多相環(huán)境下的服務(wù)的管理系統(tǒng)就顯得尤為重要。WSDM(Web Services for Distributed Management)規(guī)定了任何根據(jù)WSDM實(shí)現(xiàn)的服務(wù)都可以由一個(gè)WSDM適應(yīng)(WSDM-compliant)的管理方案來(lái)管理。
其它的qos特性,比如合作方之間的溝通和通訊,多個(gè)服務(wù)之間的事務(wù)處理,都在WS-Coordination 和 WS-Transaction 標(biāo)準(zhǔn)中描述, 這些都是OASIS 的工作。
SOA 不是Web服務(wù)
在理解SOA和Web服務(wù)的關(guān)系上,經(jīng)常發(fā)生混淆。根據(jù)2003年4月的Gartner報(bào)道,Yefim V. Natis就這個(gè)問(wèn)題是這樣解釋的:“Web服務(wù)是技術(shù)規(guī)范,而SOA是設(shè)計(jì)原則。特別是Web服務(wù)中的WSDL,是一個(gè)SOA配套的接口定義標(biāo)準(zhǔn):這是Web服務(wù)和SOA的根本聯(lián)系。”從本質(zhì)上來(lái)說(shuō),SOA是一種架構(gòu)模式,而Web服務(wù)是利用一組標(biāo)準(zhǔn)實(shí)現(xiàn)的服務(wù)。Web服務(wù)是實(shí)現(xiàn)SOA的方式之一。用Web服務(wù)來(lái)實(shí)現(xiàn)SOA的好處是你可以實(shí)現(xiàn)一個(gè)中立平臺(tái),來(lái)獲得服務(wù),而且隨著越來(lái)越多的軟件商支持越來(lái)越多的Web服務(wù)規(guī)范,你會(huì)取得更好的通用性。
SOA的優(yōu)勢(shì)
SOA的概念并非什么新東西,SOA不同于現(xiàn)有的分布式技術(shù)之處在于大多數(shù)軟件商接受它并有可以實(shí)現(xiàn)SOA的平臺(tái)或應(yīng)用程序。SOA伴隨著無(wú)處不在的標(biāo)準(zhǔn),為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來(lái)了更好的重用性。SOA能夠在最新的和現(xiàn)有的應(yīng)用之上創(chuàng)建應(yīng)用;SOA能夠使客戶或服務(wù)消費(fèi)者免予服務(wù)實(shí)現(xiàn)的改變所帶來(lái)的影響;SOA能夠升級(jí)單個(gè)服務(wù)或服務(wù)消費(fèi)者而無(wú)需重寫(xiě)整個(gè)應(yīng)用,也無(wú)需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)。總而言之,SOA以借助現(xiàn)有的應(yīng)用來(lái)組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來(lái)構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。
SOA發(fā)展出來(lái)的效益
A. 平衡最初的舊系統(tǒng)投資(Leverage initial investment):
組織過(guò)去所投資的系統(tǒng)、軟硬體,如果能再利用等於賦予其新的價(jià)值,這也替組織降低成本并增加競(jìng)爭(zhēng)力。
B. 基礎(chǔ)建設(shè)的便利性(Infrastructure Commoditization):
讓所有的應(yīng)用程式能相互溝通(互通性)。
C. 快速的接近市場(chǎng)(Faster time-to-market):
服務(wù)的重復(fù)使用(再利用),來(lái)縮短過(guò)去的組織流程,更快速的提供服務(wù)來(lái)接近市場(chǎng)。
D. 減少支出(Reduce Cost):
服務(wù)的重復(fù)使用,可降低開(kāi)發(fā)成本。因?yàn)殚_(kāi)發(fā)新系統(tǒng)的成本,大部份比更新舊有系統(tǒng)來(lái)的花費(fèi)大。
E. 減低風(fēng)險(xiǎn)(Risk mitigation):
開(kāi)發(fā)新系統(tǒng)的風(fēng)險(xiǎn)遠(yuǎn)大於更新舊系統(tǒng)。
F. 持續(xù)改善商業(yè)流程的循環(huán)(Continuous improvement cycle for business process)
G. 中心流程處理(Process-centric processing)
實(shí)施SOA可能帶來(lái)的主要優(yōu)勢(shì)有5點(diǎn):
一,SOA可通過(guò)互聯(lián)網(wǎng)服務(wù)器發(fā)布,從而突破企業(yè)內(nèi)網(wǎng)的限制,實(shí)現(xiàn)與供應(yīng)鏈上下游伙伴業(yè)務(wù)的緊密結(jié)合。通過(guò)SOA架構(gòu),企業(yè)可以與其業(yè)務(wù)伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二,SOA與平臺(tái)無(wú)關(guān),減少了業(yè)務(wù)應(yīng)用實(shí)現(xiàn)的限制。要將企業(yè)的業(yè)務(wù)伙伴整合到企業(yè)的“大”業(yè)務(wù)系統(tǒng)中,對(duì)其業(yè)務(wù)伙伴具體采用什么技術(shù)沒(méi)有限制。
三, SOA具有低耦合性特點(diǎn),增加和減少業(yè)務(wù)伙伴對(duì)整個(gè)業(yè)務(wù)系統(tǒng)的影響較低。在企業(yè)與各業(yè)務(wù)伙伴關(guān)系不斷發(fā)生變化的情況下,節(jié)省的費(fèi)用會(huì)越來(lái)越多。
四, SOA具有可按模塊分階段進(jìn)行實(shí)施的優(yōu)勢(shì)。可以成功一步再做下一步,將實(shí)施對(duì)企業(yè)的沖擊減少到最小。
五, SOA的實(shí)施可能并不具有成本顯著性。這要分三種情況加以討論:
? 當(dāng)企業(yè)從零開(kāi)始構(gòu)建業(yè)務(wù)系統(tǒng)時(shí),采用SOA架構(gòu)與不采用SOA架構(gòu)成本可看做是相同的。
? 當(dāng)企業(yè)業(yè)務(wù)發(fā)展或發(fā)生企業(yè)重組等變化而原有系統(tǒng)不能滿足需要,而需要重構(gòu)業(yè)務(wù)系統(tǒng)時(shí),采用SOA架構(gòu)與不采用SOA架構(gòu)成本可看做是相同的。
? 當(dāng)企業(yè)業(yè)務(wù)發(fā)生緩慢變化并可預(yù)見(jiàn)到將來(lái)需要重構(gòu)業(yè)務(wù)系統(tǒng)時(shí),由于可以按模塊分階段逐步實(shí)施SOA以適應(yīng)變化的需要,這樣企業(yè)不需一下投入一大筆經(jīng)費(fèi)進(jìn)行系統(tǒng)改造,而是根據(jù)企業(yè)業(yè)務(wù)發(fā)展情況和資金情況逐步投入,緩解了信息投入的壓力。
另指 半導(dǎo)體光放大器 (Semiconductor Optical Amplifer)
一般有行波放大和諧振放大兩種,行波SOA的材料和一般半導(dǎo)體激光器相同,光纖通訊領(lǐng)域多為InP材料,放大波段1550nm附近,毅力簡(jiǎn)單的理解為一個(gè)沒(méi)有反饋腔的激光器,一般端面反射率小于千分之五。
虛擬化術(shù)將成為SOA應(yīng)用推動(dòng)因素
IDC負(fù)責(zé)企業(yè)平臺(tái)研究的副總裁Michelle Bailey說(shuō),最近的IDC的研究表明,到2011年,18%以上的全部新服務(wù)器都將采用虛擬化技術(shù),對(duì)于服務(wù)器硬件供應(yīng)商來(lái)說(shuō),這是一個(gè)年收入達(dá)220億美元的市場(chǎng)機(jī)會(huì)。
對(duì)于企業(yè)來(lái)說(shuō),日益增長(zhǎng)的挑戰(zhàn)是如何管理和保證虛擬環(huán)境的安全,因?yàn)殡S著機(jī)構(gòu)采用虛擬化技術(shù),傳統(tǒng)的管理物理服務(wù)器蔓延的挑戰(zhàn)正在轉(zhuǎn)向管理虛擬機(jī)蔓延的挑戰(zhàn)。機(jī)構(gòu)將需要可靠的、穩(wěn)定的、安全的和可管理的虛擬化解決方案。
綠色I(xiàn)T一直被列為頭號(hào)的戰(zhàn)略技術(shù)和2008年大多數(shù)機(jī)構(gòu)的趨勢(shì)。據(jù)IDC稱,虛擬化的綠色的好處不僅是減少服務(wù)器占地面積,而是還包括減少碳排放量和耗電量。這些好處正在成為重要的好處。
據(jù)IDC對(duì)亞太地區(qū)綠色I(xiàn)T的調(diào)查,75%的受訪者對(duì)于IT部門(mén)沒(méi)有綠色I(xiàn)T政策。然而,80%以上的受訪者認(rèn)為他們的IT供應(yīng)商的“綠色”在未來(lái)幾年將更加重要。
虛擬化在這方面將發(fā)揮重要作用,一些企業(yè)將采用更環(huán)保的方法經(jīng)營(yíng)業(yè)務(wù)以便贏得政府部門(mén)的合同。其它機(jī)構(gòu)正在采用虛擬化技術(shù)以便的到節(jié)省電源的好處和減少碳排放量的獎(jiǎng)勵(lì)。
同時(shí),一些企業(yè)管理者和市場(chǎng)研究人士也對(duì)虛擬化的未來(lái)發(fā)展發(fā)表了看法:
Avnet公司營(yíng)銷(xiāo)經(jīng)理Michael Costigan:
盡管虛擬化有巨大的潛力,許多轉(zhuǎn)銷(xiāo)商不知道這種有潛力的新技術(shù)的實(shí)際狀況。機(jī)構(gòu)能夠獲得顯著的能量和計(jì)算效率,同時(shí)提高技術(shù)的應(yīng)用率和靈活性。
為了幫助你的客戶認(rèn)識(shí)到這些好處并且為你的企業(yè)建立強(qiáng)大的市場(chǎng)占有率,你需要了解這個(gè)強(qiáng)大的新技術(shù)的細(xì)節(jié),了解需要采取什么有效手段識(shí)別和利用虛擬化的真正機(jī)會(huì)。
虛擬化正在用來(lái)解決范圍日益廣泛的商業(yè)目標(biāo)和挑戰(zhàn),如服務(wù)器整合/保留、業(yè)務(wù)持續(xù)性、測(cè)試/開(kāi)發(fā)優(yōu)化、軟件開(kāi)發(fā)與發(fā)布以及桌面管理和安全。
人們對(duì)于虛擬化的未來(lái)顯然非常感興趣。但是,還有許多言過(guò)其實(shí)的宣傳。第一波x86服務(wù)器虛擬化的應(yīng)用一直集中在服務(wù)器整合方面,重點(diǎn)是減少資本開(kāi)支 (也就是服務(wù)器開(kāi)支)以及電源和冷卻等運(yùn)營(yíng)開(kāi)支。在未來(lái)的五年里,機(jī)構(gòu)將超越服務(wù)器整合尋求如何利用虛擬化技術(shù)得到其它的好處,如重點(diǎn)減少運(yùn)營(yíng)成本(也就是物理管理成本)和讓基礎(chǔ)設(shè)施更有活力和更靈活,以便改善IT對(duì)于不斷變化的商業(yè)需求的反應(yīng)能力。
分析師認(rèn)為,虛擬化的下一個(gè)大事將是高可用性和災(zāi)難恢復(fù)工具。災(zāi)難恢復(fù)在歷史上一直是非常難管理的。虛擬化將提供一個(gè)節(jié)省成本的和容易管理的災(zāi)難恢復(fù)解決方案。
虛擬桌面基礎(chǔ)設(shè)施、資源平衡和應(yīng)用程序級(jí)高可用性可能是其它的未來(lái)應(yīng)用實(shí)例。目前,這些解決方案有一些技術(shù)的和經(jīng)濟(jì)的障礙。這些障礙必須要在虛擬化廣泛應(yīng)用前克服。但是,考慮到虛擬化的重點(diǎn),這些障礙已經(jīng)在開(kāi)始克服。虛擬化還將成為SOA(面向服務(wù)的架構(gòu))技術(shù)應(yīng)用的推動(dòng)因素。 [1]
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
