分享
 
 
 

关于三层架构中各层次的关系与实现模型

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在三层架构体系中,应用表示层(客户端)和商业逻辑层(中间层)及数据层之间可能位于不同的网络端,因此他们之间的通讯、调度就会变得很困难,而且在中间层广泛使用的组件之间的事务也会变得错综复杂,为此,微软提供了解决这些问题的系统方案,其中具体实现技术/工具主要包括:MS Remote Data Services、MS Transaction Server、COM/DCOM/COM+等。

在客户端,通过 RDS 来远程创建中间层的数据服务组件。

在中间层的 Transaction Server 运行时环境中运行 RDSServer.DataFactory 或自定义业务对象时,共享机制产生作用。只使用数百个而不是上千个数据库连接仍然可以支持上千个客户端。这是 Microsoft Transaction Server 中 ODBC 资源分配器的功能。

在中间层和数据层之间可通过ADO来连接,实现数据读写操作。

使用 RDS 可以有三种方式将 Recordset 从服务器返回给客户端。这三种方式分别为:

(一)、使用自动调用 RDSServer.DataFactory 对象的 RDS.DataControl 方法和属性。

(二)、手工调用 RDSServer.DataFactory 对象。

(三)、创建执行数据访问功能的自定义 ActiveX DLL。

在此,我们的客户端使用自行定义的中间层对象(DCOM/COM+),来处理商业逻辑并访问数据。

首先,让我们来看看基本的 RDS 编程模型:

RDS 为在如下环境中存在的应用程序确定地址:客户应用程序指定将在服务器上执行的程序,并指定用来返回相应信息的参数。服务器上被调用的程序访问指定的数据源,检索信息,对数据进行相应处理,然后将结果信息按易于使用的格式返回给客户应用程序。

具体的实现模型如下列表。

(1)、指定在服务器上被调用的程序,并得到从客户端引用该程序的途径。(该引用有时称为“代理”,它代表远程服务器程序。客户应用程序象调用本地程序一样“调用”代理,但实际上调用的是远程服务器程序。)

(2)、调用服务器程序。将参数传送到标识数据源及所要发布命令的服务器程序。(服务器程序实际上使用 ADO 访问数据源。ADO 与所给参数中的一个建立连接,然后发布在其他参数中指定的命令)。

(3)、服务器程序从数据源获得了 Recordset 对象。可以选择在服务器上处理 Recordset 对象。

(4)、服务器程序将最终的 Recordset 对象返回客户应用程序。

(5)、在客户端,Recordset 对象被转换成为便于可视化控件使用的格式。

(6)、任何对 Recordset 对象所作的修改都将返回给服务器程序,服务器程序用这些修改来更新数据源。

对应其上的编程模型如下(RDS 提供执行以下动作序列的途径),编程模型是指为完成这个目的所必需的活动序列:

(1)、指定在服务器上被调用的程序,并获得通过客户端调用该程序的方式(代理)。(RDS.DataSpace)

(2)、调用服务器程序。将参数传递给标识数据源及所要发布的命令的服务器程序。(代理或 RDS.DataControl)

(3)、服务器程序从数据源获得 Recordset 对象(一般通过使用 ADO)。可选择在服务器上处理 Recordset 对象。(RDSServer.DataFactory)

(4)、服务器程序将最终的 Recordset 对象返回客户端应用程序。(代理)

(5)、在客户端,Recordset 对象被转换成可视控件能方便使用的格式。(可视控件和 RDS.DataControl)

(6)、对 Recordset 对象所作的更改被返回服务器并用于更新数据源。(RDS.DataControl 或 RDSServer.DataFactory)

以上是微软提供的标准三层架构编程解决方案,事实上我们可利用自行实现的中间层来替代RDSServer.DataFactory,而自行定制的各种Active Control/DLL则完全可替用RDS.DataControl。合理定制符合我们要求的组件将大大模块化整个系统,并使得客户端变得逻辑简单、易于移植。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有