服务设计模式-客户端与服务之间的交互(请求/响应模式)

来源:互联网 发布:dcs编程教程 编辑:程序博客网 时间:2024/05/13 15:25

交互方式:客户端与Web服务进行通信的最基本方式就是通过点对点连接

交互模式:

模式名称描述请求/响应模式当服务接收到请求时,就开始处理,并通过同一个客户端连接来返回结果请求/确认模式当服务接收到请求时,先将请求转发至一个后台进程,并返回一个确认消息给客户端,该确认消息中包含一个唯一的请求标识符(方便客户端获取处理结果)媒体类型协商模式允许客户端在HTTP请求头中指定一种或多种媒体类型首选项,将请求发送到服务之后,服务能够按照预设的格式(JSON,XML等等)生成响应并返回链接服务模式只发布少数几个根Web服务地址,并在响应中包含相关服务地址,客户端通过解析响应,能够发现后续服务的URI

请求/响应模式:

适用范围:处理请求和返回响应平均时间比较短暂,客户端也能接受响应丢失的情况,例如:天气预报,获取当期显示时间等

考虑因素:

1.时间耦合:在请求/响应模式下,客户端假设服务接收到请求总能完成处理,处理完成也总能返回响应,但是如果服务所在的系统奔溃了或大并发导致系统资源耗尽请求超时或者维护停机了等等人为的,非人为的因素导致客户端请求被拒绝。这种情况就突出了请求/响应模式时间耦合或时间依赖的影响,因为必须立即处理请求并无延迟的返回响应,所以时间耦合度高。在可用性和可伸缩性方面可以考虑用请求/确认/客户端轮询或请求/确认/回调之类的模式加以解决。

2.客户端阻塞

默认情况下请求/响应模式的客户端会阻塞,等待服务响应。使用异步处理器客户端就能解决这个问题,这种方式能让客户端通过另外一个线程来分发请求和接收响应,该线程独立于主客户端线程。

3.中介

请求/响应模式设计客户端和服务之间的点对点连接,除此之外,二者之间还存在各种中介。例如,可用代理服务器缓存客户端请求资源,当请求通过代理时,代理会检查请求的数据是否在其缓存中,有则直接返回。防火墙也是一种中介,用于阻止或过滤网络流量,检查客户端证书(如果客户端不具备指定证书,则阻塞请求)。

4.请求/响应模式与RPC

请求/响应模式与RPC(远程过程调用)虽然某些方面相似,但是存在一些重要差别。RPC技术调用完远程过程,客户端会等待响应。而请求/响应模式则可以利用异步处理器。


0 0