I
import
Unregistered / Unconfirmed
GUEST, unregistred user!
Midas进阶 原创 (小小->爱被下载中……)
由于这段时间忙于其它事,所以,也只能是根据有些网友的要求,他们希望看到什么什么方面的内容,我就现就那方面的内容进行说明;
在我们在多层应用程序时,一般的步骤无外乎:数据库配制、创建应用服务器、创建客户程序,这是一个模式;当然,在应用服务器上放几个控件、注册一下;在客户程序上放几个控件,写点代码,就这样,一个简单的三层结构就出来了;但我不知道各位想过原理了吗?一起来分析一下:一般而言,三层或多层之间如何连系起来的?就是通过一组协议连接,应该是 DCOM、TCP/IP、OLEnterPrise(不是很长见,至少我没有见过,菜鸟哦)、MTS、CORBA;总结一下不难得出DCOM/(TCP/IP)/OLEnterPrise作为通讯协议时,需要进行注册,前面的有个贴子里曾说起COM的时候,如何注册?看一看;DCOM/(TCP/IP)/OLEnterPrise就如ActiveX 或 COM服务器一样,需要先注册(这后不再对OLEnterPrise进行介绍);如果你用的是MTS的话,那么就不用注册了,此时的应用程序服务器是DLL,前边也说过,COM也同样可以用DLL作为应用服务程序,MTS也是COM的一种扩展,所以它也可以用DLL来做应用服务,但是DCOM不可以;合用CORBA可以不注册;
应用服务器相关:
前边曾说过,Delphi的MIDAS主要通过两种方式做多层应用程序DCOM/CORBA,是三层还有一种方式,是由JavaBean定制的(J2EE你应该听过了吧)RMI,这种不属于进行的讨论范围里;
用DCOM进行连接的话,要用到TDCOMConnection组件,这种连接方式一般运行起来的速度比较快,但是它的初次连接比较慢,而且进行设置时不是很容易,不过他的执行效率很不错,斑竹建议如果您是初学的话,在练习时,用它是一个好的选择,如果正真做开发的时候,它可以暂时不考虑进行,因为它还有一个让人不太容易接受的缺点就是当你用TDCOMConnection时,即使你将远程计算机ComputerName正确的写了,但你依然不能在设计期进行远程的连接,因为TDCOMConnection用远程服务时,只认自己机子上的;
用TSocketConnection作连接的时候,它用的是TCP/IP进行连接的,用它的时候要注意一点的时端口问题,它默认的是211,但有时端口可能被其它程序占用,这样的话,你就无法连接,改完之后要记住配制Scktsrver.exe 或 Scktsrvc.exe 的端口号配制相同则可;
无论是上两种方式用那一种,有可能都会发生以下情况,运行中需要动态的指点应用服务器:TDCOMConnection.ComputerName := Edit1.Text or TSocketConneciton.Host := Edit.Text 都成,我建议你用TSimpleObjectBroker,只要将其ObjectBroker := TSimpleObjectBroker应用它有自动分配的功能,如何理解呢?例如你有三台机器上同时安装了你的应用服务器的话,你只要给TSimpleObjectBroker指定了这三台机器的话,当你现在所连的A应用服务器出错时,这时,TSimpleObjectBorker会自动进行调整,它会试图它所有的ComputerName进行连接,这样,它可以快速的转换所连接的应用服务器,客户或你是不会感觉的到的;TSimpleObjectBroker组件还有平衡负载的功能;
Corba我不太熟,不会说,呵呵;
好了,好了,现说到这儿;
我是一边做事一边写的;
下次下如果通果接口和应用服务程序通讯;
由于这段时间忙于其它事,所以,也只能是根据有些网友的要求,他们希望看到什么什么方面的内容,我就现就那方面的内容进行说明;
在我们在多层应用程序时,一般的步骤无外乎:数据库配制、创建应用服务器、创建客户程序,这是一个模式;当然,在应用服务器上放几个控件、注册一下;在客户程序上放几个控件,写点代码,就这样,一个简单的三层结构就出来了;但我不知道各位想过原理了吗?一起来分析一下:一般而言,三层或多层之间如何连系起来的?就是通过一组协议连接,应该是 DCOM、TCP/IP、OLEnterPrise(不是很长见,至少我没有见过,菜鸟哦)、MTS、CORBA;总结一下不难得出DCOM/(TCP/IP)/OLEnterPrise作为通讯协议时,需要进行注册,前面的有个贴子里曾说起COM的时候,如何注册?看一看;DCOM/(TCP/IP)/OLEnterPrise就如ActiveX 或 COM服务器一样,需要先注册(这后不再对OLEnterPrise进行介绍);如果你用的是MTS的话,那么就不用注册了,此时的应用程序服务器是DLL,前边也说过,COM也同样可以用DLL作为应用服务程序,MTS也是COM的一种扩展,所以它也可以用DLL来做应用服务,但是DCOM不可以;合用CORBA可以不注册;
应用服务器相关:
前边曾说过,Delphi的MIDAS主要通过两种方式做多层应用程序DCOM/CORBA,是三层还有一种方式,是由JavaBean定制的(J2EE你应该听过了吧)RMI,这种不属于进行的讨论范围里;
用DCOM进行连接的话,要用到TDCOMConnection组件,这种连接方式一般运行起来的速度比较快,但是它的初次连接比较慢,而且进行设置时不是很容易,不过他的执行效率很不错,斑竹建议如果您是初学的话,在练习时,用它是一个好的选择,如果正真做开发的时候,它可以暂时不考虑进行,因为它还有一个让人不太容易接受的缺点就是当你用TDCOMConnection时,即使你将远程计算机ComputerName正确的写了,但你依然不能在设计期进行远程的连接,因为TDCOMConnection用远程服务时,只认自己机子上的;
用TSocketConnection作连接的时候,它用的是TCP/IP进行连接的,用它的时候要注意一点的时端口问题,它默认的是211,但有时端口可能被其它程序占用,这样的话,你就无法连接,改完之后要记住配制Scktsrver.exe 或 Scktsrvc.exe 的端口号配制相同则可;
无论是上两种方式用那一种,有可能都会发生以下情况,运行中需要动态的指点应用服务器:TDCOMConnection.ComputerName := Edit1.Text or TSocketConneciton.Host := Edit.Text 都成,我建议你用TSimpleObjectBroker,只要将其ObjectBroker := TSimpleObjectBroker应用它有自动分配的功能,如何理解呢?例如你有三台机器上同时安装了你的应用服务器的话,你只要给TSimpleObjectBroker指定了这三台机器的话,当你现在所连的A应用服务器出错时,这时,TSimpleObjectBorker会自动进行调整,它会试图它所有的ComputerName进行连接,这样,它可以快速的转换所连接的应用服务器,客户或你是不会感觉的到的;TSimpleObjectBroker组件还有平衡负载的功能;
Corba我不太熟,不会说,呵呵;
好了,好了,现说到这儿;
我是一边做事一边写的;
下次下如果通果接口和应用服务程序通讯;