中国程序员联盟 正在重新改版中ing 不便之处还请见谅 改版后将内容涉及java delphi .net php
 
  首页 | 数据库开发 | 网络通讯 | 多线程 | 多媒体开发 | 图像处理 | 程序人生 | 系统函数 | 控件开发 | Web服务
 
  当前位置:笨鱼delphi技术网>数据库开发>代码分析>文章内容

delphi MIDAS——多层分布式应用程序服务器

来源:站内 关于:bill 发布时间:2007-06-22   [收藏] [推荐]
----对MIDAS这个名字一般有两种理解。MIDAS是Multi-
tierDistributedApplicationServicesSuite(多层分布式应用
程序服务包)的缩写,这也诠释了MIDAS技术的实质。也许因为
这个本义太长,很多人更愿意把它理解成Multi-tierMadeEasy,
这也是MIDAS的作用。多层计算(Multi-tieredcomputing)是

业界对此类技术通用的术语,而Multi-tier是Borland公司采
用的技术术语。Borland典型的三层结构如下:第一层是数据库
服务器,第二层是应用服务器,第三层是瘦客户机。
 
----数据库服务器是诸如InterBase、Oracle、Sybase、
MSSQLServer等数据库,应用服务器和瘦客户机由Delphi建立。
大多数情况下,数据库访问软件(例如BDE,SQL*NET等等)与
应用服务器运行在同一台机器上。
 
----应用服务器主要基于Borland的分布式数据技术,至少包括
两方面的内容:
 
----1.内置在Delphi组件中;

 
----2.OLEnterprise产品对分布式计算和负载平衡提供超强的支
持。
 
----内置在Delphi组件中使你能很容易地使用DCOM、Socket或
OLEnterprise连接两台机器,并在两者之间来回传输数据集。
OLEnterprise工具提供DCOM的选择方法简化了连接两台机器的
任务,尤其是对两台运行Windows95的机器更是如此。
OLEnterprise使用户能访问ObjectBroker,它允许在几个服务
器中随机分配任务负载。此外,还可以在几台机器上装载服务器
工具,每次实行连接时,Broker会选择其中一台机器。例如,如
果你有100个客户端和3台服务器,ObjectBroker会随机分配负

载给3台服务器,每台服务器大约有33个客户端。Broker会在
服务器异常关闭时提供支持。编写几行代码可以提供服务器错误
处理,把客户端从出现问题的服务器切换到另一台正常运行的服
务器。另外Broker不会试图把一个新的客户端连接到已经关闭
的服务器上,相反它会自动连接到其中一台正在运行的服务器
上。
 
----分布式数据集可以基于DCOM,在客户端没有任何数据库工具
的情况下读取远程数据。有些用户可能会有这样的疑问:通过浏
览器和Web服务器也能在客户端没有任何数据库工具的情况下观
察远程机器上的数据集,为什么还要采用分布式数据集呢?这是

因为浏览器的功能远不如Borland分布式数据集的功能。如果没
有一种强大的第三方工具(如IntraBuilder),要增强浏览器的
约束条件,或者在浏览器中加入或建立一个一到多的关系表是非
常困难的。但这些功能都可以在Delphi的多层应用程序中简单
地实现,Delphi的编译应用程序比基于HTML的应用更快速、更
易于应答。
 
----分布式数据集允许在客户端的应用中使用所有标准的Delphi
组件,包括数据库工具,但是客户端无须装载BDE、ODBC或者任
何数据库类库(例如OracleSQL*NET、SybaseCT-Lib等等)。当

然网络上的某些地方需要BDE或类似的引擎,但是客户端无须装
载。简言之,现在只需要一套服务器端的数据库工具,每一个客
户端就可以使用它。
 
----分布式数据集是缩减网络通信量的一种方法。从服务器端下
载数据后,在客户端操作数据而无须初始化任何网络交易,除非
需要更改服务器端。这意味着在不启动网络交易的情况下,可以
编辑、插入、删除多个记录。更改服务器数据时,可以在预先选
定的时间段内把多个数据包送到网络上。
 
----另外,当客户端从网络上断开时,仍然可以利用
“briefcasemodel"访问数据。其操作步骤如下:先把一个远程

数据库复制到磁盘上,然后关闭计算机,再重新引导它、断开网
络连接、编辑数据,接着重新联网并修改数据库。所有这些都可
以在没有大型数据库工具的客户端完成。这说明为了操作数据,
客户端不必每时每刻都与服务器连接。这对于膝上型计算机用户
和想要保持数据库通信量最小的站点是非常理想的。
 
----MIDAS技术的另一方面是提供访问数据库约束条件。当从服
务器上卸载数据时,可以同时卸载一套自动执行的约束条件。约
束条件可以帮助程序员确保用户输入合法的数据。当重新连到网
络上时,数据可以被正确地修改。如果你在更改数据库时偶然发

生了一个错误,那么内建的机制会帮助程序员报告和处理错误。
例如,如果另一个用户已经更改了你正试图更改的那条记录,那
么你将看到一个提示你如何处理的选项表。在
DelphiObjectRepository中的一个预建表单可以使你的应用程序
简单地实现错误处理。
 
----Borland多层计算的另一个重要功能是将数据库的负载分散
到多个服务器上。这样,一旦发生错误也能恢复。概括起来讲,
这些技术存在于三种Broker中:
 
----第一种叫做RemoteDataBroker,RemoteDataBroker结构的
精髓是让每一个客户端不再需要BDE,取而代之的是一个中央化

的BDE,以集中管理的方式降低每一个客户在BDE上所需的开销
和复杂度。
 
----第二种叫做ConstraintBroker,它所扮演的角色是保证所有
客户数据的一致性及数据的完整性。
 
----第三种是BusinessObjectBroker,它的目的是给一些关键性
的商业应用程序提供一个快速且可信赖的使用环境。为了满足这
种高层次的要求,BusinessObjectBroker会自动地将应用程序做
适当的划分,并复制重要的业务规则到每一个区间,以达到速度
的要求。
 
实现工具
 
----Borland提供了四种Delphi工具帮助用户实现分布式数据

集。前两个在服务器端:
 
----1.远程数据模块像标准数据模块一样,它不但可以将数据传
播到当前的应用中,而且会传到网络上的特定区域中。特别是它
们把简单的数据模块转化成COM对象,允许你通过DCOM访问远
程服务器上的数据库。
 
----2.TProvider组件就像可以驻留在标准数据模块中的TTable
组件一样,驻留在远程数据模块中,不同的是TProvider在网络
上发布数据表。TTable和TQuery组件都含有Provider属性。但
是如果把它作为一个独立的组件访问,会有更大的灵活性和力
量。特别是把TProvider组件与TTable或TQuery组件建立连接,

网络上的其它程序就可通过DCOM从TTable或TQuery访问数据。
远程数据模块的任务就是使客户端访问服务器上特定的
Provider。
 
----在客户端可以利用两个组件访问服务器提供的数据:
 
----1.TRemoteServer组件把客户端连到服务器上,特别是连到
服务器的远程数据模块上。更明确地说是连到远程数据模块支持
的COM接口上。TRemoteServer能浏览可用的服务器,一旦找到
服务器,TRemoteServer就可与之连接。
 
----2.TClientDataSet与TRemoteServer组件连接在一起,在服
务器上就得到一个特定的Provider。简言之,TClientDataSet

组件扮演了与TQuery或TTable同样的角色,只不过它是为远程
站点提供数据服务。如同在许多标准的Delphi应用程序中传统
TDatabase、TTable、TDataSource、TDBGrid组件的配置结构一
样,在远程数据集中使用TRemoteServer、TClientDataSet、
TDataSource和TDBGrid组件,它们的配置只是稍有不同。在这
个新的方案中,TRemoteServer的作用类似于TDatabase的作用,
而TClientDataSet组件与TTable或TQuery组件所起的作用又

极其相似。
 
结论
 
----MIDAS为多层结构的应用开发提供了强大的功能,这使得开

发者再也无需为越来越庞大的数据及应用发愁了。在
Delphi Client/Server版中打包了MIDAS的开发版,它可以用
于多层结构应用的开发及调试,在应用分布时,还需要另外购买
BorlandMIDASforDelphi。


[浏览: 次]   
上一篇:delphi 在客户端改变服务端查询   下一篇:delphi 多层连接方式的选择分析
[收藏] [推荐] [返回顶部] [打印本页] [关闭窗口]  
    评论加载中…
google adsense热点文章
·delphi Delphi_动态数组介绍----Delphi
·delphi 检查IP地址
·delphi DBExpress 提高
·delphi 复制Excel列到二维数组
·delphi Delphi_VCL消息处理机制的内幕
·delphi 产生不重复的随机数
·delphi 如何在DELPHI里调用MS office
·delphi 缓冲池
·delphi 在WORD文档里添加页签
·delphi Asta多层应用实现
·delphi Datamodule的应用方式
·delphi DBExpress 入门
     delphi技术网 | firefox 下载 | Avant Browser下载 | dedecms 技术网 | drupal 爱好者 | php 技术网
  Copyright@www.delphichm.com,2006-2009.All Rights Reserved.
 
程序员联盟 | delphi Java .net|QQ:707102932