分布式计算所面临的挑战
分布式体系结构的核心是能够调用对象上的方法或者与驻留在不同进程中甚至有可能在不同计算机上的服务进行通信。看起来这似
乎不难,但是您必须解决非常多的问题:
l 如何实例化远程对象?
l 如果您希望调用现有对象上的方法,那么如何获取对该对象的引用?
l 网络协议仅传输字节流,而不传输对象。如何才能通过字节流调用方法?
l 安全性如何?是否每个人都能够调用远程对象上的方法?
l 大多数网络在本质上都不可靠。如果无法访问远程对象,会出现什么情况?如果远程对象收到方法调用,但是因网络问题而
无法发送响应,该怎么办?
l 调用远程对象比调用本地方法慢得多。您是否希望异步调用远程方法,以便在远程对象处理请求的同时可以继续在本地处
理?
问题不胜枚举。幸运的是,.NET Framework 中的功能解决了其中的大多数问题,使得开发人员在创建分布式应用程序时不必处理
太多的细枝末节。这些功能使得远程调用对于程序员几乎是透明的(至少在句法级别是如此)。但是,这种简化可能存在一定的欺
骗性,因为开发人员还必须了解远程通信的一些基本原理,才能写出强大而高效的分布式应用程序。分布式系统模式群集有助于开
发人员在实现分布式应用程序时作出明智的设计决策。
使
乎不难,但是您必须解决非常多的问题:
l 如何实例化远程对象?
l 如果您希望调用现有对象上的方法,那么如何获取对该对象的引用?
l 网络协议仅传输字节流,而不传输对象。如何才能通过字节流调用方法?
l 安全性如何?是否每个人都能够调用远程对象上的方法?
l 大多数网络在本质上都不可靠。如果无法访问远程对象,会出现什么情况?如果远程对象收到方法调用,但是因网络问题而
无法发送响应,该怎么办?
l 调用远程对象比调用本地方法慢得多。您是否希望异步调用远程方法,以便在远程对象处理请求的同时可以继续在本地处
理?
问题不胜枚举。幸运的是,.NET Framework 中的功能解决了其中的大多数问题,使得开发人员在创建分布式应用程序时不必处理
太多的细枝末节。这些功能使得远程调用对于程序员几乎是透明的(至少在句法级别是如此)。但是,这种简化可能存在一定的欺
骗性,因为开发人员还必须了解远程通信的一些基本原理,才能写出强大而高效的分布式应用程序。分布式系统模式群集有助于开
发人员在实现分布式应用程序时作出明智的设计决策。
使