facade模式询问

对于类似ejb的组件,sun的标准架构中,推崇一种facade模式,来做调用,那么是不是说facade类是部署在和类似ejb的组件在一个服务器上?这样才能减少网络消耗。
那么是不是说,如果对ejb做分布式,部署在不同的服务器上,facade是不是就不能达到减少网络负载的作用?因为在facade中也是多个远程调用,只有在facade和ejb部署在同一服务器,并且和web部署在不同的服务器中时才能起到效果?

没人知道吗?

?

私下觉得
facade只是把bussiness logic的接口变得粗粒,以减少bussiness function的调用,同时封装逻辑.

所以,不管web tier是分离在别的server上还是和中间层在一个server上.facade都是非常重要的模式.它和dao或者现在称之为eao的模式一样,使用非常的广泛.在sun blue print上是核心模式.并且也是从ejb2.x到ejb3.0过程中存活下来的少数几个模式之一.

不知道是不是回答了你的问题:P

但是在SUN的标准文档中写的是,减少网络开销,也就是同Bussiness Bean(EJB)部署在一台机器上(或者几台机器),这样减少网络开销。
PS:另一个问题,如果是EJB分别部署在一个局域网中互相访问的效率是不是也比较高呢?
那么如果连EJB都做分布式,也就是通过远程接口调用,是不是就没有必要用facade了?当然这是个极端情况,也就是每个EJB都做分布式,当然这是不现实的,那么对于sun的blue print是不是也就是建立在ejb部分做分布式的前提下?
我现在基本明白了一点了,主要没有搞清楚在实际中,EJB或者bussiness bean是顶多部署在几台机器上,所以加一层还是会减少很多的网络开销的。

楼主,

实际上,分布的系统开销都是很大的.开销不仅在网络传输,还有为传输做的动作譬如线性和解线性.

sun的blueprint的core pattern只是些经常用pattern的总结.没有什么前提的.