认识Midas
原创 (小小->爱被下载中……)
在csdn上Midas版看到类似这样的贴子,Midas/MTS/CORBA到底是什么关系;
在此,就自己对Midsa的认识说一说,而至于MTS or CORBA,前面我们曾很多的提到过,如果你有兴趣可以看一看前边的贴子;
在说Midas之前,我必须申明它和MTS or CORBA or DCOM or RMI是不同的概念;
Midas是Delphi多层应用系统的核心技术,就如以前的或是现在还是Delphi数据库的核心BDE一样,BDE是delphi的数据库引擎,那么我们也可以将MIDAS理解成Delphi处理多层分布式的一种引擎技术,更确定的说MIDAS是Delphi用于存取后端数据库数据的中介透明引擎,而对于客户来说是完全透明的,客户不知道自己所取数据来自何处,又将提交到何处;而程序员则可以通过Midas使用不同的组件存取不同的后端应用程序服务器;而后端的应用程序服务器可以是COM/DCOM应用程序服务器、MTS中介软件、CORBA应用程序服务器,甚至我们可以理解相当于用BDE连接或存取本地或是远程数据一样,这就是我理解的MIDAS的概念;
理解了它的概念之后,我们就可以对MIDAS进行进一步的认识,delphi所提供的MIDAS随着版本的增长,其功能也在不断的强大,最明显的改进应该是它提供了容错能力和负载平衡以及高效率等功能;前边说了,MIDAS是一种透明的中介引擎,主要又应用提现在那几个方面?可以从三个方面来分析,也就是说它主要提供了三个主要的中介者:
NO.1:无程数据中介者(Remote Data Broker):它主要提供客户端存取远程数据库的能力;
NO.2:Constraint:(可以理解为安全性检查),通过它,应用程序下载远程数据库对于数据设定的各种限制,这样,客户端可以在本地对所做操作进行检查,无须再上传到远程数据中或是应用服务器那儿进行检查,这显然可以增加网络负荷;
NO.3:企业对像中介者(Business Object Broker):允许应用系统开发执行企业逻辑的企业对像,并且提供容错和负载平衡能力;
而Midas的状态也可以说是它最大的变动和最成功的地方,Midas提倡无状态,由此才有Object Pooling/Data Pooling /Connect Pooling /以及和MTS的更好结合(以后我会提到相关的)/容错/负载平衡/数据无关等等
Midas的通讯协议同样也包含了三种:TCP/IP,DCOM ,OLE EnterPrise(每种协议都要用到TCP/IP Socket and MS RPC////这就是常见的PRC不可用错误的出现原因,前边有如何解决这种问题的贴子,请参照 );
因此,我们可以将MIDAS与DCOM/COM or MTS or CORBA or RMI完全的区分开来;
一种是中介引擎,而另一种是可以充当中介软件的技术;
在Delphi中,无论是用那一种结构进行连接,或是使用好一种技术。MIDAS都将它们统一起来,比如接口通一(区别是有,但是它能够给一个统一的定义说明就会让我们理解起来方便了很多)比如它提供了统一执着口 Provider(Delphi5有用,而之前的如MIDAS2.0 or MIDAS1.0就用它来进行存取数据,现在已经将其封装到TClientDataSet中);所有这一切都是MIDAS所提供的,而对于使用DCOM or MTS or CORBA (现在还不曾有听说支持RMI,但相信以后会支持的)却是我们不用关心的,这儿的差别只是我们利用那种机制才可以更好的于MIDAS更好的结合;
MIDAS所提供的中介、功能等都是在完全理解了什么是MIDAS的基础上才可以正确的应用的;所以不在本贴所讨论的范围,但小小会尽量抽出时间来将MIDAS的重要功能以及MIDAS的应用整理后放到坛子上和大家一起交流的;