轉(zhuǎn)帖|其它|編輯:郝浩|2011-04-12 17:30:11.000|閱讀 617 次
概述:SOA本身就是一種面向企業(yè)級(jí)服務(wù)的系統(tǒng)架構(gòu),簡(jiǎn)單來(lái)說(shuō),SOA就是一種進(jìn)行系統(tǒng)開(kāi)發(fā)的新的體系架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一接口定義方式的組件(也就是service)組合構(gòu)建起來(lái)的。因此,基于SOA的架構(gòu)也一定是從企業(yè)的具體需求開(kāi)始構(gòu)建的。但是,SOA和其它企業(yè)架構(gòu)的不同之處就在于SOA提供的業(yè)務(wù)靈活性。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
SOA本身就是一種面向企業(yè)級(jí)服務(wù)的系統(tǒng)架構(gòu),簡(jiǎn)單來(lái)說(shuō),SOA就是一種進(jìn)行系統(tǒng)開(kāi)發(fā)的新的體系架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一接口定義方式的組件(也就是service)組合構(gòu)建起來(lái)的。因此,基于SOA的架構(gòu)也一定是從企業(yè)的具體需求開(kāi)始構(gòu)建的。但是,SOA和其它企業(yè)架構(gòu)的不同之處就在于SOA提供的業(yè)務(wù)靈活性。業(yè)務(wù)靈活性是指企業(yè)能對(duì)業(yè)務(wù)變更快速和有效地進(jìn)行響應(yīng)、并且利用業(yè)務(wù)變更來(lái)得到競(jìng)爭(zhēng)優(yōu)勢(shì)的能力。對(duì)企業(yè)級(jí)架構(gòu)設(shè)計(jì)師來(lái)說(shuō),創(chuàng)建一個(gè)業(yè)務(wù)靈活的架構(gòu)意味著創(chuàng)建一個(gè)可以滿(mǎn)足當(dāng)前還未知的業(yè)務(wù)需求的IT架構(gòu)。使用WCF實(shí)現(xiàn)SOA,正好可以利用WCF的靈活性,把業(yè)務(wù)層封裝,發(fā)布為Web服務(wù)。這樣可以降低系統(tǒng)的耦合度,加大對(duì)未知業(yè)務(wù)的擴(kuò)展性。
Web服務(wù)本來(lái)就是沒(méi)有區(qū)分代碼的,在這個(gè)例子里在下多開(kāi)發(fā)了一個(gè)Service Interface目的是為了使系統(tǒng)更易于管理。在開(kāi)發(fā)期間,Service是不斷更改的,如果在UI層上直接調(diào)用服務(wù)層,那更改將會(huì)是頻密的,所以在這里在下開(kāi)發(fā)一個(gè)Service Interface層目的是為了把WSDL集成在同一個(gè)DLL程序集里面,進(jìn)行統(tǒng)一修改。最后UI層只要直接調(diào)用Service Interface,就可以對(duì)系統(tǒng)直接進(jìn)行操作。要以不同開(kāi)發(fā)工具來(lái)實(shí)現(xiàn)Service Interface,這個(gè)的代價(jià)并不大,開(kāi)銷(xiāo)是可以承擔(dān)的。下面附上最簡(jiǎn)單的例子,希望有經(jīng)驗(yàn)的高手給予點(diǎn)評(píng),有不妥的地方請(qǐng)多加指教。
在原代碼中,在下以Ucsmy.Portal.ServiceFactory實(shí)現(xiàn)Service Interface層,其實(shí)這個(gè)ServiceFactory沒(méi)有太多工作,只是對(duì)WCF添加服務(wù)引用,然后直接生成DLL即可。當(dāng)然這只是初步的做法,在日后完善代碼的時(shí)候,這一層還需要對(duì)WCF的生命流程進(jìn)行管理。
最后在UI層只要直接添加對(duì)Service.Portal.ServiceFactory的引用就可以直接運(yùn)行,無(wú)需再理會(huì)BLL,DAL.......等復(fù)雜的邏輯轉(zhuǎn)換。在實(shí)現(xiàn)多功能分布式開(kāi)發(fā)的時(shí)候,以WCF實(shí)現(xiàn)的SOA的開(kāi)發(fā)方式更能展示其優(yōu)勢(shì)。在現(xiàn)代的大型企業(yè)系統(tǒng)開(kāi)發(fā)過(guò)程中,系統(tǒng)往往會(huì)使用B/S,C/S混合的開(kāi)發(fā)模式。在以往的開(kāi)發(fā)過(guò)程,開(kāi)發(fā)人員往往把B/S,C/S分開(kāi)來(lái)實(shí)現(xiàn)。在使用WCF技術(shù)后,開(kāi)發(fā)人員可以把功能模塊統(tǒng)一發(fā)布為WCF,然后綁定不同的endpoint進(jìn)行發(fā)布,將B/S和C/S方式的業(yè)務(wù)邏輯層真正地融合在一起,從而降低開(kāi)發(fā)難度。
使用WCF實(shí)現(xiàn)SOA,可以對(duì)事務(wù)、安全、編碼等進(jìn)行統(tǒng)一管理,協(xié)調(diào)了各服務(wù)器之間的系統(tǒng)操作。它涵蓋了之前微軟推出的所有用于分布式開(kāi)發(fā)的技術(shù),包括Remoting、Web Services、WSE、MSMQ等,并以一種統(tǒng)一的編程模式來(lái)實(shí)現(xiàn)。WCF既支持具有互操作性的Web服務(wù),也能夠?qū)崿F(xiàn).NET客戶(hù)端與.NET服務(wù)端的通信,提供了分布式事務(wù)的支持,同時(shí)在安全性上,它完全遵循了WS-*的標(biāo)準(zhǔn),此外,它還支持隊(duì)列服務(wù),可以非常方便地利用消息隊(duì)列完成異步操作與脫機(jī)調(diào)用。在眾多優(yōu)點(diǎn)的支持下,使用WCF實(shí)現(xiàn)SOA面向服務(wù)開(kāi)發(fā)不失為一種理想地選擇。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載