本文介绍HSF的一次调用过程。
HSF的一次调用过程是从服务消费方发起,经过网络抵达服务提供方,再将服务提供方的结果通过网络携带返回,最终返回给用户。该过程涉及多线程交互,同时也涉及HSF中的不同领域对象。
HSF的一次调用过程如下图所示:
过程 | 说明 |
---|---|
1 | 在客户端线程中将用户的请求参数即请求对象进行序列化,并将序列后的内容存放在请求通信的对象中。
说明 请求通信对象对应的是HSF协议,包括了请求ID等多个与请求对象无关的内容。
|
2 | 系统将请求通信对象递交给I/O线程,并在I/O线程中完成编码。 |
3 | 编码完成后,将内容传递到服务提供方的I/O线程。客户端线程会等待结果返回。 |
4 | 服务提供方的I/O线程接收到二进制内容,解码后生成通信请求对象,并将其递交给HSF服务端线程。 |
5 | 在HSF服务端线程完成反序列化还原成请求对象。 |
6 | 发起反射调用,并得到结果,即响应对象。 |
7 | 响应对象会在HSF服务端线程中完成序列化,并存储在通信响应对象中。 |
8 | HSF 服务端线程将通信响应对象递交给I/O线程,在I/O线程中完成编码。 |
9 | 服务提供方将I/O线程中完成编码,发送回服务消费方。 |
10 | 服务消费方收到二进制内容,在I/O线程中完成解码,生成响应通信对象,并唤醒客户端线程。 |
11 | 客户端线程根据响应通信对象中的内容进行反序列化,用户收到响应对象,一次远程调用结束。 |