Duwamish部署方案篇

Duwamish部署方案篇

 

Duwamish 7.0 支持兩種多計算機部署方案。非分佈式部署方案在一臺 Web 主機上部署 Web 層、業務外觀、業務規則和數據訪問層,但可以在羣集間複製該 Web 主機以達到負載平衡。分佈式方案在單獨的服務器上部署特定的組件。例如,業務外觀、業務規則和數據訪問層可能位於獨立於 Web 主機的服務器上。在實際部署中數據庫服務器通常位於單獨的計算機上。

 

1, 非分佈式部署方案

在一臺 Web 主機上部署 Web 層、業務外觀、業務規則和數據訪問層,然後通過軟件(如Application Center 2000)或硬件來實現網絡場(Web Farm)內各個Web Server的負載平衡。

 

在本機默認安裝Duwamish 7.0時,是採用非分佈式部署方案。

  

2, 分佈式部署方案

使用 .NET Framework 遠程處理技術將應用程序分佈到多臺計算機中。簡單而言,就是IIS Web ServerApplication Server分離,其中Web層(包括SystemFrameworkCommon項目)部署在IIS Web上,BusinessFacde/BusinessRules/DataAccess層(包括SystemFrameworkCommon項目)一起部署在Application Server上。

 

 

Duwamish 7.0 使用 HTTP/二進制而不是 HTTP/SOAP。使用 HTTP 的決定基於要通過端口 80 上的防火牆的要求。使用二進制而不是 SOAP 的決定基於性能上的考慮。對於大的數據塊,二進制的性能優於 SOAP。因此,如果要傳遞大的數據塊(例如,數組、數據集或數據表),則使用二進制格式化程序。如果要傳遞小的數據塊,則選擇使用 SOAP 還是二進制格式化程序是無關緊要的。傳遞整數時兩者的性能都很好。

 

3, 如何將Duwamish 7.0部署爲基於.Net Remoting的分佈式系統

下面採用Microsoft提供的Deploytool工具自動進行(其實手工也很方便):

C:/Program Files/Microsoft Visual Studio .NET 2003/Enterprise Samples/Duwamish 7.0 CS>deploytool deploy RemoteMachine=localhost path="C:/Program Files/Microsoft Visual Studio .NET 2003/Enterprise Samples/Duwamish 7.0 CS/Duwamish7_Remote" 

command line窗口輸入上述命令行代碼。

 

[10/29/2004 6:43:43 AM] Creating directory C:/Program Files/Microsoft Visual Studio .NET 2003/Enterprise Samples/Duwamish 7.0 CS/Duwamish7_Remote on W1MIS38

[10/29/2004 6:43:43 AM] Stopping all internet services on W1MIS38

[10/29/2004 6:43:59 AM] Deploying Duwamish7 Business Facade on W1MIS38

[10/29/2004 6:43:59 AM] Creating web site on W1MIS38

[10/29/2004 6:44:00 AM] Generating remoting configuration files

[10/29/2004 6:44:00 AM] Starting all internet services on W1MIS38

[10/29/2004 6:44:02 AM] Starting Default Web Site on W1MIS38

[10/29/2004 6:44:02 AM] Deployment successful

 

運行結果:

1)在IIS創建中創建Web ApplicationDuwamish7_Facade),本地路徑爲:C:/Program Files/Microsoft Visual Studio .NET 2003/Enterprise Samples/Duwamish 7.0 CS/Duwamish7_Remote/web 作爲Remote Server端,Bin目錄下是BusinessFacde/BusinessRules/DataAccess層(包括SystemFrameworkCommon項目)DLL文件。

其中web.config文件中包含所有Remote Objects的配置,如

<wellknown mode="Singleton" type="Duwamish7.BusinessFacade.ProductSystem, Duwamish7.BusinessFacade" objectUri="ProductSystem.rem" />

 

2Web層創建remotingclient.cfg配置文件,對Application Server而言,Web層相當與Client端。

remotingclient.cfg配置文件中包含formatter的設置(binary ),選擇二進制格式化程序來序列化消息,注意是出於性能的考慮。

 

3Web application加載remotingclient.cfg配置文件

Web applicationglobal.asax文件包括如下代碼,在Application_OnStart事件中加載Retmoting配置文件。

void Application_OnStart()

{

ApplicationConfiguration.OnApplicationStart(Context.Server.MapPath( Context.Request.ApplicationPath ));

string configPath = Path.Combine(Context.Server.MapPath( Context.Request.ApplicationPath ),"remotingclient.cfg");

if(File.Exists(configPath))

    RemotingConfiguration.Configure(configPath);

}

 

其中前面代碼ApplicationConfiguration.OnApplicationStart()是調用Duwamish7.SystemFramework.ApplicaitonConfigurationOnApplicationStart()方法,用來初始化application root和讀取web.config中的配置信息(將在Duwamish代碼分析篇》中進行具體分析)。  

發佈了17 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章