1. Forwarder-Receiver、Client-Dispatcher、Server-Activator 在多层网络服务中的组合方式?
请说明 Forwarder-Receiver、Client-Dispatcher、Server-Activator 在多层网络服务中的组合方式?
- Forwarder-Receiver 模式
- Client-Dispatcher 模式
- Server-Activator 模式
POSA 中的网络对象模式用于把"业务逻辑"与"网络通信"分离:
- Forwarder-Receiver(转发-接收):把通信功能封装为 Forwarder(发送端)与 Receiver(接收端),屏蔽底层 socket 与协议细节,使业务对象不直接处理网络;Forwarder 负责发起与发送,Receiver 负责接收与分发。
- Client-Dispatcher(客户端-分发器):引入 Dispatcher 作为中间转发者,客户端通过 Dispatcher 定位并调用服务端,Dispatcher 负责服务注册、路由与转发,实现客户端的查找与透明通信。
- Server-Activator(服务器-激活器):服务端在启动时注册服务,激活器(Activator)在收到请求时按需激活/调度服务实例,实现服务端服务的创建与激活。 组合方式:在多层网络服务中,客户端用 Forwarder 封装发送、经 Dispatcher 找到服务端;服务端用 Server-Activator 激活服务,服务实例用 Receiver 接收请求。三者组合:Client-Dispatcher 负责"客户端到服务端的定位与路由",Forwarder-Receiver 负责"消息的发送与接收/协议转换",Server-Activator 负责"服务端对象的激活与生命周期"。即 Dispatcher 是路由层,Forwarder/Receiver 是通信层,Activator 是服务端激活层,分层组合实现"关注点分离"的分布式通信。
这三个模式分别解决"客户端发现服务端(Dispatcher)、消息收发(Forwarder/Receiver)、服务端激活(Activator)",组合起来覆盖分布式通信的完整链路,强调把网络与业务分离。