(高分求助)Remoting三层架构和普通C/S架构区别? 最近要弄Remoting三层架构, 请熟悉这块的朋友,介绍下主要区别,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Remoting由服务器端执行(代理的组件),而普通的CS是由客户端执行(不是绝对,如存储过程).如果代理组件为数据帮助组件,则要注意事务问题,即Remoting注册方式,否则会出错或造成事务阻塞等.不建议用数据帮助组件做为代理.如果要用的话可以让事务在服务器端运行,客户只提交Sql而不执行,让服务器自动执行和提交. 在三层架构体系中,应用表示层(客户端)和商业逻辑层(中间层)及数据层之间可能位于不同的网络端,因此他们之间的通讯、调度就会变得很困难,而且在中间层广泛使用的组件之间的事务也会变得错综复杂,为此,微软提供了解决这些问题的系统方案,其中具体实现技术/工具主要包括: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。合理定制符合我们要求的组件将大大模块化整个系统,并使得客户端变得逻辑简单、易于移植。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/SW515/archive/2003/01/17/8464.aspx splitter覆盖问题 winform做数据库界面无从下手 Windows 服务监测 dataview的问题,rowfilter里有关键字,怎么搞?在线等 请问一个文本流的问题 高手进,在线等!关于如何定义数据! CoxBoBox 问题请高手近来指教 急!!! 立即结分!谢谢! 我是大菜,请问winform 怎么让他一点击最小化,窗口就自动隐藏,在输入法的位置有快捷,还能调出来 C#中怎样将读入的字符串赋给一个字符数组? 怎么让窗体里的控件跟随窗体改变大小(不是最大话,而是任意拉伸)? 在windows form中combobox怎样与datagridview连用 数据库的计数问题
如果代理组件为数据帮助组件,则要注意事务问题,即Remoting注册方式,否则会出错或造成事务阻塞等.不建议用数据帮助组件做为代理.如果要用的话可以让事务在服务器端运行,客户只提交Sql而不执行,让服务器自动执行和提交.
在客户端,通过 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。合理定制符合我们要求的组件将大大模块化整个系统,并使得客户端变得逻辑简单、易于移植。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/SW515/archive/2003/01/17/8464.aspx