免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
認(rèn)清面向服務(wù)架構(gòu)(SOA)的本來(lái)面目
文章出處:天極網(wǎng) 作者:不詳 發(fā)布時(shí)間:2005-12-01
軟件業(yè)從最初的面向過(guò)程、面向?qū)ο?,到后?lái)的面向組件、面向集成,直到現(xiàn)在的面向服務(wù),走過(guò)了一條螺旋上升的曲線。其實(shí),自從上世紀(jì)70年代提出“軟件危機(jī)”,誕生軟件工程學(xué)科以來(lái),為了徹底擺脫軟件系統(tǒng)開(kāi)發(fā)泥潭,一直也沒(méi)有放棄努力。
在經(jīng)典軟件工程理論中,不管是瀑布方法還是原型方法,都是從需求分析做起,一步一步構(gòu)建起形形色色的軟件系統(tǒng)。但是,需求變更像一個(gè)揮之不去的陰影,時(shí)刻伴隨著系統(tǒng)左右。每一個(gè)實(shí)際應(yīng)用系統(tǒng)的開(kāi)發(fā)者都飽嘗了在系統(tǒng)進(jìn)入開(kāi)發(fā)階段、測(cè)試階段,甚至上線階段遭遇應(yīng)接不暇的需求變更的極端痛苦。客戶將變更的需求視為bug(錯(cuò)誤)是測(cè)試上線階段的主要問(wèn)題。
如何解決這一問(wèn)題?能否來(lái)一場(chǎng)軟件開(kāi)發(fā)和架構(gòu)的革命?SOA架構(gòu)的提出,就是被人看成這樣的一場(chǎng)革命。其實(shí)質(zhì)就是要將系統(tǒng)模型與系統(tǒng)實(shí)現(xiàn)分割開(kāi)來(lái)。
1.定義
SOA并不是一個(gè)新概念,有人就將CORBA和DCOM等組件模型看成SOA架構(gòu)的前身。早在1996年,Gartner Group就已經(jīng)提出了SOA的預(yù)言,不過(guò)那個(gè)時(shí)候僅僅是一個(gè)“預(yù)言”,當(dāng)時(shí)的軟件發(fā)展水平和信息化程度還不足以支撐這樣的概念走進(jìn)實(shí)質(zhì)性應(yīng)用階段。到了近一兩年,SOA的技術(shù)實(shí)現(xiàn)手段漸漸成熟了。在BEA、IBM等軟件巨頭的極力推動(dòng)下,才得以慢慢風(fēng)行起來(lái)。Gartner為SOA描述的愿景目標(biāo)是實(shí)現(xiàn)實(shí)時(shí)企業(yè)(Real-Time Enterprise)。
關(guān)于SOA,目前尚未有一個(gè)統(tǒng)一的、業(yè)界廣泛接受的定義。一般認(rèn)為:SOA,面向服務(wù)的架構(gòu)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元----服務(wù)(service),通過(guò)服務(wù)間定義良好的接口和契約(contract)聯(lián)系起來(lái)。接口采用中立的方式定義,獨(dú)立于具體實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,使得構(gòu)建在這樣的系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進(jìn)行通信。這種具有中立的接口定義(沒(méi)有強(qiáng)制綁定到特定的實(shí)現(xiàn)上)的特征稱為服務(wù)之間的松耦合。
從這個(gè)定義中,我們看到下面兩點(diǎn):
·軟件系統(tǒng)架構(gòu): SOA不是一種語(yǔ)言,也不是一種具體的技術(shù),更不是一種產(chǎn)品,而是一種軟件系統(tǒng)架構(gòu),它嘗試給出在特定環(huán)境下推薦采用的一種架構(gòu),從這個(gè)角度上來(lái)說(shuō),它其實(shí)更像一種架構(gòu)模式(Pattern),是一種理念架構(gòu),是人們面向應(yīng)用服務(wù)的解決方案框架。
·服務(wù)(service)是整個(gè)SOA實(shí)現(xiàn)的核心。SOA架構(gòu)的基本元素是服務(wù),SOA 指定一組實(shí)體(服務(wù)提供者、服務(wù)消費(fèi)者、服務(wù)注冊(cè)表、服務(wù)條款、服務(wù)代理和服務(wù)契約),這些實(shí)體詳細(xì)說(shuō)明了如何提供和消費(fèi)服務(wù)。遵循 SOA 觀點(diǎn)的系統(tǒng)必須要有服務(wù),這些服務(wù)是可互操作的、獨(dú)立的、模塊化的、位置明確的、松耦合的并且可以通過(guò)網(wǎng)絡(luò)查找其地址。
2.SOA三種角色的關(guān)系
服務(wù)是一個(gè)自包含的、無(wú)狀態(tài)(stateless)的實(shí)體,可以由多個(gè)組件組成。它通過(guò)事先定義的界面響應(yīng)服務(wù)請(qǐng)求。它也可以執(zhí)行諸如編輯和處理事務(wù)(transaction)等離散性任務(wù)。服務(wù)本身并不依賴于其他函數(shù)和過(guò)程的狀態(tài)。用什么技術(shù)實(shí)現(xiàn)服務(wù),并不在其定義中加以限制。
服務(wù)提供者(service provider)提供符合契約(contract)的服務(wù),并將它們發(fā)布到服務(wù)代理。
服務(wù)請(qǐng)求者(service consumer)也叫服務(wù)使用者,它發(fā)現(xiàn)并調(diào)用其他的軟件服務(wù)來(lái)提供商業(yè)解決方案。從概念上來(lái)說(shuō),SOA 本質(zhì)上是將網(wǎng)絡(luò)、傳輸協(xié)議和安全細(xì)節(jié)留給特定的實(shí)現(xiàn)來(lái)處理。服務(wù)請(qǐng)求者通常稱為客戶端,但是,也可以是終端用戶應(yīng)用程序或別的服務(wù)。
服務(wù)代理者(service broker)作為儲(chǔ)存庫(kù)、電話黃頁(yè)或票據(jù)交換所,產(chǎn)生由服務(wù)提供者發(fā)布的軟件接口。
這三種 SOA 參與者:服務(wù)提供者、服務(wù)代理者以及服務(wù)請(qǐng)求者通過(guò) 3 個(gè)基本操作:發(fā)布(publish)、查找(find)、綁定(bind)相互作用。服務(wù)提供者向服務(wù)代理者發(fā)布服務(wù)。服務(wù)請(qǐng)求者通過(guò)服務(wù)代理者查找所需的服務(wù),并綁定到這些服務(wù)上。服務(wù)提供者和服務(wù)請(qǐng)求者之間可以交互。
所謂服務(wù)的無(wú)狀態(tài),是指服務(wù)不依賴于任何事先設(shè)定的條件,是狀態(tài)無(wú)關(guān)的(state-free)。在SOA架構(gòu)中,一個(gè)服務(wù)不會(huì)依賴于其他服務(wù)的狀態(tài)。 它們從客戶端接受服務(wù)請(qǐng)求。因?yàn)榉?wù)是無(wú)狀態(tài)的,它們可以被編排(orchestrated)和序列化(sequenced)成多個(gè)序列 (有時(shí)還采用流水線機(jī)制) ,以執(zhí)行商業(yè)邏輯。編排指的是序列化服務(wù)并提供數(shù)據(jù)處理邏輯。但不包括數(shù)據(jù)的展現(xiàn)功能。
3.SOA特征
基于上面討論,我們給出SOA的下面一些特征:
·服務(wù)的封裝(encapsulation)。將服務(wù)封裝成用于業(yè)務(wù)流程的可重用組件的應(yīng)用程序函數(shù)。它提供信息或簡(jiǎn)化業(yè)務(wù)數(shù)據(jù)從一個(gè)有效的、一致的狀態(tài)向另一個(gè)狀態(tài)的轉(zhuǎn)變。封裝隱藏了復(fù)雜性。服務(wù)的API保持不變,使得用戶遠(yuǎn)離具體實(shí)施上的變更。
·服務(wù)的重用(reuse)。服務(wù)的可重用性設(shè)計(jì)顯著地降低了成本。為了實(shí)現(xiàn)可重用性,服務(wù)只工作在特定處理過(guò)程的上下文(context)中,獨(dú)立于底層實(shí)現(xiàn)和客戶需求的變更。
·服務(wù)的互操作(interoperability)?;ゲ僮鞑⒉皇且粋€(gè)新概念。在CORBA、DCOM、web service中就已經(jīng)采用互操作技術(shù)了。在SOA中,通過(guò)服務(wù)之間既定的通信協(xié)議進(jìn)行互操作。主要有同步和異步兩種通信機(jī)制。SOA提供服務(wù)的互操作特性更利于其在多個(gè)場(chǎng)合被重用。
·服務(wù)是自治的(Autonomous)功能實(shí)體。服務(wù)是由組件組成的組合模塊,是自包含和模塊化的。
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)重要的作用。
·服務(wù)之間的松耦合度(Loosly Coupled)。服務(wù)請(qǐng)求者到服務(wù)提供者的綁定與服務(wù)之間應(yīng)該是松耦合的。這就意味著,服務(wù)請(qǐng)求者不知道提供者實(shí)現(xiàn)的技術(shù)細(xì)節(jié),比如程序設(shè)計(jì)語(yǔ)言、部署平臺(tái),等等。服務(wù)請(qǐng)求者往往通過(guò)消息調(diào)用操作,請(qǐng)求消息和響應(yīng),而不是通過(guò)使用 API 和文件格式。
這個(gè)松耦合使會(huì)話一端的軟件可以在不影響另一端的情況下發(fā)生改變,前提是消息模式保持不變。在一個(gè)極端的情況下,服務(wù)提供者可以將以前基于遺留代碼(例如,COBOL)的實(shí)現(xiàn)完全用基于 Java 語(yǔ)言的新代碼取代,同時(shí)又不對(duì)服務(wù)請(qǐng)求者造成任何影響。這種情況是真實(shí)的,只要新代碼支持相同的通信協(xié)議。
·服務(wù)是位置透明的(location transparency)。服務(wù)是針對(duì)業(yè)務(wù)需求設(shè)計(jì)的。需要反應(yīng)需求的變化,即所謂敏捷(agility)設(shè)計(jì)。要想真正實(shí)現(xiàn)業(yè)務(wù)與服務(wù)的分離。就必須使得服務(wù)的設(shè)計(jì)和部署對(duì)用戶來(lái)說(shuō)是完全透明的。也就是說(shuō),用戶完全不必知道響應(yīng)自己需求的服務(wù)的位置,甚至不必知道具體是哪個(gè)服務(wù)參與了響應(yīng)。
4.三個(gè)抽象級(jí)
從概念上講,SOA 中有三個(gè)主要的抽象級(jí)別:
·操作:代表單個(gè)邏輯工作單元(LUW)的事務(wù)。執(zhí)行操作通常會(huì)導(dǎo)致讀、寫(xiě)或修改一個(gè)或多個(gè)持久性數(shù)據(jù)。SOA 操作可以直接與面向?qū)ο?(OO) 的方法相比。它們都有特定的結(jié)構(gòu)化接口,并且返回結(jié)構(gòu)化的響應(yīng)。完全同方法一樣,特定操作的執(zhí)行可能涉及調(diào)用附加的操作。
·服務(wù):代表操作的邏輯分組。服務(wù)可以分層,以降低耦合度和復(fù)雜性。一個(gè)服務(wù)的粒度(granularity)大小也與系統(tǒng)的性能息息相關(guān)。粒度太小,會(huì)增加服務(wù)間互操作通訊的開(kāi)銷;粒度太大,又會(huì)影響服務(wù)面對(duì)需求變化的敏捷性。
·業(yè)務(wù)流程:為實(shí)現(xiàn)特定業(yè)務(wù)目標(biāo)而執(zhí)行的一組長(zhǎng)期運(yùn)行的動(dòng)作或活動(dòng)。業(yè)務(wù)流程通常包括多個(gè)業(yè)務(wù)調(diào)用。
在SOA中,業(yè)務(wù)流程包括依據(jù)一組業(yè)務(wù)規(guī)則按照有序序列執(zhí)行的一系列操作。操作的排序、選擇和執(zhí)行稱為服務(wù)或流程編排。典型的情況是調(diào)用已編排服務(wù)來(lái)響應(yīng)業(yè)務(wù)事件。從建模的觀點(diǎn)來(lái)看,由此帶來(lái)的挑戰(zhàn)是如何描述設(shè)計(jì)良好的操作、服務(wù)和流程抽象的特征以及如何系統(tǒng)地構(gòu)造它們。這些涉及服務(wù)建模、特征抽取的問(wèn)題已經(jīng)成為現(xiàn)階段人們關(guān)注的焦點(diǎn)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SOA 面向服務(wù)的體系架構(gòu)概述
淺談基于SDO的異構(gòu)服務(wù)數(shù)據(jù)模型研究
梳理實(shí)現(xiàn)SOA的相關(guān)技術(shù)(組圖)
系統(tǒng)架構(gòu)相關(guān)知識(shí)點(diǎn)2
SOA定義
磁現(xiàn)代物流系統(tǒng)中SOA技術(shù)的應(yīng)用及其優(yōu)勢(shì)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服