北京引流推广公司,网站建站与优化,三个字吉利好听的公司名称,有限责任公司是什么企业类型在Java RMI中要求所有的参数传递和返回类型是JAVA的基本类型或实现Serilizable的对象。串行化对象通过值传递#xff08;又名拷贝传递#xff09;#xff0c;而不是引用传递。这意味着在某一层中串行化对象的更新并不自动影响到其它的对象。 对于EJB对象而言#xff0c;它由… 在Java RMI中要求所有的参数传递和返回类型是JAVA的基本类型或实现Serilizable的对象。串行化对象通过值传递又名拷贝传递而不是引用传递。这意味着在某一层中串行化对象的更新并不自动影响到其它的对象。 对于EJB对象而言它由两个接口home接口和remote接口和一个类组成。容器会根据ejb规范来生成上面两个接口的类我们分别称为xxxEJBHome对象和xxxEjbObject对象。在较多的容器实现方案中xxxEJBHome对象使用了factory模式来创建xxxEjbObject对象xxxEjbObject对象则采用proxy模式作为xxxBean的代理类。在生成以上两个对象的同时容器会从部署文件中读取关于安全、事务、持久性等服务并在xxxEjbObject对象和xxxEJBHome对象中添加以上服务的代码。而且xxxEJBHome对象和xxxEjbObject对象都是分布式对象。在此我们只讨论xxxEjbObject对象。所谓分布式对象从本质上讲分为三个部分object serverskeletonstub。其中object server和skeleton位于服务器端而stub位于客户端。Object server负责实现业务逻辑skeleton负责marshal和unmarshal方法签名。 显然EJB的客户调用EJB的对象可以是任何对象包括EJB和一般的Java类甚至是用任何语言写的corba客户端。 从EJB的客户视角来看的话我们只能看到一个home接口、一个remote接口对于实体bean的话还可以看见一个主键类而bean类对客户是不可见的。但。。。对于remote接口中的方法调用实际上是多态的调用XXX_Stub类即XXX_Stub对象对客户具有可见性但这种可见性是透明的即客户不知道这种可见性的存在。由于XXX_Stub对象和Object Server实现了相同的接口并且Object server真正实现了业务逻辑。所以当在客户端调用XXX_Stub对象的方法时候XXX_Stub对象通过socket通信机制将方法签名传给XXX_Skeleton对象XXX_Skeleton对象再去委托Object server完成业务处理逻辑。因此Object server本身发生了改变。我们称XXX_Stub对象是Object Server对象的远程引用并认为当分布式对象作为参数传递的时候是通过引用传递的会产生副作用即改变参数对象只不过这种引用是远程引用。 来源http://wenku.baidu.com/view/942bb1ec0975f46527d3e1ba.html 转载于:https://www.cnblogs.com/zjstar12/archive/2012/02/14/2350484.html