在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Delphi5.5的MIDAS编程
数据库应用程序中三个基本层: l 数据层:负责存储数据 l 业务层:负责从数据层获取适当格式的数据并执行最后的合法性检查(也叫做执行业务规则)。业务层也就是应用服务器层。 l 表示层:也叫做GUI层,负责在客户应用程序中以适当格式显示数据。总是与业务层打交道,不直接与数据层打交道。
Delphi下多层体系结构的优点: 1. 业务规则集中:业务规则放在应用服务器上 2. 瘦客户体系结构:数据访问由应用服务器来控制,数据表示则由客户的应用程序完成。只需发布客户应用程序和一个用来访问服务器的DLL文件。 3. 自动错误调和 4. 公文包模式:公文包打开数据模式,允许不必一直与应用服务器或数据库服务器保持活动连接。 5. 容错 6. 负载平衡:负载平衡的算法有随机法、顺序法、最少网络用户和最少网络流量等。Delphi4及以上版本提供了一个顺序法实现负载平衡的组件。
典型MIDAS体系结构: 窗体/数据模块 远程数据模块(RDM)
客 户 服 务 器
TdatasetProvider TDataset
TDispatchConnection
二、 客户端 Delphi中用于连接客户和服务器的是TdispatchConnection。通过它的AppServer属性,可以调用服务器上自定义的方法。TdispatchConnection派生了几个子类,分别有不同的连接特性: 1. TDCOMConnection:通过标准Windows服务,提供安全验证的核心。对于intranet/extranet应用程序尤为有用。就需要在中间层应用服务器配置DCOM的安全验证,用dcomcnfg.exe。缺点有: 难于配置,主要是在跨route或网域,分布也困难 不能很好兼容防火墙 在WIN95机器上要安装DCOM95 2. TsocketConnection:易配置,只使用一个端口进行传输。必须运行ScktSrvr进行配置。Delphi4下要求安装WinSock2,Delphi5下不使用回调,可以用WinSock1连接用户。 3. TOLEnterprisdConnection:提供内嵌的容错和负载平衡。进行容错和简单负载平衡的组件TsimpleObjectBroker。可把WIN9X作为服务器。 4. TCORBAConnection:相当于DCOM的开放标准。 5. TwebConnection:允许MIDAS在HTTP或HTTPS上进行数据传输。限制有: 不支持回调 客户必须安装WININET.DLL 服务器端必须运行IIS4.0或Netscape3.6及以上版本
客户端程序的编写可以有多种方式: 1. 主窗体为ActiveForm,调用其它普通窗体的方式。ActiveForm实际上也是一种ActiveX组件,它同时也是一个ActiveX的Container对象。这就是说它可以包含其它的组件。这样我们就可以把普通的VCL控件加入到ActiveForm中。 ActiveForm的创建和发布: 在Delphi中选New|ActiveX|ActiveForm
创建并编辑完窗体后,就可以发布了。首先要在服务器上安装IIS,创建一个虚拟目录,准备放ActiveForm发布后生成的一些文件。选Project|Web deployment Options
这些设置好之后,就可以点Project|Web deploy发布了。 有了一个ActiveForm,再通过ActiveForm调用普通的Form,就可以方便建立基于IE运行的application了。可在ActiveForm创建时,创建普通的窗体,再show出来,但这样,Form是独立在IE外的。如果创建同时,把Form的Parent设为ActiveForm,并设Form.visibal:=true,这样这个普通窗体就显示在ActiveForm上了。当然最后不要忘了在ActiveForm的destroy事件,把Form释放。通过这种方法,可以把任何普通的程序,转变为基于IE的应用程序。 使用ActiveForm为主的应用程序时,应为程序首次执行要下载ActiveForm,这样在某些速度较慢的网络上,要考虑ActiveForm文档的大小是否可以接受。下载时间过长,可能会造成DCOM或Socket逾时的情况。可使用Package和CAB技术使文档变小,但这毕竟有限。另外的办法是,程序员分析和设计整个应用系统,把共享的应用程序逻辑编写成企业对象,执行在应用程序服务器中,在ActiveForm下载后执行。但这样如果频繁调用大量数据,有时会降低执行效率,可能也难以接受。所以具体怎么样处理,最重要的是程序员的经验和实验。 2. 全部窗体都使用ActiveForm。ActiveForm不是直接调用,而是把要调用的ocx当作一个Internet链接来调用的。这种方式,客户端要下载大量的ActiveForm,这在一般网络上是难以接受的,所以很少采用。 3. 使用WEB方式。 因为下载和执行效率的关系,ActiveForm并不适合使用在Internet上。但一般的ASP+角本语言,也只适合简单查询多层应用系统。现今最好的解决方法就是XML+角本语言(最好是JavaScript)+企业对象+中介软件,能够满足电子商务应用的需要。 Delphi5提供功能强大的InternetExpress技术来开发分布式Web应用系统。从客户端到服务器到中介软件都可以只用Delphi来开发,而且是基于XML的。 4. 普通窗体。必须安装客户端程序,无法达到客户端免维护的要求,一般不采用。
参考文档: l 《delphi5.x分布式多层应用系统篇》——李维 l 《delphi5.x分布式多层应用电子商务篇》——李维 l 《delphi5开发人员指南》——Steve Teixeira Xavier Pacheco l 一并感谢Internet上众多优秀的DELPHI程序员们 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论