客户机——分配器——服务器
当一个软件系统使用分布在网络中的服务器时,它就必须提供一种用来相互通信的手段。通常通过运用现有的通信设备,组件间的连接在发生通信前已经被建立。然而,组件的核心功能应该与通信机制的细节相分离。客户机不需要知道服务器的位置,这样就可以动态地改变服务器的位置,并提供针对网络或服务器失效的恢复能力。
结构
客户机的任务是去执行特殊领域的任务。为了执行处理任务,客户机访问由服务器提供的操作。在发送请求给服务器之前,客户机向分配器请求信道。客户机利用这个信道同服务器通信。
服务器为客户机提供一组操作。它既可以注册自身,也可以通过其名字和地址向分配器进行注册。一个服务器组件可以与客户机位于同一台计算机,也可以位于网络上某个节点处。
分配器提供在客户机和服务器之间建立通信信道的功能。要实现这一点,需要取出服务器组件的名字并将这个名字映射成服务器组件的物理地址。分配器使用现有的通信机制为服务器建立通信链路并将通信句柄返回给客户机。如果分配器无法启动与被请求服务器间的通信链路,则它将通知客户机它所遇到的错误。
实现
1)将应用分成服务器和客户机两部分。
2)确定需要哪些通信设备。
3)指定组件间的交互协议。
4)确定如何命名服务器。
5)设计和实现分配器。
优点
1)服务器的可交换性。
2)位置和迁移透明性。
3)重新配置。
4)容错性。
不足
1)由间接方法和显式连接建立而带来的低效率。
2)对分配器组件接口改变的敏感性。