新版Windows:Vista快問答
Ina Fried‧唐慧文譯 2005/07/26
原先代號為Longhorn的下一版Windows作業系統,已正名為Windows Vista。儘管推出日期比預期晚了些,而且可能不包含當初規劃的所有功能,但Windows產品負責人Jim Allchin仍堅稱是「大事一樁」。
新版作業系統的主要特色包括:安全性改良、新的炫麗繪圖效果,以及新的資料搜尋與組織方法。一改往日必須記得檔案存在哪個檔案夾的麻煩,使用者將能把文件存在數目不拘的虛擬檔案夾內,也可建立本身會自動更新的檔案夾,例如「上周修改的檔案」夾或「珍傳來的文件」夾。
此外,微軟也設法簡化其他的任務,例如把一台PC加入家庭網路,或把投影器與筆記型電腦連結。以下是其他常見的問題。
Windows Vista何時上市?
微軟已承諾,Vista會在2006年耶誕購物季前上市。初期的測試版預定在今年8月3日發佈。伺服器版本訂於2007年推出。
Vista有何內涵?
Vista昔稱Longhorn,和微軟2003年展示的初期版本大不相同。微軟已放棄原先納入全新WinFS檔案系統的計畫,並已更改落實新網路服務架構(稱為Indigo)的方式,並增加新的繪圖引擎,稱為Avalon。
根據目前所知,Vista主要的功能包括:新的安全性改良、新的搜尋機制、許多新的筆記型電腦功能、家長控制,以及更強的家庭網路功能。拜Avalon之賜,視覺效果也將令人耳目一新,從閃閃發亮的透明視窗到形同文件縮圖的圖示,不一而足。對企業用戶而言,微軟表示,Longhorn會更容易讓企業在多台PC上安裝新軟體,並降低電腦必須重開機的次數,藉此降低成本。
就這樣而已?
不止於此。微軟公開證實的其他功能還包括:廣泛支援IPv6技術、改良式的用戶端伺服器資料快取儲存、全量的加密保護保護(whole-volume encryption)、翻新的同步化引擎、支援筆記型電腦輔助顯示器的功能、自動的硬碟最佳化,以及安全的開機過程,可協助預防萬一電腦失竊資料遭某人存取的風險。
一切都定案了嗎?
還沒有。Allchin曾表示,首要之務是讓Vista準時推出,包含每一項功能倒不是第一優先的考量。所以,如果開發小組遭遇障礙,某些功能可能會被砍掉。
我的PC可以執行Vista嗎?
那要看你的電腦什麼時候買的。Allchin今年4月時表示,他認為Vista需要搭配大約512MB的記憶體,以及「今日水準」的處理器。要顯示所有新增的花稍繪圖效果,端視你用的是哪一型的繪圖卡。在舊型的機器上,展現出的繪圖效果可能與目前的Windows類似。
Vista會依照往例,分成家用版、專業版、平板電腦版以及媒體中心版嗎?
Allchin說,微軟即將做出決定,但還未準備好宣佈。「我們正把一些功能搬來搬去,」他說。
Vista售價多少?
訂價也尚未決定。
Indigo 簡介:初探
發佈日期: 4/11/2005 | 更新日期: 4/11/2005
David Chappell
Chappell & Associates
摘要:概要介紹了 Microsoft 用於構建面向服務的應用程式的統一編程模型「Indigo」的體系結構。本文涵蓋了 Indigo 與 .NET Framework 中現有的分佈式應用程式技術之間的關係、有關創建和使用 Indigo 服務的基本知識以及對 Indigo 功能的概述,包括安全性、可靠消息傳輸和事務支持等。(本文包含一些指向英文站點的連接。)
注意:本文是根據 Indigo 的第一個社區技術預覽 (CTP) 的預發佈版本撰寫的。請注意,功能和實現細節會隨著 Indigo 產品週期的不斷推進而改變。

本頁內容

什麼是 Indigo?

Indigo 有哪些特性

創建 Indigo 服務

創建 Indigo 客戶端

Indigo 的其他特性

共存和移植

結論
什麼是 Indigo?
為構建軟件選擇最佳的抽像方式是一個仍在不斷演變的過程。對象是目前構建應用程式業務邏輯的主流方法,但使用對像構建應用程式與應用程式之間的通信模型卻沒有達到同樣的成功。一種較好的方法是將軟件的各個獨立塊之間的交互顯式地構建為「服務」。對於構建面向物件的應用程式,已經存在大量的支持,但將服務作為基本軟件構造塊來考慮,則還是一種比較新的觀念。因此,專門用於創建面向服務的應用程式的技術還沒有得到廣泛應用。
Microsoft 用於構建面向服務應用程式的代號為
Indigo 的框架,正好改變了這一狀況。Indigo 允許目前創建面向物件應用程式的開發人員採用 .NET Framework 以相似的方式來創建面向服務的應用程式。同時為了讓這些應用程式能夠與執行在 Windows 和其他平台上的軟件有效地進行交互,Indigo 還實現了 SOAP 和其他 Web 服務技術,這樣開發人員就可以創建可靠、安全且能夠與執行在任何系統上的軟件實現互操作的事務型服務。

上圖顯示了 Indigo 客戶端和服務的簡單視圖。Indigo 提供了創建由客戶端訪問的服務的基礎,這一基礎主要由一組執行於公共語言執行庫 (CLR) 上的類來實現。客戶端與服務通過 Indigo 的內置協議 SOAP 進行交互,因此雖然圖中顯示兩個部分均基於 Indigo 構建,但這顯然並不是必需的。
Indigo 基於 .NET Framework 2.0 並對其進行了擴展,該版本計劃於 2005 年發佈。Indigo 本身會包含在計劃於 2006 年發佈的代號為
Longhorn 的 Windows 版本,同時也會在 Windows XP 和 Windows Server 2003 上提供。本文的介紹基於 Indigo 的第一個社區技術預覽的預發佈版本。請注意,在最終版本發佈之前,可能會(實際上幾乎肯定會)有一些變化。

返回頁首
Indigo 有哪些特性
在 Microsoft,有許多人已投入數年時間來創建 Indigo。如果其解決的問題很簡單,或者其解決方案很明顯的話,就不會需要這樣的努力程度。因此,Indigo 是一種極為重要的技術。然而,作為 Indigo 最重要的方面,Indigo 有三項突出的特性:與多種現有 Microsoft 技術的統一性,對跨供應商互操作性的支持,以及顯式的面向服務特性。本節對逐一探討這三項特性。
與 Microsoft 分佈式計算技術的統一性
.NET Framework 的最初版本中包含多種不同的技術,用於創建分佈式應用程式。下圖列出了每種技術與開發人員採用該技術的主要理由。例如,要構建基本的可互操作的 Web 服務,最佳選擇是 ASP.NET Web 服務,即通常所說的 ASMX。要連接兩個基於 .NET Framework 的應用程式,有時應當選擇 .NET Remoting。如果應用程式需要分佈式事務和其他更高階的服務,其創建者一般會使用企業服務,即 .NET Framework 推出的 COM+ 的繼任者。要瞭解最新的 Web 服務規範,如 WS-Addressing 和 WS-Security,開發人員可以構建採用 Web 服務增強(縮寫為 WSE,是 Microsoft 對這些新興規範的初始實現)的應用程式。而要創建基於消息的排隊式應用程式,基於 Windows 的開發人員則應使用 Microsoft 消息隊列 (MSMQ)。
ASMX
.NET Remoting
企業服務
WSE
MSMQ
Indigo
可互操作 Web 服務
X
X
.NET - .NET 通信
X
X
分佈式事務等。
X
X
WS-* 規範支持
X
X
隊列消息傳輸
X
X
所有這些選擇都有其存在價值,但其多樣性也會讓開發人員感到迷惑。為什麼要有這麼多選擇?好的解決方案應當是一種技術就能解決所有問題。隨著 Indigo 的到來,這種技術出現了。Indigo 不再強迫開發人員從多種可能當中做出選擇,而是允許他們創建能夠解決所有問題的分佈式應用程式,各種問題由 Indigo 所包含的技術負責解決。儘管 Microsoft 將繼續支持這些早期的技術,但大多數以前可能會採用這些技術來實現的新應用程式都將基於 Indigo 來構建。
與非 Microsoft 應用程式的互操作性
通過統一各種獨立技術使 Windows 開發人員的生活更加輕鬆是一件好事。但通過 Web 服務供應商之間的通用協議,長期存在的應用程式互操作性問題也可以解決。由於 Indigo 的基本通信機制是 SOAP,因此 Indigo 應用程式可與大量執行於各種上下文環境的其他軟件進行通信。如下圖所示,基於 Indigo 構建的應用程式可與下列所有程式進行交互:
‧
執行於同一 Windows 電腦上不同工作行程中的 Indigo 應用程式。
‧
執行於另一 Windows 電腦上的 Indigo 應用程式。
‧
基於其他技術構建的應用程式,如基於 Java 2 企業版 (J2EE) 構建的、支持標準 Web 服務的應用程式服務器。這些應用程式可以執行在 Windows 電腦上,也可以執行在採用其他操作系統(如 Sun Solaris、IBM 的 z/OS 或 Linux)的電腦上。

Indigo 應用程式還可以與基於 Indigo 以前的 .NET Framework 技術(如後面講到的 ASMX)構建的應用程式進行互操作。
為了實現基本通信以外的功能,Indigo 採用了一些更新的 Web 服務技術,這些技術統稱為 WS-* 規範。這些文檔定義了用於新增可靠消息傳輸、安全性、事務以及更多基於 SOAP 的 Web 服務的多供應商方式。所有這些規範最初均是由 Microsoft、IBM 及其他供應商共同制定的。隨著它們日漸穩定,所有權通常會轉移到一些標準機構,如結構化訊息標準促進組織 (OASIS)。Indigo 第一版中支持的 Web 服務規範包括 WS-Addressing、WS-Policy、WS-MetadataExchange、WS-ReliableMessaging、WS-Security、WS-Trust、WS-SecureConversation、WS-Coordination、WS-AtomicTransaction 和 SOAP 消息傳輸優化機制 (MTOM)。
當一個 Indigo 應用程式與執行在非 Windows 系統上的應用程式進行通信時,採用的協議為標準 SOAP(可能具有某些 WS-* 擴展),傳輸時以基於普通文本的 XML 編碼形式表示。然而,當一個基於 Indigo 的應用程式與另一個基於 Indigo 的應用程式進行通信時,就非常有必要優化這種通信。與前者相比,所有的功能都相同,包括可靠消息傳輸、安全性和事務,但採用的傳輸編碼則是 SOAP 的一種優化二進製版本。消息仍遵循 SOAP 消息的資料結構,稱為「訊息集」,但其編碼採用了訊息集的二進製表示,而不是標準尖括號加文本的 XML 格式。
對面向服務開發的顯式支持
把應用程式看作提供和使用服務並不是什麼新觀念。新穎之處在於明確將服務作為與對像截然不同的東西來看待。為此,Indigo 創建者們在設計此項技術的過程中始終牢記四項基本原則:
‧
共享架構,而不是類:與舊的分佈式對像技術不同,服務僅通過精心定義的 XML 接頭與其客戶端進行交互。跨越服務邊界傳遞完整的類、方法及全部之類的行為被禁止。
‧
服務具有自主性:服務及其客戶端同意它們之間的接頭,但相互獨立。它們可以採用不同的語言編寫,可以使用不同的執行時環境(如 CLR 和 Java 虛擬機),可以執行在不同操作系統上,還可以存在其他方面的不同。
‧
邊界是顯式的:分佈式對像技術 [如分佈式 COM (DCOM)] 的目標之一是使遠端對像盡可能看上去像本機對像一樣。雖然這種方法通過提供一種通用編程模型在某些方面簡化了開發,但也同時隱藏了本機對象與遠端對像之間不可避免的區別。服務通過使服務與其客戶端之間的交互更明顯而避免了這一問題。隱藏分佈式特性並非目的。
‧
採用基於策略的相容性:如果可能,決定在系統之間使用哪些選項應取決於基於 WS-Policy 的機制。
面向服務是一個廣泛的領域,它包含面向服務應用程式和更廣泛的面向服務體系結構 (SOA) 的概念。Indigo 將成為基於 Windows 的面向服務應用程式的基礎,因而對許多組織的 SOA 工作都將非常重要。

返回頁首
創建 Indigo 服務
如下圖所示,每個 Indigo 服務均由三個部分構成:
‧
一個「服務類」,採用 C# 或 VB.NET 或其他基於 CLR 的語言編寫,實現一個或多個方法;
‧
一個「宿主」環境,這是一種應用程式域和工作行程,服務將在該環境中執行。
‧
一個或多個「終結點」,由客戶端用於訪問服務。

與 Indigo 服務的所有通信均需通過該服務的終結點實現。每個終結點將指定一個「合同」,確定通過該終結點可以訪問哪些方法;一個「綁定」,確定客戶端如何與該終結點通信;以及一個「位址」,指示可在什麼地方找到該終結點。
理解 Indigo 需要掌握所有這些概念。本節將從服務類開始逐一描述每個概念。
創建服務類
Indigo 服務類就像其他任何類一樣,但它還有一些新特性。這些新特性允許該類的創建者定義該類實現的一個或多個「合同」。每個 Indigo 服務類至少應實現一個「服務合同」,用於定義該服務提供的操作。服務類還可以顯式實現一個「資料合同」,用於定義那些操作傳遞的資料。本節將從服務合同開始對兩者進行探討。