Vik*_*dia 38 ejb java-ee ejb-3.0
我想知道为什么我们需要为EJB 3.0会话bean单独的远程和本地接口.我猜大多数时候他们都会定义相同的合同.为什么我不能有一个通用接口,在我的Bean中我应该只能说我希望远程和/或本地访问这个bean.
谢谢Vikas
djn*_*jna 12
我不同意在设计时远程和本地应该被视为平凡的互换.
首先,远程调用存在开销,因此在设计远程接口时,需要仔细考虑是否正确的粒度和参数大小.因此,作为一名设计师,提醒这将是相对昂贵的.
此外,鉴于远程接口参数是通过值传递的,并且本地接口参数是通过引用传递的,因此两种情况之间存在基本的语义差异,因此您可能选择以不同方式设计两个接口.
"位置透明度"的概念是一种危险的反模式.您的设计绝对需要知道它是在进行本地呼叫还是远程呼叫,原因有很多(错误处理和性能最明显).
远程EJB接口与其本地对应接口不同,因为异常签名需要不同以容纳仅在远程调用上发生的与网络相关的错误.将远程处理行李缠绕到Local接口(如EJB 1中的情况)会使代码变得非常糟糕.EJB 2引入了单独的本地接口,以简化始终本地的EJB的编程.
| 归档时间: |
|
| 查看次数: |
23827 次 |
| 最近记录: |