基于Web构建分布式系统:以Restbucks咖啡店为例
1. Web服务级别概述
在构建分布式系统时,操作通常是通过将操作名称和参数插入URI,然后将该URI传输到远程服务(通常通过HTTP GET)来实现的。如今,许多自称“RESTful”的服务实际上往往只是一级服务。一级服务虽有一定用处,但并不严格遵循RESTful约束,甚至可能因使用不应有副作用的动词(如GET)而意外破坏数据。
二级服务则托管众多可通过URI寻址的资源,支持在每个公开资源上使用多种HTTP动词,像创建、读取、更新和删除(CRUD)服务就属于此类,亚马逊的S3存储系统就是一个典型例子。这类服务利用HTTP动词和状态码来协调交互,体现了对Web健壮性的利用。
三级服务是最具Web感知的服务级别,支持“超媒体作为应用状态引擎”的概念。即资源表示中包含指向其他可能令消费者感兴趣的资源的URI链接,引导消费者在资源间流转,从而引发应用状态的转变。
2. Restbucks咖啡店简介
为了以更易懂的场景描述基于Web的分布式系统,我们选择了一家名为Restbucks的咖啡店作为业务领域。其灵感源于Gregor Hohpe对星巴克咖啡店运作的精彩观察。Restbucks从一家小咖啡店起步,逐渐发展成为全球企业,在发展过程中,其对资源的高效组织和利用需求不断增加,而我们将展示如何运用Web技术和模式来支持其各个阶段的发展。
Restbucks的核心服务和所公开的资源是讨论的重点。涉及的角色包括顾客、收银员、咖啡师、经理和供应商等,在示例中,这些角色由程序通过Web交互来驱动Restbucks服务的业务流程。交互通过HTTP进行,采用常见的Web格式,这里我
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



