明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

微軟的遠(yuǎn)程處理框架.NET Remoting - 1

[摘要]微軟的.NET Remoting提供了一種允許對(duì)象通過應(yīng)用程序域與另一對(duì)象進(jìn)行交互的框架。本文將通過兩個(gè)具體的代碼例子介紹它的特性,通過.NET Remoting,兩個(gè)應(yīng)用間的通信將變得非常簡(jiǎn)單,使用上也相當(dāng)靈活。   最近幾年來,在計(jì)算機(jī)世界中,關(guān)于“向外擴(kuò)展”(scale-out)與“向上擴(kuò)展...
微軟的.NET Remoting提供了一種允許對(duì)象通過應(yīng)用程序域與另一對(duì)象進(jìn)行交互的框架。本文將通過兩個(gè)具體的代碼例子介紹它的特性,通過.NET Remoting,兩個(gè)應(yīng)用間的通信將變得非常簡(jiǎn)單,使用上也相當(dāng)靈活。

  最近幾年來,在計(jì)算機(jī)世界中,關(guān)于“向外擴(kuò)展”(scale-out)與“向上擴(kuò)展”(scale-up)的討論不斷,并且有向scale-out轉(zhuǎn)化的趨勢(shì)。在以前,當(dāng)計(jì)算機(jī)跟不上應(yīng)用對(duì)性能的要求時(shí),人們將會(huì)購買一臺(tái)更好更昂貴的機(jī)器,這就是scale-up,而scale-out則是通過在網(wǎng)絡(luò)中加入更多的機(jī)器來解決這個(gè)問題,這樣就無需更換整個(gè)系統(tǒng)。通過將計(jì)算的負(fù)擔(dān)分配在多個(gè)系統(tǒng)中,整個(gè)系統(tǒng)就有了更高的可用性。

  如果將這個(gè)scale-out的意念更推進(jìn)一步,我們可能會(huì)發(fā)現(xiàn):為什么要將諸如信用卡驗(yàn)證和運(yùn)送跟蹤的處理放在我們的系統(tǒng)呢?如果能夠調(diào)用售賣者的應(yīng)用來直接得到這些服務(wù),豈不可以做得更為簡(jiǎn)單嗎?如果能做到這一點(diǎn),我們就可以擴(kuò)展自己程序的功能,而無需再加入額外的硬件。值得注意的是,這樣做將會(huì)另ISV(獨(dú)立軟件開發(fā)商)的角色由一個(gè)軟件提供者,轉(zhuǎn)變?yōu)橐粋(gè)服務(wù)提供者。

  這個(gè)想法很好,但是目前的技術(shù)要實(shí)現(xiàn)它的話,存在著不少的問題。DCOM在跨防火墻工作時(shí)會(huì)有問題。DCOM是建立在私有協(xié)議上的,而CORBA存在有多種不同接口的問題。如果將DCOM和CORBA放在一起工作呢,就更麻煩了。

  為了實(shí)現(xiàn)這個(gè)scale-out的想法,我們需要一個(gè)組件技術(shù),它可以跨越多種類型的網(wǎng)絡(luò)和多種協(xié)議無縫地工作。遠(yuǎn)程.NET就可以做到這一點(diǎn)。

  這個(gè)無縫的交互是通過使用XML和SOAP來實(shí)現(xiàn)的。不過,它并沒有認(rèn)定SOAP進(jìn)行組件交互的唯一方法,它也并沒有認(rèn)定HTTP或者TCP/IP是用來連接這些服務(wù)的網(wǎng)絡(luò)協(xié)議。這樣可令遠(yuǎn)程架構(gòu)更加靈活,并且可適應(yīng)協(xié)議和網(wǎng)絡(luò)的變化。

  .NET架構(gòu)是使用channel對(duì)象將應(yīng)用連接在一起的。.NET架構(gòu)提出了兩種channel,它們是:

  System.Runtime.Remoting.Channels.TCP

  System.Runtime.Remoting.Channels.HTTP

  TCP channel和現(xiàn)有的DCOM非常類似,可提供很高的性能,在機(jī)器都處在一個(gè)內(nèi)部網(wǎng)絡(luò)時(shí),可選用TCP channel,而HTTP channel使用HTTP協(xié)議,可讓應(yīng)用在Internet上交互。由于它使用的是HTTP協(xié)議,它可以很容易地做到負(fù)載均衡,并且能通過防火墻。