SOA與企業(yè)應(yīng)用[轉(zhuǎn)]
Posted on 2006-09-20 11:11 家有小貓's Java Blog 閱讀(281) 評(píng)論(0) 編輯 收藏 所屬分類: SOA????? SOA(service-oriented Architecture,也叫面向服務(wù)的體系結(jié)構(gòu)或面向服務(wù)架構(gòu))是指為了解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過(guò)連接能完成特定任務(wù)的獨(dú)立功能實(shí)體實(shí)現(xiàn)的一種軟件系統(tǒng)架構(gòu)。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)行交互。
????? 傳統(tǒng)的Web(HTML/HTTP)技術(shù)有效的解決了人與信息系統(tǒng)的交互和溝通問(wèn)題,極大的促進(jìn)了B2C模式的發(fā)展。WEB服務(wù)(XML/SOAP/WSDL)技術(shù)則是要有效的解決信息系統(tǒng)之間的交互和溝通問(wèn)題,促進(jìn)B2B/EAI/CB2C的發(fā)展。SOA(面向服務(wù)的體系)則是采用面向服務(wù)的商業(yè)建模技術(shù)和WEB服務(wù)技術(shù),實(shí)現(xiàn)系統(tǒng)之間的松耦合,實(shí)現(xiàn)系統(tǒng)之間的整合與協(xié)同。WEB服務(wù)和SOA的本質(zhì)思路在于使得信息系統(tǒng)個(gè)體在能夠溝通的基礎(chǔ)上形成協(xié)同工作。
? 對(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 Services 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三大基本特征
????? 1 獨(dú)立的功能實(shí)體
????? 在Internet這樣松散的使用環(huán)境中,任何訪問(wèn)請(qǐng)求都有可能出錯(cuò),因此任何企圖通過(guò)Internet進(jìn)行控制的結(jié)構(gòu)都會(huì)面臨嚴(yán)重的穩(wěn)定性問(wèn)題。SOA非常強(qiáng)調(diào)架構(gòu)中提供服務(wù)的功能實(shí)體的完全獨(dú)立自主的能力。傳統(tǒng)的組件技術(shù),如.NET Remoting,EJB,COM或者CORBA,都需要有一個(gè)宿主(Host或者Server)來(lái)存放和管理這些功能實(shí)體;當(dāng)這些宿主運(yùn)行結(jié)束時(shí)這些組件的壽命也隨之結(jié)束。這樣當(dāng)宿主本身或者其它功能部分出現(xiàn)問(wèn)題的時(shí)候,在該宿主上運(yùn)行的其它應(yīng)用服務(wù)就會(huì)受到影響。
????? SOA架構(gòu)中非常強(qiáng)調(diào)實(shí)體自我管理和恢復(fù)能力。常見(jiàn)的用來(lái)進(jìn)行自我恢復(fù)的技術(shù),比如事務(wù)處理(Transaction),消息隊(duì)列(Message Queue),冗余部署(Redundant Deployment)和集群系統(tǒng)(Cluster)在SOA中都起到至關(guān)重要的作用。
????? 2 大數(shù)據(jù)量低頻率訪問(wèn)
????? 對(duì)于.NET Remoting,EJB或者XML-RPC這些傳統(tǒng)的分布式計(jì)算模型而言,他們的服務(wù)提供都是通過(guò)函數(shù)調(diào)用的方式進(jìn)行的,一個(gè)功能的完成往往需要通過(guò)客 戶端和服務(wù)器來(lái)回很多次函數(shù)調(diào)用才能完成。在Intranet的環(huán)境下,這些調(diào)用給系統(tǒng)的響應(yīng)速度和穩(wěn)定性帶來(lái)的影響都可以忽略不計(jì),但是在 Internet環(huán)境下這些因素往往是決定整個(gè)系統(tǒng)是否能正常工作的一個(gè)關(guān)鍵決定因素。因此SOA系統(tǒng)推薦采用大數(shù)據(jù)量的方式一次性進(jìn)行信息交換。
????? 3 基于文本的消息傳遞
????? 由于Internet中大量異構(gòu)系統(tǒng)的存在決定了SOA系統(tǒng)必須采用基于文本而非二進(jìn)制的消息傳遞方式。在COM、CORBA這些傳統(tǒng)的組件模型中,從服務(wù)器端傳往客戶端的是一個(gè)二進(jìn)制編碼的對(duì)象,在客戶端通過(guò)調(diào)用這個(gè)對(duì)象的方法來(lái)完成某些功能;但是在Internet環(huán)境下,不同語(yǔ)言,不同平臺(tái)對(duì)數(shù)據(jù)、甚至是一些基本數(shù)據(jù)類型定義不同,給不同的服務(wù)之間傳遞對(duì)象帶來(lái)的很大困難。由于基于文本的消息本身是不包含任何處理邏輯和數(shù)據(jù)類型的,因此服務(wù)間只傳遞文本,對(duì)數(shù)據(jù)的處理依賴于接收端的方式可以幫忙繞過(guò)兼容性這個(gè)的大泥坑。
????? 此外,對(duì)于一個(gè)服務(wù)來(lái)說(shuō),Internet與局域網(wǎng)最大的一個(gè)區(qū)別就是在Internet上的版本管理極其困難,傳統(tǒng)軟件采用的升級(jí)方式在這種松散的分布式環(huán)境中幾乎無(wú)法進(jìn)行。采用基于文本的消息傳遞方式,數(shù)據(jù)處理端可以只選擇性的處理自己理解的那部分?jǐn)?shù)據(jù),而忽略其它的數(shù)據(jù),從而得到的非常理想的兼容性。
三、面向服務(wù)架構(gòu)(SOA)的原則
?
?????
SOA的強(qiáng)大和靈活性將給企業(yè)帶來(lái)巨大的好處。如果某組織將其IT架構(gòu)抽象出來(lái),將其功能以粗粒度的服務(wù)形式表示出來(lái),每種服務(wù)都清晰地表示其業(yè)務(wù)價(jià)值,
那么,這些服務(wù)的顧客(可能在公司內(nèi)部,也可能是公司的某個(gè)業(yè)務(wù)伙伴)就可以得到這些服務(wù),而不必考慮其后臺(tái)實(shí)現(xiàn)的具體技術(shù)。更進(jìn)一步,如果顧客能夠發(fā)現(xiàn)
并綁定可用的服務(wù),那么在這些服務(wù)背后的IT系統(tǒng)能夠提供更大的靈活性。
但是,要得到種強(qiáng)大和靈活性,需要有一種實(shí)現(xiàn)架構(gòu)的新方法,這是一項(xiàng)艱巨的任務(wù)。企業(yè)架構(gòu)設(shè)計(jì)師必須要變成“面向服務(wù)的架構(gòu)設(shè)計(jì)師”,不僅要理解SOA,還要理解SOA的實(shí)踐。在架構(gòu)實(shí)踐和最后得到的架構(gòu)結(jié)果之間的區(qū)別非常微妙,也非常關(guān)鍵。本文將討論SOA的實(shí)踐,即:面向架構(gòu)的設(shè)計(jì)師在構(gòu)建SOA時(shí)必須要做的事情。
?
????? SOA的原則
????? SOA是一種企業(yè)架構(gòu),因此,它是從企業(yè)的需求開(kāi)始的。但是,SOA和其它企業(yè)架構(gòu)方法的不同之處在于SOA提供的業(yè)務(wù)敏捷性。業(yè)務(wù)敏捷性是指企業(yè)對(duì)變更 快速和有效地進(jìn)行響應(yīng)、并且利用變更來(lái)得到競(jìng)爭(zhēng)優(yōu)勢(shì)的能力。對(duì)架構(gòu)設(shè)計(jì)師來(lái)說(shuō),創(chuàng)建一個(gè)業(yè)務(wù)敏捷的架構(gòu)意味著創(chuàng)建這樣一個(gè)IT架構(gòu),它可以滿足當(dāng)前還未知 的業(yè)務(wù)需求。
????? 要滿足這種業(yè)務(wù)敏捷性,SOA的實(shí)踐必須遵循以下原則:
????? * 業(yè)務(wù)驅(qū)動(dòng)服務(wù),服務(wù)驅(qū)動(dòng)技術(shù)
????? 從本質(zhì)上說(shuō),在抽象層次上,服務(wù)位于業(yè)務(wù)和技術(shù)中間。面向服務(wù)的架構(gòu)設(shè)計(jì)師一方面必須理解在業(yè)務(wù)需求和可以提供的服務(wù)之間的動(dòng)態(tài)關(guān)系,另一方面,同樣要理解服務(wù)與提供這些服務(wù)的底層技術(shù)之間的關(guān)系。
????? * 業(yè)務(wù)敏捷是基本的業(yè)務(wù)需求
????? SOA考慮的是下一個(gè)抽象層次:提供響應(yīng)變化需求的能力是新的“元需求”,而不是處理一些業(yè)務(wù)上的固定不變的需求。從硬件系統(tǒng)而上的整個(gè)架構(gòu)都必須滿足業(yè)務(wù)敏捷的需求,因?yàn)?,在SOA中任何的瓶頸都會(huì)影響到整個(gè)IT環(huán)境的靈活性。
????? * 一個(gè)成功的SOA總在變化之中
????? SOA工作的場(chǎng)景,更象是一個(gè)活的生物體,而不是象傳統(tǒng)所說(shuō)的“蓋一棟房子”。IT環(huán)境唯一不變的就是變化,因此面向服務(wù)架構(gòu)設(shè)計(jì)師的工作永遠(yuǎn)不會(huì)結(jié)束。 對(duì)于習(xí)慣于蓋房子的設(shè)計(jì)師來(lái)說(shuō),要轉(zhuǎn)向設(shè)計(jì)一個(gè)活的生物體要求嶄新的思維方式。如下文所寫的,SOA的基礎(chǔ)還是一些類似的架構(gòu)準(zhǔn)則。
????? SOA基礎(chǔ)
????? 在IT行業(yè)有兩個(gè)越來(lái)越普遍的發(fā)展方向,一個(gè)是架構(gòu)方面的,一個(gè)是方法學(xué)方面的,面向服務(wù)的架構(gòu)設(shè)計(jì)師可以從中有所收獲。第一個(gè)就是MDA(模型驅(qū)動(dòng)架構(gòu)),由提出CORBA的OMG模型提出。MDA認(rèn)為架構(gòu)設(shè)計(jì)師首先要對(duì)待創(chuàng)建的系統(tǒng)有一個(gè)形式化的UML(也是由OMG提出)的模型。MDA首先給出一個(gè)平臺(tái)無(wú)關(guān)的模型來(lái)表示系統(tǒng)的功能需求和Use Cases,根據(jù)系統(tǒng)搭建的平臺(tái),架構(gòu)設(shè)計(jì)師可以由這個(gè)平臺(tái)無(wú)關(guān)的模型得到平臺(tái)相關(guān)的模型,這些平臺(tái)相關(guān)模型足夠詳細(xì),以至于可以用來(lái)直接生成需要的代碼。
????? MDA的核心就在于在設(shè)計(jì)階段系統(tǒng)就已經(jīng)完全描述,這樣,在創(chuàng)建系統(tǒng)的時(shí)候,幾乎就沒(méi)有錯(cuò)誤解釋的可能,模型也就可以直接生成代碼。但MDA有一些局限 性:首先,MDA假設(shè)在創(chuàng)建模型之前,業(yè)務(wù)需求已經(jīng)全部描述,而這一點(diǎn),在當(dāng)前典型的動(dòng)態(tài)業(yè)務(wù)環(huán)境中幾乎是不可能的。第二,MDA沒(méi)有一個(gè)反饋機(jī)制。如果 開(kāi)發(fā)人員對(duì)模型有需要改動(dòng)的地方,并沒(méi)有提供給他們這么一個(gè)途徑。
????? SOA的另一個(gè)基礎(chǔ)是敏捷方法(AM),其中非常有名的方法是極限編程(XP)。象XP這樣的AM提供了在需求未知或者多變的環(huán)境中創(chuàng)建軟件系統(tǒng)的過(guò)程。XP要求在開(kāi)發(fā)團(tuán)隊(duì)中 要有一個(gè)用戶代表,他幫助書寫測(cè)試來(lái)指導(dǎo)開(kāi)發(fā)人員的日常工作。開(kāi)發(fā)團(tuán)隊(duì)中的所有成員都參與到設(shè)計(jì)之中,并且設(shè)計(jì)要盡量小并且非形式化。AM的目標(biāo)是僅僅創(chuàng) 建用戶想要的,而不是在一些形式化模型上耗費(fèi)工作量。AM的核心思想就在于其敏捷性-處理需求變更的敏捷性。AM的主要弱點(diǎn)是其規(guī)模上的限制,例如,XP 在一個(gè)小團(tuán)隊(duì)和中型項(xiàng)目中效果不錯(cuò),但是當(dāng)項(xiàng)目規(guī)模增大時(shí),如果沒(méi)有一個(gè)一致的清晰的計(jì)劃,項(xiàng)目成員很難把握項(xiàng)目中的方方面面。
????? 從表面看來(lái),MDA和AM似乎是相對(duì)立的-MDA假定需求是固定的,而AM恰恰相反。MDA的中心是形式化的模型,而AM恰恰要避開(kāi)它們。但是,我們還是決定冒險(xiǎn)把這些不同方法中的一些元素提取出來(lái),放入到一個(gè)一致的架構(gòu)實(shí)踐中。
????? 在SOA中有三個(gè)抽象層次,按照SOA的第一條準(zhǔn)則:業(yè)務(wù)驅(qū)動(dòng)服務(wù)、服務(wù)驅(qū)動(dòng)技術(shù)。AM將業(yè)務(wù)模型直接和實(shí)踐連接起來(lái),表現(xiàn)在平臺(tái)相關(guān)的模型之中。MDA 并沒(méi)有把業(yè)務(wù)模型和平臺(tái)無(wú)關(guān)模型分開(kāi)來(lái),而是把平臺(tái)無(wú)關(guān)模型做為起點(diǎn)。SOA必須連接這些模型,或者說(shuō)抽象層次,得到單一的架構(gòu)方法。我們將從五個(gè)視圖的架構(gòu)實(shí)現(xiàn)方法來(lái)實(shí)現(xiàn)這個(gè)連接。
????? SOA的五視圖實(shí)現(xiàn)方法
????? 企業(yè)架構(gòu)設(shè)計(jì)師發(fā)現(xiàn)他們的職業(yè)非常有競(jìng)爭(zhēng)力并且值得驕傲,因?yàn)樗麄円獜暮芏喾矫鎭?lái)通盤考慮IT系統(tǒng)。Kruchten(RUP的開(kāi)發(fā)負(fù)責(zé)人)將這些方面提取出來(lái),在應(yīng)用到SOA時(shí),我們稱為五視圖實(shí)現(xiàn)方法(five-view approach)。
????? 四個(gè)方框表示對(duì)一個(gè)架構(gòu)的不同審視方法,分別代表不同的涉眾(stakeholder)。弟五個(gè)視圖,use-cASe視圖涵蓋了其它視圖,在架構(gòu)中扮演的是一個(gè)特殊的角色。部署視圖將軟件映射到底層平臺(tái)和相關(guān)硬件上,是系統(tǒng)部署人員對(duì)架構(gòu)的視圖;實(shí)現(xiàn)視圖描述了軟件代碼的組織,是從開(kāi)發(fā)人員角度出發(fā)的視圖;業(yè)務(wù)分析人員則利用過(guò)程視圖進(jìn)行工作,它描述的是軟件系統(tǒng)的運(yùn)行時(shí)特性。最后,邏輯視圖表示的是用戶的功能需求。在SOA中,面向服務(wù)的架構(gòu)必須能夠以u(píng)se-case視圖中的用例將用戶連接到服務(wù),將服務(wù)連接到底層的技術(shù)。
????? SOA元模型從MDA中繼承平臺(tái)無(wú)關(guān)模型和平臺(tái)相關(guān)模型,但是添加了AM和用戶交互以及敏捷的反饋這兩部分,后者通過(guò)橢圓之間的雙向箭頭來(lái)表現(xiàn)。類似地,元模型通過(guò)引入由中心的服務(wù)模型提供的中間層抽象解決了AM在伸縮性方面的問(wèn)題。這樣,服務(wù)模型中的任何需求的變化,都會(huì)反映到用戶每天的業(yè)務(wù)處理中。同樣,由于底層技術(shù)是模型驅(qū)動(dòng)的,技術(shù)專家也可以根據(jù)這些變化的需求迅速而有效地作出應(yīng)變。
????? SOA實(shí)踐和過(guò)去解決企業(yè)架構(gòu)傳統(tǒng)方式的不同之處就在于其對(duì)敏捷性的支持。如前所說(shuō),SOA的第三條原則就在于它總在變化之中。這種恒在的變化性環(huán)境是SOA實(shí)踐的基石。如圖所示,涉眾(stakeholders,譯者注:RUP中也有這個(gè)詞,表示軟件開(kāi)發(fā)中涉及到的各種角色如:用戶、設(shè)計(jì)人員、開(kāi)發(fā)人員乃至測(cè)試人員等等。)在一個(gè)必需的基礎(chǔ)上影響到整個(gè)架構(gòu)的變化。在當(dāng)技術(shù)專家在每天的日常工作中不斷對(duì)變化的業(yè)務(wù)需求作出響應(yīng)的這種情況下,設(shè)計(jì)階段和運(yùn)行階段之間的界限變得模糊起來(lái),很難清晰地分離這兩個(gè)階段。
????? 剩下的部分
????? 我們已經(jīng)為面向服務(wù)的架構(gòu)提供了一個(gè)高層次的框架,其中MDA和AM的元素幫助工具的使用者來(lái)創(chuàng)建和維護(hù)SOA。但是,SOA中還缺少一些內(nèi)容-那就是軟件開(kāi)發(fā)商和專業(yè)的服務(wù)組織必需提供的。理想情況下,開(kāi)發(fā)商必需提供面向服務(wù)的業(yè)務(wù)流程、工作流以 及服務(wù)的協(xié)調(diào)工具和服務(wù);另外,能夠以一種敏捷的、平臺(tái)無(wú)關(guān)的方式充分反映業(yè)務(wù)服務(wù)的建模工具也是必須的;技術(shù)專家必須配備可以從模型中自動(dòng)生成代碼,并 在代碼變化時(shí)更新模型的工具,最后,開(kāi)發(fā)商必須提供支持SOA的軟件,幫助面向服務(wù)的架構(gòu)設(shè)計(jì)師以一種可信并且可伸縮的方式創(chuàng)建位于服務(wù)和底層技術(shù)之間的 抽象層次。幸運(yùn)的是,這方面的產(chǎn)品即將上市。
????? 另外,最重要的就是貫穿本文的自頂而下的SOA實(shí)現(xiàn)方法了。今天關(guān)于Web services的大部分思考都是自底而上的:“這是如何創(chuàng)建Web services的方法,現(xiàn)在,我們來(lái)使用它們集成吧”,對(duì)Web services技術(shù)的這種方法是偉大的第一步,因?yàn)樗梢泽@人地降低集成的開(kāi)銷,這是現(xiàn)在的技術(shù)管理人員最樂(lè)意見(jiàn)到的了。但當(dāng)經(jīng)濟(jì)進(jìn)一步發(fā)展,IT走出 低谷,企業(yè)會(huì)尋求IT的幫助來(lái)提高組織戰(zhàn)略意義上的核心價(jià)值。使用面向服務(wù)的架構(gòu),IT可以提供給企業(yè)實(shí)現(xiàn)業(yè)務(wù)敏捷性的這樣一個(gè)框架。
四、為什么選擇面向服務(wù)架構(gòu)(SOA)?
不同種類的操作系統(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)提供功能。
Figure 1. Supply chain application. Click on thumbnail to view full-sized image.
服務(wù)架構(gòu)
為了實(shí)現(xiàn)SOA,企業(yè)需要一個(gè)服務(wù)架構(gòu),圖2顯示了一個(gè)例子:
Figure 2. A sample service architecture. Click on thumbnail to view full-sized image.
在圖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ù),類似審核,列表(BIlling),日志等功能。此外,該架構(gòu)給企業(yè)提供了靈活的業(yè)務(wù)流程,更好地處理控制請(qǐng)求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影響其他服務(wù)的情況下更改某項(xiàng)服務(wù)。
五、面向服務(wù)架構(gòu)(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)。接下來(lái)的章節(jié)將逐一討論該結(jié)構(gòu)的每個(gè)部分。
Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.
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)其他類型的綁定。一個(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這類平臺(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類;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è)電話 促銷企業(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)化組織(standaRDSBOdies)提出,像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)解決此類問(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ì)取得更好的通用性。
七、面向服務(wù)架構(gòu)(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ú)需重寫整個(gè)應(yīng)用,也無(wú)需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)??偠灾琒OA以借助現(xiàn)有的應(yīng)用來(lái)組合產(chǎn)生 新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來(lái)構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。
八、采用服務(wù)驅(qū)動(dòng)型方法的企業(yè)體驗(yàn)著以下業(yè)務(wù)和 IT 好處?
??????面向服務(wù)架構(gòu)的業(yè)務(wù)好處
????? 效率: 將業(yè)務(wù)流程從 " 煙囪 " 狀的、重復(fù)的流程向維護(hù)成本較低的高度利用、共享服務(wù)應(yīng)用轉(zhuǎn)變。
????? 響應(yīng): 迅速適應(yīng)和傳送關(guān)鍵業(yè)務(wù)服務(wù)來(lái)滿足市場(chǎng)需求,為客戶、雇員和合作伙伴更高水準(zhǔn)的服務(wù)。
????? 適應(yīng)性: 更高效地轉(zhuǎn)入轉(zhuǎn)出讓整個(gè)業(yè)務(wù)變得復(fù)雜性和難度更小,達(dá)到節(jié)約時(shí)間和資金的目的。
????? 面向服務(wù)架構(gòu)的 IT 好處
????? 復(fù)雜性降低: 基于標(biāo)準(zhǔn)的兼容性,與點(diǎn)到點(diǎn)的集成相比降低了復(fù)雜性。
????? 重用增加: 通過(guò)重用以前開(kāi)發(fā)和部署的共享服務(wù),實(shí)現(xiàn)了更有效的應(yīng)用程序 / 項(xiàng)目開(kāi)發(fā)和交付。
????? 遺留集成: 用作可重用服務(wù)的遺留應(yīng)用程序降低了維護(hù)和集成的成本。
????? 如今的服務(wù)驅(qū)動(dòng)型企業(yè)都在體驗(yàn)著開(kāi)發(fā)的高效率,服務(wù)的高可靠性和服務(wù)的高質(zhì)量,以最大限度獲得業(yè)務(wù)機(jī)會(huì)所帶來(lái)的這些好處。
九、SOA在國(guó)際市場(chǎng)上反響強(qiáng)烈
????? 自2004年初業(yè)界推出SOA后,Bea、IBM、ORACLE、微軟等業(yè)界巨頭紛紛發(fā)布自己的SOA戰(zhàn)略,建議用戶在進(jìn)行企業(yè)IT建設(shè)時(shí)考慮SOA。
????? ZapThink調(diào)研公司在最近發(fā)表的一份報(bào)告中預(yù)測(cè),到2006年,基于SOA架構(gòu)(面向服務(wù)的架構(gòu))的中間件產(chǎn)品將成為網(wǎng)絡(luò)化商業(yè)系統(tǒng)的主要設(shè)計(jì)思路,其中70%的商業(yè)企業(yè)公司將使用SOA架構(gòu)。
????? 按照Gartner的預(yù)測(cè),到2008年,SOA將成為占有絕對(duì)優(yōu)勢(shì)的軟件工程實(shí)踐方法,它將結(jié)束傳統(tǒng)的整體軟件體系架構(gòu)長(zhǎng)達(dá)40年的統(tǒng)治地位。屆時(shí),將有60%的商業(yè)公司在進(jìn)行商業(yè)IT建設(shè)時(shí)會(huì)轉(zhuǎn)向SOA。
????? IDC預(yù)測(cè)到 2007年,包括軟件、服務(wù)和硬件在內(nèi)的SOA市場(chǎng)將達(dá)到210億美元,其中商業(yè)企業(yè)方面的市場(chǎng)將達(dá)到120億美元。
????? 綜上所述SOA已經(jīng)成為大勢(shì)所趨,有著廣闊的市場(chǎng)空間和巨大的發(fā)展?jié)摿?;而在商業(yè)企業(yè)中的應(yīng)用,將成為SOA未來(lái)發(fā)展的一大亮點(diǎn)。
????? SOA已經(jīng)引起國(guó)內(nèi)商業(yè)企業(yè)的重視
????? 國(guó)內(nèi)基于SOA架構(gòu)Web服務(wù)目前還是集中在一些企業(yè)內(nèi)部,而國(guó)內(nèi)一些有影響的行業(yè)用戶正在搭建其核心業(yè)務(wù)系統(tǒng),比如商業(yè)領(lǐng)域的流通行業(yè)和銷售行業(yè)的大集 中正在起步。因此當(dāng)商業(yè)企業(yè)需要更好地服務(wù)客戶,需要更好地與上、下游合作伙伴協(xié)同工作,并且自己內(nèi)部的核心業(yè)務(wù)之間也需要協(xié)同工作時(shí),基于SOA架構(gòu)中 間件產(chǎn)品就會(huì)為這類新的業(yè)務(wù)應(yīng)用提供理想的底座,這種新的應(yīng)用被稱作面向服務(wù)的業(yè)務(wù)應(yīng)用。
????? 現(xiàn)在,很多商業(yè)企業(yè)都準(zhǔn)備在2006年內(nèi)開(kāi)始規(guī)劃使用這些基于SOA架構(gòu)的應(yīng)用,可想而知,這些SOA架構(gòu)的中間件產(chǎn)品將在兩年內(nèi)迅速發(fā)展,并在五年內(nèi)在整個(gè)IT行業(yè)內(nèi)獲得廣泛應(yīng)用。
????? 商業(yè)企業(yè)信息化存在的問(wèn)題
????? 商業(yè)企業(yè)信息系統(tǒng)多數(shù)處于封閉運(yùn)行的狀態(tài),企業(yè)之間、企業(yè)與上游供應(yīng)商、下游消費(fèi)者之間信息不對(duì)稱。商業(yè)企業(yè)之間無(wú)法形成協(xié)同效應(yīng)。信息系統(tǒng)即無(wú)法滿足消 費(fèi)者的綜合需求也無(wú)法達(dá)到企業(yè)間的商務(wù)協(xié)同自動(dòng)化和智能化的需求。信息化的經(jīng)濟(jì)效益難以有效發(fā)揮。同時(shí)信息化標(biāo)準(zhǔn)不健全,如電子交換接口標(biāo)準(zhǔn)、業(yè)務(wù)流程協(xié) 同標(biāo)準(zhǔn);流通中的票證、單據(jù)格式標(biāo)準(zhǔn);電子數(shù)據(jù)交換所必須的結(jié)構(gòu)化數(shù)據(jù)標(biāo)準(zhǔn)等。
???? 采用傳統(tǒng)的系統(tǒng)架構(gòu)技術(shù)和傳統(tǒng)的EAI和B2Bi技術(shù)則存在系統(tǒng)封閉、廠商依賴性強(qiáng)、耦合度高、重用性差,擴(kuò)展性差、無(wú)法和上下游企業(yè)的系統(tǒng)建立統(tǒng)一的接 口等問(wèn)題。而采用SOA 技術(shù)則可以有效解決上述問(wèn)題,由于SOA基于HTTP/SOAP/WSDL等開(kāi)放式技術(shù),對(duì)于特定廠商產(chǎn)品依賴性?。幌到y(tǒng)開(kāi)放、互操作性強(qiáng),可以建立統(tǒng)一 的WEB服務(wù)用于和不同的上下游企業(yè)信息系統(tǒng)實(shí)現(xiàn)供應(yīng)鏈協(xié)同。由于SOA的松耦合特性、比較符合集團(tuán)和各下屬機(jī)構(gòu)的商業(yè)關(guān)系,業(yè)務(wù)流程整合和項(xiàng)目協(xié)調(diào)的阻 力會(huì)有效降低。
????? SOA以服務(wù)為基本單元,更加貼近于企業(yè)的商業(yè)活動(dòng),業(yè)務(wù)梳理和建模的復(fù)雜度會(huì)有效降低,重用性也會(huì)有效提高。另外采用SOA,企業(yè)IT系統(tǒng)所提供的服務(wù) 會(huì)更容易擴(kuò)展、組合和變更,符合該集團(tuán)目前業(yè)務(wù)發(fā)展變化較快的特點(diǎn),可以有效的降低該集團(tuán)IT系統(tǒng)的長(zhǎng)期擁有總體成本。我們將該集團(tuán)公司作為一個(gè)試點(diǎn),推 進(jìn)SOA技術(shù)的運(yùn)用,來(lái)有效解決上述問(wèn)題。
????? “協(xié)同商務(wù)”的新經(jīng)濟(jì)時(shí)代即將到來(lái)
????? 采用SOA技術(shù)最終將使得各個(gè)商業(yè)企業(yè)之間、各個(gè)關(guān)聯(lián)的經(jīng)濟(jì)實(shí)體之間實(shí)現(xiàn)高效實(shí)時(shí)的聯(lián)接,使得整個(gè)產(chǎn)業(yè)鏈實(shí)現(xiàn)自動(dòng)化的協(xié)同商務(wù),將會(huì)有力的提高商業(yè)企業(yè)的 應(yīng)變能力,轉(zhuǎn)變現(xiàn)有的商業(yè)運(yùn)作模式,轉(zhuǎn)變經(jīng)濟(jì)增長(zhǎng)的方式。SOA技術(shù)將促進(jìn)信息系統(tǒng)在商業(yè)企業(yè)貿(mào)易活動(dòng)中的全面滲入和發(fā)展,對(duì)于簡(jiǎn)單的貿(mào)易活動(dòng),將會(huì)由信 息系統(tǒng)自動(dòng)化實(shí)現(xiàn);對(duì)于復(fù)雜的貿(mào)易活動(dòng),信息系統(tǒng)將會(huì)為企業(yè)管理人員提供足夠的決策信息并可以高效的執(zhí)行決策。SOA技術(shù)的應(yīng)用將會(huì)全面提高商務(wù)的自動(dòng) 化、智能化和實(shí)時(shí)化水平。
????? 采用SOA技術(shù)實(shí)現(xiàn)協(xié)同商務(wù)可以提高城市范圍內(nèi)商流、物流、資金流和信息流的運(yùn)行效率,擴(kuò)大北京市商業(yè)企業(yè)整體規(guī)模效益,加強(qiáng)商業(yè)企業(yè)的整體對(duì)外競(jìng)爭(zhēng)力, 拉動(dòng)經(jīng)濟(jì)增長(zhǎng),降低企業(yè)運(yùn)營(yíng)成本,推動(dòng)城市流通信息技術(shù)創(chuàng)新體系的建立,提高北京市流通現(xiàn)代化水平,促進(jìn)城市管理現(xiàn)代化和城市社會(huì)經(jīng)濟(jì)信息化的進(jìn)程。
????? 采用SOA技術(shù)可以將將物流企業(yè)、物業(yè)企業(yè)、商業(yè)企業(yè)、消費(fèi)者整體整合在一起,對(duì)供應(yīng)鏈關(guān)聯(lián)企業(yè)、物流企業(yè)以及網(wǎng)上支付體系、安全認(rèn)證體系等環(huán)境建設(shè)具有明顯的帶動(dòng)作用,有利于促進(jìn)支撐環(huán)境協(xié)同發(fā)展。
????? 促進(jìn)商業(yè)企業(yè)信息化標(biāo)準(zhǔn)的制定,完善政府職能
????? 采用SOA技術(shù)為信息系統(tǒng)的溝通提供了技術(shù)基礎(chǔ),而隨著SOA在商業(yè)企業(yè)的應(yīng)用,必將促進(jìn)統(tǒng)一的商業(yè)領(lǐng)域電子商務(wù)行業(yè)標(biāo)準(zhǔn)的發(fā)展和制定,對(duì)促進(jìn)國(guó)家商業(yè)企業(yè)信息標(biāo)準(zhǔn)體系的建立和完善具有重要支撐作用。
????? SOA技術(shù)為政府對(duì)商業(yè)經(jīng)濟(jì)的運(yùn)行狀況提供了實(shí)時(shí)監(jiān)測(cè)和指導(dǎo)的技術(shù)可能性,將從根本上改變政府對(duì)社會(huì)經(jīng)濟(jì)的管理方式。
????? 基于SOA的協(xié)同商務(wù)帶來(lái)的最直接的好處就是由于貿(mào)易范圍的空前擴(kuò)大而產(chǎn)生的全球貿(mào)易活動(dòng)的大幅度增加,因而提高了貿(mào)易環(huán)節(jié)中大多數(shù)角色的交易量,因此, 全球范圍的經(jīng)濟(jì)形勢(shì)將向一個(gè)良好的增長(zhǎng)趨勢(shì)發(fā)展。它還可以擴(kuò)大地方商業(yè)企業(yè)整體規(guī)模效益,加強(qiáng)商業(yè)企業(yè)的業(yè)務(wù)整合和商業(yè)協(xié)同效應(yīng),提高商業(yè)企業(yè)的整體對(duì)外 競(jìng)爭(zhēng)力,通過(guò)協(xié)同商務(wù)有效降低企業(yè)運(yùn)營(yíng)成本,推動(dòng)城市流通信息技術(shù)創(chuàng)新體系的建立,提高地方的流通現(xiàn)代化水平,促進(jìn)城市管理現(xiàn)代化和城市社會(huì)經(jīng)濟(jì)信息化的 進(jìn)程。
????? SOA在商業(yè)企業(yè)的應(yīng)用可以將物流企業(yè)、物業(yè)企業(yè)、商業(yè)企業(yè)、消費(fèi)者整體整合在一起,對(duì)供應(yīng)鏈關(guān)聯(lián)企業(yè)、物流企業(yè)以及網(wǎng)上支付體系、安全認(rèn)證體系等環(huán)境建 設(shè)具有明顯的帶動(dòng)作用,可推動(dòng)信息化各環(huán)節(jié)的全面應(yīng)用與發(fā)展,有利于促進(jìn)產(chǎn)業(yè)鏈和支撐環(huán)境協(xié)同發(fā)展,從而也創(chuàng)造了更多的就業(yè)機(jī)會(huì)和社會(huì)財(cái)富。
????? 信息產(chǎn)業(yè)是知識(shí)經(jīng)濟(jì)的核心和主要的推動(dòng)力,而企業(yè)信息化又是目前信息產(chǎn)業(yè)中最具前途的發(fā)展趨勢(shì),因此說(shuō)企業(yè)信息化的發(fā)展,必將直接或間接地推動(dòng)知識(shí)經(jīng)濟(jì)的 浪潮。這種知識(shí)經(jīng)濟(jì)有著大量的無(wú)形成本和高附加值,在東南亞金融危機(jī)的同時(shí),高科技給美國(guó)帶來(lái)的是"高增長(zhǎng)速度、高就業(yè)率、低通貨膨脹率"。這也是我國(guó)在 宣傳知識(shí)經(jīng)濟(jì)的熱潮中應(yīng)注意的一個(gè)真正有價(jià)值的切入點(diǎn)。
????? SOA技術(shù)由于其前所未有的信息系統(tǒng)整合與自動(dòng)協(xié)同能力,成為繼互聯(lián)網(wǎng)以來(lái)又一個(gè)革命性的技術(shù),將會(huì)把目前基于WEB/互聯(lián)網(wǎng)的知識(shí)經(jīng)濟(jì)推進(jìn)到一個(gè)前所未有的新階段。
十、SOA 企業(yè)考慮事項(xiàng)
?????
服務(wù)驅(qū)動(dòng)型企業(yè)在對(duì)客戶、合作伙伴和雇員的高效化服務(wù)方面得到了優(yōu)化 --
并加速了業(yè)務(wù)服務(wù)響應(yīng)時(shí)間。然而,成為服務(wù)驅(qū)動(dòng)型企業(yè),需要的不僅僅是產(chǎn)品的部署。對(duì)實(shí)現(xiàn)服務(wù)驅(qū)動(dòng)型架構(gòu)感興趣的企業(yè)將希望能與一個(gè)有經(jīng)驗(yàn)的 SOA
提供商合作,它提供的服務(wù)可以保護(hù)企業(yè)在業(yè)務(wù)和 IT 方面的投入,他們考慮到了以下幾個(gè)方面:?
????? 業(yè)務(wù)戰(zhàn)略: 組織需要明確驅(qū)動(dòng)關(guān)鍵業(yè)務(wù)流程的業(yè)務(wù)戰(zhàn)略,它將用于成形 SOA 的框架。一旦識(shí)別出業(yè)務(wù)問(wèn)題,就可以用一種一致的、可復(fù)用的方法對(duì)其進(jìn)行定義,并實(shí)現(xiàn)解決方案。在這個(gè)關(guān)鍵的基礎(chǔ)階段,業(yè)務(wù)通常需要與一個(gè)擁有開(kāi)發(fā) SOA 業(yè)務(wù)戰(zhàn)略經(jīng)驗(yàn)、并能共享橫向和縱向市場(chǎng)最佳實(shí)踐的提供商進(jìn)行合作。
????? 體系結(jié)構(gòu):
為了解決方案快速和動(dòng)態(tài)的交付,企業(yè)必須開(kāi)發(fā)一種允許裝配組件和服務(wù)的體系結(jié)構(gòu)框架。通過(guò)與有經(jīng)驗(yàn)的 SOA
提供商合作,企業(yè)可以獲得相應(yīng)的參考案例,以快速搭建一個(gè)關(guān)注復(fù)用、避免 " 煙囪 " ( stovepipe )式應(yīng)用程序和 IT 資源 "
孤島 " 的體系結(jié)構(gòu)。此外,有經(jīng)驗(yàn)的 SOA 提供商還可以幫助企業(yè)對(duì)項(xiàng)目的易管理性進(jìn)行設(shè)計(jì)。
????? 構(gòu)建模塊:
不管是對(duì)體系結(jié)構(gòu)還是對(duì)編程模型來(lái)說(shuō), SOA 都是是思考構(gòu)建軟件模型的一種優(yōu)秀方式。與 SOA 提供商進(jìn)行合作能讓組織能夠識(shí)別可在 SOA
實(shí)現(xiàn)中使用或重用的構(gòu)建模塊代碼、服務(wù)、應(yīng)用程序和組件。與有經(jīng)驗(yàn)的 SOA 提供商進(jìn)行合作還有一個(gè)好處,企業(yè)可以獲得對(duì)構(gòu)造組件、企業(yè)域(
domains )、服務(wù)和規(guī)范數(shù)據(jù)模型的參考經(jīng)驗(yàn)。
????? 項(xiàng)目和應(yīng)用程序: SOA
創(chuàng)造了一種在更強(qiáng)大、更靈活的編程模式中搭建應(yīng)用程序的新方法。與 SOA 提供商合作的企業(yè)可以更好地識(shí)別將被合并到 SOA
結(jié)構(gòu)體系中的現(xiàn)存的和正在使用的應(yīng)用程序。有經(jīng)驗(yàn)的 SOA 提供商還將引導(dǎo)項(xiàng)目基礎(chǔ)架構(gòu)的搭建,并對(duì)正在進(jìn)行中的項(xiàng)目提供有效的管理。
成本和收益: 在一個(gè) SOA 項(xiàng)目中,開(kāi)發(fā)和維護(hù)成本將大大削減,。有經(jīng)驗(yàn)的 SOA 提供商可以幫助企業(yè)構(gòu)造 SOA 基金模式,并構(gòu)建 " 行動(dòng)案例 " ,包括評(píng)估基礎(chǔ)構(gòu)造成本和效益、實(shí)現(xiàn)項(xiàng)目的最佳投資回報(bào)( ROI )以及開(kāi)發(fā)商務(wù)案例。
????? 組織和統(tǒng)轄: 組織需要為新的面向服務(wù)的 IT 組織識(shí)別角色和職責(zé),并優(yōu)化經(jīng)驗(yàn)集便于以后使用。有經(jīng)驗(yàn)的 SOA 提供商可以幫助企業(yè)實(shí)現(xiàn)這些目標(biāo),同時(shí)組織一個(gè)有效的設(shè)計(jì) " 復(fù)用工廠 " ( Reuse Factory ),幫助定義統(tǒng)轄模式,并最終保證客戶滿意。