`

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

 
阅读更多

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

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

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

1引言

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

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

2三层系统的体系结构

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

三层结构功能如下:

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

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

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

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

3三层系统的连接技术

3。1前端连接技术

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

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

ADOConnection1的ConnectionString属性设置为Student。mdb,LoginPrompt属性设置为false,ADOTable1的Connection属性设置为ADOConnection1,TableName属性设置为jbqk,Active属性设置为true。保存所有文件,项目文件名为AppServer,单元文件名为Server1。

新建一个远程数据模块,设置类名为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的三层数据库系统的实现方法.zip

    行业资料-交通装置-一种基于Delphi的三层数据库系统的实现方法.zip

    三层数据库连接池,基于delphi软件开发的

    三层数据库连接池,我是在其他网上下载的。

    计算机毕业设计-基于Delphi视频数据库系统的设计与实现.doc

    Delphi视频数据库系统的设计与实现 摘 要:随着多媒体技术的迅速发展和Internet的日益普及,如何实现对网络上存在的大量视 频数据的高效管理已成为多媒体信息处理领域的一个研究热点。本文首先阐述了视频数 据库系统...

    DELPHI7数据库应用开发

    一,数据库概论 二,基于BDE的数据库应用程序开发 三,多层分布式数据库应用程序开发 四,dbExpress数据库应用程序开发 五,ADO技术及其应用 六,InterBase Express应用程序开发

    delphi三层框架+delphi源码MES生产管理系统

    ,本框架原是基于delphi2010开发的,为了发布到网上就把它升级到Delphi 11了;架构是data snap;服务器使用sqllite存储常用配置参数。客户端使用的是ms sql数据库,用到DevExpressVCL与FastReport控件,没有任何权限...

    基于delphi 的ERP系统并且加上remoteobject

    自己下载的基于delphi的 ERP管理系统,使用了sqlserer 2000数据库,拥有客户端、服务端源码 亲测可用。并且添加了remoteobject 三层应用框架,是学习三层应用的最好帮手

    基于Delphi的仓库管理系统开发论文

    Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在...

    论文研究-基于Delphi的Midas成绩管理系统 .pdf

    基于Delphi的Midas成绩管理系统,徐华中,雷波,Delphi提供了一组Midas组件,利用该组件,可以方便快捷地开发三层体系结构的数据库应用程序。本文介绍了分布式系统的基本结构,对Mi

    delphi数据库-课程设计.doc

    数据库 3 二、系统设计 4 1、数据库的建立 4 2、管理系统建立 6 3、 实现功能 11 三、结论 13 一、简介 1.Delphi Delphi是Borland公司推出的可视化编程环境,它提供了一种方便、快捷的Windows应 用程序开发工具。...

    DataSnap三层架构

    业务池,多账套,日记等功能多有 基于FMX 为后面跨平台做准备

    基于JAVA的模拟ATM系统的设计与实现【文献综述】.pdf

    文献综述 计算机科学与技术 基于 JAVA 的模拟 ATM 系统的设计与实现 ATM 是 Automatic Teller Machine 的缩写,即自动柜员机。它是有计算机控制的持 卡人自我服务型的金融专用设备。 ATM 机可以向持卡人提供提款、...

    Delphi毕业设计_三层ACCESS图片管理系统

    内容索引:Delphi源码,数据库应用,管理系统,图片管理 一款DELPHI毕业设计作品,附文档,基于三层的图书管理系统,程序可能需要重新编译,分客户端,管理端,服务端,基于ACCESS数据库,内有说明。

    php和mysql开发的报刊订阅管理系统

    Delphi+ACCESS三层图书管理 JSP+SQLServer网上书店系统 Delphi+access商品销售管理系统 JSP+SQLServer超市管理系统 Delphi+sql试卷生成系统 JSP+SQLServer销售管理系统 Delphi酒店客房餐饮管理系统 JSP+Access网上...

    Delphi认证讲义(全)

    --------------------------------------------------------- Delphi高级编程课程安排一、Delphi程序设计的一般问题二、异常处理三、创建DLL 动态连接库四、创建VCL 组件五、COM 技术六、ActiveX 控件七、数据库开发...

    基于三层C/S结构的网上答疑系统的设计 (2002年)

    介绍了在Delphi下利用MIDAS技术开发三层分布式数据库系统的方法,应用该方法设计了网上答疑系统.该系统具有三层C/S模式,后台采用Microsoft SQL Server数据库.系统为用户提供了网上答疑板和在线答疑2种方式,网上...

    Delphi5开发人员指南

    5.4 Delphi的消息系统 116 5.5 消息处理 117 5.5.1 消息处理:不是无约定的 118 5.5.2 对Result域赋值 119 5.5.3 TApplication的OnMessage事件 119 5.6 发送自己的消息 120 5.6.1 Perform() 120 5.6.2 sendMessage()...

    Delphi模式编程第一分卷

    25.3.1 模板方法在离线数据库系统中的应用 25.3.2 范例小结 第26章 访问者模式(Visitor) 26.1 模式解说 26.2 结构与用法 26.2.1 模式结构 26.2.2 代码模板 26.2.3 问题讨论 26.3 范例与实践 26.3.1 访问...

    Delphi 5开发人员指南.part1.rar

    继而讨论了基于VCL和基于COM的开发技术,并全面介绍了数据库编程技术,包括多种组件的开发和调试、数据库开发及在网络上的应用,另外还为你提供了多种技巧;最后,综合前面的知识以建立一些大规模的实际应用程序。对...

    Remobjects分布式ERP模型(附源码)

    适合三层应用程序的开发 1.系统服务端开发 采用delphi2007及remobjects SDK 最新版本。 2.客户端的数据访问已经封装在Dll目录下的DllDataAccessObject.dll中, 所以新用户开发时不需要再安装delphi2007及remobjects...

Global site tag (gtag.js) - Google Analytics