在上一篇博客中我们提到过,OpenStack每个项目内部的服务进程之间是通过消息总线来通讯的,而在各个项目之间则是通过RESTful API来进行通讯的,在这一篇博客中,我们就来详细的讨论一下OpenStack各个项目之间的通讯。
一、什么是RESTful
RESTful是目前最流行的一种互联网软件架构。REST(Representational State Transfer,表述性状态转移),如果一个架构符合REST原则,就称它为RESTful架构。
RESTful架构的核心概念就是“资源”,在RESTful的世界里,网络上的所有东西都是资源,比如一段文本,一张图片都可以看作是资源。每一个资源都对应着一个特定的URI(统一资源定位符)并用它进行标记。
每一个资源都有多种表现形式,我们上网的过程,就是调用资源的URI,获取它不同表现形式的过程。也就是说,服务器保存了资源的各种表现形式,客户端可以使用HTTP的几个基本操作,包括GET、POST、PUT等使服务端上的资源发生“状态转化”,这就是为什么叫做“表述性状态转移”。
OpenStack各个项目都提供了RESTful架构的API作为对外提供的接口,也就是说,OpenStack定义了很多的资源,并实现了针对这些资源的各种操作函数。OpenStack的API服务进程接收到客户端的HTTP请求时,一个所谓的”路由“模块就会将请求的URL转化成相应的资源,并路由到合适的操作函数上。
我们以nova l