yadan
Jute User
发贴: 226
积分: 30
|
于 2003-06-19 10:23
#3: 我的GUI应用程序连接服务器的方式是用EJB的方式获取远程对象,通过session bean(甚至实体bean)和服务器交互。我想这是一种糟糕的形式,需要在网络间传递大量对象。但是EJB的远程调用方式封装了双方传输协议,如果不用EJB,写socket,rmi编码工作量可能要大很多,是不是?还有,我不知道我下面这样的机制能不能行的通:
public interface User extends java.io.Serializable { public long getID(); }
public class EJBUser implements User { public long getID() { //get DataSource, get connection, get user } }
public interface UserManager { public User createUser(); }
public class EJBUserManager implements UserManager { public User createUser() { //获取一个session bean,在服务器端执行创建一个newuser(注意) return newuser; } }
上面这些类在服务器端和远程GUI程序都有(否则不能编译)。在GUI程序调用 User newuser = getUserManager().createUser(); getUserManager()返回一个EJBUserManager对象,调用EJBUserManager的createUser()方法, 这个方法先获取一个session bean,在服务器端执行session bean的一个方法,进行数据库操作,并返回一个newuser。 由于User接口实现了Serializable接口,远程的User对象可以传递到客户端,GUI程序就得到这个对象。 对这种方式,1我不知道能否行得通,2如果行的通,感觉这种方式很别扭,不知道怎么改进。
你们说session bean不要实现业务逻辑,我觉得很有道理。但是在这种远程GUI需要和服务器端进行对象交互和传递时,不用ejb用什么方式更好?
|