Recap
Last week, we talked about
🞑Data Replication.
🞑Distributed Transactions.
🞑Distributed Database Management Systems (DDBMS).
2
Today, let’s talk about
◻Server-client exchange protocols
◻Remote Invocation
◻Remote Procedural Call
◻Remote Method Invocation
◻Touch on REST and SOAP
3
Three styles of Server-Client Exchange Protocols

这张表格展示了服务器-客户端(Server-Client)交换协议的三种不同风格,详细解释了每种协议中客户端与服务器之间消息的交互方式。以下是对这三种风格的详细解读:
表格内容简介
- Name:这一列表示协议的类型。
- Messages sent by:这一列说明了在每种协议中,客户端和服务器分别发送了哪些消息。
三种服务器-客户端交换协议风格
- R(Request):
- 客户端发送请求(Request):
- 在这种风格下,**客户端(Client)向服务器(Server)**发送一个请求。
- 服务器在收到请求后执行相关操作,并返回一个结果给客户端。
- 消息交互流程:
- 客户端发送 请求消息。
- 特点:
- 这种协议是最简单的,客户端只需要发送请求,而服务器处理后返回相应结果。
- 适合那些不需要复杂确认的简单查询操作,比如获取一些静态信息。
- RR(Request-Reply):
- 客户端发送请求,服务器回复响应(Reply):
- 在这种风格下,客户端发送一个请求,服务器接收到请求后处理,并返回一个**响应(Reply)**给客户端。
- 消息交互流程:
- 客户端发送 请求消息。
- 服务器在收到请求后,执行操作并发送回复消息。
- 特点:
- 请求-响应协议适用于需要确认服务器已经收到并处理请求的场景。
- 在这种模式下,客户端可以确保服务器已经成功地处理了它的请求。
- 这种方式广泛应用于需要双向确认的通信场景,例如用户登录验证或数据库查询等操作。
- RRA(Request-Reply-Acknowledge):
- 客户端发送请求,服务器回复,客户端确认响应(Acknowledge):
- 在这种风格下,客户端首先发送一个请求,服务器收到请求后进行处理并返回一个响应。接下来,客户端会在收到响应后发送一个**确认(Acknowledge)**消息,表示它已经成功接收并理解了服务器的响应。
- 消息交互流程:
- 客户端发送 请求消息。
- 服务器收到请求后,执行操作并发送回复消息。
- 客户端收到服务器的回复后,发送一个确认消息,表示收到并处理了服务器的回复。
- 特点:
- 请求-响应-确认协议用于需要确保通信过程中的每一步都成功完成的场景。每一方都需要对其收到的消息进行确认。
- 这种模式增加了一层安全性和可靠性,因为每个步骤都有确认消息,确保不会因为丢包或网络问题导致信息缺失。
- 适合那些需要高可靠性的系统,例如金融交易系统或重要数据的更新场景。
总结
- R(Request)协议:简单的请求,客户端发送请求即可,适合无需确认的场景。
- RR(Request-Reply)协议:客户端发送请求,服务器返回响应,用于确保服务器成功处理请求。
- RRA(Request-Reply-Acknowledge)协议:客户端发送请求,服务器返回响应,客户端再确认服务器的响应,用于确保整个通信过程可靠无误,适合对可靠性要求极高的应用场景。
不同的协议风格适用于不同的场景,依据实际应用需求的复杂程度、可靠性要求和确认机制的需求选择适当的协议。
4
Three styles of Server-Client Exchange Protocols

◻R: no value needs to be returned from server - no confirmation required.