Windows Server AppFabric:更好,更快,更便宜

來源:互聯網
上載者:User

微軟全球副總裁Soma,負責微軟公司Developer Division的工作,在部落格上發布了文章Windows Server AppFabric:更好,更快,更便宜。微軟伺服器和Internet資訊服務(IIS)沒有提供用於部署、管理和監控特定類別Web應用程式的全方位的服務,Windows伺服器AppFabric的推出是為了響應大量組織和開發商的要求,多年來他們一直希望微軟提供“應用程式伺服器”。微軟伺服器AppFabirc基本填補了這個空白,它作為微軟伺服器自由擴充以及預計Windows伺服器將發行的本機群組件的可用性。

Windows Server AppFabric作為Windows Server的擴充,應用程式可以部分或全部的免費應用。它提供了一系列功能來提高效能,並加強Web和混合應用的管理。Windows Server AppFabric使用我們所熟悉的.NET技術,提供了分布式緩衝技術,以及分布式管理和監控的基礎結構。

改進使用者操作體驗以及系統可擴充性的一種方法是加速他們對資訊的訪問。如果多個伺服器上多個應用程式訪問同一個資料庫時,對資料的訪問則成為瓶頸。如果asp.net頁面等待訪問資料庫,增加更多的前端伺服器是於事無補的。現在需要一種擴充的辦法:如何將頻繁訪問的資料分布到多台伺服器上直接讓其訪問,從而解決訪問一台資料庫伺服器的瓶頸。一個行之有效方法就是建立一個發布快取服務(distributed cache),這個服務向多台用戶端機器分發。相對於從一個單獨的資料庫擷取資料,現在asp.net頁面可以從多個不同的機器上擷取資料了,負載平衡,應用程式會有更好的表現。這就是AppFabric Caching Services要做的。

AppFabric Caching Services的一個主要組件是快取用戶端(cache client),如asp.net頁面,它訪問快取叢集,快取叢集由多台運行快取服務的伺服器組成,每台伺服器都運行一個AppFabric Caching Services的執行個體,且每個快取服務都包含一些資料緩衝。快取用戶端可以包含自己的本機快取,通過軟體方式作為AppFabric Caching Services的一部分對外提供服務。

當快取用戶端第一次使用資料,這些資料可以是asp.net應用程式的使用者提供的資訊,也可以是資料庫讀取的值,可以通過AppFabric Caching Services用戶端庫明確的向快取叢集使用唯一的名字來儲存這些資料。(後面也會說明,asp.net應用程式也可以同session對象透明的來做這一切,因此使用快取服務並不需要對代碼做任何改動)對於用戶端來說,快取叢集中的所有快取服務器顯示為一個邏輯的快取服務,用戶端無需知道也不需要關心具體是哪一個伺服器為其提供資料,如果選擇了本機快取,用戶端也可以在其本機快取中儲存資料項目。

當用戶端需要再次訪問相同的資料項目時,需要使用資料項目的名字。查詢首先從本機快取中尋找(如果設定了本機快取)。如果資料項目能夠找到,則直接返回快取資料,如果資料沒有在本機快取,查詢將被送到快取叢集,如果資料能夠在快取叢集中找到,則從快取叢集返回資料。資料向用戶端傳送的過程,就是用戶端提出資料請求,AppFabric Caching Services為其準備並返回結果。如果資料沒有在本地和快取叢集找到,用戶端需要從其他地方查詢資訊,如資料庫。

AppFabric Caching Services被設計由.net應用程式使用,因此,快取資料項可以是任何可以序列化的.net對象。一旦對象進入緩衝,應用程式可以更新緩衝的版本或者顯示的刪除它;快取資料也可以被快取服務自行刪除,刪除條件可以是設定的到期時間或者被更頻繁訪問的資料替代,緩衝到本地的資料項目同樣如此,同時,本機快取可以設定為與快取叢集的改變自動同步。

多個快取用戶端可以共用相同的快取叢集,這是有意義的,因為一個可伸縮擴充的應用程式可以橫跨多個伺服器複製它的商務邏輯(如asp.net頁面),並訪問緩衝。同時,安全也是一個需要提出的問題,為了使共用的風險降到較低,快取用戶端或快取服務器之間傳遞的資料需要數位簽章和加密,管理員能夠限制賬戶對每個緩衝的存取權限。儘管如此,組織還需要保證使用同一個緩衝的多個用戶端是可信任的,因為他們預設可以相互訪問相互之間的資料。

緩衝是對各種各樣的資料時非常有用的。例如,對於類似於線上銷售的產品目錄資訊等變化較慢或基本沒有變化的資料,緩衝有很好的體驗,它可以在同時滿足多個用戶端的請求;緩衝的另一個應用是儲存變化的資料,但同時只能有一個用戶端訪問,如asp.net的session對象。再次強調一下,不要發生對緩衝的並發存取控制問題。

但是,對於需要變化又需要同時被多個用戶端訪問的資料應該怎麼辦呢?快取服務仍然可以使用,但情形會複雜一下,並發控制是必須的。為瞭解決這個問題,AppFabric Caching Services提供了兩種並發控制方式:一種是樂觀的並發控制方式,即為每個緩衝對象提供版本號碼;另一種是悲觀的並發控制方式,即使用顯式鎖。

應用程式一般是通過服務的方式暴露功能,對於Windows應用程式來說,這些服務很多情況下是通過WCF實現的,同時,一些服務的邏輯通過工作流程來實現會更好,因此,在工作流程基礎上建立WCF服務也會有很大的可能。我們怎麼樣讓這些服務運行起來呢?windows提供了很多通用的host宿主方式,開發人員可以按其所需建立host程式。但建立一個高效的、可管理的host宿主卻不是容易的事情了。使用wcf與wf,通過Windows server自身提供的功能方便的實現對host的支援及管理,這就是AppFabric Hosting Services所要做的工作。

WCF提供常用暴露及使用服務的途徑,WF提供建立工作流程邏輯的支援。AppFabric既管理WCF服務,也管理工作流程服務(工作流程服務也是一種WCF服務)。其區別在於服務中包含的內容。WCF服務的內容就是你的代碼。而對於工作流程服務,你通常需要使用Visual Studio工作流程設計工具繪製你的工作流程以及一組可重用的工作流程活動。工作流程活動中需包含一些活動,使你的工作流程成為一個服務,並能調用其它的服務。

我們也可以將工作流程活動理解為一個組件。你可以從已有的組件中建立新的活動,即整合活動。用不同的組件合成應用程式,這是一個非常強大的模型,不論對雲端應用還是當今的普通應用程式都也非常有用。

Visual Studio WCF工作流程服務應用模板協助你在短時間內啟動運行你的工作流程服務,並能在AppFabric中查看結果。欲啟動服務,你可以使用模板建立一個新的項目,並設定項目中的Web屬性,使其使用本地的IIS伺服器。構建你的項目並運行,內建的WCF測試用戶端就會運行。你可以通過該測試用戶端向你的工作流程發送資料並查看結果。以代碼為基礎的WCF服務也有類似的模板,因此你可以立即將你的關注點放在用代碼編寫的商務邏輯上,而不用編寫WCF基礎結構或任何相關的宿主邏輯和管理功能——AppFabric替您完成了這些工作。

AppFabric操作板可以讓你在IIS管理器中查看所有和你的代碼及工作流程服務相關的統計資料。工作流程執行個體曆史資料部分展現了已經啟用和完成的工作流程。操作板還可以協助你監視和控制工作流程的持久性。所有的服務調用都會被跟蹤。建立你自己的監控事件並將其顯示在操作板中也非常簡單。

AppFabric從一個接一個的活動中跟蹤工作流程的執行,並將資訊在操作板中表現出來。這對於故障分析以及理解某個工作流程執行個體的流程執行情況來說很有用。你甚至可以從你的工作流程中向AppFabric暴露你的資料,並通過查詢其資料找到它所包含的工作流程執行個體。

更詳細資料參見 http://www.microsoft.com/windowsserver2008/en/us/default.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.