天天看點

WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用

http://www.microsoft.com/china/MSDN/library/archives/technic/develop/winDNA/0314d.asp 

WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用

Stephen Rauch

微軟公司負責作業系統平台的政策和架構的程式設計師

摘要:

讨論微軟的WINDOWS DNA結構。包括:

微軟對協作元件的想法

  • 三層應用模型
  • 可伸縮性
  • 對現有系統和資料庫的相容性

 現在,對于那些功能越來越強大,并且價格還會更低的個人計算機,不論是大公司還是小公司都在為其建立更有力的應用軟體。每天這些應用軟體都被成百上千萬的使用者使用,但是在軟體開發者現在開發應用軟體和他們開發和配置應用軟體平台這方面,新的勢力已經産生了深遠的影響。

随着網際網路技術的應用日益增多,使得全球性的資訊共享成為可能(不僅僅從或大或小的公司,而是任何一個個人)。由于一天24小時一周7天的運作,網際網路已經在很多方面激活了新的創造力,結果導緻了許多新的行業一夜之間突然出現。競争和日益加快的變化正在對應用軟體平台産生進一步的需求,而為了獲得戰略上的優勢,這種平台應使應用軟體開發者能更快的建立以及更高的配置适應性強的應用軟體。

考慮這些新的網際網路應用需要處理成百上千萬的使用者——僅僅在幾年前還很難想象的,而現在這是完全有可能的。是以,應用軟體需要處理使用者的數量,這要依靠一天24小時的工作并且要靈活的滿足不斷變化的商業需求。作為這些各種各樣的應用軟體的基礎的應用軟體平台,也必須随着一套下層構造和為使這些新的應用軟體能夠開發和管理的先建服務程式而提供一緻的應用軟體模型。

WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用
1. Windows DNA

 微軟的應用軟體平台由以下兩部分構成:一個多級分布式應用軟體模型——Windows DNA(圖 1),一套全面的下層構造和應用軟體服務程式。Windows DNA (http://msdn.microsoft.com/isapi /gomscom.asp?TARGET=/dna/)統一了個人計算機上的服務程式,應用軟體伺服器,以及現在的主機這三者的優點;也統一了客戶機-伺服器計算體系的固有利益和有關公共的基礎元件的應用軟體結構的網際網路技術的優點。簡單的說,Windows DNA的指導性原則是:

面向網際網路

。開發解決方案應完全開拓應用軟體平台的靈活性、網際網路的全球性範圍和滿足需求的通信能力。

快速進入市場

。開發配置解決方案應快速且不需要開發者接受再教育或學習軟體怎樣開發的範例。通過基礎的“鉛制品”來減少開發者必須編寫的代碼的數量,這樣揭示了服務和功能性。

真正的相容性

。開發應該相容所有等級,因而功能性可以被加到現有的系統中。堅持開放協定和标準,這樣其他廠商的解決方案可以被內建進來。

減少複雜性

。把一些關鍵的服務直接內建到作業系統中,并且通過元件以一種統一的方式揭示它們。減少對資訊技術專家的需求,隻須作為系統內建商了解其功能,是以使用者可以集中精力解決商業問題。

語言,工具和硬體需求

。提供一種與語言無關的元件模型以便開發者可以使用面向任務的工具。在PC計算機模型上開發,使用者可以在更廣泛的硬體基礎上配置解決方案。

降低使用者的整體費用

。開發應用軟體應便于配置,管理且随時修改。

隻要正确的下層構造被給出,由表示、商業邏輯和資料構成的這樣一個多層模型實體上可以配置設定到多台計算機上處理。然而,過去用于一層或兩層模型的核心抽象——象進階程式設計語言,資料庫管理系統,圖形使用者接口——并不能完全滿足多級應用軟體開發的需要。開發可更新、可管理、可維護的多使用者應用軟體需要不同層的抽象,在微軟公司我們認為這種抽象就是協同元件。

協同元件

 微軟的Windows DNA 戰略取決于對其協作元件的前景的展望,這個協作元件是在被稱為元件對象模型(COM)的二進制标準的基礎上建立起來的。COM(http://msdn.microsoft.com/isapi /gomscom.asp?TARGT=/com/)是世界上使用的最廣泛的軟體元件模型,而且現在存在于150,000,000台桌面型計算機和伺服器上。它可以提供一套豐富的內建服務,可以廣泛地選擇易使用的工具,還可以提供一整套可用的應用軟體。此外,它還為可以再利用的現用客戶機-伺服器元件提供了僅在目前可行的市場。

COM可以使軟體開發者從可以在在應用軟體模型的任何層次上配置的二進制軟體元件出發編寫應用軟體。這些元件支援打包、分割和分布式應用程式功能。COM也可以通過以任何形式的代碼壓縮或應用程式功能來用元件開發應用程式,如一個使用者控制接口或線性商用對象。一個元件可能有一個或多個接口;每一個都由一套可以被其它元件和應用程式通路設定的方法和屬性描述。例如,一個使用者元件可以由各種屬性如名字、位址和電話号碼來描述。

由于微軟的Windows DNA模型,元件降低了開發多層應用軟體的複雜性。基于元件和Windows DNA模型的應用軟體依賴于一套由Windows 應用軟體平台提供的基本的下層構造和網絡服務。例如,微軟的Windows NT安全性服務提供了對網際網路資訊伺服器(IIS )的接入控制,還有事物和消息隊列服務等。其它的基本服務還包括系統管理、目錄服務、網絡和硬體支援。

使用者環境和表示層

現在,許多使用協作元件的應用軟體開發者把他們的應用軟體開發定位到Windows平台上,以便能充分利用Windows提供的豐富的使用者接口。同樣,使用者也逐漸希望從應用軟體中得到豐富的功能強大的使用者接口。而網際網路可以給使用者提供盡可能豐富的資訊和服務,這已經給應用軟體開發者帶來了新的挑戰。今天,應用軟體開發者必須開發分布式的、在Windows和non-Windows平台上通用的使用者接口,并且要支援從手持式無線裝置到高檔工作站這樣一個廣泛的使用者環境。然而,應用軟體必須要有特色,這樣才能有競争力并且不斷提供給使用者期望的功能。

WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用
圖2.Windows DNA 表示方法

如圖2所示,Windows DNA提供了範圍廣泛的表示選項,使應用軟體開發者在開發最佳解決方案時可以随意選擇。Windows DNA允許開發者選擇合适的Windows元件和網際網路技術來支援盡可能多的接口及盡可能多的使用者環境(從手持式裝置到高檔工作站)。

為了适應盡可能多的使用者環境以獲得對所有浏覽器的相容性,應用程式開發者通常使用标準HTML語言來開發他們的獨立于浏覽器的應用軟體。微軟的開發工具和應用軟體服務支援目前這一代标準的HTML語言。

使用靜态HTML語言的代價是減少應用軟體使用者接口的功能和豐富的内容,而這一點正是使用者希望的。這對于某些應用軟體來說可能會正合适,因為它們要求範圍廣闊并且獨立于浏覽器。

但是有一類應用軟體并不需要獨立于浏覽器。事實上許多公司都有自己的單獨的浏覽器标準。此外,那些想要在他們的應用軟體中提供比用标準的HTML語言更多的功能的應用軟體開發者,編寫代碼主要取決于其所使用的浏覽器。這些增強的浏覽器應用軟體可以充分利用浏覽器固有的技術來獲得最大限度的功能和好處。随着象動态HTML語言和腳本這樣的技術的應用,應用軟體開發者可以為資料接入和報告建立基于網頁接口的動作而不使用傳統的applet控制。

DHTML是基于W3C标準文檔對象模型的,這使所有的Web頁元素都成為可程式設計的對象。把DHTML考慮成“可程式設計的”HTML。HTML文檔的内容——包括樣式和位置資訊——可以被嵌入在網頁的腳本源代碼動态地修改。是以,腳本可以不必從網頁伺服器上重新整理網頁而随意地修改網頁的樣式、内容和結構。這樣做,客戶不必因為日益強大的網絡性能而不停的重複通路Web伺服器以便不斷地改變網頁。DHTML不象Java applets或者Microsoft ActiveX控件,它并不依賴于下層地虛拟主機或者作業系統。對于使用者來說,如果沒有DHTML的支援,其内容似乎級别很低。

有時DHTML和腳本結合的并不充分。應用軟體的某些部分需要利用作業系統和下層主控端,為了資料或附加服務還要保持動态連接配接網際網路。在這些方面,應用軟體開發者可以利用Windows提供的強大的元件和網際網路服務來建立依賴于網際網路的應用軟體。一個基于網際網路的應用軟體不象基于網頁的應用軟體那樣在浏覽器裡運作,它是一個完備的Windows可執行檔案,可以完全使用Windows使用者提供的任何服務。這些應用軟體通常把HTML、DHTML、scripting和Active控件結合在一起使用,來向客戶機系統提供綜合服務以及連通網際網路遠端服務。

在那些支援Win32 應用程式接口(API)的應用軟體平台上,用Microsoft Win32 API編寫的應用軟體提供了強大的功能。通過使用協作元件,今天的開發者在Windows應用軟體平台上的基于Win32的應用軟體中使用網際網路技術。這些被寫成Win32 API的應用程式利用了作業系統的優點和網際網路的連通性,被稱為增強型網際網路應用程式。象Microsoft Office 97和Microsoft Visual Studio 98開發系統就是這樣的例子。這些應用軟體通過嵌套在應用軟體中的超級連結支援統一的浏覽,還可以為顯示用DHTML編寫的檔案而登入到浏覽器上,并且還能下載下傳網際網路上的應用軟體的最新版本。

應用軟體服務
WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用
圖3.應用軟體服務

商業邏輯層是應用軟體的核心,專用軟體處理和商業規則都在其中。元件中的商業邏輯層把使用者環境和資料層聯系在一起。經過多年的改進,Windows DNA 應用軟體平台已經可以支援大容量、大規模、事務處理的應用軟體配置,并且還為通路商業邏輯元件提供了一個強大的運作環境。如圖3所示,開發Windows應用軟體的平台包括網頁服務,消息服務群組件服務。

網頁服務

微軟的內建應用軟體平台是一個高性能的表示層通路。微軟的網際網路資訊伺服器(網址為http”//msdn.microsoft.com/isapi/gomscom.asp?TARGET=/ntserver/nts/,再單擊“Web Services”)使得開發基于網頁的商用軟體很容易,這些軟體可以被擴充到整個網際網路上或是在intranet上配置。通過使用IIS,微軟在網際網路中引入了一個新的範例——事務處理應用程式。事務處理應用程式使得運作真正的配置快速的易伸縮的可靠性高的商用軟體成為可能。

動态伺服器網頁技術(ASP),IIS的一種元件,是獨立于語言的可以自由彙編的伺服器腳本環境,可以用它來建立運作動态的互動網頁伺服器應用軟體。通過DHTML,scripting群組件的結合,ASP使應用軟體開發者能夠建立動态的互動網頁内容和強大的基于網頁的應用軟體。

随着在企業環境下分布式計算的日益應用,在應用軟體之間有靈活并且可靠性高的通信是很重要的。即使應用軟體并沒有同時運作,商業應用也要求運作在不同系統中的應用軟體應能夠獨立地互相通信或交換資訊。而用協作元件互相聯系的ASP腳本建立的應用軟體可以在現有的系統、應用軟體和資料之間互操作。

元件服務

在九十年代早期,便于互操作性的基本概念是元件化;實作互操作性的基本技術是COM。結果,元件化不僅成為一種實作互操作性的重要方法,而且還成為設計和開發通用軟體的一種重要方法。因而,在九十年代中期微軟拓寬了COM的适用範圍,通過引入微軟事物處理伺服器(MTS)将其從桌面應用擴充到分布式應用中。COM規劃模型為開發、配置和管理基于元件的分布式應用軟體提供服務,而MTS是其的一個擴充。應用軟體平台可以友善Windows平台下的分布式應用軟體的開發,作為它的基礎,MTS比其它方法更簡單花費更小。

COM+是COM和MTS的下一代改進産品。在COM和MTS服務中固有規劃模型的統一使得開發分布式應用軟體更容易,并且對于使用了COM(用于某種特定服務)和MTS(用于其他服務)的應用軟體來說,還可以消除開發、調試、配置和維護過程中的單調的細微差别。而這對應用軟體開發者的好處在于通過減少用于底層系統服務的代碼的數量使得開發分布式應用軟體更快更容易更廉價。

  通過擴充MTS 2.0中的COM和其他服務,COM+就由應用軟體平台的現有服務的改進和新服務組成。包括:

  • 産生你自己的事物處理。 COM元件能夠加入到由支援網際網路事物處理協定(TIP)的COM+事物處理(TP)環境管理的事物進行中。
  • 保密擴充。 對于基于任務保密和過程接入許可保密均支援。在基于任務保密模型中,根據調用者被配置設定的邏輯組或任務(例如管理者,全職雇員或兼職雇員),對應用軟體的不同部分的接入被同意或拒絕。COM+通過用于對傳統和基于IDispatch(Ex)接口使方法級保密,擴充了目前基于任務保密的應用。
  • 集中管理。 元件服務Explorer,一個現在正在使用的MTS Explorer 和DCOMCNFG的代替品,提供了一個統一的管理模型,這使得通過消除大量正在使用的個人管理工具的一般費用來配置、管理、監控n層應用軟體更容易。
  • 内建資料庫。 内建資料庫      以一種相容的方式保持着穩态和瞬态資訊。内建的事物處理型資料庫系統可以在機器上以極快的速度查詢資料。
  • 隊列元件。 當協作元件分離時,它可以用來異步延期執行,但基于會話的同步的客戶機/伺服器規劃模型除外,在這裡客戶機可以和伺服器保持邏輯上的連接配接,
  • 事件通知。 有時一種寬松的連接配接事件通知機制是有必要的,COM+事件是一種一點/多點,出版/訂閱機制,它允許多個客戶機“訂閱”由不同的伺服器“出版”的事件。這有别于現有的由連接配接點傳遞的事件通知架構。
  • 平衡裝載。 平衡裝載允許基于元件的應用軟體通過一個應用軟體串以一種對客戶機透明的方式配置設定它們的工作量。
對現有系統 、應用軟體和資料的互操作

由于許多公司正逐漸向網際網路發展,提供新的服務,為其使用者、合作者和雇員提供更易得到的資訊,是以重要的一點是應用軟體結構能夠為公司内部擴充現有的應用軟體和資料提供必要的方法。某些軟體商提倡以一門能在任何平台上運作的語言依靠一種公用的元件模型來包裝你現有的應用軟體,這樣你可以實作應用軟體和資料之間的互操作性。這是很高的目标,在三十年前就已經許諾了,但直到現在仍然沒有結果。微軟的方法已經在其他的平台上對現有的應用軟體和資料進行了實驗,結果并沒有損壞這些平台。是以,微軟的應用軟體平台使得應用軟體開發者能夠通過使用消息服務、COM事物處理內建環境和一種被叫做通用資料接入的架構來對應用軟體和資料進行互操作。

消息服務

微軟消息隊列伺服器

(http://msdn.microsoft.com/isapi.gomscom.asp?TARGET=/ntserver/appservice/exec/overview/MSMQ Overview.asp)在一個消息隊列模型的基礎上提供了寬松連接配接的可靠的網絡通信服務。MSMQ通過在應用軟體之間執行推進式的商業事件傳遞環境使得內建應用軟體變得容易,也使得開發在不可靠但代價小的網絡上運作的可靠的應用軟體變得容易。在COM基礎之上的簡單的應用軟體使開發者可以集中商業邏輯上而不是成熟的通信程式上。MSMQ也提供對其他消息隊列産品的完備的互用性,例如IBM的MQ系列,以及可以從微軟的獨立軟體銷售商(ISV)合作者出得到的産品。

主機事物處理世界的延伸

使用微軟的COM事物處理內建環境(TI)以及COM元件,應用軟體開發者可以延伸并揭示複雜指令處理計算機(CISC)和資訊管理系統(IMS)事物處理程式。COM TI由一套開發工具和運作時的服務組成,可以自動把IBM主機事物處理和商業邏輯成為“包裝”在Windows DNA環境下運作的COM元件。所有的COM TI處理都在Windows NT伺服器上進行,通過SNA伺服器(http://msdn.microsoft.com/isapi/gomscom.asp?TARGET=/sna/)就可以完成登入通信。COM TI并不需要主機運作任何可執行代碼或者以任何專用方式程式設計。

通用資料接入

通用資料接入是微軟為企業提供資訊接入的一種政策(http://msdn.icrosoft.com/isapi/ gomscom.asp?TARGET=/data/)。今天,由于各個公司都想從分布在公司中的大量的資料和資訊中獲得最大的商業利益,因而他們研究資料庫解決方案時面臨着許多挑戰。通用資料接入對各種資訊源都提供了高性能的接入,這其中包括關系型及非關系型資料,還有易使用的獨立于工具和語言的程式設計接口。

通用資料接入并不需要把那些資料昂貴費時地搬移到單一的資料存儲器中,也不需要對某一個開發商的産品負責。通用資料接入是建立在有廣泛工業支援的開放式工業規範的基礎上的,可以在所有現有的主要資料庫平台上工作。

WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用WINDOWS DNA: 為網際網路時代建立 WINDOWS 應用
4.資料接入

如圖4所示,基于通用資料接入的架構在兩個層次上起作用。在系統層上,OLE DB把基于元件的确定的體系結構定義為一套壓縮了各種資料庫管理系統服務的基于COM的接口。OLE DB結構并不限制資料源的種類;結果,微軟和ISV已經提供給使用者各種索引的連續檔案、群件産品和桌上型電腦産品(http://msdn.microsoft.com/isapi/gomscom.asp? TARGET=/data/ oledb/products/products.htm)。在應用層上,ActiveX資料對象(ADO)提供一種進階接口可以使開發者能夠從任何程式設計語言中接入資料。

結論

  Windows DNA結構和Windows NT平台可以向使用者和他們的ISV合作者提供很多明顯的優點。其主要優點在于:

  • 為分布式應用提供全面完整的平台,使得開發者可以完全擺脫建立需要的下層構造及用逐段确定法對其進行裝配的阻礙。
  • 對現有的企業級應用軟體和傳統系統的易互用性可以友善地擴充現有系統。
  • 通過提供一種深入的元件模型、擴充的前建應用服務和對程式設計語言及支援工具的廣泛選擇,使得開發分布式應用軟體更快更容易。

繼續閱讀