其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi中MIDAS的全面学习[2]


发布日期:2022年01月25日
 
Delphi中MIDAS的全面学习[2]

(四)MIDAS线程模型

()Single

代表所产生的InProcess COM程序是一个单一线程的程序一次只能接收一个client发出来的request由于是循环的操作所以不会有多任务同时进行的问题你的COM程序不需要编写多任务处理的部分

()Apartment

代表每一个Remote Data Module所产生的instance一次只能处理一个前台发出的request可是如果同时创建多个InProcess COM程序那么每个COM程序都会有一个线程来处理每个instance所处理的数据是安全的可是你必须防止一些共享变量的沖突

()Free

该线程模式可以让Remote Data Module产生的每个instance通过各自的线程处理每个前台发出的request所以Remote Data Moudle本身必须采用多线程的程序写法你必须保护每个instance所处理的数据区域不会互相沖突当使用ADO数据集时推荐使用Free模型

()Both

与Free相同除了所有对应前台界面的callback是连续的以外

()Neutral

此种模式允许多个前台程序在同一个时间以不同的线程来调用Remote Data Module不过COM对象必须确保不会有前台程序调用的沖突你要确定每个线程在访问全局变量及实例数据时不会发生任何沖突这个模式只适用在COM+

(五)MIDAS前台程序连接到后台应用程序服务器

()SocketConnection:

只要前台计算机安装有TCP/IP的通信协议即可但是Application Server上必须要有对应的SocketServer程序scktsrvrexe

()DCOMConnection:

如果前台计算机系统是Win则必须安装DCOM form Win(去Microsoft网站下载)如果系统是WinMeNT等则已经包含DCOM Library

()Corbaconnection:

必须安装Visic Broker即Delphi专用的Corba ORB文件这些文件名称分别是:Orbpasdllcwmtdllorb_rdll请把这些文件复制到前台计算机的的系统目录下同样的Application Server上也不需安装

()WebConnection:

只要前台计算机安装有TCP/IP协议即可但是Application Server上必须安装一套Web Server并且必须把httpsrvrdll文件安装到Web Server虚拟目录下再把WebConnection的属性URL指向此虚拟路径即可

注:不论采取何种Connection组件都会用到Midasdll文件所以打包时一定要把它分发到前台计算机的系统目录下去

(五)MIDAS如何控制前台权限

()原理:

前台程序与应用程序服务器之间是通过DCOM机制的运行来传送数据DCOM对象的安全机制是以Windows NT的安全模块为构建基础换句话说要设置某个用户是否有远程运行DCOM对象的能力最基本的条件是这个用户一定要被加入Windows NT的用户组内如此才有资格连上Windows NT Server并进而依据DCOM的权限来决定是否能够运行指定的应用程序服务器

()工具:

在系统目录下有一个DCOMCNFGEXE工具可以用来设置应用程序服务器的运行权限

()自己通过程序控制(也许更可取避免了配置人员的配置复杂性)

[] []

               

上一篇:Delphi中MIDAS的全面学习[1]

下一篇:delphi 的分离字符串函数 split