知识大全 Delphi中MIDAS的全面学习[1]

Posted

篇首语:孤独如影随形,我们不能杀死他,只能与他和解。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi中MIDAS的全面学习[1]相关的知识,希望对你有一定的参考价值。

Delphi中MIDAS的全面学习[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  (一)MIDAS是什么?

  Delphi中MIDAS到底是什么呢?和他相关组件是什么呢? MIDAS(Multitiered Distributed Application Services)多层分布式应用服务

  Delphi所提出的Multi Tier结构是把原来的Two Tier前台应用程序内的dbExpress ADO BDE SQL Link DataMoule 拿到另外一台NT服务器(就是所谓的应用程序服务器) 而前台程序只剩下一个可执行文件及MIDAS DLL 而移到NT服务器上的DataMoule则变成一个程序(Remote DataModule)

  注:前台一定要把MIDAS DLL发布到系统目录下

   ( )前台程序会通过调用应用程序服务器提供的方法(接口)提出一个请求  应用程序服务器会响应这个请求 传送一个相应的SQL命令到后台数据库 而后台数据库会把执行SQL命令产生的DataSet返回给应用程序服务器

   注:Delphi提供了Type Library来帮助应用程序服务器定义方法(接口)

   ( )NT服务器上的程序是通过中间软件(dbExpress ADO BDE SQL Link)传送SQL到后台数据库 当应用程序服务器要把读取到的DataSet传送给前台时 就必须利用D的机制来进行 Delphi提供的TDataSetProvider组件就会把读取到的DataSet压缩并且分割成一段一段的数据包 通过D或TCP/IP传给前台

  注:Delphi提供了RemoteDataModule向导来帮你产生程序的结构

  由于Delphi的程序具有传送DataSet的特殊机制 所以Delphi也实现了一个接口叫做IProvider(即TDataSetProvider) 来帮助应用程序服务器上的程序发送DataSet数据

   ( )前台程序与NT服务器上的程序是通过D的机制互相沟通

   前台的应用程序是通过MIDAS DLL和应用程序服务器相互沟通 前台的MIDAS DLL会把接收到的应用程序服务器发过来的数据包再还原成DataSet 丢给前台程序中的TClientDataSet组件

  注:前台程序必须提供相应的TClientData组件来和应用程序服务器上的每个IProvider(即TDataSetProvider)对应 用户 修改前台数据时 修改的只是Cache(缓存)在前台的Dataset 最后要通过TClientData ApplyUpdate方法来把前台变动的数 据写回到后台数据库中        (二)创建并注册MIDAS应用程序服务

  Delphi中如何创建并注册MIDAS应用程序服务器程序? 

  Delphi提供一些向导(如:RemoteDataModule Automation Object TypeLibrary)来自动产生程序的结构

   (法 )创建一个普通应用程序服务器

  新建一个普通工程 然后通过New >Other >Multitier >Remote DataModule 来自动新建一个服务器结构         注: 要注册创建的MIDAS应用服务器 可以运行应用程序或者使用/REGSERVER开关运行程序

  (法 )创建一个NTService类型的应用程序服务器 这样就无需登陆系统也能启动应用程序服务器 避免断电重启带来的无法访问应用程序服务器的问题

  新建一个NTService工程 然后通过New >Other >Multitier >Remote Data Module 来自动新建一个服务器结构         注: 要注册创建的NTService服务器 通过/install开关来运行程序      注: MIDAS程序需要客户端注册MIDAS DLL和STDVCL DLL动态库            (三)MIDAS应用程序服务器实例化模型种类

  ( )Internal Instance

  创建一个In Process的程序 即DLL服务器

  ( )Single Instance

  如果每个客户程序都运行服务器程序的一个实例 则使用该模型 就是每个连上线的前台程序 在服务器上都会有一个对应的应用程序服务器被运行 因此每个前台 发出来的查询都会有各自独立Process的应用程序来处理 根本无所谓排队的问题 但是它会比较占用系统资源 影响服务器整体的运行效率

  ( )Multiple Instance

  如果客户程序共享服务器程序 则使用该模型 就是一个应用程序服务器可以同时处理好几个前台程序的链接 以技术的层面来解释就是所有前台程序可以共享单一 Process的应用程序服务器 该模式的最大好处是 激活及运行的效率较快 比较不会耗用服务器太多系统资源 而且管理上比较方便 但是它隐藏着一个不 具备多任务处理的问题 如果一个前台用户发出了一个查询请求 而且这个查询要求产生的结果可能多大数MB 这时候 其他在线前台用户发出的查询要求都必须 等待之前的查询要求运行完并得到相应之后 才得以继续运行 这可能会耗用许多时间 而且 如果一旦某个前台程序的查询发生错误 那么其他在后面排队的查询 请求将会跟着死掉

  注:那么到底采用哪种模式来创建应用程序服务器?答案是:按系统需求而定 简单的说就是 你可以创建两组应用程序服务器 一组是采用Multiple Instance模式 另一组采用Single Instance模式 而你必须把程序的类型分为两种 一种是查询数据量较小或是比较不重要的写入操作 另一种查询数据量较大或是重要数据的写入操作 如 此一来 你的前台程序就可以放置两个TDConection来各自连上两个不同模式的应用程序服务器 进行不同性质的工作

cha138/Article/program/Delphi/201311/8532

相关参考

知识大全 全面剖析Delphi 2006新增特性1

全面剖析Delphi2006新增特性1  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一直以来B

知识大全 利用Delphi全面控制Windows任务栏[1]

利用Delphi全面控制Windows任务栏[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 学习DELPHI程序开发中的几则应用技巧

学习DELPHI程序开发中的几则应用技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  delp

知识大全 全面剖析Delphi 2006新增特性5

全面剖析Delphi2006新增特性5  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNE

知识大全 全面剖析Delphi 2006新增特性2

全面剖析Delphi2006新增特性2  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  重构  如

知识大全 全面剖析Delphi 2006新增特性3

全面剖析Delphi2006新增特性3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  (五)数据

知识大全 全面剖析Delphi 2006新增特性4

全面剖析Delphi2006新增特性4  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这些功能或

知识大全 利用Delphi全面控制Windows任务栏[2]

利用Delphi全面控制Windows任务栏[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 Delphi学习使用资源文件-入门

Delphi学习使用资源文件-入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  资源文件(*r

知识大全 Delphi学习使用资源文件-Ico

Delphi学习使用资源文件-Ico  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现在要做一个