




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅析多层结构及其在Delphi中的实现 二层结构的退出在传统的二层C/S结构数据库应用中,客户端的机器执行应用程序,连接到后端的数据库服务器中存取应用系统所需资料,因为应用系统的企业逻辑都编写在客户端的应用程序中,造成客户端非常臃肿,且当应用系统需求改变时,所有在客户端的应用程序都必须改变,使维护成本太高。OracleMSQL客户端1数据库服务器Sybase等?图一?2层C/S结构?1.2多层结构的概念和特点为了解决这些问题,多层结构应用体系应运而生,即在传统的二层C/S模型中放入应用程序服务器。应用程序服务器简单地说就是一个包含企业逻辑的应用程序,开发人员以一种特定的组件形态,如Microsoft/D,CORBA对象,或EnterpriseJAVABean等,封装企业逻辑的程序代码,这种经过封装,能够执行特定企业功能的对象被称为“企业对象”,把这些企业对象分发到应用程序服务器中,开发人员在开发应用程序时就可以使用这些企业对象提供的服务。多层结构的典型是三层结构,其基本思想是把用户界面与企业逻辑分离。整体结构如图二所示。 客户端应用程序服务器远程数据库服务器(提供用户界面)(包含企业逻辑)(Oracle,MSQL,Sybase等DBMS)图二三层结构模型(1)客户端应用程序。提供用户接口,主要功能是指导操作人员使用界面,输入数据,输出结果,并不具有企业逻辑,或只拥有部分不涉及企业核心的、机密的应用逻辑。这样客户端就显的很廋,称为“廋”客户。(2)应用程序服务器。它是应用的主体,包含了企业中核心的及易变的企业逻辑(规划,运作方法,管理模型等),其功能即接受输入,处理后返回结果。(3)远程数据库服务器。即数据库管理系统(DBMS),负责管理对数据的读写和维护。在更复杂的多层体系结构中,“廋”客户与远程数据库服务器之间可以加入更多的中间服务器,如加入一个中间安全服务器或中间转换服务器,用于对不同平台数据进行处理。分布式多层结构把整个应用系统的执行分成数个不同部分并且执行在不同的机器中。其中应用程序服务器作为中间层集中实现企业逻辑,协调多层之间的请求,并掌握数据集定义的全部细节和远程数据库服务器进行通信,这样客户端应用程序就重点放在显示数据和与用户交互上,客户端应用程序甚至都不需要知道数据在那儿。具体来说,多层结构具有如下优点:(1)在一个共享的中间层封装了企业逻辑,不同客户端应用程序可以共享同一个中层层,而不必由每个客户端应用程序单独实现企业逻辑。(2)客户端应用程序可以做的很廋。因为很多复杂的工作由应用程序服务器代劳,客户端应用程序只需关注用户界面本身。“廋”客户端应用程序更易发布、安装、配置和维护。(3)实现分布式数据处理。把一个应用程序分布在几个机器上运行,可以提供应用程序的性能,通过冗余配置还可以保证不会因为局部故障导致整个应用程序崩溃。(4)有利于安全。将一些敏感数据功能部分封装在中间层,并授予不同访问权限,可以保证对数据的访问限制。1.3多层结构使用的技术。目前分布式多层结构使用的核心大致可以分为两种不同的工业标准,即Microsoft制定的/D/和由700多家厂商共同提倡的CORBA。因分布式结构的广泛流行,现也有愈来愈多的根据这两种分布式核心技术加以演进而产生的分布式技术,如EJB(EnterpriseJavaBean)等。Microsoft的/D/是以Windows为中心的开发环境,CORBA是平台中立的分布式技术,CORBA能够执行于Windows,UNIX以及Linux等操作系统中。这些技术都能使开发人员在应用程序中轻易地使用企业对象所提供的服务。这两种分布式技术都在客户端机器中以一个特别的对象来仿真真正的远程应用程序服务器上的企业对象,这样客户端应用程序就可以调用在客户端机器中的仿真对象,该对象再使用特定的通讯协议来真正调用远程应用服务器上的企业对象,从而调用远程企业对象的服务,以满足客户端的要求。 2在Delphi中实现基于MIDAS的多层结构2.1在Delphi中多层结构的实现在Delphi中多层结构的基础是MIDAS(Multi-tierDistributedAlicationServiceSuite,多层分布式应用服务器组)技术。MIDAS是一些不同技术的集合,无论是应用程序服务器还是客户端,MIDAS技术需要DBClient.dll和MIDAS.dll的支持,这 客户端应用程序应用程序服务器远程数据库服务器图三MIDAS结构(2)DataSetProvider组件。位于服务器端,提供IAerver接口,客户端应用程序通过IAerve接口获得数据。(3)连接组件。位于客户端,包括DCoection,SocketCoection,CORBACoection,OLEnterpriseCoection,MIDASCoection和RemoteServer等连接组件,为客户端应用程序定位应用程序服务器和IAerve接口。(4)ClientDataSet组件。位于客户端,访问服务器端的IAerve接口,它是从TdataSet继承下来的组件。客户端应用程序通过IAerve接口与应用程序服务器通讯,通讯协议为D,TCP/IP,OLEnterprise和CORBA。通讯协议因客户端的MIDAS连接组件及应用程序服务器上的远程模块不同而不同。2.1.1客户端应用程序结构在结构上,客户端应用程序通过标准数据控制组件与用户交互,但是它是通过应用程序服务器提供的IAerve接口获得数据,也是通过IAerve接口更新数据。所谓“廋”客户即指不依赖BDE的数据集(TClientDataSet组件)构成的客户端应用程序。TClientDataSet组件是从TDataSet派生出来的客户端数据集组件,它扮演了与TTable或TQuery同样的角色,但它不需要BDE,它把通过IAerve接口获得的数据在客户端内存中建立副本,对数据进行操作。直接访问远程数据库服务器的是应用程序服务器。远程数据模块说明RemoteDataModule支持双重接口的自动化服务器,支持D,TCP/IP或OLEnterprise协议。MTSDataMoudle支持双重接口的自动化服务器,创建的应用程序服务器是动态链接库,支持D,TCP/IP或OLEnterpris协议。CORBADataMouduleCORBA服务器,支持CORBA协议在客户端,MIDAS连接组件非常重要,不同连接组件使用不同的通讯协议,如表一所示。连接组件通讯协议DCoectioDSocketCoectioTCP/IPWebCoectioOLEnterpriseOLEnterpriseCORBACoectioCORBA 表一MIDAS连接方式表二支持MIDAS的数据模块2.1.2应用程序服务器应用程序服务器的关键部件是远程数据模块,在远程数据模块上,TTable,TQuery等BDE数据集组件通过BDE与远程数据库服务器连接访问数据库,DataSetProvider组件输出IAerver接口,DataSetProvider组件通过DataSet属性与数据集组件相连,这样客户端通过IAerver接口就可以访问数据。Delphi支持三种类型的远程数据模块,如表二示。2.2用MIDAS创建多层结构数据库应用程序实例建立多层结构应用系统,必须先建立应用程序服务器,并运行注册之,再建立客户端。下面就以笔者创建的一个三层结构为例来介绍用Delphi实现三层结构的步骤。(假设在应用程序服务器上已设好BDE连接,连到远程数据库服务器。)2.2.1建立应用程序服务器。(在应用程序服务器上建立)(1)使用File菜单下的NewAlication建立一个新应用程序。(2)创建远程模块。使用File菜单下的New打开NewItems对话框,在Multitier选项下,双击RemoteDataModule,设置Claame为rdm,Itancing及ThreadingModule属性取默认值。(3)在该远程模块上放一个Query1(Tqueyr组件),DatabaseName属性中指定为要访问的数据库,如“出版社”。在该远程模块上再增加一个DataSetProvider1(TDataSetProvider组件),DataSet属性设为Query1,Optio属性中令poAlloCommandtext为true。(设为true,则客户端应用程序中TClientDataSet的属性mandtext中的SQL语句就可以通过IAerver接口传递。)至此,应用程序服务器已创建完毕,运行该应用程序服务器在系统中注册它,在应用程序服务器上运行ScktSrvr.exe文件,这样今后客户端程序就可以调用该应用程序服务器。2.2.2创建客户端应用程序。(在客户端机器上创建)(1)建立数据模块。使用File菜单下的NewAlication建立一个新应用程序。在NewItem中双击DataModule建立一个数据模块(命名为dm),在该模块上放一个连接组件SocketCoection1(TsocketCoection组件),其IP属性中指定应用程序服务器的IP地址,在Port属性中取默认值211,在ServerName属性中设置应用程序服务器(在这里,应用程序服务器就是上面创建的名为rdm的应用程序服务器。),这样就可以定位应用程序服务器和IAerver接口。在dm数据模块上再增加一个ClientDataSet1(TClientDataSet组件),其RemoteServer属性设为SocketCoection1,ProviderName为DataSetProvider1。保存该unit为dm。(2)创建用户界面。使用File菜单下的NewForm新建一个unit,在该unit中引用上面建立的数据模块单元dm。在用户界面Form上添加DataSource1(TdataSource组件),其DataSet属性设为dm.ClientDataSet1,即上面数据模块中的客户端数据集组件。添加一个DBGrid1(TDBGrid组件),DataSource属性设为DataSource1。添加一个Btton1组件,caption属性为“查询”,其click事件中程序代码为:procedureTForm1.Button1click(sender:Tobject);beginwithdm.ClientDataSet1dobeginclose;mandtext:=select*from书;opeend;end;至此该三层结构已创建完毕,保存运行客户端应用程序,点击查询按钮(即Btton1按钮),则客户端应用程序将激活应用服务器程序,通过IAerver接口把dm.Client
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人力资源招聘面试技巧面试官必-备手册与模拟题集
- 2025年驻外机构招聘面试题解析
- 小树有多少了棵教学课件
- 对称图形 圆的教学课件
- 2025年学校安全管理知识测试题及答案
- 课件三维模型展示
- 2025年环境安全考试题及答案
- 2025年安全生产管理人员考试题库大全
- 2025年企业安全考核题库答案解析
- 2025年家庭安全知识手册题目及答案
- 《SPC统计过程控制》课件
- GB/T 40073-2021潜水器金属耐压壳外压强度试验方法
- GB/T 3624-2010钛及钛合金无缝管
- GB/T 14153-1993硬质塑料落锤冲击试验方法通则
- (完整版)人教版八年级下册《道德与法治》期末测试卷及答案【新版】
- 维护新疆稳定 实现长治久安课件
- 北京大学人民医院-医疗知情同意书汇编
- 档案管理员述职报告9篇
- 舞台灯光基础知识教学课件
- 牙体牙髓病最全课件
- 脑卒中的功能锻炼课件
评论
0/150
提交评论