分布式对象设计第一定律:不要分布式使用对象。
1. 性能的问题:进程内的调用非常快,两个独立进程间的过程调用慢了一个数量级,在不同机器间运行过程又要慢一两个数量级。异步的、基于消息的处理方式可能比同步的、基于RPC的处理方式更好!
2. 接口的问题:远程使用的对象接口与在同一个进程内本地使用的对象接口不一样,前者最好是细粒度接口,而后者则应该是粗粒度接口,因为后者不是为了灵活性和可扩展性而是为了减少方法调用的次数而设计的接口。可以在一个进程内使用细粒度对象进行设计,而在分布式边界上使用粗粒度对象,充当细粒度对象的外观。
3. 安全的问题:基于RPC的分布组件接口存在安全隐患,而基于XML的SOAP接口则可以使建立在不同平台上的系统实现更安全可靠的相互通信,但是把所有传输数据转化为XML将会增加可观的开销。
转载于:https://www.cnblogs.com/photogis/archive/2004/11/02/59512.html