欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Delphi-多层分布式应用的开发.ppt

    • 资源ID:6504494       资源大小:574.50KB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Delphi-多层分布式应用的开发.ppt

    第11章 多层分布式应用的开发,本章主要内容:多层分布式系统的概念开发多层应用程序的有关组件如何开发多层分布式数据库应用程序,11.1 多层数据库应用程序概述,11.1.1 数据库应用的体系结构研究一下数据库应用的结构,可以发现它是由数据层、应用逻辑层、用户接口层构成的。数据层用于存取我们的数据,应用逻辑层用于规定用户如何使用数据,而用户接口层提供了用户访问数据的操作界面,而层间通过接口相连。这里只是在逻辑上将一个数据库应用分为三个层次。实际开发数据应用系统时,可以在一个程序内实现所有三层功能,这就是单层数据库应用。前面所介绍的ACCESS数据库应用程序就是这种类型。也可以将这三层分开,由不同的程序实现,并且还可以分别放在不同的机器上运行。这样就形成了双层、三层,甚至多层的数据库应用体系结构。,11.1 多层数据库应用程序概述,1.单层结构在单层数据库应用程序中,其体系结构如图11-1所示。单层结构是一种早期的最简单的数据库系统,整个数据库应用系统安装在一台微机上,由一个用户独占,不同机器之间不能共享数据。,图11-1 单层结构的数据库应用系统,11.1 多层数据库应用程序概述,2.双层结构图11-2所示的是客户/服务器(Client/Server)体系结构,这是最典型的双层结构。,图11-2 客户/服务器体系结构,11.1 多层数据库应用程序概述,3.三层结构与多层结构三层结构如图11-3所示。在三层结构中,多了一个中间层,它把客户端和数据库服务器隔离开来,这样客户端对数据的所有操作都需要经过中间层的应用服务器,由应用服务器连接数据库服务器,应用服务器根据设定的应用逻辑对数据进行相应的处理,最后提交给后端数据库服务器。,图11-3 三层体系结构,11.1 多层数据库应用程序概述,图11-4是一个基于B/W体系结构的多层数据库应用系统。,图11-4 基于B/W体系结构的多层数据库应用系统,11.1 多层数据库应用程序概述,11.1.2 Delphi的多层数据库应用体系结构,Delphi提出的MIDAS是把原来双层的数据连接访问放到了应用服务器上,客户端只剩下了执行文件和MIDAS.DLL,前台和后台服务器通过DCOM机制互相沟通。其结构如图11-5所示。,图11-5 MIDAS应用程序的结构,11.1 多层数据库应用程序概述,1.应用服务器的结构应用服务器的关键部件是TRemoteDataModule(远程数据模块),它提供了IAppServer接口。当客户程序与应用服务器建立了连接,就通过IAppServer接口来获得数据集提供者列表(list of providers)。TRemoteDataModule组件是一个支持双重接口的自动化服务器,这种类型的远程数据模块适合于DCOM,HTTP,Sockets通讯方式。远程数据模块可以作为容器,但只能放置非可视化的组件。另外,远程数据模块上一般要放一个或几个TDataSetProvider或TProvider构件来提供IProvider接口。TDataSetProvider组件存在于应用服务器端的远程数据模块中,用于连接数据模块中的数据集,并向客户端发送数据。,11.1 多层数据库应用程序概述,2.客户端的结构对于最终用户来说,多层体系结构中的客户程序与两层体系结构中的应用程序没有什么区别,在结构上,客户程序仍然通过标准的数据控件与用户交互。但与单机模式应用程序不同的是,多层体系结构中的客户程序是通过应用服务器提供的IAppServer接口获得数据的,也通过IAppServer接口申请更新数据。在客户程序中,MIDAS连接组件TDispatchConnection扮演着极其重要的角色。不同的MIDAS连接组件使用不同的通讯协议将客户端连接到一个远程应用服务器,以获取一个IAppServer接口服务,然后获取数据集提供者列表。通常使用TDispatchConnection派生的组件:(1)TDCOMConnection组件使用DCOM将客户端连接到一个远程应用服务器。,11.1 多层数据库应用程序概述,(2)TSocketConnection组件使用Sockets(TCP/IP)将客户端连接到一个远程应用服务器。(3)TWebConnection组件使用HTTP将客户端连接到一个远程应用服务器。(4)TSoapConnection组件使用SOAP将客户端连接到一个远程应用服务器。TClientDataSet组件是客户端的数据集组件,用于连接应用服务器中的TDatasetProvider,提供了客户端访问应用服务器商的IAppServer接口。,11.2 开发多层数据库应用的组件,11.2.1 TRemoteDataModule组件TRemoteDataModule封装了多层数据库应用程序的对象和接口,它是由TDataModule类派生而来的。使用TRemoteDataModule向导建立DCOM应用服务器,会自动地添加TRemoteDataModule对象。在数据模块单元中会自动建立UpdateRegistry方法,用于注册该应用服务器。1.TRemoteDataModule的基本属性(1)Providers属性表示远程数据模块中包含的已注册的Provider的集合。(2)ProviderCount属性表示远程数据模块中包含的已注册的Provider的数量。(3)OldCreateOrder属性指定何时发OnCreate事件和OnDestroy事件。,11.2 开发多层数据库应用的组件,2.TRemoteDataModule的基本方法(1)Lock方法锁定数据模块,防止线程冲突。(2)RegisterProvider方法用于在程序运行时调用底层的IAppServer接口获取一个可用的provider。(3)UnLock方法解除对数据模块的锁定。(4)UnRegisterProvider方法从AS_GetProviderName方法返回的列表中删除一个Provider。,11.2 开发多层数据库应用的组件,9.2.2 TDataSetProvider组件客户端的数据集是通过Provider(提供者)组件获取数据的。Provider接收来自客户端数据集的数据请求,然后索取所请求的数据,封装成可传输的数据包,并把数据传到客户端数据集。Provider接收来自客户端的数据更新,然后应用更新内容到数据库服务器、来源数据集,返回未能实施的更新到客户端数据集,作进一步调整。1.TDataSetProvider的属性,11.2 开发多层数据库应用的组件,表11-1 TDataSetProvider的属性及说明,11.2 开发多层数据库应用的组件,2.TDataSetProvider提交数据更新的方式TDataSetProvider组件提供了两种方式来提交客户端的数据更新,向数据集提交数据更新和向数据库提交数据更新。(1)向数据集提交数据更新设置ResolveToDataSet属性为True。(2)向数据库提交数据更新设置ResolveToDataSet属性为False,表明TDataSetProvider使用的更新组件为内部的TSQLResolver,它可直接提交客户的数据更新到数据集连接的数据库中,这样就绕开了使用的数据集。11.2.3 TDCOMConnection组件该组件使用DCOM建立客户端和应用服务器的连接,适用于建立企业内部网络(Intranet)。,11.2 开发多层数据库应用的组件,该组件的ComputerName属性用于设置服务器主机名称或者IP。该属性为空,表示服务器主机就为本地机器。11.2.4 TSocketConnection组件要使用TCP/IP 方式来连接应用服务器,就需用到TSocketConnection组件。TSocketConnection用Address属性或Host属性来定位应用服务器所在的计算机,前者用于指定IP地址,后者用于指定主机名,这两个属性是互斥的,只需要设置其中一个。此外,还要设置Port属性指定端口号,必须与应用服务器上运行的Scktsrver.exe或Scktsrvc.exe所使用的端口号一致,默认值是211。,11.2 开发多层数据库应用的组件,11.2.5 TClientDataSet组件TClientDataSet组件用于获取远程数据模块的数据并建立本地的副本,提供了浏览和编辑数据的方法和属性,另外还提供了向数据库提交和调用数据的功能。该组件与TADOTable、TADODataSet等数据集组件一样,都是由TDataSet组件继承来的,因此具有许多数据集组件的公共属性、方法、事件;而最大的不同就是它是利用底层的IAppServer接口获取数据的。在Delphi7中,TClientDataSet有三种途径获取数据:(1)从文件中获取数据。(2)从本地的另一个数据集中获取数据。(3)通过IProvider接口从远程数据库服务器获取数据。,11.2 开发多层数据库应用的组件,1.TClientDataSet的属性2.TClientDataSet的主要方法3.TClientDataSet的主要事件4.提取数据客户端通过TDispatchConnection组件与服务器建立了联系后,需要用TClientDataset组件连接到服务器中的provider上(从而连接到源数据集上)。首先,需要指定TClientDataset组件的RemoteServer属性为所连接的TDispatchConnection组件,使两者联系起来。完成之后,TClientDataset组件的列表框中就可以列出服务器的Provider列表,从中选择provider。最后,设置Active属性为True以打开TClientDataset从服务器上提取数据。,11.3 多层数据库应用程序开发,主要想解决这样几个问题:如何建立一个简单的分布式系统,如何使用SQL,如何传递附加信息和向客户提供服务器方法,如何建立主从表结构。11.3.1 基于DCOM的客户/服务器程序开发【例11-1】编写一个服务器端程序。服务器端程序实际上是个COM 项目,它本身连接数据源,再通过接口与客户端联系,这个COM 项目必须注册在服务器上。连接的数据库是位于服务器My-Server上的数据库dbdemos。这个数据库是由Delphi自带的dbdemos.mdb导入到MS SQL服务器上的。,11.2 开发多层数据库应用的组件,【例9-2】编写一个客户端程序。在两层模式中,客户端(Client)程序是直接和服务器的数据源相连的。而多层模式,多个客户端连接的是一个应用程序服务器,应用程序服务器再连接到数据库服务器,因为收费是按客户数计算的,所以,数据库的使用费用比较低。【例9-3】在【例9-1】中的服务器端程序中加入进行客户计数的功能。由于这个应用程序执行模式是 Multiple Instance执行模式,所以当某个前台第一次连上线后,应用程序服务器会触发RemoteDataModule的OnCreate事件程序,而断线后又会执行OnDestroy事件的处理程序,因此就可以用这两个事件计算连上服务器的用户个数。至于查询个数的计算,则由TADODataSet的OnAfterOpen事件函数判断,11.2 开发多层数据库应用的组件,【例9-4】在【例9-3】中的服务器端程序中为服务器接口添加属性和方法。TRemoteDataModule提供的属性和方法是有限的,要增强应用服务器的服务可考虑为IDcomServer添加属性和方法,而客户端应用程序则可以通过IAppServer接口来调用服务器的属性和方法。【例9-5】通过TClientdataSet发送SQL命令。前面在服务端执行由客户端输入SQL查询命令是通过添加新接口实现的,其实还有更简单的实现方法。通过设置TClientDataSet的CommandText属性,并在服务器端设置DataSetProvider1的Options属性为poAllowCommandText。,11.2 开发多层数据库应用的组件,Params属性用于向Provider提供查询参数值,可以在设计或是在运行期间设置,调用Execute或Open方法时一起传递给provider。如果运行带有参数的查询或是调用存储过程,在调用Execute时,Params属性会一起传递给provider。另外,若调用的是存储过程,执行后会返回输出参数。,11.2 开发多层数据库应用的组件,11.3.2 基于Socket的客户/服务器程序开发 1.TCP/IP协议和Socket(插座)在客户端,用一个新的控件TSocketConnection代替原来的TDCOMConnection,其余的连接不变,这就大大简化了客户端的设计。但是,TSocketConnection使用的是TCP/IP协议进行通讯,因此,客户端总是连接到应用服务器的某个特定的端口(Server Port)。在服务器端需要另外配置和运行一个程序scktsrvr.exe(可以在Bin目录下找到这个程序),该服务程序用于监听服务端口,应用服务器使用该端口提供服务。(1)选择服务端口(2)启动Scktsrvr.exe程序 在服务器端,找到Delphi的目录,找到:Program FilesBorlandDelphi 6BinScktsrvr.exe。,11.2 开发多层数据库应用的组件,双击运行,就可以在Windows任务栏看到一个TCP/IP的Service启动的图标(下图圆圈中的图标就是)。,图11-21任务栏上显示的Scktsrvr.exe图标,在图标上单击右键,选Properties,就出现一个对话框:,11.2 开发多层数据库应用的组件,图11-22 Borland Socket Server设置界面,11.2 开发多层数据库应用的组件,把Socked Server变成Windows Server的方法,在DOS命令提示符下,进入C:Program FilesBorlandDelphi7Bin目录,然后执行Scktsrvr/inatall命令。安装成功后可以看到一个安装成功的信息显示。如图所示:,图11-23 从命令行安装Scktsrvr.exe,11.2 开发多层数据库应用的组件,这时打开【控制面板】的【管理工具】,启动【服务】工具程序。,图11-24 Windows服务管理器,11.2 开发多层数据库应用的组件,(3)客户端程序设计,本章实训指导,1、掌握创建多层应用程序的机制。2、了解多层应用程序的组件。3、掌握服务器程序的编写。4、掌握客户程序的编写。5、上机模仿本章实例,并理解程序设计思想。,

    注意事项

    本文(Delphi-多层分布式应用的开发.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开