第11章使用DataSnap开发多层数据库.ppt
第11章 使用DataSnap开发多层数据库系统,本章要点: 三层客户服务器系统的概念 Delphi中实现三层数据库应用程序的方法 DataSnap组件的使用方法 基于DCOM、TCP/IP、HTTP等协议的三层分布式数据库系统开发,11.1 数据库系统的演变,11.1.1 “主机终端”数据库应用系统,11.1.2 两层客户服务器(C/S)数据库应用系统,11.1.3 三层客户服务器(C/S)数据库应用系统,三层结构的功能层次划分如下。 (1)第1层(表示层):负责显示和与用户交互(这一层由客户机实现)。 (2)第2层(功能层):实现应用逻辑(这一层由应用服务器实现)。 (3)第3层(数据层):负责数据管理(这一层由DB服务器实现)。,11.2 Delphi实现多层数据库应用程序的方法,11.2.1 实现方法概述 开发多层数据库应用系统,需要一些专门的组件,这些组件可以分成如下4类。 (1)远程数据模块(Remote DatModule) (2)TDateSetProvider组件 (3)TClientDataSet组件 (4)DataSnap组件,11.2.2 相关组件说明,1. 远程数据模块(Remote Data Module) 2. TDataSetProvider组件 TDataSetProvider组件的主要属性、方法与事件如下 : (1) DataSet属性 (2)UpdateMode属性 (3)DataRequest方法 (4)OnGetDataSetProperties事件 (5) OnDataRequest事件和OnGetData事件,(6)OnUpdateData,AfterUpdateRecord,BeforeUpdateRecord和OnUpdateError事件。 3. TClientDataSet组件 (1)PacketRecords属性 (2)RemoteServer属性 (3)ProviderName属性 (4)GetNextPacket方法 (5)ApplyUpdates方法 (6)SaveToFile方法 (7)LoadFromFile方法 4. DataSnap组件,11.3 Delphi中的DataSnap技术,11.3.1 常用DataSnap组件 1. TDCOMConnection组件 (1)ComputerName属性 (2)ServerName属性 (3)ServerGUID属性 (4)ObjectBroke属性 (5)Connectioned属性,2. TSocketConnection组件 (1)Address属性 (2)Host属性 (3)Port属性 3. TWebConnection组件 4. TSimpleObjectBroker组件 (1)Servers属性 (2)LoadBalanced属性,11.3.2 开发三层数据库应用系统的一般步骤,开发三层数据库应用系统一般可分成3个步骤: (1)在数据库服务器上建立需要的数据库; (2)建立应用服务器; (3)建立客户端应用程序。 其中建立数据库的方法,前面已介绍,此处不再介绍。 1.建立应用服务器 建立应用服务器的步骤如下:,(1)建立一个新的应用程序(Application)。 (2)增加一个远程数据模块。设置它的CoClassName为需要的名称,设置它的Instancing为Multiple Instance(默认值)。 (3)在远程数据模块上,设置供客户端访问的数据集如增加一个Ttable,TDatabase或TQuery组件。 (4)添加一个TDataSetProvider组件,把它的DataSet属性就设置为刚才添加的数据集组件名。 (5)保存文件,编译并运行该应用服务器程序以注册该应用服务器程序。 (6)也可将应用服务器程序转移到另一台机器上,此时应在另一台计算机上重新注册并要相应地修改客户端的DataSnap连接组件,以定位到新的计算机。,2. 建立客户端应用程序,建立客户端应用程序的步骤如下 : (1)建立一个新的应用程序(Application)。 (2)根据连接所使用的协议来选定一个或几个DataSnap连接组件(如TDCOMConnection,TSocket Connection,TWebConnection)并添加到数据模块中。 (3)设置DataSnap连接组件的属性来定位到应用服务器所在的计算机(ComputerName,Address和Port等)和应用服务器(ServerName,URL等)。 (4)把一个或几个TClientDataSet组件放到数据模块上,设置RemoteServer属性指定一个DataSnap连接组件,设置ProviderName属性指定应用服务器上的TDataSetProvider组件。 (5) 把一个TDataSource组件放到数据模块上,设置它的DataSet属性指定TClientDataSet组件。再为应用程序中的窗体添加相应的数据控制组件,设置数据控制组件的DataSource属性为该TDataSource组件名称 。,11.3.3 在客户端建立和断开与应用服务器连接的方法,1. 建立连接 建立连接的方法主要有以下两种。 (1)把TClientDataSet的Active属性设置为True。 (2)把DataSnap连接组件的Connected属性设置为True。 注意:在与应用服务器建立连接之前,将会触发BeforeConnect事件。当建立了与应用服务器的连接后,将会触发AfterConnect事件。,2. 断开连接 断开连接的方法主要有以下5种。 (1)把TClientDataSet的Active属性设置为False。 (2)将DataSnap连接组件的Connected属性设置为False。 (3)关闭客户端程序。 (4)将DataSnap组件删除。 (5) 修改DataSnap连接组件的ServerName,ServerGUID,ComputerName,Host,Address等属性。 注意:与应用服务器的连接将要断开之前会触发BeforeDisconnect事件,连接真正断开之后,会触发AfierDisconnect事件。,11.3.4 在客户端更新数据,1. 更新数据的一般步骤 更新数据的一般步骤如下。 (1)客户端程序调用ApplyUpdates函数向应用服务器提出申请。 (2)应用服务器向远程数据库服务器提出申请。 (3)返回并处理错误记录。 2. 客户端程序申请更新的方法 客户端程序申请更新数据是通过ApplyUpdates方法(函数)来实现的。关于该方法的功能请参考TClientDataSet组件的该方法说明。,11.4 基于DCOM协议的三层数据库应用系统开发,11.4.1 建立应用服务器,11.4.2 建立客户端程序,11.5 基于TCP/IP协议的三层数据库应用系统开发,11.5.1 建立应用服务器,11.5.2 建立客户端程序,11.6 基于HTTP协议的三层数据库应用系统开发,11.6.1 配置服务器端的IIS,11.6.2 建立应用服务器,11.6.3 建立客户端程序,小结,三层数据库应用系统已经成为企业信息系统开发的趋势和主流,在Delphi中可通过使用DataSnap技术来开发三层数据库应用系统。三层数据库应用系统由3个部分组成,分别是:数据库服务器、应用服务器和客户端程序,它是在二层C/S结构的基础上通过增加服务器的种类来使客户端变“瘦”。在Delphi中可通过3种方式来开发三层结构的数据库应用系统,分别是:基于DCOM协议的三层数据库应用系统的开发、基于TCP/IP协议的三层数据库应用系统的开发、基于HTTP协议的三层数据库应用系统的开发。为实现三层结构的数据库应用系统,需要用到一些Delphi的组件,如远程数据模块、TDataSetProvider、TClientDataSet和DataSnap组件,其中DataSnap组件主要用来实现客户端与应用服务器的连接,是三层结构数据库系统的核心技术。本章首先介绍三层数据库应用系统的由来、特点和组成,然后详细介绍在Delphi中为开发三层结构的数据库应用系统所使用的组件的功能,最后通过三个实例分别阐述了开发三层结构的数据库应用系统的三种方法的具体实现步骤,具有很强的操作性。,