Delphi中MIDAS是什么(MIDAS之一)

   Delphi中MIDAS到底是什么呢?和他相关组件是什么呢?   MIDAS(Multitiered Distributed Application Services)多层分布式应用服务
   Delphi所提出的Multi-Tier结构是把原来的Two-Tier前台应用程序内的dbExpress,ADO,BDE,SQL Link,DataMoule,拿到另外一台NT服务器(就是所谓的应用程序服务器),而前台程序只剩下一

   个可执行文件及MIDAS.DLL,而移到NT服务器上的DataMoule则变成一个COM程序(Remote DataModule).
   注:前台一定要把MIDAS.DLL发布到系统目录下.
   (1)前台程序会通过调用应用程序服务器提供的方法(接口)提出一个请求
      应用程序服务器会响应这个请求,传送一个相应的SQL命令到后台数据库,而后台数据库会把执行SQL命令产生的DataSet返回给应用程序服务器.
      注:Delphi提供了Type Library来帮助应用程序服务器定义COM方法(接口)
   (2)NT服务器上的COM程序是通过中间软件(dbExpress,ADO,BDE,SQL Link)传送SQL到后台数据库.
      当应用程序服务器要把读取到的DataSet传送给前台时,就必须利用DCOM的机制来进行.Delphi提供的TDataSetProvider组件就会把读取到的DataSet压缩并且分割成一段一段的数据包,通

      过DCOM或TCP/IP传给前台.
      注:Delphi提供了RemoteDataModule向导来帮你产生COM程序的结构.
         由于Delphi的程序具有传送DataSet的特殊机制,所以Delphi也实现了一个接口叫做IProvider(即TDataSetProvider),来帮助应用程序服务器上的COM程序发送DataSet数据.
   (3)前台程序与NT服务器上的COM程序是通过DCOM的机制互相沟通
      前台的应用程序是通过MIDAS.DLL和应用程序服务器相互沟通,前台的MIDAS.DLL会把接收到的应用程序服务器发过来的数据包再还原成DataSet,丢给前台程序中的TClientDataSet组件.
      注:前台程序必须提供相应的TClientData组件来和应用程序服务器上的每个IProvider(即TDataSetProvider)对应.用户修改前台数据时,修改的只是Cache(缓存)在前台的Dataset,最后 

       要通过TClientData.ApplyUpdate方法来把前台变动的数据写回到后台数据库中.

时间: 2024-08-25 21:20:28

Delphi中MIDAS是什么(MIDAS之一)的相关文章

Delphi中MIDAS线程模型种类(MIDAS之四)

Delphi中MIDAS线程模型  (1)Single     代表所产生的In-Process COM程序是一个单一线程的程序,一次只能接收一个client发出来的request,由于是循环的操作,所以不会有多任务同时进行的问题,你的COM程序不需要编写多任      务处理的部分.  (2)Apartment     代表每一个Remote Data Module所产生的instance一次只能处理一个前台发出的request,可是如果同时创建多个In-Process COM程序,那么每个C

Delphi中MIDAS程序的实例化模型种类(MIDAS之三)

Delphi中MIDAS应用程序COM服务器实例化模型种类  (1)Internal Instance     创建一个In-Process的COM程序,即DLL服务器.  (2)Single Instance     如果每个客户程序都运行服务器程序的一个实例,则使用该模型.就是每个连上线的前台程序,在服务器上都会有一个对应的应用程序服务器被运行.因此每个前台发出来的查询都会有各自      独立Process的应用程序来处理,根本无所谓排队的问题.但是它会比较占用系统资源,影响服务器整体的运

Delphi中MIDAS前台程序如何连到后台(MIDAS之五)

Delphi中MIDAS前台程序连接到后台应用程序服务器  (1)SocketConnection:     只要前台计算机安装有TCP/IP的通信协议即可,但是Application Server上必须要有对应的SocketServer程序scktsrvr.exe  (2)DCOMConnection:     如果前台计算机系统是Win95,则必须安装DCOM form Win95(去Microsoft网站下载),如果系统是Win98,Me,NT等,则已经包含DCOM Library  (3

Delphi中创建MIDAS服务器并注册(MIDAS之二)

Delphi中如何创建并注册MIDAS应用程序服务器COM程序   Delphi提供一些向导(如:RemoteDataModule,Automation Object,TypeLibrary)来自动产生COM程序的结构.   (法1)创建一个普通应用程序服务器        新建一个普通工程,然后通过New->Other->Multitier->Remote DataModule,来自动新建一个COM服务器结构.        注: 要注册创建的MIDAS应用服务器,可以运行应用程序或者

Delphi中MIDAS如何控制前台权限(MIDAS之六)

Delphi中MIDAS如何控制前台权限  (1)原理:     前台程序与应用程序服务器之间是通过DCOM机制的运行来传送数据,DCOM对象的安全机制是以Windows NT的安全模块为构建基础,换句话说,要设置某个用户是否有远程运行DCOM对象的能       力,最基本的条件是这个用户一定要被加入Windows NT的用户组内,如此才有资格连上Windows NT Server,并进而依据DCOM的权限来决定是否能够运行指定的应用程序服务器.  (2)工具:     在系统目录下有一个DC

如何在delphi中使用xml文档

在delphi中使用xml文档有两种方法,一是使用delphi 内置的xml broker:一是使用msxml.dll . 一  使用xml broker, 是delphi 内置的 例: unit ShowXML; interface uses Classes HTTPApp Db DbClient Midas XMLBrokr WebComp MidItems; type TCustomShowXMLButton = class(TXMLButton IScriptComponent) pro

dcom连接-Delphi中DCOM连接时出现拒绝访问

问题描述 Delphi中DCOM连接时出现拒绝访问 1.中间层通过Dcomcnfg设置,将客户端与中间层在同一电脑上使用时,可以正常使用:2.将客户端放到其它电脑内使用时,有些客户端能正常使用:有些客户端提示拒绝访问,同时将midas.dll注册后也不行.3.改成Socket连接后,客户端与中间层在同一电脑上也能使用: 在客户端使用时,同样提示拒绝访问? 请问下如何解决此问题,谢谢.

Delphi中取得系统支持的颜色数的方法

在自己的软件中经常需要得知运行本软件的系统支持的颜色数.例如有的软件在16Bits的颜色数的计算机上开发而成,程序的颜色调试得非常漂亮,但是到了一台只支持16色的计算机上,程序变得非常难看.这就需要得到系统的颜色数. Delphi中如何取得系统的颜色数呢?下面的程序就解决这个问题. function GetSysColorNum:Integer; Var ScreenDc:HDC; NumBitsPixel:Integer; begin Result:=0; ScreenDc:=GetDC(0)

Delphi中TApplication类的用法

在Delphi中TApplication是一个有着十分重要作用的类.TApplication类是用于描述Delphi编制的应用程序的一个类.通过对这个类的灵活应用可以编制许多有特点的程序.. 1) 检测当前Windows程序是否被激活: TApplication类有一个属性--Active,这个属性就可以描述当前运行的程序是否被激活,成为Windows的焦点.检 测的代码如下: If Application.Active=False then ShowMessage('当前窗口没有被激活');