技术开发 频道

Duwamish部署方案篇

【IT168技术文档】

  Duwamish 7.0 支持两种多计算机部署方案。非分布式部署方案在一台 Web 主机上部署 Web 层、业务外观、业务规则和数据访问层,但可以在群集间复制该 Web 主机以达到负载平衡。分布式方案在单独的服务器上部署特定的组件。例如,业务外观、业务规则和数据访问层可能位于独立于 Web 主机的服务器上。在实际部署中数据库服务器通常位于单独的计算机上。
 
  非分布式部署方案
 
  在一台 Web 主机上部署 Web 层、业务外观、业务规则和数据访问层,然后通过软件(如Application Center 2000)或硬件来实现网络场(Web Farm)内各个Web Server的负载平衡。
 
  在本机默认安装Duwamish 7.0时,是采用非分布式部署方案。
 
  分布式部署方案
 
  使用 .NET Framework 远程处理技术将应用程序分布到多台计算机中。简单而言,就是IIS Web Server和Application Server分离,其中Web层(包括SystemFramework和Common项目)部署在IIS Web上,BusinessFacde/BusinessRules/DataAccess层(包括SystemFramework和Common项目)一起部署在Application Server上。
 
  Duwamish 7.0 使用 HTTP/二进制而不是 HTTP/SOAP。使用 HTTP 的决定基于要通过端口 80 上的防火墙的要求。使用二进制而不是 SOAP 的决定基于性能上的考虑。对于大的数据块,二进制的性能优于 SOAP。因此,如果要传递大的数据块(例如,数组、数据集或数据表),则使用二进制格式化程序。如果要传递小的数据块,则选择使用 SOAP 还是二进制格式化程序是无关紧要的。传递整数时两者的性能都很好。
 
  如何将Duwamish 7.0部署为基于.Net Remoting的分布式系统

  下面采用Microsoft提供的Deploytool工具自动进行(其实手工也很方便):

C:\Program Files\Microsoft Visual Studio .NET\ Enterprise Samples\Duwamish 7.0 CS> deploytool deploy RemoteMachine=localhost path= "C:\Program Files\Microsoft Visual Studio .NET\ Enterprise Samples\Duwamish 7.0 CS\Duwamish7_Remote"
  在command line窗口输入上述命令行。
Creating directory C:\Program Files\Microsoft Visual Studio .NET\ Enterprise Samples\Duwamish 7.0 CS\Duwamish7_Remote on W1MIS38 Stopping all internet services on W1MIS38 Deploying Duwamish7 Business Facade on W1MIS38 Creating web site on W1MIS38 Generating remoting configuration files Starting all internet services on W1MIS38 Starting Default Web Site on W1MIS38 Deployment successful
  运行结果:
 
  (1)在IIS创建中创建Web Application(Duwamish7_Facade),本地路径为:C:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 CS\Duwamish7_Remote\web 作为Remote Server端,Bin目录下是BusinessFacde/BusinessRules/DataAccess层(包括SystemFramework和Common项目)DLL文件。
 
  其中web.config文件中包含所有Remote Objects的配置,如:
<wellknown mode="Singleton" type= "Duwamish7.BusinessFacade.ProductSystem, Duwamish7.BusinessFacade" objectUri="ProductSystem.rem" />
  (2)Web层创建remotingclient.cfg配置文件,对Application Server而言,Web层相当与Client端。remotingclient.cfg配置文件中包含formatter的设置(binary ),选择二进制格式化程序来序列化消息,注意是出于性能的考虑。
 
  (3)Web application加载remotingclient.cfg配置文件,Web application在global.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.ApplicaitonConfiguration的OnApplicationStart()方法,用来初始化application root和读取web.config中的配置信息(将在《Duwamish代码分析篇》中进行具体分析)。

0
相关文章