web service概念:
根据w3c的定义,web服务(web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(api)所组成的,它们通过网络的远程服务器端,执行客户所提交服务的请求。简单的来说就是服务器端向客户端提供服务。
web service实现方式:
(1)远程过程调用(rpc)
rpc协议就是为了解决不同的客户端跨平台的访问服务器而产生的,最初的web service都是采用rpc部署,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 rpc不依赖于具体的网络传输协议,tcp、udp、http等都可以。由于存在各式各样的变换和细节差异,相应的rpc也派生出了各式远程过程通信协议。由于它的紧耦合性,未来将不会大有作为。
(2)面向服务架构(soa)
在服务导向架构中,通讯由消息驱动,而不再是某个动作(方法调用)。这种web服务也被称作面向消息的服务。
(3)表述性状态转移(rest)
rest的架构设计
rest(representational state transfer)是一种轻量级的web service架构风格,其实现和操作明显比soap和xml-rpc更为简洁,可以完全通过http协议实现,还可以利用缓存cache来提高响应速度,性能、效率和易用性上都优于soap协议。
rest架构遵循了crud原则,crud原则对于资源只需要四种行为:create(创建)、read(读取)、update(更新)和delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。
rest架构让人们真正理解我们的网络协议http本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应http协议提供的get、post、put和delete方法,因此rest把http对一个url资源的操作限制在get、post、put和delete这四个之内。这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
rest的设计准则
rest架构是针对web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。rest提出了如下设计准则:
网络上的所有事物都被抽象为资源(resource);
每个资源对应一个唯一的资源标识符(resource identifier);
通过通用的连接器接口(generic connector interface)对资源进行操作;
对资源的各种操作不会改变资源标识符;
所有的操作都是无状态的(stateless)。
使用rest架构
对于开发人员来说,关心的是如何使用rest架构,这里我们来简单谈谈这个问题。rest不仅仅是一种崭新的架构,它带来的更是一种全新的web开发过程中的思维方式:通过url来设计系统结构。rest是一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。rest架构有很多成功案例,如facebook,yahoo等
更多信息请查看IT技术专栏