【 tulaoshi.com - Delphi 】
关键字:COM、EJB、分布式组件
1、 概述 CORBA、.NET、Web Service、J2EE是分别是分布式软件体系架构的成就。J2EE在模型简洁方面优于CORBA,同时消除了.NET对一家公司的依赖,相对于Web Service技术它相对成熟因而在业界有着重要的地位。J2EE的核心就是EJB(EnterPrise Java Bean)-一种分布式组件。
EJB组件的客户端可以是Web方式的Applet,Jsp/Servlet,也可以是非Web方式的GUI客户。由于PC机的盛行GUI客户往往是基于Windows的。Delphi是windows下一个优秀的开发平台,Borland公司提供了Delphi到部署在BAS(Borland公司的EJB服务器)上的EJB访问的优雅解决方案(在客户端和服务器端同时使用CORBA),但却没有提供Delphi到部署在其他服务器上的EJB组件的解决方案。SUN公司开发了J2EE CAS COM Bridge解决了COM(Common Object Component,微软提出的组件模型)客户访问EJB组件的问题。Delphi完全支持COM技术,所以Delphi可以作为EJB的客户。本文集中探讨如何利用Delphi访问EJB组件。
J2EE CAS COM Bridge(后面简称为COM桥)是SUN公司提供的一个桥软件,通过它,能使用COM技术的任何一种开发工具开发的客户都可以顺利的访问J2EE服务器上的EJB组件。
如图1.1所示,J2EE CAS COM Bridge在客户应用地址空间启动JVM(Java虚拟机),COM桥提供把JVM包装成COM组件的外覆COM组件,客户使用这些外覆COM组件来访问JVM。从而客户做出一个COM调用时,COM桥使用JNI(Java Native Interface)把它转发到进程内JVM,JVM把这一调用发往服务程序(当访问J2EE服务器时使用RMI/IIOP协议来发送请求),即客户的调用最终变成了一个真正的Java调用,而中间实现这一转换的过程由COM桥来完成,无需开发者关心。在访问本地java对象和访问J2EE服务器都是同一原理。
由于JVM是在客户进程地址空间内部启动,所以我们可以单独控制它的运行参数,而不影响其它应用对JVM的访问。