基于Delphi的三层数据库系统的实现方法

Delphi实现三层数据库系统服务器端源码分析与应用 Delphi是一种成熟的编程语言,以其高效的编译器、快速的应用程序开发(RAD)和面向对象的特制而闻名。它由Borland公司(现Embarcadero Technologies)开发,自1995年发布以来,已成为开发企业级应用程序的首选语言之一。Delphi支持多种操作系统,包括Windows、MacOS和部分Linux发行版。Delphi的代码效率高,可直接编译成机器代码,同时提供强大的数据库支持和跨平台能力,使其在开发服务器端程序时具有显著优势。 阅读详情

转载自品略图书馆 http://www.pinlue.com/article/2020/03/3011/1610071238949.html

摘 要 随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推动了应用系统集成的发展。论文描述了基于Delphi中间件的三层结构访问数据库信息的方法。

关键词 三层结构;中间件;连接技术;数据库应用系统

作者简介:邵泳兵(1968-),女,广东南海人,硕士,助教

1 引言

当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统。

两层结构的数据库应用系统包括客户/服务器(C/S)模式和浏览器/服务器(B/S)模式,它的特点是数据和程序分离,数据库服务器端管理数据,客户机或浏览器显示、访问和更新数据,因此可以分别进行开发和维护,同时也降低了数据库服务器的工作量,减小了网络的流量,具有较强的安全性,但当客户端程序或浏览器较多时,服务器的性能会明显下降,而且应用逻辑安装在每个客户机上,如果系统要升级,就只能对客户机逐一进行,如果客户机分布在不同的地点,维护和升级任务将非常繁重。为了解决两层结构应用系统的不足,人们提出了多层数据库应用系统的结构模式,具有代表性的是三层结构。

2 三层系统的体系结构

所谓三层结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。在这种体系结构中,客户机只存放表示层软件,后台是数据库,业务逻辑包括事务处理、监控、信息排队、Web服务等采用专门的中间件服务器,大大减少了与数据库服务器连接的次数。通常情况下客户端通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互,客户端与数据库隔离,提高了整个系统的可靠性。在三层系统体系中,系统资源被统一管理和使用,用户可以通过网格门户(portal)透明地使用整个网络资源。 它的体系结构如图1所示。

三层结构功能如下:

表示层:提供简洁的人机交互界面,负责数据显示和客户端的数据处理,由客户机实现;

功能层:实现业务逻辑,即实现客户与数据库对话,同时,在这一层中,还应实现分布式管理、负载均衡、安全隔离等;它是一个远程模块,由应用服务器来实现;

数据层:负责数据管理,提供数据的存储服务,由数据库服务器来实现。

三层结构的主要特点:(1)安全性。中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。(2)稳定性。三层分布式体系提供了更可靠的稳定性:中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量。当然,连接数越少,数据库系统就越稳定。(3)易维护。由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动。(4)快速响应。通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。(5)系统扩展灵活。基于三层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。

3 三层系统的连接技术

3.1 前端连接技术(DataSnap)

在三层数据库应用系统中,客户端与应用服务器端常处于不同的物理区域,它们之间的数据传送成了影响系统运行效率最关键的技术。在Delphi中要建立与应用服务器的连接,客户程序必须使用一个或几个DataSnap连接组件,以及ClientDataSet等组件。首先DataSetProvider组件把读取的DataSet数据源压缩并切割成一段一段的数据包(Data Packet),通过各种传输协议如DCOM、TCP/IP、HTTP协议传给前端,前端的DataSnap连接组件会把接受到的数据包再还原成DataSet传给ClientDataSet组件,Data Control组件就可以将ClientDataSet作为数据源对它进行操作。

DataSnap技术是Delphi开发多层数据库应用系统的核心技术,它不但提供了基于DCOM、TCP/IP、HTTP三种传输协议的数据传送方式,还通过SimpleObjectBroker组件使系统轻易具备容错能力和负载平衡能力,使得Delphi开发的多层应用系统不但结构简洁、执行效率高、应用范围广,而且安全稳定,而且现在DataSnap还能够同时在Windows和Linux上执行。

3.2 应用服务器与数据库的连接ADO

ADO是Microsoft存取通用数据源的标准引擎,它通过封装OLE-DB来存取各种不同的数据,OLE-DB定义了统一的COM接口作为存取各类异质数据源的标准,藉由OLE-DB,程序员就可以使用一致的方式来存取各种数据,但OLE-DB太底层化,在使用上非常复杂,而ADO组件以COM技术封装OLE-DB为ADO对象,大量简化了程序员开发数据存取的工作,同时许多厂商也推出了ADO驱动程序,使得ADO应用日趋广泛。

4 实现方法

本例使用DCOM协议,系统模型如图2所示。

应用服务器是一个远程数据模块,它是一个COM程序,它通过ADO与SQL语句和数据库服务器连接。它负责从数据库服务器存取数据并通过DataSetProvider组件将数据分割成数据包,然后通过DCOM协议传递到网络上的客户端。客户端的组件负责还原数据,这项工作由DCOMConnection来完成。ClientDataSet组件是客户端数据集组件,它负责接收DCOMConnection组件还原过来的数据,并把数据传递给客户端数据处理组件,客户端数据处理和显示组件主要有ADOQuery、ADOTable、DataSource、DBGrid、DBEdit、DBComboBox等等,反过来,ClientDataSet组件负责收集客户端处理的数据,并把处理后的数据提交DCOMConnection组件,该组件通过DCOM协议和应用服务器正确地将数据写入数据库DB。

以显示学生数据库中学生基本信息表为例,具体地用Delphi语言实现步骤如下。

4.1 创建数据库

在E盘建立文件夹E:\学生课程管理,在该文件夹中创建Access数据库Student.mdb,包含表jbqk(基本情况)、course(课程)、teacher(教师)、sle_course(选课),jbqk表中设置主键为number(学号),以备查询之用。建立的表如图3所示。

图3 学生基本情况表jbqk

4.2 建立应用服务器程序

(1)建立一个应用程序,在窗体上添加ADOConnection1、ADOTable1、DataSource、DBGrid1四个组件,设置这四个组件的属性。

ADOConnection1的ConnectionString属性设置为Student.mdb,LoginPrompt属性设置为false,ADOTable1的Connection属性设置为ADOConnection1,TableName属性设置为jbqk(在下拉列表框中可以找到),Active属性设置为true。保存所有文件,项目文件名为AppServer,单元文件名为Server1。

(2)新建一个远程数据模块(Remote Data Module),设置类名为rdstu,在它的Uses子句中添加Server1,这样rdstu模块就可以访问Server1里面的组件了。在模块中添加组件DataSetProvider,设置它的DataSet属性为Form1.Table1,这样可以将本地数据读到DCOM服务器上,并由DataSetProvider组件提供给客户端。保存单元文件,命名为Server2。

运行程序后,系统自动在服务器注册程序,当有客户端程序运行时,系统会自动启动服务器程序。

4.3 建立客户端程序

为了方便描述,这里把客户端程序和服务器程序放在同一台电脑上。实际应用中通常把客户端程序与服务器程序放置在不同的电脑上。

新建一个应用程序,在窗体上添加DCOMConnection1、ClientDataSet1、DataSource1、DBGrid1、DBNavigator1等组件。

设置DCOMConnection1的ComputerName属性为服务器所在的计算机名,这样程序可以在网络上寻找服务器,如果本服务器已在本机注册,则不设置ComputerName属性;设置它的ServerName属性为AppServer.rdstu;设置它的Connected属性为True,此时激活服务器程序。

设置ClientDataSet1的RemoteServer属性为DCOMConnection1;ProviderName属性为DataSetProvider1。这样ClientDataSet1就可以通过DCOMConnection1从DataSetProvider1组件读取数据了。

DataSource1的DataDet属性设置为ClientDataSet1。

DBGrid1和DBNavigator1的DataSource属性设置为DataSource1。

5 结论

和两层C/S结构相比,三层C/S结构具有更灵活的硬件系统构成,对于各个层可以选择与其处理负荷和处理特性相适应的硬件。合理地分割三层结构并使其独立,可以使系统的结构变得简单清晰,提高了程序的可维护性。三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言,有利于变更和维护应用技术规范。按层分割功能使各个程序的处理逻辑变得十分简单。在Delphi中主要通过DataSnap等技术来实现。随着基于Web的瘦客户机结构的发展,基于多层分布体系的应用将会越来越广泛。

 

Delphi三层架构下的数据库连接池设计与实现 数据库连接池是由一组预创建并保持活动状态的数据库连接组成的集合,这些连接由一个专门的管理组件——连接管理器(Connection Manager)统一调度。当客户端请求数据库访问时,连接管理器从池中返回一个可用连接;任务完成后,连接被标记为空闲并重新放回池中,供后续请求复用。该机制的关键在于“连接复用”,即将原本短暂使用的连接转变为可多次周转的公共资源。例如,在未使用连接池的情况下,每次查询都需要经历以下步骤:建立TCP连接发送认证信息(用户名、密码)初始化会话上下文。 阅读详情

相关推荐

Delphi三层多层数据库开发

Delphi三层多层数据库开发,介绍了MIDAS,TClientDataSet等组件应用技术。

delphi源代码三层框架【框架简介】

delphi 三层 中间件 源码 框架

173713873 4432

一个三层Delphi数据库系统实例

内容索引:Delphi源码,数据库应用,三层,数据库  三层架构的一个实例,原型是一个强大的三层数据库操作源码,实现三层模块化管理。编译时注意,需要把每个层也就是每个目录的源程序都编译才行。本程序测试时可直接编译,全用Delphi自带控件,调试很方便。

关于Delphi三层数据库系统实现方法

转自:微点阅读https://www.weidianyuedu.com 摘 要 随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推动了应用系统集成的发展。论文描述了基于Delphi中间件的三层结构访问数据库信息的方法。 1 引言 当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统。 两层结构的数据库应用系统包括客户/服...

ysds20211402的博客 1296

Delphi XE 10 跨平台三层数据库应用教程

Delphi XE 10 跨平台 三层数据库 应用教程

8049

Delphi三层数据库开发应用

 以下有关分布式数据库开发资料--来源网上                              delphi 多层数据库开发                              2006-10-20 04:22服务器端程序      http://hi.baidu.com/gzsunsos/blog/item/406918d5fe7be1c451da4bd

编程资料收集与共享交流 1800

delphi mysql 三层_Delphi三层架构数据库

LoginPromt =false;通过以上方法,Server端和Client端(中间层)都建立起来了,并且可以运行了。链接示例:例1:对部门的数据进行操作,数据库略。在SererDataModule中建立TADODataSet组件,属性如下:Name :=DeptADS;Connection:=ADOConnection1CommandText: = “select * from tblDept...

weixin_39527768的博客 273

基于Delphi三层数据库系统实现方法 转,收藏了没事学学

基于Delphi三层数据库系统实现方法 摘要随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种 摘要随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推动了应用系统集成的发展。论文描述了基于Delphi中间

supper张磊的专栏 1385

delphi数据库三层架构

delphi数据库三层架构,在delphiXE环境下编写, 1,里面有DCOM配置, 2,以及经常遇到的几个问题的解决方法。 客户端使用的是DCOMConnection1连接方法

一个三层Delphi数据库系统实例:项目核心功能/场景

一个三层Delphi数据库系统实例:项目核心功能/场景 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代软件开发中,架构设计的重要性不言而喻。今天,我们将为您推荐一个基于Delphi语言的优秀开源项目——一个三层Delphi数据库系统实例。该项目采用经典的三层架构模式,包括表示层、业务逻辑层和数据访问层,旨在帮助开发者深入理解和掌握这一架构模式,提高软件的可维...

gitblog_06784的博客 807
上一篇: 解密NAT路由器的工作原理
下一篇: 浅谈 SATA接口
銨靜菂等芐紶
博客等级 码龄7年 462粉丝 229原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值