问:高性能和高伸缩的关系?
答:两者是“二律相背”的关系。高性能通意味着降低伸缩性。高伸缩就意味着会降低性能。
问:何时需要分布式?
答:下面几种情况:
1。和异架系统集成,如在没有源码的情况下修改旧有系统。J2EE和.NET应用集成。
2。对安全性有很高的要求,不允许客户端修改应用程序的任何一部分。
3。业务逻辑集中管理放在App Server上。
4。伸缩特别重要,要支持很多的客户端访问。性能不是最关心的,如大型B2C网站。
问:设计分布式组件,有什么考量?
答:1。大粒度的API,尽量减少数据传输的次数的大小。
2。尽量使用statless的对象。这样不但减少了server的内存占用,而且还能支持load balancing.
3。远程对象不是传统的OO对象,所以不要把桌面应用程序的OO原则带到分布式设计中来。
问:为什么不能用传统的OO设计?
答:这是因为:
1。Xml Web Service不能保存对象的状态。
2。Xml Web Service返回的是Xml,不是Object。
3。远程对象一般不能引发事件,也不能双向传输数据。