Rickie is back .... 人生·工作的结果=思维方式×热情×能力

今天比昨天更好,明天比今天更好,为此,不屈不挠地工作、勤勤恳恳地经营、孜孜不倦地修炼,我们人生的目的和价值就是这样确确实实地存在着。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  397 随笔 :: 3 文章 :: 1310 评论 :: 129 引用

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代码分析篇》中进行具体分析)。

 

Reference:

1, MSDN, Duwamish 7.0

posted on 2004-10-31 14:48 Rickie 阅读(8633) 评论(15) 编辑 收藏

评论

#1楼 2004-10-31 14:57 dudu      
请问你是使用的哪个编辑器发表的?
FreeTextBox还是Cute Editor?
 回复 引用 查看   

#2楼[楼主] 2004-10-31 15:07 Rickie      
Thank you, dudu.
*
1,先使用Cute Editor,传图片。
2,然后使用New Post From FreeTextBox 传文字。
 回复 引用 查看   

#3楼 2004-10-31 15:33 dudu      
已经看到你在“[公告]博客园编辑器改进”的回复了。
 回复 引用 查看   

#4楼 2004-11-01 16:13 kwklover
写的很好,期待你的下一篇 :Duwamish代码分析篇

 回复 引用   

#5楼 2004-11-02 00:14 baodongxu      
关于Duwamish的部署能不能实现内网和外网的同步访问?
应该如何部署?
 回复 引用 查看   

#6楼[楼主] 2004-11-02 08:23 Rickie      
baodongxu, 内网和外网同步访问Web Server吗?
*
一般而言,Web Server和Application Server都放在内网,这样比较安全(如上图所示)。

外网通过web switch (L7 switch)等硬件设备进行配置就可以访问内部Web Server了,一般的eCommerce网站应该都是这样配置的(小型的除外)-搞网络硬件的应该对此比较清楚。
 回复 引用 查看   

#7楼[楼主] 2004-11-02 08:26 Rickie      
kwklover, thanks.
 回复 引用 查看   

#8楼 2004-11-02 09:16 baodongxu
能解释一下web switch 是什么么?
我以前没有部署过.net,只是开发过,但是这次有内网外网同时访问的需求,不知道应该如何配置!忘赐教!
 回复 引用   

#9楼[楼主] 2004-11-02 09:37 Rickie      
web switch - 是一个网络交互机的硬件设备,用来将外部的请求转发到内部web server集群,同时应该也管理负载平衡等等。

呵呵,我是软件开发的,硬件也了解不多。
 回复 引用 查看   

#10楼 2004-11-23 11:45 frank
我按照文中的方法作了, 当我删除web 层bin目录下dataacess, businness facade, businessRules组件, 显示"File or assembly name Duwamish7.BusinessFacade, or one of its dependencies, was not found" 的错误, 我对分布式部署asp.net 程序不了解, 请楼主指教.
 回复 引用   

#11楼[楼主] 2004-11-23 12:59 Rickie      
To frank,

直接删除\BIN目录下面的assembly files是不行的,web tier需要调用这些assembly,然后转发请求到Remote Objects。
或者使用SOAPSUDS.EXE生成对应assembly files的proxy class。
.....
建议你先学习.Net Remoting的一些基本知识,不是简单几句话就可以讲明白的,学习是没有捷径的。

Thanks.
 回复 引用 查看   

#12楼 2005-05-13 18:21 Fang
To Rickie:
我还有些问题想请教你,可以留qq或者msn请教吗?
谢谢!
 回复 引用   

我的Duwamish 7。0怎么也安装不上,SQL Server,IIS,vs2003都装了啊,请问版主这是怎么回事啊?
 回复 引用   

Duwamish7 的企业级框架开发,是一种很好的分层开发的方法论,尽管微软在编写Duwamish7时,使

用的是 VS 2003,但是这种分层思想在 VS 2005 中依然适用,只不过是代码的升级替换而已。本人通过近

半年的时间深入研究 Duwamish7,通过学习,自己的水平提高很快,同时,感到现在对于Duwamish7的学

习资料虽然很多,但是有提壶灌顶、从始至终,由浅入深的讲解课程不多,基于现状,我采用重现的方式

对Duwamish7 进行了一系列的讲解,重现该示例的设计分析过程,编写代码过程,在重现的过程中讲解示

例中的难点和设计思路。视频讲解是指采用屏幕录象技术,记录下我在计算机上的操作画面并配以同步的

语音讲解,从Duwamish7所具备的最初功能,到最后完全实现其所具备的所有功能。
在 www.leoon.com/asp.id=15 下,有一个本套讲解课程中的视频文件,该视频文件讲述的是

Duwamish7的框架搭建,因为Duwamish7是分层设计的,每一层其实就是一个程序集,这是理解Duwamish7

的最关键一个概念,同时那里还有整套视频讲解的目录。整套视频文件的播放时间有40多个小时,这里面

融会了我将近半年的心血。本视频出售的思路是如果您感兴趣,可以从www.leoon.com/asp.id=15中下载

免费视听的视频文件,如果这种讲解方式符合您的胃口,可以给我汇款,我收到后把视频文件刻盘后给您

邮寄过去。联系方式:Email:zxwyyz@yahoo.com.cn MSN:zxwyyz@yahoo.com.cn 每晚8:00-11:00

汇款地址:天津市河西区郁江道景观花园26-4-302 张晓伟收
注明:购买Duwamish7 视频
 回复 引用