Soa和Wcf(转)
???? 傳統(tǒng)上來(lái)說(shuō),SOA被理解為將軟件看作是服務(wù),這就意味著我們必須提供大量的服務(wù)給更寬泛的使用者,免費(fèi)的或者收費(fèi)的。Google是個(gè)將SAAS(軟件看作是服務(wù))作為他們的Open API 和許多免費(fèi)產(chǎn)品的指導(dǎo)思想的絕佳例子。隨著時(shí)間的流逝,SAAD思想的設(shè)計(jì)者不斷的鼓勵(lì)人們一遍遍的進(jìn)行著這種挑戰(zhàn):如何去以一種可重用的方式去暴露服務(wù),怎樣提高這些服務(wù)的安全性以便與使他們貨幣化(轉(zhuǎn)換為商業(yè)價(jià)值),還有怎樣允許不同技術(shù)背景的客戶(hù)們能夠使用這些服務(wù)。 這些年來(lái),軟件框架被發(fā)明了,軟件技術(shù)也發(fā)展了很多,在提出SOA架構(gòu)以前,人們一直正在思考著服務(wù)會(huì)變成什么樣。?.
????? 我不十分確信是有人創(chuàng)造了SOA架構(gòu),這是隨著IT界的發(fā)展大家普遍認(rèn)識(shí)到的,并且冠以SOA的技術(shù)名詞。有人聲稱(chēng)基于個(gè)人的技術(shù)和模式來(lái)支持SOA架構(gòu),但是我認(rèn)為SOA是有機(jī)的推導(dǎo)出來(lái)的一個(gè)范例,它的好處遠(yuǎn)遠(yuǎn)大與在實(shí)施過(guò)程中可能會(huì)遇到的挑戰(zhàn)和可能會(huì)花費(fèi)的費(fèi)用。SOA真正的引起大家的關(guān)注是從90年代末到21世紀(jì)初,作為可管理的框架和主流得Web應(yīng)用框架最終發(fā)展到這個(gè)階段,微軟意識(shí)到了這種趨勢(shì)得強(qiáng)大性,創(chuàng)建了一整套新的創(chuàng)建基于Web服務(wù)應(yīng)用得方法,并且與2001年ASP.Net 1.0一起發(fā)布。
????? asp.net具有一些新技術(shù)的特點(diǎn),(微軟提出并且得到承認(rèn)成為了標(biāo)準(zhǔn))被大家廣泛接受為Webservice。其中的一些技術(shù),早期版本得SOAP等,已經(jīng)在早期得Microsoft's DNA architecture for Visual Studio 6項(xiàng)目研發(fā)人員中得到了應(yīng)用。但是當(dāng)asp.net1.0發(fā)布后,Soap與其他必要得技術(shù)一起使Web service成為對(duì)與沒(méi)有資金建立Windows IIS server得人員真正得有用的技術(shù)。
?????? 在我們認(rèn)識(shí)SOA之前,中間件產(chǎn)品如Vitria BusinessWare等都屬于這個(gè)范疇。 廠商們需要話(huà)費(fèi)大量的資金去建立這些中間件解決方案,以便于可以和不同的技術(shù)之間相互協(xié)作。這是非常巨大的,昂貴的,不十分靈活的解決方案,常常需要很大的開(kāi)發(fā)團(tuán)隊(duì),以及維護(hù)瓶頸。.不要被“如果用的好的話(huà),他們會(huì)做的非常的好” 這句話(huà)誤導(dǎo)。這些中間件方案是定位在解決特定需求(一旦特定需求滿(mǎn)足,整個(gè)工作結(jié)束)的問(wèn)題, 這種問(wèn)題遠(yuǎn)沒(méi)有滿(mǎn)足產(chǎn)品需求那樣復(fù)雜。
?????? 當(dāng)Asp.net發(fā)布后,一位記者表露了WebService對(duì)他來(lái)說(shuō)以為著什么,他說(shuō):“WebService 就是一種面向大眾得中間件”。 沒(méi)有比他這種說(shuō)法更貼切得了。Web Service 技術(shù),比如SOAP確實(shí)是對(duì)系統(tǒng)不熟悉得人相互交互成為可能。在SOAP發(fā)布后得不長(zhǎng)時(shí)間內(nèi),中間件廠商競(jìng)相將SOAP集成到他們得產(chǎn)品中。這看起來(lái)有點(diǎn)近乎瘋狂,但這確實(shí)滿(mǎn)足了在傳統(tǒng)得沒(méi)有使用SOAP技術(shù)得系統(tǒng)與新的已經(jīng)在使用WebServer技術(shù)得系統(tǒng)之前建立一座橋梁得目的。
??????? 在當(dāng)時(shí)那種環(huán)境下,面向服務(wù)得架構(gòu)依然沒(méi)有像現(xiàn)在一樣成為普遍得詞匯,在此之前,如果你在談?wù)?/span>SOA,實(shí)際上你在談?wù)摰檬?/span>WebService 或者中間件,隨著這兩種技術(shù)的發(fā)展,他們之間不斷的發(fā)生碰撞,越來(lái)越多的人開(kāi)始意識(shí)到SOA的藍(lán)圖是什么樣子,WebService不僅僅是一項(xiàng)技術(shù),或者一個(gè)工具,而是一種從內(nèi)到外的做事情的方式。
??????? 微軟在這一時(shí)期表現(xiàn)的意氣風(fēng)發(fā)。作為SOAP和Web Service的主要的支持者之一(可以說(shuō)微軟在這些技術(shù)上投入了很大的賭注),微軟持續(xù)的努力推動(dòng)這些技術(shù)的進(jìn)步,進(jìn)而使SOA成為可能,在一伙兒天才的努力推動(dòng)下,微軟決定將 named-pipes, TCP-binary remoting, DCOM, MSMQ 等等這些技術(shù)結(jié)合起來(lái)創(chuàng)建一種可重用的,可插拔的框架用以支持進(jìn)程間的協(xié)作與交流,但是卻沒(méi)有達(dá)到令人振奮的效果。在傳輸過(guò)程中,進(jìn)程間往往需要將一些共有的或者私有的信息格式添加進(jìn)來(lái)。如果我們能夠在運(yùn)行時(shí)去制定這些傳輸方式和信息格式,而在設(shè)計(jì)時(shí)只關(guān)心我們的業(yè)務(wù)實(shí)現(xiàn)的話(huà),這種問(wèn)題就能夠更高好的解決。
正式在這種思想的指引下WCF應(yīng)運(yùn)而生了。WCF一開(kāi)始是打算綁定到Longhorn操作系統(tǒng)與2004年發(fā)布的。如果當(dāng)時(shí)longhorn操作系統(tǒng)如期發(fā)布,可能Wcf就會(huì)成為Longhorn操作系統(tǒng)的特定技術(shù)了。然而現(xiàn)實(shí)是Longhorn操作系統(tǒng)(Vista,Windows Server2008)的發(fā)布卻一再延期,高層們意識(shí)到讓用戶(hù)們?nèi)サ却?/span>WCF發(fā)布的代價(jià)太大了。結(jié)果,WCF被作為.Net Framework 3.0 的一步分與2006年秋發(fā)布,并且可以兼容Winxp系統(tǒng)和Win2003 系統(tǒng),這樣,重點(diǎn)就轉(zhuǎn)到了這個(gè)關(guān)鍵的Framework是否能如期的發(fā)布。
????? ?對(duì)微軟走向SOA的道路來(lái)說(shuō),Longhorn系統(tǒng)發(fā)布的一再延期卻成為最有益得事情,假如WCF真的作為Longhorn的一個(gè)特性發(fā)布,企業(yè)用戶(hù)可能會(huì)懷疑微軟有“擠牛奶”之嫌,進(jìn)而對(duì)WCF在微軟SOA道路上的重要性產(chǎn)生懷疑。然而現(xiàn)實(shí)情況是WCF是微軟不懈余力的在面向服務(wù)這塊領(lǐng)域上下的賭注的核心和前沿。
????? ?有一小部分堅(jiān)定的用戶(hù)對(duì)微軟的任何事情都十分狂熱,而大部分的微軟用戶(hù)都只是信任微軟的技術(shù),而采取觀望的態(tài)度。?? 微軟在WCF方面做的比較漂亮的地方是使用戶(hù)們認(rèn)識(shí)到WCF 是由Web Service發(fā)展來(lái)得。在此之前WebService已經(jīng)出現(xiàn)了近十年了,WCF只是是它變得更精巧。這使的一方面這少部分的狂熱者不會(huì)對(duì)WCF失望,另一方面他們帶來(lái)的好處也是不可否認(rèn)的。
?????? WCF帶來(lái)的最大的好出就是相互協(xié)作的能力,它這么重要是因?yàn)槲④浺庾R(shí)到?jīng)]有任何一種技術(shù)可以在企業(yè)服務(wù)市場(chǎng)獨(dú)自壟斷,這就意味著可以與其他技術(shù)很好的協(xié)作變得十分重要,也正因?yàn)榇?/span>SOAP等等的這類(lèi)技術(shù)變得不可或缺,使用這些技術(shù)所面臨的問(wèn)題是在必須達(dá)到好的互操作性這種抽象的層面上令人畏縮,也正是由于此,中間件產(chǎn)品市場(chǎng)才會(huì)逐年增長(zhǎng)。隨著WCF的發(fā)布,將結(jié)束這一混亂,令人畏縮的時(shí)代。
SOA的強(qiáng)大之處之一就是他天生的具有很好的可擴(kuò)展性。每一個(gè)SOA都可以被看作建設(shè)更大的應(yīng)用的基礎(chǔ)。大塊的功能可以被分散到可管理的和經(jīng)濟(jì)上可依靠的子系統(tǒng)中。這種分散使我們能將注意力更加集中在需求的獲取和相關(guān)功能的開(kāi)發(fā)上,從而提高系統(tǒng)的可依靠性。同時(shí),通過(guò)可以提供可以用在任何客戶(hù)端上的穩(wěn)定的功能模塊(比如GUI,Website,或者其他的SOA應(yīng)用中)。SOA天生的具有橫向的和縱向的可伸縮性,進(jìn)而使N層架構(gòu)的真正有點(diǎn)被體現(xiàn)出來(lái)。
?????? SOA的功能十分的強(qiáng)大,就像Ben Parker說(shuō)得那樣強(qiáng)大的力量意味著更大的責(zé)任。SOA不是免費(fèi)的,要達(dá)到如此的進(jìn)程間互操作性,需要的代價(jià)是更加的抽象.向上述的那樣,SOA也不是適合與任何的阿系統(tǒng)或應(yīng)用。你必須在商業(yè)需求的增長(zhǎng)和可擴(kuò)展性與性能以及資源的利用上作出權(quán)衡。SOA的應(yīng)用肯定不會(huì)向客戶(hù)端應(yīng)用那樣迅速,也不想數(shù)據(jù)庫(kù)解決方案那么”苗條“。架構(gòu)師和經(jīng)理們需要做的是確保應(yīng)用SOA在合適的地方。
總結(jié)
以上是生活随笔為你收集整理的Soa和Wcf(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 金御® GM-AFM介绍
- 下一篇: 简单记事本0.2