開發合作 Microsoft .NET 解決方案

開發合作 Microsoft .NET 解決方案

Michael Herman
EC3 Enterprise Consulting Competency Centers
Microsoft Corporation

2000年10月

摘要:本文探討 Microsoft .NET 平臺,並着重介紹如何使用 .NET 平臺、Exchange 2000 Server 和 Microsoft Web 存儲系統構建、設計和建立合作 Web 服務。

目錄


簡介

Microsoft 正致力於開發新一代的軟件,即通過革新性的新方法(向開發人員和最終用戶提供所需工具,對 Web 和計算過程中的其它各個方面加以改進),將 Web 計算和通信融爲一體。我們將此技術稱爲 Microsoft .NET。

通過 Microsoft .NET 將可以創建真正的分佈式 Web 服務,它將集成免費提供的各種服務並與這些服務協同工作,使當今客戶的夢想成真。Microsoft .NET 蘊含的基本理念就是將注意力從單獨的 Web 站點和與 Internet 相連的各種設備,轉移到由各種計算機、設備和服務協同工作的架構之上,從而提供涉及面更廣、功能更全面的解決方案。人們將可以控制向這些計算機、設備和服務提供信息的方式和時間,以及提供哪些信息。計算機、設備和服務將能夠彼此協同工作,而不再是相互隔絕,只能通過 Web 衝浪協同工作。公司提供其產品和服務的方式將可以令用戶和供應商將這些產品和服務無縫地嵌入在其自身的業務進程和日常活動的電子架構之中。

在 Microsoft .NET 平臺中具有 5 個組件:

  1. Microsoft Windows® 操作系統服務平臺
  2. .NET Framework
  3. .NET Building Block 服務
  4. .NET Orchestration
  5. Microsoft .NET Enterprise Server 系列

在 .NET Enterprise Server 系列中,Exchange 2000 Server 是可靠的、易於管理的消息傳送和合作解決方案,可以將用戶和各方面的知識和信息結合在一起。

本文將講解 Microsoft .NET 平臺,並着重介紹如何使用 .NET 平臺、Exchange 2000 Server 和 Microsoft Web 存儲系統構建、設計和建立合作 Web 服務。同時還對 Microsoft .NET 分佈式 Web 結構以及 Microsoft Web 存儲系統的主要開發功能加以說明。

此外,我們將介紹 Web 存儲系統和 .NET Framework 是如何協同工作,從而構建高價值的合作 Web 服務的。我們將以一個旅行社的日程安排爲例,闡述作爲一個 Web 設計人員和開發人員,需要考慮的各種實際的基礎結構和設計因素。最後,我們將先睹 Exchange 2000 Server 開發小組計劃在 Microsoft Web 存儲系統的下幾個發行版中提供的新增 .NET 功能。

XML

Microsoft .NET 將有助於促進 Internet 上的變革,人們將看到通過採用可編程的基於 XML 的信息,基於 HTML 的顯示效果得到極大改善。XML 是由“萬維網聯盟”(World Wide Web Consortium) 定義的得到廣泛支持的行業標準,而正是該組織創建了 Web 瀏覽器的標準。XML 提供將實際數據與該數據的演示視圖區分開來的方法。這種方法將數據分發給各種數字設備,從而允許 Web 站點通過其選擇採用的基於 XML 的 Web 服務協同操作。

作爲在 XML 和 Internet 協議的標準集成結構基礎上建立的平臺,Microsoft .NET 平臺是開發先進的新一代軟件的革新性方法。顯然,Microsoft .NET 的設計理念即在於允許在合作解決方案架構內集成或協調 Internet 上的任意資源組。當前,此類集成極爲複雜並且成本很高。Microsoft .NET 將使這些類型的合作 Web 解決方案的設計、實施和部署更快捷、更簡單。

Web 服務

鬆散組合的、基於 XML 的 Microsoft .NET 平臺引入了基於 XML 的 Web 服務的概念。鑑於當今的 Web 站點還是採用人工維護的方式,並且不進行大量的額外開發就無法與其它站點協同工作,Microsoft .NET 平臺提供固有的機制,使任何 Web 站點或服務能夠與其它站點無縫地協同工作。

Web 服務最簡單的定義是,一種可通過標準 Web 協議訪問的可編程的應用組件。

將向 Internet 提供四種 Web 服務:

  1. 公共 .NET Web 服務
  2. 商用 .NET Building Block Web 服務
  3. 已作好準備、可立即投入使用的 Web 服務
  4. 自定義開發的 Web 服務

公用 Web 服務將在 Internet 上出現,並且可以很容易並全面地集成到新的和已有的 Web 解決方案中。某些服務將免費提供,而其它一些服務將需要不同商業模型的支持。需要商業模型支持的 Web 服務稱作商用 Building Block Web 服務,並且將由應用服務提供商 (ASP) 以及 Microsoft 提供。Passport 是 Microsoft 的第一個 Building Block 服務,提供單一簽入功能(允許用戶在多個 Web 站點上使用單一的名稱和密碼)。以後的 Passport Building Block 服務將包括電子錢包和公用個人信息服務。請訪問 Microsoft Passport Web 站點(英文),以瞭解詳細信息。

通過 .NET 平臺,開發人員還可以在自己的合作解決方案中充分利用由 Microsoft 和其它軟件公司提供的準備好的、可立即投入使用的 Web 服務。

自定義開發的 Web 服務包括由公司開發人員和解決方案合作伙伴開發的、供公司內部使用的 Web 服務。

開發人員將能夠在自己的應用程序和服務中充分利用並自定義各種 Microsoft .NET Building Block 服務,從而減少創建具有競爭力的解決方案所需的工作量。這些核心 Microsoft .NET Building Block 服務與 Microsoft 深入研究的各方面的功能相對應,各種開發人員均可以從中獲益。Microsoft 正致力於統一這些開發人員構件,以便提供高度分散、可編程的服務,這些服務可以在獨立的機器上、公司數據中心中和 Internet 上執行。

通過選擇預訂這些現成的核心 .NET Building Block 服務,對於想要利用開發資源的開發人員而言,他們可以決定“是購買還是創建”。某些人可能選擇自己創建基本的服務功能,而某些人可能更傾向於選擇具有強大開發工具支持的良好的打包解決方案,這就象許多開發人員不自己編寫打印機驅動程序或窗口系統,而將主要資源投入到其獨具特色的高價值解決方案上一樣。

Web 服務具有以下特點:

  • 您可以請求某一站點對其提供的 Web 服務進行說明。
  • Web 服務按照這些服務支持的消息的格式和順序定義。
  • Web 服務用戶使用 XML 發送和接收消息。
  • 所有這些功能都是使用公開的 Internet 協議建立的。

通過 Microsoft .NET 平臺創建的分佈式 Web 服務既可以聯機使用,也可以脫機使用。服務可以在未與 Internet 相連的獨立機器上調用,可以由在公司內運行的本地服務器提供,也可以通過 Internet 訪問。不同的服務可以通過稱作聯合的進程協同工作並交換信息,使組織能夠在不影響其對服務的控制和訪問的前提下,決定是運行其自己的基礎結構,還是從外部引入。例如,公司目錄服務能夠與 Internet 上運行的其它目錄 Web 服務聯合使用。

Microsoft .NET Building Block 服務可以在支持 XML 的任何平臺上使用。Windows、Exchange 2000 Server、Microsoft Web 存儲系統和 Visual Studio® 將提供最佳的環境,以便創建和提供合作 Web 解決方案。

Web 用戶體驗

儘管 Web 服務使開發人員可以很容易地展示某個應用程序的功能,以便其它服務器和客戶機的應用程序能夠與其相連,但許多應用程序需要通過 Web 用戶界面 (UI) 向 Internet 和 Intranet 用戶展示此功能的全部或部分。

此外,通過 Microsoft .NET,可以使在 PC 和設備上運行的解決方案能夠與包羅萬象的 Internet 上的信息和功能緊密結合使用,包括能夠聯機和脫機工作,並且在使用本地或遠程應用程序和服務之間可以透明轉換。

Microsoft .NET 將從三個方面影響 Web 用戶體驗:

  1. 在創建新的 Web 用戶界面方面革新性的新改進。
  2. 用戶界面在各種設備上的透明展示。
  3. 我們工作和遊戲的方式。

從用戶界面角度而言,Microsoft .NET 將向用戶和開發人員提供以下用戶界面技術:

  • 自然界面:一種用來實現下一代人機交互操作的技術的集合,包括語音、圖像、手寫和通過新“鍵入”框的自然語言輸入。
  • 通用模板:一種 XML 複合信息體系結構,將瀏覽、通信和文檔撰寫集成到一個統一的環境中,使用戶能夠以統一的方式合成信息並與信息進行交互操作。通用模板是在 XML 架構的基礎上建立的,可以將 Internet 從只讀環境轉換爲可讀/寫平臺,從而使用戶能夠以交互方式創建、瀏覽、編輯、評註和分析信息。因爲基礎信息是 XML 格式的,所以通用模板能夠將來自世界各地的多個信息源彙集到一起。
  • 信息代理:管理您在 Internet 上的標識和個人信息,並更好地控制 Web 站點和服務與您進行交互操作的方式。與當今的 Internet 不同,您可以對自己的個人信息進行控制,決定誰可以訪問這些信息。通過信息代理,您只需創建一次自己的個人首選項,然後就可以允許任意 Web 站點或服務使用這些首選項。
  • SmartTags:將 IntelliSense 技術拓展到 Web 內容,使您的 PC 和設備可以智能地控制來自 Internet 的信息。可擴展的基礎結構允許每一用戶創建自適應的用戶體驗和數據處理程序。通過實際嵌入到每個 Microsoft 應用程序的內部,IntelliSense 技術能夠自動執行重複的任務、簡化複雜的任務、使軟件更加個性化、使產品中的各項功能更易於使用。

爲支持 Web UI 在任何類型的設備(包括最新的 Internet Explorer 和與 HTML 3.2 兼容的瀏覽器)上透明顯示,.NET 平臺引入了 ASP+,即下一代 Microsoft 的 Active Server Page 頁 (ASP) 技術。對於 Web 設計人員和開發人員,在充分利用現有開發 ASP 應用經驗的同時,設計和開發 Web UI 將更爲容易。對於 Web 主管,部署和管理 Web 應用程序和服務將更爲容易,並且可擴展性、安全性和可靠性均得以提高。

這裏使用的主要技術是 ASP+ 服務器控件,新的 Visual Studio .NET 設計器完全支持該技術。開發模型與當今 Visual Basic 開發人員所使用的常用模型完全相同:從工具箱中選擇一個控件,在 Web 窗體上繪製它,在其上雙擊以添加代碼來響應用戶事件,然後編譯您的項目。窗體和代碼被自動編譯並部署到您的開發 Web 服務器,在該服務器中,ASP+ 服務器控件自動檢測用戶的瀏覽器類型,並生成與瀏覽器類型兼容的純 DHTML 或 HTML 3.2。將隨 Visual Studio .NET 一起提供幾種可擴展和可修改的 ASP+ 服務器控件。這些控件類型包括固有的控件(對應於相應的 HTML 控件)、數據感知列表控件、功能豐富的日曆和廣告輪播器控件、窗體和字段驗證控件。

通過將 .NET 平臺的 Web 服務與各項 Web UI 功能相結合,能夠顯著改變我們在 Internet 工作和遊戲的方式。例如,在計劃外出旅行時,通常要收集以下幾方面的信息:偏愛的旅行時間、旅行目的地、特殊的飲食注意事項、是否吸菸、偏愛的租車代理機構、偏愛的飛機座位、常客獎勵帳號、偏愛的旅館、付款信息等。一個旅行社也許已經掌握了上述某些或全部信息,但是這些信息都是最新的信息嗎?或者您申請了多家旅行社怎麼辦?

何必每次都要收集上述這些信息呢?不如簡單地在 Outlook® 日曆中進行外出旅行預訂,讓 Exchange 服務器上運行的信息代理與在旅行社的 Web 站點上運行的 Web 服務自動聯繫。對 Web 服務的調用應包括偏愛的旅行時間和目的地信息。如果旅行社需要與您的旅行偏愛有關的其它信息,爲什麼旅行社不簡單地回調由您的 Exchange 服務器提供的 Web 服務,讓 Web 服務自動提供您已經授權與該旅行社共享的信息呢?

一旦旅行社最終設定好您的度假計劃,將再次與您的 Exchange 服務器上的 Web 服務聯繫,以更新最初的日曆約會信息。該約會可以自動與您的 Pocket PC 中的日曆保持同步,也可通過無線 Pocket PC 設備立即獲得這些信息。您可以隨時隨地獲取有關度假的詳細信息。

這就是由 Microsoft .NET、Exchange 2000 Server、Web 存儲系統和 Visual Studio 實現的全新的合作 Web 服務。本文在旅行社合作日程安排示例中闡述了合作性的日程安排。


Microsoft .NET 平臺

爲 .NET 平臺創建的應用程序和 Web 服務的主要特性包括:

  • 它們將自身作爲 Web 服務提供,並且具有 Web UI。
  • 它們使用公開的 Internet 協議。
  • 它們支持適合於智能客戶機和設備的豐富 Web 用戶體驗。

對於設計人員和開發人員而言,還可以快速開發和部署 .NET 應用程序和 Web 服務,並且可以很容易地與其它 Web 服務和現有應用程序集成。

圖 1. Microsoft .NET 平臺

Windows 操作系統服務

Microsoft .NET 平臺是建立在 Windows 2000 Server 系列的可伸縮性、可靠性、安全性和可管理性基礎之上的。對於基於 Windows 的 .NET 服務器,Windows 2000 Server 提供高性能的操作系統服務,這些服務包括:

  • 安全性(包括加密和完整公鑰基礎結構)。
  • 完備、高性能、基於標準的 XML 子系統。
  • 在磁盤和內存與任意 TCP/IP 連接之間具有極高帶寬的 I/O。
  • 允許同時運行多個版本的應用程序,以進行連續的部署。
  • 高效的線程和光纖支持。
  • 內容索引編制、搜索和檢索。
  • 存儲器高速緩存。
  • 進程調度。
  • 對音頻和視頻協同工作的 Windows 流式媒體支持。

Windows 2000 Professional、Windows NT® Workstation 和 Windows 的普通用戶版(Windows 98 和 Windows Me)將繼續附帶 Internet Explorer,以提供最豐富多彩的 Web 用戶體驗和 XML 支持。此外,Windows CE 將提供在中小型設備上運行的移動應用程序所需的各種操作系統功能,以支持聯機、脫機和無線解決方案。

.NET Orchestration

BizTalk Server 2000 是一種新的 .NET Enterprise Server,提供各種設計工具和運行時環境,以對任意業務進程組和組織內以及各組織間的 Web 服務進行協調。.NET Orchestration 是 .NET Framework 的第二個組件,用於集成 Web 存儲系統工作流並將其擴展到可伸縮的合作工作流解決方案結構中。

.NET Orchestration 解決了最爲常見的商業問題之一,即如何才能快速推進業務進程並將其與客戶和業務合作伙伴結合起來,同時解決由這些進程導致的技術問題,因爲這些進程分佈在運行於多個硬件平臺(運行在多個客戶、合作伙伴和服務提供商位置上)的多個軟件系統上。

用於解決這些問題的 .NET Orchestration 方案就是將進程定義與其基本實現部分分離。業務進程專家創建並管理業務進程的發展,而開發人員則將主要精力集中在實現支持業務進程的發展所需的基礎服務之上。.NET Orchestration 可視化設計器(包括在 BizTalk Server 中)提供進程設計和與外部 Web 服務及消息傳送系統集成之間的協調點。

使用 .NET Orchestration 的一種方法是將單獨的 Web 存儲系統工作流集成到更大的合作工作流解決方案結構之中並對其進行擴展。

.NET Enterprise Server

.NET Enterprise Server 是 Microsoft 的全面服務器系列中的一種,使您可以快速地建立並管理集成的、具有 Web 功能的企業系統。通過在設計中強調可伸縮性以及以任務爲中心的性能,.NET Enterprise Servers 使用最新的 Internet Web 和數據標準從頭創建,以便實現互操作性。

.NET Enterprise Server 的七大核心包括:

  1. SQL Server™ 2000
  2. Internet Security 和 Acceleration (ISA) Server 2000(以前爲 Proxy Server)
  3. Host Integration Server 2000(以前爲 SNA Server)
  4. Exchange 2000 Server 和 Exchange 2000 Conferencing Server
  5. Commerce Server 2000
  6. BizTalk Server 2000
  7. Application Center 2000

Exchange 2000 Server

在 .NET Enterprise Server 系列中,Exchange 2000 Server 是一種可靠的、容易管理的消息傳送和合作解決方案,可以將用戶和各方面的知識信息結合在一起。Exchange 2000 Conferencing Server 提供實時聊天、數據、音頻、視頻和應用程序共享,使用起來就象通過 Outlook 預訂會議一樣方便。

Exchange 2000 Server 發行版中的一個主要革新就是其分佈式 Web 邏輯結構。實際上,根據擴展用戶連接數量、中間層處理能力或後端處理需要以及存儲要求,能夠在自己的實際服務器上運行的前端服務與後端 Exchange 服務和 Web 存儲系統區分離。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet2.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 2. Exchange 2000 Server 分佈式 Web 體系結構

前端協議服務採用大量 Internet 協議以支持客戶機應用程序以及服務器到服務器的通信。客戶機協議服務包括 HTML/HTTP、POP3、IMAP4、NNTP 和 WebDAV(基於 HTTP 的 XML)、FrontPage 和 Office Server Extensions 協議、H.323 音頻/視頻會議和 T.120 數據會議傳送。服務器到服務器(和服務器到 Internet)協議服務包括 SMTP、NNTP 和 X.400。

此外,前端協議服務支持 Outlook Web Access for Exchange 2000 Server (OWA 2000),它可以將 Outlook 2000 功能作爲基於 HTML/HTTP Web 組件的 Web UI 提供,因此用於 Internet 信息查詢、漫遊用戶和家庭訪問等情況十分理想。OWA 2000 可以用作完備的電子郵件客戶程序,可以訪問電子郵件、日曆約會和聯繫人,另外還可以訪問個人和公用文件夾中存儲的所有信息。此外,開發人員還可以使用 OWA 2000 Web UI 的每一組件在自己的合作 Web 解決方案中自動提供功能全面的日曆、聯繫人列表、電子郵件和主題討論。

Exchange 服務實施核心消息傳送和協作服務,包括對前端協議服務層、系統管理和服務器到服務器複製的支持。

Web 存儲系統採用安全層次結構文件夾模型,用於存儲任何類型的無特定結構或半結構化的內容(電子郵件、文檔、文件、可執行文件等),並且通過大量的 API、Internet 協議、一個支持同步和異步處理的事件模型以及一個工作流引擎,增加對訪問和更新這些內容的支持。後者使 Web 存儲系統能夠成爲可令業務進程自動化的、功能強大的合作 Web 平臺。

ADO 2.5 是戰略性的 Web 存儲系統對象模型,用於訪問與文件夾以及文件夾中所包含項目有關的信息,以及單個項目自身的信息。ADO 2.5 隨 Windows 2000 附帶,使用新的 Web 存儲系統 OLE DB 提供程序。其最主要的優點是用唯一的、易於辨識的 URL 標識 Web 存儲系統中的每一項目。此外,ADO 2.5 是可用於 Web 存儲系統中文件夾和項目的層次結構遍歷的對象模型。

一個新的 ADO 2.5 對象(即 ADO 記錄)用於檢索單個文件夾或項目的屬性,並創建新文件夾和項目。新的流對象提供對一個項目的附件(例如 Office 和 XML 文檔)以及音頻和視頻流的有效訪問。傳統的 ADO 記錄集用於檢索與項目集合有關的信息。

新的 Web 存儲系統合作數據對象 (CDO) 庫系列是建立在 ADO 和 OLE DB 的基礎之上的,提供對 Web 存儲系統和 Exchange 2000 Server 中的項目和管理功能的更高級別的、面向對象的訪問。(假如 Web 存儲系統 CDO 是在 ADO 和 OLE DB 的基礎上實現的,進一步強調 ADO 在跨 Microsoft 平臺進行數據訪問時所起的重要作用)。

爲了與現有的電子郵件客戶程序(包括所有版本的 Outlook 和 Outlook Web Access for Exchange Server 5.5)兼容,Web 存儲系統還支持 MAPI 和 CDO 1.2 API。

爲了與最簡單的桌面應用程序兼容,Web 存儲系統還提供可安裝文件系統 (IFS) 驅動程序,使 Web 存儲系統分層文件夾存儲的查看方式類似 Windows 資源管理器中的分層文件系統、命令提示或者用來打開和存儲文檔的標準文件系統對話框。IFS 驅動程序文件夾還可以象普通文件系統文件夾一樣共享,並使用傳統的服務器消息塊 (SMB) 網絡文件共享協議訪問。

此具有大量的 Web 存儲系統 API 和 Internet 協議的集合將使“Tahoe”中提供的新的協作服務集得以實現,“Tahoe”是 Microsoft 的第二個基於 Web 存儲系統的協作服務器產品。此外,未來的 Office 版本將附帶某一版本的 Web 存儲系統,它將運行在本地的客戶 PC 機上,並且支持 Active Server Page 以及與在服務器上使用的基於 Web 存儲系統產品的直接同步和高速緩存。

.NET Building Block 服務

Building Block Web 服務是由 Microsoft 和其它 Internet 服務提供商提供的商業 Web 服務,開發人員將能夠在自己開發的應用程序和 Web 服務中充分利用這些服務。核心 Microsoft .NET Building Block Web 服務將包括:

  • 標識
  • 通知和消息傳送
  • 個性化
  • 存儲
  • 日曆
  • 目錄和搜索
  • 動態傳送

“標識”服務是建立在前面所述的 Passport 服務的基礎之上的。通知和消息傳送是統一的服務,它綜合了即時消息傳送、電子郵件、傳真、語音郵件和其它形式的通知。個性化服務控制發送通知和消息的方式和時間,以及在多個設備上應如何對信息進行協調。.NET Storage 服務就是 Internet 上的數字存儲服務,相當於當前銀行的保險箱服務。用戶將保留密鑰並控制訪問。

日曆是涵蓋您的工作、社交和家庭日曆的綜合性服務,它與實時提供的數據相結合,使其它 Web 服務可以確定您的當前情況。通過目錄和搜索,可以查找服務和人員。此外,開發人員和應用程序將能夠使用基於架構的查詢來詢問與這些服務有關的問題。動態傳送服務使 Microsoft、ISV、解決方案合作伙伴和其它開發商在無需用戶安裝和配置的情況下,能夠根據要求增加更多級別的功能並提供可靠的自動升級。

通用說明、發現和集成 (UDDI) 是由 Microsoft、IBM 和 Ariba 在最近合作開發的,UDDI 是用於 Web 服務的、基於 XML 的分佈式信息註冊的規格和基準工具。UDDI 註冊使您可以描述和發現由一個組織提供的 Web 服務。每個 UDDI 註冊項目都包括與其提供的服務有關的業務和技術信息的說明。請訪問 UDDI Web 站點(英文)以獲得更詳細信息。

.NET Framework

.NET Framework 包括開發人員將對其進行編程的 5 種基本組件:

  1. 公共語言運行時
  2. .NET 基類
  3. 數據和 XML 傳輸
  4. Web 服務
  5. Web UI

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet3.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 3. .NET Framework:應用程序提供 Web 服務和 Web UI

公共語言運行時

公共語言運行時 (CLR) 的設計目標是:

  • 極大簡化應用程序的開發。
  • 提供安全可靠的執行環境。
  • 支持多種編程語言。
  • 簡化開發和管理。

公共語言運行時允許所有的編程語言獲得同樣的功能,並且同樣積極參與 .NET 開發環境。這意味着在 .NET Framework 上不僅可以運行 C++®、Visual Basic、C#™ 和 JScript® 等功能強大的 Microsoft .NET 語言,而且 Microsoft 合作伙伴還可以在 .NET Framework 上運行 20 多種其它語言。

此開發工作要藉助於兩個關鍵的功能。首先,將所有語言編譯成一種中間語言 (IL)。與僞代碼或 Java 字節代碼的概念類似,所有語言實際上編譯成一種元語言。然後,CLR 可以隨時編譯 IL(或提前編譯),以便在任何環境和任何 CPU 上運行。此外,支持 CLR 的所有語言執行工具將自動繼承 Visual Studio .NET 的所有功能,包括撰寫、調試、編譯、對象模型和新的服務器資源管理器功能等各項功能,還對自身的運行時間、.NET 基類庫和第三方調試程序、橫向全面調節器、代碼有效區域分析器和文檔工具等進行了改進。

此外,CLR 避免了許多不必要的工作,例如組件註冊、GUID、IDL 文件、HRESULT、 IUnknown、AddRef/Release 和 CoCreateInstance。所有 CLR 語言都是面向對象的語言,並且完全支持對各種語言的繼承,包括對以前視作非 OO 語言(例如 Visual Basic 和 COBOL)的繼承。這包括從用第二種或第三種 CLR 語言編寫的超類中派生用一種語言編寫的類。最後,所有 .NET 對象都是通過新的多代標記並壓縮無用信息收集程序來自動收集無用信息的。

基類

爲了替換在典型桌面計算機或服務器上存在的各種類庫和應用程序框架,已經開發了 .NET 基類,用來爲所有 .NET CLR 語言提供單一的、公用的運行時類集合,並且充分利用 CLR 和 .NET 平臺的各種功能。

頂級基類層次結構包括:

  • System.Web.Services
  • System.Web.UI
  • System.XML
  • System.Data.ADO
  • System.Data.SQL
  • System.WinForms
  • System.Security
  • System.IO
  • System.Runtime

數據和 XML

.NET Framework 的數據和 XML 組件涉及在新的和現有組件、Web 服務和應用程序之間傳輸信息的方式。

ADO+ 是關鍵的 .NET 革新,同時還代表對 ADO(ActiveX® 數據對象)的重大改進。ADO+ 是用於創建分佈式數據共享應用程序的標準編程模型。此技術的核心是 ADO+ 數據集,可以在內存中存儲多個數據庫表和表關係。ADO+ 表可以作爲 XmlDataDocument 以及關係表和 XML DOM 對象同時訪問(與 ADO+ 不同的是,ADO 數據集更象單個表,並且只具有有限的 XML 支持)。

數據集是與 XML 或數據庫數據斷開的視圖(意指數據集在內存中存在,但沒有與基礎數據服務器的有效連接)。它們可以存入本地數據服務器的高速緩存中,也可以向外擴展到您的解決方案體系結構的任意層。如果需要爲斷開的脫機解決方案存儲數據集,XML 既可用作傳輸格式,也可用作保留格式。

除了支持數據向外擴展到中間層或客戶機的高速緩存中,ADO+ 還對基礎數據服務器的所有修改進行協調,包括表創建、架構修改、關係和限制管理、並行性管理和事務。其它 ADO+ 修改包括從表或 XmlDataDocument 添加、選擇、編輯、刪除和移去數據。

ADO+ 數據集和基礎數據存儲之間的接口或適配器稱作受管提供程序。.NET 平臺將附帶有用於 SQL Server、XML 和 ADO 的受管提供程序。Web 存儲系統受管提供程序不久即將提供。

在當前技術上的擴展

儘管 .NET 平臺是用來創建集成的合作解決方案的新平臺,但它是建立在現有技術的基礎之上的,並且努力簡化其設計、執行、部署和管理。下面對典型的 .NET 服務器或服務器模型進行了說明。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet4.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 4. .NET 服務器模型體系結構

此模型體系結構是在當前大多數 Windows 服務器中廣泛使用的體系結構。但是,.NET 平臺可以使展示數據、XML、Web UI 和 Web 服務更容易。.NET 公共語言運行時和基類提供了所有 CLR 編程語言通用的完全面向對象的受管內存環境,從而更容易、更快捷地創建更爲強大的組件、子系統和應用程序。ADO+ 是在 ADO 的基礎上創建的,提供可擴展的數據集高速緩存和永久存儲模型,用來管理斷開的聯機情況和斷開的脫機情況中的數據。.NET 應用程序提供與用戶進行交流的 Web UI 和 Web 服務,使開發人員可以更容易地展現應用程序的功能,以便其它服務器和客戶機應用程序能夠與其相連。


Microsoft Web 存儲系統

Web 存儲系統採用分層文件夾模型,用於存儲任何類型的無特定結構的或半結構化的內容(電子郵件、文檔、文件、可執行文件等),並且通過大量的 API、Internet 協議、一個支持同步和異步處理的事件模型以及一個工作流引擎,增加對訪問和更新這些內容的支持。

Web 存儲系統支持以下 API 和 Internet 協議:

  • 數據訪問 API:ADO 2.5 和 Web 存儲系統 CDO
  • 客戶機訪問協議:MAPI、HTTP、POP3、IMAP4 和 WebDAV,以及 FrontPage 和 Office Server Extensions 協議
  • 可安裝文件系統 (IFS) 驅動程序,允許作爲 M: 驅動器安裝的分層文件系統訪問 Web 存儲系統分層文件夾存儲中的文件夾、子文件夾和項目

此外,Exchange 2000 Server、Exchange 2000 Conferencing Server 和 Active Directory™ 支持以下 API 和 Internet 協議:

  • 服務器傳輸協議:SMTP、NNTP 和 X.400
  • 實時合作:H.323 音頻/視頻會議、T.120 數據會議傳送、Exchange Instant Messenger 和 Exchange Chat
  • 目錄協議和 API:LDAP 和 ADSI

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet5.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 5. Web 存儲系統:API 和 Internet 協議

通過此組 API 和 Internet 協議,Exchange 2000 Server 和 Microsoft Web 存儲系統成爲可提供自動業務解決方案的功能強大的合作解決方案平臺。

分層對象存儲

Web 存儲系統中的文件夾可視作:

  • 具有可動態擴展和靈活架構的數據庫表。
  • 分層文件系統。
  • 分層對象存儲。

理解這些不同方面的關鍵是瞭解有關文件夾、子文件夾、項目和屬性的基礎知識。對於大多數用戶而言,他們對文件夾和項目的 Web 存儲系統概念的理解是建立在由 Outlook 2000 或類似的個人信息管理器提供的列表和窗體基礎之上的。理解這些概念更基本的含義是十分重要的。

文件夾的層次結構(起始於該層次結構的最頂層文件夾)稱作 Web 存儲系統中的頂層層次結構 (TLH)。Web 存儲系統文件夾用於存儲項目集合。項目具有一組與其相關的屬性。屬性就是一個簡單的 name=value 對,其中的值可以是單值,也可以是多值。屬性的名稱由其所屬的 XML 名稱空間限定,例如 DAV: 或 urn:content-classes。項目及其屬性的列表可以作爲 ADO 數據集或 WebDAV XML 文檔檢索。這就是使 Web 存儲系統文件夾近似數據庫表的原因。

此外,文件夾中的每個項目不必與文件夾中的其它項目的屬性集完全相同。可以將一個屬性動態添加到任意單獨項目中,而與該文件夾中的其它項目完全無關。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet6.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 6. Web 存儲系統:文件夾、項目和屬性

某些屬性具有特殊的、定義明晰的含義和重要性。一個主要屬性就是布爾屬性 DAV:isfolderisfolder 屬性決定一個項目是簡單項目還是代表更多項目的集合(或子文件夾)。Web 存儲系統的分層文件夾存儲就是通過該屬性實現的。即,文件夾中的某些項目的 isfolder 屬性值爲真,表示該項目是邏輯子文件夾。然後,可以在該項目的記錄對象上調用 ADO GetChildren 方法,以返回子文件夾中各項目的列表。

Web 存儲系統中的每一項目都具有唯一的、用戶友好的 URL,可用於標識和訪問該項目。對於個人郵箱中的項目,URL 的格式爲:

  • http://server/exchange/userid/folder/.../subject.suffix

對於 TLH 下的項目,格式爲:

  • http://server/TLHname/folder/.../subject.suffix

項目也可以是任意文檔,包括電子郵件信件、日曆約會、聯繫人、任意 Office 文檔、HTML 頁、ASP 頁、XML 文檔或音頻或視頻流。下面介紹一些更貼近現實生活的例子。

我的個人收件箱中電子郵件的 URL 類似以下形式:

  • http://ec3-tor-11/exchange/mherman/Exchange%202000%20Development.EML

公用文件夾中聯繫人項目的 URL 類似以下形式:

  • http://ec3-pfs-04/public/EC3/Shared/Contacts/Michael%20Herman.EML

作爲可供使用的 Web 存儲對象的項目和內容類

另一個主要項目屬性是 DAV:contentclass。對於在 Exchange 2000 Server 和 Web 存儲系統上建立的大多數應用程序和服務而言,它們使用一個項目的內容類屬性來確定該項目所代表的對象的類型。例如,urn:content-classes:message 的內容類值表示該項目是電子郵件信件,並且應該從那些適合於電子郵件信件的屬性中選擇其屬性。其它重要的內容類包括:urn:content-classes:appointment、urn:content-classes:person 和 urn:schemas-microsoft-com:exchange:workflowprocessdefinition。person 是用於聯繫人項目的內容類值。Web 存儲系統提供 30 多個常用對象內容類的架構和屬性定義。與屬性名類似,內容類名稱也是由其所屬於的 XML 名稱空間(或者是某一固有的 Web 存儲系統名稱空間,或者是針對於您自己的自定義的應用程序或組織的名稱空間)限定的。

MAPI 應用程序(例如 Outlook 2000)支持稱作 PR_MESSAGE_CLASS(正式的介紹在 http://schemas.microsoft.com/exchange/outlookmessageclass(英文))的類似項目屬性。客戶機應用程序可以使用內容類屬性來確定應向用戶顯示一個項目(及其屬性列表)的方式。如果內容類是 person,則 OWA 2000 使用 HTML 將該項目作爲聯繫人提供,而 Outlook 2000 將使用內置的 Outlook 聯繫人窗體來顯示該項目的屬性。在 Outlook 2000 示例中,等價的 PR_MESSAGE_CLASS 值是 IPM.Contact。要使 OWA 2000 和 Outlook 2000 窗體正確用於相同的聯繫人項目集,則該內容類和 PR_MESSAGE_CLASS 屬性值都必須正確設置。

就 Exchange 2000 Server 和 Web 存儲系統而論,文件夾的內容就是項目的列表 — 每個項目及其相關屬性的列表。此外,某些項目可能將 isfolder 屬性設置爲 True,表明它們是其它項目的子文件夾。

要避免出現混亂,內容類名稱還可用於命名基於 XML 的架構項目(稱爲內容類定義)。內容類定義對文件夾存儲中特定對象類預期的屬性列表進行定義。客戶機應用程序選擇用來顯示一個項目的方式完全適合於該應用程序(和標準使用慣例)。一個項目的內容類屬性只是提供該項目的對象類的名稱。

也可以從固有的內容類導出新的針對解決方案的內容類架構,或者從頭開始創建全新的內容類。正如您可能會猜到的那樣,架構和屬性定義自身只不過是具有其自己的特殊內容類(urn:content-classes:contentclassdef 和 urn:content-classes:propertydef)的項目。

按照預想,大多數應用程序可以創建其自己的架構文件夾,該文件夾僅對於此特定解決方案的實例而言是全局的。

ADO 還是 WebDAV?由您來選擇

除了使用 URL 直接訪問 Web 存儲系統中的項目或對象外,還可以對文件夾存儲執行查詢。不管您是選擇使用 ADO 還是 WebDAV 協議,相同的基本查詢處理器全部可以處理。大多數 Windows 開發人員很熟悉 ADO,但對 Web 存儲系統的 Exchange 2000 Server 版本卻並不熟悉,它具有這樣的限制,即只能由與 Web 存儲系統在同一臺計算機上運行的客戶機或服務器應用程序使用,因此 Web 存儲系統 OLE DB 提供程序不是自然就可以遠程訪問的。

對於熟悉 ADO 的開發人員,可以使用稱作 OLE DB Provider for Internet Publishing (MSDAIPP) 的提供程序,該程序運行在支持遠程 ADO 連接的 WebDAV(以及 FrontPage WEC 協議)的頂層。您可以閱讀關於 OLE DB Provider for Internet Publishing 指南(英文)以瞭解詳細信息。

注意:   CDO 的 Web 存儲系統版本不可通過 Web 存儲系統或 MADAIPP OLE DB 進行遠程訪問。

WebDAV 是一組對 HTTP 的擴展,可以通過定義進行遠程訪問,並且擴展請求的參數格式爲 XML 文檔。在查詢處理器對文件夾存儲執行查詢後,它將向發出請求的應用程序返回 XML 文檔形式的結果。

對於 ADO 和 WebDAV 查詢,可以使用大家熟悉的 SQL 查詢語言語法。支持 SELECT *、LIKE、WHERE、ORDER BY、GROUP BY、CONTAINS、FREETEXT 和列別名,但不支持 JOIN 和 MAX、MIN、SUM 等。此外,FROM 子句的 SCOPE 選項可用於指定是隻搜索當前文件夾(不包含子文件夾),還是搜索當前文件夾及其所有子文件夾。前者稱作 SHALLOW 搜索,而後者稱作 DEEP 搜索。下面是搜索的示例:

SELECT Name, WorkPhone, CellPhone FROM SCOPE('DEEP TRAVERSAL OF "<folder URL>"')

拓展 Web 存儲系統功能

許多類型的解決方案可以通過前面介紹的數據訪問方法進行開發。但是,這通常需要拓展 Web 存儲系統的功能。可以通過兩種機制對功能進行拓展:

  1. 傳統的中間層組件(在本文稱作前端 Web 服務組件)
  2. 事件驅動的後端組件

前端 Web 服務組件:參見圖 4,中間層或前端 Web 服務組件用於通過附加的功能將任意固有或自定義的對象放入文件夾存儲中;就 Web 服務而言,通常用於將類或類組的功能作爲 .NET Web 服務提供。

事件驅動的後端組件:儘管中間層組件可用於強制執行業務規則,但它們只適用於實際調用中間層組件的那些應用程序。一個更爲有效的方法是使用如圖 4 所示的事件驅動的後端組件。

對 Web 存儲系統中項目的任何更改,不管該項目是簡單項目還是一個文件夾,都可能會激發一個事件,導致執行某些自定義的代碼。所執行的代碼稱作事件池。在 Web 存儲系統的 Exchange 2000 Server 版本中,事件池作爲 COM+ 或腳本化的組件執行。

當事件池被註冊爲特定文件夾中的特定事件時,Web 存儲系統傳遞事件信息結構,其中包括已創建、更改或刪除的項目的 ADO 記錄。此外,事件池註冊規定相對於對該項目所做的更改,該池是同步執行還是異步執行。

支持工作流的 Web 存儲對象

除了能夠開發上述的存儲級別的事件池外,Exchange 2000 Server 工作流引擎和 Workflow Designer for Exchange 2000 Server 可以協同工作,執行更高級別的工作流事件服務集。

工作流引擎

在 Web 存儲系統的 Exchange 2000 Server 版本中,工作流引擎作爲 COM+ 組件實現。除了在 COM+ 下運行工作流引擎固有的性能和易管理優勢外,Web 存儲系統充分利用了基於角色的 COM+ 的安全模型,以確定誰能夠通過工作流激活特定文件夾中的 Web 存儲系統對象。

工作流引擎採用低級別的存儲事件池界面,以便只要支持工作流的文件夾中發生更改,就會調用該引擎。同時,工作流引擎爲 Workflow Designer 提供一組較高級別的工作流事件。

Workflow Designer for Exchange 2000 Server

Workflow Designer for Exchange 2000 Server 是用於通過工作流激活 Web 存儲系統文件夾和項目的可視化設計器。它作爲 Microsoft Office 2000 Developer 1.5 版的一部分提供。設計層面用於繪製代表業務流程的狀態轉換圖。節點代表特定項目或文檔在指定時刻所處的狀態。如果業務流程的角度需要,即應在兩種狀態之間繪製箭頭。箭頭表示從一個狀態轉換到另一個狀態。轉換是受一定條件限制的,該條件控制何時允許一個項目從當前狀態更改爲新狀態。通常,該條件將測試所更改項目的 ADO 記錄對象的一個或多個屬性,該記錄對象在激發工作流事件時自動提供。作爲從當前狀態轉換到下一個狀態的轉換進程的一部分,可以執行 Visual Basic Script 操作腳本來訪問某些外部功能,例如,發送電子郵件通知或與 BizTalk Server 的 .NET Orchestration 進程集成功能相集成。

在移動設備或脫機解決方案中使用 Web 存儲系統

當前,Web 存儲系統僅作爲隨 Exchange 2000 Server 附帶的服務器端技術提供,不過將來會在 Tahoe 發行版中提供,Tahoe 是 Microsoft 的基於 Web 存儲系統的合作服務器產品。

未來的 Office 版本還將包括用於客戶機的 Web 存儲系統版本,它將支持用於服務器的 Web 存儲系統內容的自動高速緩存,並且還支持通用 Web 內容。此外,本地 Web 存儲系統還將支持基於預訂的將服務器內容複製到本地存儲上。另外,本地 Web 存儲系統能夠通過在客戶機上支持 Active Server Page (ASP),從而完全動態地保留 Web 站點。通過該功能,將能夠利用許多完全可操作的、動態的、未連接的移動設備或脫機解決方案情況的新類別。

圖片說明

下圖描述了三種類型的客戶機應用程序是如何能夠訪問和更新一個項目的屬性的。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet7a.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 7a. 客戶機功能圖片說明

以 Outlook 2000 爲例,MAPI 客戶機能夠創建新項目、更新現有項目的屬性、或刪除單獨的項目或項目屬性。同樣,通過使用 Web 存儲系統大量的 API 和 Internet 協議集、傳統的 Visual Basic 以及 Web 服務器應用程序,能夠與完全相同的項目的單個實例進行交互操作並更改該實例。

此外,由這些客戶機應用程序進行的項目更改能夠觸發事件驅動的後端邏輯指令,包括在 Exchange 2000 Server 工作流引擎中執行的工作流進程。Workflow Designer for Exchange 2000 用於創建並更新在工作流定義 (WFD) 文件中保存的業務流程。WFD 文件可以存儲在每個支持工作流的文件夾中,或者存儲在公用應用程序文件夾中(類似於共享內容類架構項目)。下圖描述了事件驅動的後端工作流邏輯指令如何能夠響應創建新項目或更改現有項目的事件。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet7b.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 7b. 後端事件驅動的圖片說明

當用戶雙擊或指出他們想要打開一個項目時,應用程序會首先查看內容類(即 PR_MESSAGE_CLASS)和瀏覽器參數,以確定使用合適的 Web UI 或窗體來顯示所選項目的屬性。


Web 存儲系統和 .NET 平臺

下圖介紹了 Web 存儲系統是如何滿足當今 .NET Framework 的需要的。在下一部分前景展望中,概要介紹了一些新 .NET 功能,這些新功能預計將由 Exchange 開發小組在 Web 存儲系統的下幾個發行版中提供。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet8.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 8. Web 存儲系統和 .NET 架構

Web 服務

SOAP Toolkit for Visual Studio 6 現在可用來快速開發用於 Web 存儲系統的自定義 Web 服務。位於 http://msdn.microsoft.com/exchange/(英文)和 http://msdn.microsoft.com/xml/general/toolkit_intro.asp(英文)的 Exchange Server 下載都是極佳的資源。儘管 SOAP Toolkit 使開發 Web 服務和與 Web 服務建立連接更爲容易,但 SOAP 協議標準系列不需要特定的工具包或平臺來實現 Web 服務的種種優點。

在 SOAP Toolkit 中包括在 Windows 操作系統上提供 SOAP Web 服務所需的基礎結構,該基礎結構也是通過 Visual Studio 6.0 使用這些服務所需要的。SOAP Toolkit 使創建 Web 服務所需的所有關鍵步驟自動進行。

如果已有某個 COM 組件,SOAP Toolkit 可以很容易地將該組件轉換成 Web 服務,並在應用程序(例如 Visual Basic)中使用。SOAP Toolkit 包括將從現有 COM 組件中提取類型庫並將其轉換成 SOAP 協議語言 (SCL) 協議(代表該組件的功能,例如接口、方法和屬性)的工具。同時還將生成各種實現供其它應用程序使用的服務所必需的文件。您還可以手動生成此協議。

一旦您具有協議,該工具包將包括對 Visual Studio 的擴展,會自動將該協議轉換成一個代理,您能夠象本地 COM 組件一樣對該代理進行編程。該工具包還包含 SOAP 監聽程序,可以接收 SOAP 調用並將它們轉到相應的服務上。

最爲常見的是使用傳統的 SOAP 遠程方法調用協議對 Web 服務進行調用。以下基於 XML 的標準支持 SOAP:用於架構定義的 XML 架構數據類型 (XSD)、SOAP 發現協議、服務協議語言 (SCL) 和簡單對象訪問協議 (SOAP) 協議本身。此外,數據遠程 Web 服務使用 XML/HTTP 協議,例如 WebDAV。請參見“數據和 XML”部分以瞭解詳細信息。

Web UI

爲了支持 Web UI 的快速開發,Web 存儲系統包括三種主要技術:

  1. Web 存儲系統表單,包括 Forms Registry 和 EXWFORM Web Storage System Forms 表單生成器。
  2. Outlook Web Access for Exchange 2000 Server Web 組件。
  3. Outlook 和 Instant Messenger 查看控件。

表單註冊屬性存儲在稱作“表單註冊”的單獨項目或對象中。表單註冊屬性根據項目的內容類和各種其它條件(包括用戶的瀏覽器類型、請求類型、查詢字符串參數等)來決定顯示該項目屬性要使用的 Web UI。要使用的 Web UI 可以由傳統的 URL 或 Web 存儲系統服務器的自定義表單生成器 DLL 的路徑標識。自定義表單生成器 DLL 作爲對 ISAPI 應用程序的擴展執行,表示它們是可執行的並且是可擴展的。Outlook Web Access for Exchange 2000 Server 作爲其中一個 DLL 執行。固有的或自定義的表單提供程序可以訪問 HTTP 請求標頭集合,以及由用戶瀏覽器請求的項目屬性的 ADO 記錄。

Web 存儲系統附帶有固有的表單提供程序 EXWFORM Web Storage System Forms。開發人員創建 Web 存儲系統表單的方式與創建使用 DHTML 動態數據綁定的 ASP 頁或 Web 頁相同。EXWFORM 表單提供一組快捷方式,從而減少或避免在頁中使用任意實際腳本代碼的需要。所有 Web 存儲系統表單提供程序(固有的或自定義的)都在服務器上執行。

最終,OWA 2000 將大多數 Outlook 2000 的客戶機功能作爲基於 Web 組件的 Web UI 提供。OWA 2000 可以用作完備的電子郵件客戶程序,可以訪問電子郵件、日曆約會和聯繫人,另外還可以訪問您所有的個人和公用文件夾。此外,開發人員還可以使用 OWA 2000 Web UI 的每一組件在自己的合作 Web 解決方案中自動提供功能全面的日曆、聯繫人列表、電子郵件和主題討論。

數據和 XML

要通過 .NET Framework 支持關係數據和 XML 的傳輸,Web 存儲系統需支持 ADO 2.5、WebDAV 和 Web 服務。

ADO 提供大多數 Visual Basic 和 ASP 開發人員所熟悉的服務器端數據訪問對象模型。WebDAV(W3C 分佈式編寫和出版協議)支持使用基於 XML 的 HTTP 請求和響應協議遠程訪問數據。由 WebDAV 請求返回的數據可以通過 XML 文檔對象模型 (DOM) 訪問,也可以通過 OLE DB Provider for Internet Publishing (MSDAIPP)(有時稱作“Rosebud”)作爲遠程 ADO 記錄集訪問。有關詳細信息,請參見本文的“分層對象存儲”部分。

最後,應用程序可以使用基於 XML/HTTP 的 SOAP 協議套件,以便對運行在遠程 Web 服務器上的各個服務執行方法調用,結果將作爲 SOAP 格式的 XML 文檔返回。

組件運行時環境

對於 Web 存儲系統的 Exchange 2000 Server 版本,支持的組件運行時環境是 COM+。

基類

不包括服務器到服務器傳輸協議,在 Web 存儲系統的 Exchange 2000 Server 版本中共支持六種基類:

  1. 客戶訪問協議和 API
  2. 數據訪問
  3. 可安裝文件系統 (IFS) 驅動程序
  4. 協作數據對象 (CDO)
  5. 實時合作
  6. 事件

有關屬於各組的 API 和協議的詳細信息,可以在本文的“Microsoft Web 存儲系統”部分找到。

Visual Studio 和 Office

要縮短應用程序的開發週期、提高開發人員的工作效率,功能強大的工具和平臺是必不可少的。目前,要建立 .NET 應用程序和服務,Visual Studio 6.0 和 Office 2000 Developer Edition(包括 Outlook 2000、FrontPage 2000 和 Workflow Designer for Exchange 2000 Server)是主要工具。


聯合 Web 服務模型

通過 Web 服務建立合作解決方案有兩種主要途徑:簡單和聯合。簡單 Web 服務在單個 Web 服務器上實現,並且只提供單個 Web 服務。在圖 9 中,服務器 X、服務器 Y 和 Travel Broker Web 站點提供簡單 Web 服務和應用程序,直接調用由這些 Web 服務提供的方法。

隨着 Web 服務的發展,無論從功能或橫向發展角度,或從可靠性角度,均將以特定服務器承擔特定職責的形式實現專門化。下圖以服務器 X 和服務器 Y 爲例。但是,當 Web 服務從一臺服務器轉到第二臺服務器或第三臺服務器時,對於開發人員、操作人員和使用應用程序的 Web 服務而言,這一情況會使形勢變複雜。解除這一煩惱的“良藥”就是聯合 Web 服務和 UDDI。

聯合 Web 服務在單一的、衆所周知的前端 Web 服務器(稱作主 Web 服務器)上通告,而 Web 服務組件可以在任意數目的中間層服務器上執行。希望連接到 Web 服務的應用程序只需訪問主 Web 服務器上的 SOAP 協議,遠程方法調用將自動對相應的中間層服務器執行。許多類型用戶的主 Web 服務器的極佳選擇將是 Exchange 前端消息傳送和合作服務器。隨着 Web 服務的發展,UDDI 註冊將成爲用來通告有關一個組織的 Web 服務的有關業務和技術信息的當然之選。

在 Exchange 服務器上通告的聯合 Web 服務可以包括:

  • 本地的、可立即投入使用的 Exchange Web 服務
  • 本地自定義的 Web 服務
  • 來自任意數量的內部或外部 .NET 服務器的聯合 Web 服務

該情況在圖 9 中介紹。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet9.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 9. 多聯合 Web 服務模型

圖 9 中描述的最後一種情況是分派調用。當一個 Web 服務代表原主調應用程序調用另一個 Web 服務時,會發生分派調用。在圖 9 中,Exchange 服務器提供由 Outlook 調用的聯合 Web 服務。如果由 Outlook 用戶請求的操作是外出旅行預訂請求,Exchange 服務器將該調用分派給在旅行社的 Web 站點上運行的 Web 服務。

此外,Web 服務聯合允許組織在不損害其控制或訪問 Web 服務能力的前提下,決定是運行自己的基礎結構還是從外部裝入基礎結構。

旅行社合作日程安排示例

讓我們首先看一下在“Web 用戶體驗”部分介紹的外出旅行預訂情況吧。某個 Outlook 用戶希望計劃一次旅行。在理論上,可能需要以下部分或全部信息來完成旅行社的預訂過程:

  • 偏愛的旅行時間
  • 旅行目的地
  • 偏愛的旅館
  • 汽車租用
  • 特殊的飲食注意事項
  • 是否吸菸
  • 偏愛的租車公司
  • 偏愛的飛機座位
  • 常客獎勵帳號
  • 付款信息

旅行社可能已擁有上述部分或全部信息。但是,這些信息不一定是最新的信息,或者該人士可能通過從來不辦理個人旅行業務的旅行社進行預訂。我們將首先看到充分利用聯合 Web 服務的設計範例,然後再看一下另一種效率低下的方法。

多聯合 Web 服務示例

在上面的多聯合服務模型中,Outlook 用戶具有已針對個人旅行進行自定義的 Outlook 約會表單或 Web 表單。首先,該表單將需要通過新的內容類(即 urn:content-classes:vacationbooking)進行註冊。還需要正確設置 Outlook outlookmessageclass。此內容類的架構可能會爲上述列表中的每一條信息包含一個屬性,但我們爲什麼要如此繁瑣呢?對於大多數外出旅行而言,只有前三條或四條信息是唯一的。我們要什麼時候出發?我們要去哪裏?我們要在哪裏停留?我們是否要租車?

需要這些屬性來作爲外出旅行預訂內容類架構的一部分。但是,如果外出旅行預訂內容類是從約會內容類中導出的,則僅需要將目的地、旅館和租車屬性添加到新架構和新外出旅行預訂約會表單中。

在將新項目添加到 Outlook 用戶的日曆中時,將執行工作流引擎中的事件池,並通過一個條件檢查新項目的內容類的值是否爲外出旅行預訂。如果該值是外出旅行預訂,則該項目的工作流將轉換爲業務流程中的下一個狀態,並且執行與該轉換相關的操作腳本。操作腳本將啓動分派調用過程,將調用分派給由旅行社的 Web 站點提供的 Web 服務,傳送四條由外出旅行預訂表單收集的信息。

然後,任何好的旅行社都會詢問有關您的其它偏好的信息,還會詢問您的付款方式。這是如何實現的呢?如果旅行社回電話或發送電子郵件,該信息同樣也已在原始的外出旅行預訂表單上輸入。不過,實際的實現方式是旅行社的應用程序對 Outlook 用戶的 Exchange 服務器上的第二個 Web 服務執行自己的遠程方法或數據訪問調用。該服務向授權的用戶(如旅行社)提供用戶的個人偏好信息。個人偏好信息作爲 Outlook 用戶的個人文件夾中的一個項目存儲在一個位置。該信息始終是最新的和安全的。

效率低下的 Web 服務體系結構

爲了強調上述方法的優點,您可以看一下圖 10 中所介紹的相同外出旅行預訂情況下效率低下的 Web 服務體系結構。在此情況中,沒有工作流,不可能將調用分派給旅行社的 Web 服務,並且 Exchange 服務器上沒有用於提供個人偏好信息的回調 Web 服務。

marginwidth="1" marginheight="0" src="/china/msdn/images/collabdotnet10.gif" frameborder="0" width="600" height="400">
點擊此處,查看完整的圖片

圖 10. 效率低下的 Web 服務體系結構

在此情況中,附加的客戶端代碼將把所有所需的信息彙集到對旅行社的 Web 服務的較大的遠程方法調用中。如果需要任何其它個人偏愛方面的信息,旅行社的應用程序應該向哪裏回調呢?根據推測,應用程序應該調用在 Outlook 客戶機內執行的外出旅行預訂代碼。但可能性更大的是,旅行社發電子郵件或打電話以索取這些信息,而 Outlook 用戶將手工從其個人文件夾的項目中獲得這些信息,因此導致時間的浪費和延誤。

這兩種方案突出說明了 .NET 平臺和框架的作用,並着重了介紹 Web 服務的價值。


展望

預計在 Web 存儲系統的下幾個發行版中,將提供其它一些對 .NET Framework 的每一組件的支持。

從 Web UI 角度而言,Web 存儲系統表單將通過與 ASP+ 的集成繼續得以發展。Forms Registry 和 Outlook Web Access for Exchange 2000 Server Web UI 組件的實現也將繼續加以改進。

從數據和 XML 傳輸角度而言,Exchange 受管提供程序將提供對 ADO+ 數據集的支持,包括支持數據向外擴展到解決方案體系結構任何層中高速緩存和永久存儲。在 ADO+ 表內的數據可以作爲關係表(類似於 ADO 數據集)、ADO+ XML 數據文檔、或作爲傳統的 XML DOM 對象訪問。

此外,預計 Web 存儲系統與 .NET 公共語言運行時的集成將更爲緊密。


結論

Microsoft .NET 平臺作爲充分利用計算和通信優勢的第一個平臺,將在 21 世紀的頭十年極大推進計算和通信技術的革命。它將爲新一代 Internet 服務的興起推波助瀾,並且使數以萬計的開發商能夠創建用於聯機服務和業務的革命性的軟件。它將使您可以重新控制或更好地控制您的隱私、數字標識和數據。

Exchange 2000 Server 產品小組十分希望瞭解您對 Exchange 2000 Server 的 Microsoft .NET 策略的反饋。請將您的意見發送到 [email protected]

有關詳細信息:

http://www.microsoft.com/china/exchange/(中文)

http://msdn.microsoft.com/exchange/(英文)

http://msdn.microsoft.com/wss/(英文)

Microsoft Outlook 和 Exchange 編程,第二版(英文)

致謝

在此向 Exchange 2000 Server 產品小組、Gordon Mangione、Alex Hopmann、Brent Ingraham、Harry Katz、Keith McCall、Chris Vandenberg、Thomas Rizzo、Lyle Curry、Jeff Wierer、Kevin Hunter、Bill Skilton 和 Microsoft EC3 Enterprise Consulting Competency Centers 小組致謝,沒有他們的大力支持、鼓勵和關愛,本文是不可能呈現在您面前的。


法律信息

本文檔只是初步闡述作者觀點,並在最終用於商業出版前可能會進行較大的修改。本文檔僅用於提供信息,Microsoft 對本文中的信息不做任何明示或暗示的保證。本文檔中的信息如有更改,恕不另行通知。使用本文檔的全部風險和後果均由用戶自行承擔。本文所引用的公司、組織、產品、人員和事件示例均屬虛構。不應有意或推測與任何真實的公司、組織、產品、人員或事件有任何關聯。用戶有責任遵守所有適用的版權法。不限於版權法所規定的權限,未經 Microsoft Corporation 明確書面許可,不得向可檢索系統複製、存儲或引入本文檔的任何部分,也不得爲任何目的、以任何形式或手段(電子、機械、影印、錄製等)進行傳播。

Microsoft 對本文檔中涉及的主題擁有專利權、專利應用權、商標權、版權或其它相關的知識產權。除非獲得明確的 Microsoft 書面許可協議,否則本文檔中提供的內容並不意味着授予您擁有這些專利、商標、版權或其它知識產權的許可。

未出版的作品。© 2000 Microsoft Corporation。保留所有權利。

Microsoft、Exchange、Outlook 和 Windows 是 Microsoft Corporation 在美國和/或其它國家(地區)的註冊商標或商標。

此處提到的真實的公司和產品名稱可能是其各自所有者的商標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章