在三层架构体系中,应用表示层(客户端)和商业逻辑层(中间层)及数据层之间可能位于不同的网络端,因此他们之间的通讯、调度就会变得很困难,而且在中间层广泛使用的组件之间的事务也会变得错综复杂,为此,微软提供了解决这些问题的系统方案,其中具体实现技术/工具主要包括: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。合理定制符合我们要求的组件将大大模块化整个系统,并使得客户端变得逻辑简单、易于移植。
       ----- 你给的点数好少啊,唉,记得给偶加分阿。我好穷啊~~~