Delphi5实现多层Client/Server应用程序(1)

2016-01-29 14:15 42 1 收藏

Delphi5实现多层Client/Server应用程序(1),Delphi5实现多层Client/Server应用程序(1)

【 tulaoshi.com - Delphi 】

 

  
  一、引言
  Client/Server是一种分布式的计算模式,与传统的基于主机的结构相比,具有较好的可伸缩性和较优的性价比。过去,Client/Server结构一般分为两层:客户端和服务器端,所有客户端各自实现自己的用户界面和应用逻辑。随着系统的不断扩展,这种两层的Client/Server模式逐渐暴露出它的缺陷,由于最终客户需求的千变万化,客户端可能会不堪重负,而客户端程序的过于庞大显然与分布式计算的思想背道而驰。解决上述问题的方案,就是采用多层的Client/Server结构。目前,通常按客户端、应用服务器端和DBMS服务器端三层,在这种结构中,客户端只用于实现用户界面,而应用逻辑则由应用服务器实现。

  二、应用服务器的创建
  要创建一个多层的Client/Server应用程序,首先要创建应用服务器。为完成与远程的客户双向交互,应用服务器需提供某种类型的Iprovider构件来实现,也可以直接通过几个继承于TDBDataSet类的数据集构件如TtableTquery的Provider属性实现。创建步骤如下:
  1. 远程数据模块(Remote Data Module)的创建
  使用File菜单上的“New Application”命令开始一个新工程,双击Multitier页面中的“Remote Data Module”图标,Delphi将要求指定类名,如图1所示。
  (1)在“Class Name”框内键入类名后(类名第一个字母不必是T),单击OK按钮,Delphi就在当前工程中加入一个远程数据模块。
  (2)TTable数据集构件的创建
  置入一个Ttable构件,设定它的属性databasename和tablename,然后设定active为true。
  (3)TdataSetProvider构件的创建
  置入一个TDataSetProvider构件,设定属性DataSet为Table1。
  至此,一个简单的应用服务器创建完毕。如图2所示。
  执行此程序,该应用程序将在系统中自动注册,今后的客户端程序就可以调用该应用服务器程序了。

  三、客户程序的创建
  从用户角度看,创建多层的Client/Server结构的“瘦”客户是用TclientDataSet构件实现的,并且通过TDCOMConnection构件与应用服务器端连接。创建步骤如下:
  1. 建立一个新的数据模块
  使用“File”菜单上的“New Application”命令开始一个新的工程,使用“File”菜单上的“New Data Module”命令加入一个数据模块。
  2. TDCOMConnection构件的创建
  把一个TDCOMConnection构件放到数据模块上,设置它的ServerName属性指定应用服务器名(在这里,应用服务器就是上面创建的名为MyDcomServer服务器程序。如果“瘦”客户与应用服务器不在同一个计算机上,还要设置ComputerName属性指定服务器所在的机器名。 [next]

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)


  3. TclientDataSet文件添加
  把一个TclientDataSet构件放到数据模块上,设置它的RemoteServer属性指定TDCOMConnection构件,再设置ProviderName属性指定应用服务器中的DataSetProvider名,因此,“瘦”客户程序可以透明地访问远端数据库服务器上的数据。如图3所示。
  4. TdataSource文件添加
  把一个TdataSource构件放到Form上,设置它的DataSet属性指定TclientDataSet构件。
  5. TDBGrid构件添加
  把一个TDBGrid构件(也可以是其他数据控制构件)放到Form上,设置它的DataSource属性指定TdataSource构件,如果要在设计期间就看到数据的话,把TclientDataSet构件的Active属性设为True。
  至此,一个典型的“瘦”客户创建完毕,与传统的数据库应用程序相比,它不需要直接与数据库打交道,从而显得较瘦。

  四、DCOM配置
  如果在Windows NT环境下正常运行应用服务器,必须进行DCOM配置。配置方法如下:

  1. 运行NT服务器上的dcomcnfg程序,进行DCOM配置。
  2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
  3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。
  4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
  5.将常规页面中的身份验证级别改为“无”。
  6.位置页面中选上“在这台计算机上运行应用程序”。
  7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
  8.身份标识页面中,选择“交互式用户”。
  9.NT的GUEST用户不能禁用。

  结束语
  多层Client/Server结构的优势:
  1. 客户端只需要关注用户界面,而且与其他客户共享相同的数据访问模块,从而使客户端大大“减肥”。
  2. 客户端与应用服务器端一般分布于不同的计算机上,程序运行效率更高,处理事务的能力更强。
  3. 有利于提高数据的安全性,因为应用逻辑和最终访问数据库均由应用服务器端实现,而不是由多个客户直接访问数据库服

来源:http://www.tulaoshi.com/n/20160129/1492869.html

延伸阅读
标签: SQLServer
SQL Server应用程序高级SQL注入(上) 获得更高的权限 一旦攻击者控制了数据库,他们就想利用那个权限去获得网络上更高的控制权。这可以通过许多途径来达到: 1. 在数据库服务器上,以SQLSERVER权限利用xp_cmdshell扩展存储过程执行命令。 2. 利用xp_regread扩展存储过程去读注册表的键值,当然包括SAM键(前提是SQLSERVER是以系统...
标签: SQLServer
介绍 SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。典型的执行语句是query,它能够收集比较有达标性的记录并返回一个单一的结果集。SQL语言可以修改数据库结构(数据定义语言)和操作数据库内容(数据操作语言)。在这份文档中,我们将特别讨论SQLSERVER所使用的Tran...
简介 Microsoft近期推出一种用于生成集成应用程序的新平台——Microsoft .NET框架。.NET 框架允许开发人员使用任何编程语言迅速生成和部署Web 服务和应用程序。Microsoft Intermediate Language (MSIL)和实时 (JIT )编译器使这种不依赖语言的框架得以实现。 与.NET框架同时面世的还有一种新的编程语言C#(读“C sharp”)。...
标签: FLASH flash教程
的ActionScript给flash的功能增强提供了更大的空间,有了强大的编程功能作后盾,广大的Flasher终于可以振臂一挥,向世人说明:Flash不仅仅只是网络动画工具,出色的闪客一样可以用Flash做出实用的程序。 今天我们就一起来看看怎样用Flash制作打字练习的实用程序。 第1节、程序概述 程序名为:TypeTest。整个程序的目的就是鼓...
标签: flash教程
的ActionScript给flash的功能增强提供了更大的空间,有了强大的编程功能作后盾,广大的Flasher终于可以振臂一挥,向世人说明:Flash不仅仅只是网络动画工具,出色的闪客一样可以用Flash做出实用的程序。 今天我们就一起来看看怎样用Flash制作打字练习的实用程序。 第1节、程序概述 程序名为:TypeTest。整个程序的目...