淺析Win Vista中的通信專家:Indigo
一個(gè)周末的早晨,業(yè)余編程愛(ài)好者小張打開(kāi)計(jì)算機(jī),當(dāng)正在他沖咖啡的時(shí)候,計(jì)算機(jī)自動(dòng)連接上網(wǎng)絡(luò),開(kāi)始下載前一天沒(méi)下載完的電影。而所用的這個(gè)名為X-eMule的軟件,正是小張利用WinFX中的Indigo平臺(tái)編寫(xiě)的P2P軟件……
如果說(shuō)Windows Presentation Foundation(Avalon)是在外觀之炫上做足了文章的話,那么Indigo則是在網(wǎng)絡(luò)性能上下足了功夫,給程序員帶來(lái)了巨大的方便。
預(yù)言:
Indigo將掀起P2P軟件開(kāi)發(fā)熱潮
當(dāng)今最熱門的軟件開(kāi)發(fā)領(lǐng)域自然非網(wǎng)絡(luò)應(yīng)用程序莫屬。隨著因特網(wǎng)的普及和各種網(wǎng)絡(luò)環(huán)境的建立,許多傳統(tǒng)的單機(jī)版軟件都紛紛加入了網(wǎng)絡(luò)元素或重新改編為網(wǎng)絡(luò)版本,而完全網(wǎng)絡(luò)化的新軟件更是層出不窮。為方便網(wǎng)絡(luò)應(yīng)用程序的開(kāi)發(fā),一些組織和業(yè)界巨頭針對(duì)各種網(wǎng)絡(luò)需求提出了一系列標(biāo)準(zhǔn)和技術(shù),不過(guò)由于標(biāo)準(zhǔn)或技術(shù)太多,程序員在開(kāi)發(fā)時(shí)反而無(wú)所適從。另外,盡管.Net使網(wǎng)絡(luò)開(kāi)發(fā)從系統(tǒng)底層中徹底解放出來(lái),但在大多數(shù)情況下網(wǎng)絡(luò)開(kāi)發(fā)仍然是件困難的事情,特別是在設(shè)計(jì)服務(wù)程序的時(shí)候。
而Indigo在這方面作了較大改進(jìn),采用了包括WS-Addressing、WS-Policy、WS-MetadataExchange等在內(nèi)的新規(guī)范和SOAP 消息傳輸優(yōu)化機(jī)制。Indigo構(gòu)建的網(wǎng)絡(luò)應(yīng)用程序不僅很容易同其他Indigo程序進(jìn)行交互,而且可以同其他基于SOAP技術(shù)構(gòu)建的、運(yùn)行在非Windows系統(tǒng)上的網(wǎng)絡(luò)程序進(jìn)行交互。可見(jiàn)Indigo不僅適合于開(kāi)發(fā)B/S結(jié)構(gòu)的應(yīng)用軟件,而且同樣適用于開(kāi)發(fā)目前十分火爆的P2P程序。依靠強(qiáng)大的類庫(kù),Indigo將大大降低P2P程序的開(kāi)發(fā)難度,很有可能掀起新一波P2P軟件開(kāi)發(fā)熱潮,而這也許就是Indigo對(duì)普通程序員最具誘惑力的地方。
Indigo的重要使命就是讓網(wǎng)絡(luò)間成為無(wú)障礙、無(wú)差別的通訊平臺(tái),形形色色的網(wǎng)絡(luò)應(yīng)用都能借Indigo之力自由地交互。雖然這種“大同”的理想實(shí)現(xiàn)起來(lái)困難多多,但I(xiàn)ndigo的確正朝這個(gè)方向邁進(jìn)并取得了實(shí)質(zhì)性的進(jìn)步。而對(duì)那些進(jìn)行跨平臺(tái)開(kāi)發(fā)的程序員來(lái)說(shuō),Indigo的這個(gè)特性一定會(huì)讓他們感到欣喜萬(wàn)分。
沖鋒陷陣:
Indigo!微軟的重要棋子
Indigo提供安全、可靠以及事務(wù)化的協(xié)作通信功能,而這三個(gè)重要特性都受到開(kāi)發(fā)者的一致好評(píng)。其內(nèi)部的基礎(chǔ)設(shè)施能夠大大簡(jiǎn)化開(kāi)發(fā)者面向服務(wù)的編程模式。在這種開(kāi)發(fā)模式中,程序基于異步信息流通構(gòu)成,而Indigo提供大量創(chuàng)建、銷毀、處理以及轉(zhuǎn)換的信息技術(shù),可謂照顧周到。對(duì)程序員而言,Indigo最突出的價(jià)值就是將微軟的各種網(wǎng)絡(luò)技術(shù)統(tǒng)一起來(lái),從而使程序員可以在一個(gè)平臺(tái)上完成所有類型網(wǎng)絡(luò)程序的開(kāi)發(fā),不像以前那樣不同的類型必須選擇不同的支持平臺(tái)和工具。
Indigo還為事務(wù)編程提供了重要的支持。啟用了Indigo的Windows版本支持一個(gè)基于服務(wù)的事務(wù)處理管理器,該事務(wù)管理器可通過(guò)System.Transactions框架或 WS-AtomicTransactions協(xié)議來(lái)訪問(wèn)。新的System.Transactions框架使整個(gè)平臺(tái)(它支持 SQL Server、ADO.NET、MSMQ、分布式事務(wù)處理協(xié)調(diào)器DTC等)上的事務(wù)編程都變得簡(jiǎn)單高效。System.Transactions既支持基于ITransaction接口的顯式編程模型,也支持隱式的編程模型(Indigo自動(dòng)管理其中的事務(wù)處理)。這兩個(gè)模型都可用于基于Indigo的應(yīng)用程序。可以說(shuō),Indigo在統(tǒng)一各種網(wǎng)絡(luò)標(biāo)準(zhǔn)上邁出了很有意義的一步。
目前,開(kāi)發(fā)代碼名為Indigo的技術(shù)已正式命名為Windows Communication Foundation。綜上所述,Indigo提供的功能和靈活性對(duì)所有規(guī)模的組織和來(lái)自不同背景的開(kāi)發(fā)人員都具有很大吸引力。它可以用來(lái)構(gòu)建在單一計(jì)算機(jī)環(huán)境、在整個(gè)公司的Intranet 或全球的Internet中運(yùn)行的連接系統(tǒng)。它適用于各種情況,從連接的行業(yè)垂直應(yīng)用程序到交互式多人游戲都適用。除擴(kuò)展了.NET Framework 2.0和Visual Studio 2005的功能之外,Indigo還可與BizTalk Server 2004配合使用已提供代理的和未經(jīng)代理的應(yīng)用程序到應(yīng)用程序通信。
對(duì)于大部分人來(lái)說(shuō),Indigo是看不見(jiàn)的,只有程序員才會(huì)與它打交道。Indigo最主要受益人群將是目前使用微軟開(kāi)發(fā)工具Visual Studio.Net的開(kāi)發(fā)人員。據(jù)行業(yè)分析師的說(shuō)法,如果Indigo能夠?qū)崿F(xiàn)微軟的藍(lán)圖,那么它的影響將是巨大的,而且有可能是.Net在同Java等架構(gòu)競(jìng)爭(zhēng)中決定勝負(fù)的一枚棋子,難怪微軟會(huì)在Indigo上下如此大的功夫。而作為程序員,自然是樂(lè)見(jiàn)和樂(lè)用其成。
Indigo架構(gòu):配備精良的裝甲師
作為 Windows Vista 的核心支柱之一,Indigo就像一個(gè)配備精良的裝甲師,為Web協(xié)議、構(gòu)建連接系統(tǒng)等提供了良好的支持。Indigo極大地簡(jiǎn)化了構(gòu)建下一代連接系統(tǒng)的方法。它通過(guò)三個(gè)架構(gòu)設(shè)計(jì)原則來(lái)實(shí)現(xiàn)此目的。
1.對(duì)大量 Web 服務(wù)協(xié)議的內(nèi)置支持
目前Web服務(wù)技術(shù)為運(yùn)行在不同平臺(tái)的應(yīng)用程序之間提供了交互性操作的支持。然而,當(dāng)前的Web服務(wù)技術(shù)通常是在沒(méi)有端到端安全和可靠通信保證的情況下提供此相互操作的。Indigo通過(guò)對(duì)“WS- * ”架構(gòu)的內(nèi)置支持提供了安全、可靠、協(xié)商過(guò)的相互操作。對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),這極大地減少了達(dá)到異類相互操作所需的基礎(chǔ)結(jié)構(gòu)代碼量。對(duì)于企業(yè)來(lái)說(shuō),這意味著在組織內(nèi)部和外部與客戶、伙伴和供應(yīng)商交互的能力,而不管他們使用的是什么平臺(tái)。由于Indigo的基本通信機(jī)制是SOAP,因此Indigo應(yīng)用程序可與大量運(yùn)行于各種上下文環(huán)境的其他軟件進(jìn)行通信。如圖2所示,基于 Indigo 構(gòu)建的應(yīng)用程序可與下列所有程序進(jìn)行交互:
●運(yùn)行于同一Windows計(jì)算機(jī)上不同進(jìn)程中的Indigo應(yīng)用程序。
●運(yùn)行于另一Windows計(jì)算機(jī)上的Indigo應(yīng)用程序。
●基于其他技術(shù)構(gòu)建的應(yīng)用程序,如基于Java 2企業(yè)版 (J2EE) 構(gòu)建的、支持標(biāo)準(zhǔn)Web服務(wù)的應(yīng)用程序服務(wù)器。這些應(yīng)用程序可以運(yùn)行在 Windows 計(jì)算機(jī)上,也可以運(yùn)行在采用其他操作系統(tǒng)(如 Sun Solaris、IBM 的 z/OS 或 Linux)的計(jì)算機(jī)上。
2.隱式使用面向服務(wù)的開(kāi)發(fā)原則
多年以來(lái),開(kāi)發(fā)人員和組織努力構(gòu)建適應(yīng)業(yè)務(wù)發(fā)展速度的軟件。面向服務(wù)的開(kāi)發(fā)原則利用關(guān)于構(gòu)建高適應(yīng)性軟件的基礎(chǔ)結(jié)構(gòu)最佳做法來(lái)贏得這個(gè)挑戰(zhàn)。Indigo是從無(wú)到有構(gòu)建的用來(lái)提供隱式面向服務(wù)應(yīng)用程序開(kāi)發(fā)的首批Web服務(wù)技術(shù)。對(duì)于企業(yè)來(lái)說(shuō),這使得構(gòu)建有彈性的和在出現(xiàn)變動(dòng)時(shí)易于管理的IT基礎(chǔ)結(jié)構(gòu)變得更為容易。
3.用于構(gòu)建連接系統(tǒng)的單個(gè)API
從傳統(tǒng)意義上來(lái)說(shuō),以前開(kāi)發(fā)人員必須使用多種技術(shù)才能構(gòu)建連接系統(tǒng)。這不僅需要他們了解不同的API,并且很難將來(lái)自不同技術(shù)的功能結(jié)合成一個(gè)解決方案。Indigo為開(kāi)發(fā)所有類型的連接系統(tǒng)提供了一個(gè)統(tǒng)一的 API。它結(jié)合并擴(kuò)展了現(xiàn)有的Microsoft技術(shù)(ASMX、.NET Remoting、.NET Enterprise Services、Web Services Enhancements 和 System.Messaging)的功能,以提供能提高開(kāi)發(fā)人員產(chǎn)量并降低投放市場(chǎng)所需時(shí)間的高效開(kāi)發(fā)框架。
Vista發(fā)展動(dòng)態(tài):3D桌面終成現(xiàn)實(shí)
微軟在上周的專業(yè)開(kāi)發(fā)者大會(huì)(PDC)上發(fā)布了Windows Vista build 5219,它充分利用了Windows Presentation Framework(Avalon)在技術(shù)上的優(yōu)勢(shì),創(chuàng)造出了更美觀、有趣的用戶界面,當(dāng)用戶使用組合鍵“Win+空格”時(shí),即可顯示3D桌面(圖1),令用戶在多個(gè)應(yīng)用程序間切換更為方便。另外還在開(kāi)始菜單中嵌入了一個(gè)搜索框供用戶搜索整臺(tái)PC或者Internet的內(nèi)容。同時(shí)還增強(qiáng)了安全和管理功能,比如默認(rèn)打開(kāi)用戶賬號(hào)保護(hù)等。
圖 1
Vista小游戲也“升級(jí)”
隨著Windows Vista Beta2發(fā)布日期的臨近,Vista中內(nèi)置的小游戲也升級(jí)了!通過(guò)截圖,我們很容易發(fā)現(xiàn)Vista中小游戲的畫(huà)面比以往任何一個(gè)版本的都要精美,光是看看圖片,已經(jīng)讓人愛(ài)不釋手了(圖2、圖3)。
圖 3圖 4
