45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:多层结构及其在Delphi中的实现的详细介绍

多层结构及其在Delphi中的实现的详细介绍

2016-08-30 17:37:40 来源:www.45fan.com 【

多层结构及其在Delphi中的实现的详细介绍

摘要:本文讨论了分布式多层应用体系的结构、特点及实现技术。分析了用Delphi实现基于MIDAS技术的多层结构,并举例说明实现多层结构的步骤。

关键词:多层结构,客户端,应用程序服务器,远程数据库服务器

1 多层结构应用体系

1.1 二层结构的退出

在传统的二层C/S结构数据库应用中,客户端的机器执行应用程序,连接到后端的数据库服务器中存取应用系统所需资料,因为应用系统的企业逻辑都编写在客户端的应用程序中,造成客户端非常臃肿,且当应用系统需求改变时,所有在客户端的应用程序都必须改变,使维护成本太高。

Oracle

MSQL

客户端1 数据库服务器 Sybase

?? ? 图一?2C/S结构???????????????

1.2 多层结构的概念和特点

为了解决这些问题,多层结构应用体系应运而生,即在传统的二层C/S模型中放入应用程序服务器。应用程序服务器简单地说就是一个包含企业逻辑的应用程序,开发人员以一种特定的组件形态,如Microsoft COM/DCOM,CORBA对象,或Enterprise JAVA Bean等,封装企业逻辑的程序代码,这种经过封装,能够执行特定企业功能的对象被称为“企业对象”,把这些企业对象分发到应用程序服务器中,开发人员在开发应用程序时就可以使用这些企业对象提供的服务。

多层结构的典型是三层结构,其基本思想是把用户界面与企业逻辑分离。整体结构如图二所示。

 

客户端 应用程序服务器 远程数据库服务器

(提供用户界面) (包含企业逻辑) Oracle,MSQL,SybaseDBMS

图二 三层结构模型

(1) 客户端应用程序。提供用户接口,主要功能是指导操作人员使用界面,输入数据,输出结果,并不具有企业逻辑,或只拥有部分不涉及企业核心的、机密的应用逻辑。这样客户端就显的很廋,称为“廋”客户。

(2) 应用程序服务器。它是应用的主体,包含了企业中核心的及易变的企业逻辑(规划,运作方法,管理模型等),其功能即接受输入,处理后返回结果。

(3) 远程数据库服务器。即数据库管理系统(DBMS),负责管理对数据的读写和维护。

在更复杂的多层体系结构中,“廋”客户与远程数据库服务器之间可以加入更多的中间服务器,如加入一个中间安全服务器或中间转换服务器,用于对不同平台数据进行处理。

分布式多层结构把整个应用系统的执行分成数个不同部分并且执行在不同的机器中。其中应用程序服务器作为中间层集中实现企业逻辑,协调多层之间的请求,并掌握数据集定义的全部细节和远程数据库服务器进行通信,这样客户端应用程序就重点放在显示数据和与用户交互上,客户端应用程序甚至都不需要知道数据在那儿。

具体来说,多层结构具有如下优点:

(1) 在一个共享的中间层封装了企业逻辑,不同客户端应用程序可以共享同一个中层层,而不必由每个客户端应用程序单独实现企业逻辑。

2)客户端应用程序可以做的很廋。因为很多复杂的工作由应用程序服务器代劳,客户端应用程序只需关注用户界面本身。“廋”客户端应用程序更易发布、安装、配置和维护。

3)实现分布式数据处理。把一个应用程序分布在几个机器上运行,可以提供应用程序的性能,通过冗余配置还可以保证不会因为局部故障导致整个应用程序崩溃。

4)有利于安全。将一些敏感数据功能部分封装在中间层,并授予不同访问权限,可以保证对数据的访问限制。

1.3 多层结构使用的技术。

目前分布式多层结构使用的核心大致可以分为两种不同的工业标准,即Microsoft制定的COM/DCOM/COM+和由700多家厂商共同提倡的CORBA。因分布式结构的广泛流行,现也有愈来愈多的根据这两种分布式核心技术加以演进而产生的分布式技术,如EJB(Enterprise Java Bean)等。

MicrosoftCOM/DCOM/COM+是以Windows为中心的开发环境,CORBA是平台中立的分布式技术,CORBA能够执行于Windows,UNIX以及Linux等操作系统中。这些技术都能使开发人员在应用程序中轻易地使用企业对象所提供的服务。这两种分布式技术都在客户端机器中以一个特别的对象来仿真真正的远程应用程序服务器上的企业对象,这样客户端应用程序就可以调用在客户端机器中的仿真对象,该对象再使用特定的通讯协议来真正调用远程应用服务器上的企业对象,从而调用远程企业对象的服务,以满足客户端的要求。

2 Delphi中实现基于MIDAS的多层结构

2.1 Delphi中多层结构的实现

Delphi中多层结构的基础是MIDAS(Multi-tier Distributed Application Service Suite,多层分布式应用服务器组)技术。MIDAS是一些不同技术的集合,无论是应用程序服务器还是客户端,MIDAS技术需要DBClient.dllMIDAS.dll的支持,这两个动态链接库用于管理数据包,发布MIDAS应用程序时需要发布这个文件。

基于MIDAS的多层结构依然分为客户端应用程序,应用程序服务器和远程数据库服务器,如图三所示。

从图三可见,MIDAS的数据库应用程序需要一些特殊组件,这些组件共分为4类:

1)远程数据模块。位于服务器端,作为COM服务器或CORBA服务器让客户端应用程序访问它的接口。

数据模块 IAppServer接口 远程数据模块

用户界面

连接组件

数据源 ClientDataSet

DataSetProvider

DataSet组件

BDE

 

客户端应用程序 应用程序服务器 远程数据库服务器

图三 MIDAS 结构

2DataSetProvider组件。位于服务器端,提供IAppServer接口,客户端应用程序通过

IAppServe接口获得数据。

3)连接组件。位于客户端,包括DCOMConnection,SocketConnection,CORBAConnection,

OLEnterpriseConnection,MIDASConnection RemoteServer 等连接组件,为客户端应用程序定位应用程序服务器和IAppServe接口。

4ClientDataSet组件。位于客户端,访问服务器端的IAppServe接口,它是从TdataSet继承下来的组件。

客户端应用程序通过IAppServe接口与应用程序服务器通讯,通讯协议为DCOM,TCP/IP,HTTP,OLEnterprise CORBA。通讯协议因客户端的MIDAS连接组件及应用程序服务器上的远程模块不同而不同。

2.1.1 客户端应用程序结构

 

在结构上,客户端应用程序通过标准数据控制组件与用户交互,但是它是通过应用程序服务器提供的IAppServe接口获得数据,也是通过IAppServe接口更新数据。所谓“廋”客户即指不依赖BDE的数据集(TClientDataSet 组件)构成的客户端应用程序。TClientDataSet 榧?谴?/SPAN>TDataSet派生出来的客户端数据集组件,它扮演了与TTableTQuery同样的角色,但它不需要BDE,它把通过IAppServe接口获得的数据在客户端内存中建立副本,对数据进行操作。直接访问远程数据库服务器的是应用程序服务器。

 

远程数据模块

说明

RemoteDataModule

支持双重接口的自动化服务器,支持DCOM,TCP/IPOLEnterprise<SPAN lang=ZH-CN style="FONT-SIZE: 7.5pt; FONT-FAMILY: SimSun; mso-ascii-font-family: 'Times New Roman'; ms


本文地址:http://www.45fan.com/a/question/69875.html
Tags: 浅析 多层 结构
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部