EJB2.0中什么时候用local interface,什么时候用remote interface
local interface是EJB2.0的新特性,它让你无需反复的网络通信
就可以存取你的EJB组件。它也让你去传递非可序列化参数,非常
顺手。因此remote interface的价值是什么?好,它实际上不是一
个有价值的东东,除非:
1.你需要远程存取你的系统(就是说从一个远程web层),或者
2.你试着去单独测试你的EJB组件,并且需要从一个独立的
客户端做试验来存取它们。
local interface和remote interface的问题是代码有一点点区别。
local interface有不同的接口名,不使用portableRemoteobject.
narrow()并且也没有RemoteException抛出。因为这个,你需要重新
写客户端代码来从两种接口之间切换。这是通过编程调节性能带来
的不幸结果。为了限制你需要的记录的量,你需要在你编码之前决定
你的bean的客户端是本地的还是远程的。举个例子,如果你在建设
一个基于web的系统,那么你应该决定你的系统是一个在一个process
中的完整的J2EE应用,或者你的web层是否从你的EJB层分离开来
成为一个独立的process。
最后说一点,如果你从一个非常远程的客户端连接你的EJB
deployment(比如远程用户下载的applet或application),那么
考虑用基于XML的web service来表现你的EJB系统,而不是用
remote interface。