发表于: 2017-09-20 21:12:02
0 658
今天完成的事情:整理一下web Service REST RPC SOA等等这些概念之间的关系
我从我所理解的角度来讲一下。
首先WebService 有广义和狭义之分。广义的 WebService 包含了 RPC、REST、消息通讯等各种形式的远程通讯方式。而狭义的 WebService 特指以 SOAP 作为消息体的一种远程通讯方式,但即使是狭义的WebService,也不仅仅只有 RPC 一种风格的 API 接口,它也包括另一种消息通讯的方式的接口。但是狭义的 WebService 因为传输的数据臃肿,跨语言能力并没有它所标榜的那样好,因此现在大部分人都已经抛弃它而转向更轻量级的 RPC 通讯了。
Web Service
Web Service 也提出了好久了, 那么究竟什么是 Web Service ?
简单地说, 也就是服务器如何向客户端提供服务.
常用的方法有:
RPC 所谓的远程过程调用 (面向方法)
SOA 所谓的面向服务的架构(面向消息)
REST 所谓的 Representational state transfer (面向资源)
RPC
RPC 即远程过程调用, 很简单的概念, 像调用本地服务(方法)一样调用服务器的服务(方法).
通常的实现有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是传输数据的格式.
(如果你已经习惯于XML繁重的尖括号,你不妨可以尝试下更加轻型,高效,传输效率高的 JSON.)
一个简单的通信过程通常为:
Request
<?xml version="1.0"?>
<methodCall>
<methodName>member.get_username_by_id</methodName>
<params>
<param>
<value><i4>1</i4></value>
</param>
</params>
</methodCall>
Response
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>Zhu Tao</string></value>
</param>
</params>
</methodResponse>
向服务器发送一个过程调用的方法及其参数, 得到服务器返回的方法执行的结果.
在 XML-RPC 之后又有了更加强大的 SOAP , 用于一些比较复杂的系统之上.
REST
一句话概括:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
1. REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口);
2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。
3. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
GET 用来获取资源,
POST 用来新建资源(也可以用于更新资源),
PUT 用来更新资源,
DELETE 用来删除资源。
SOA
SOA的核心主体是服务。所谓“服务(Service)”,从业务角度而言,服务是一个可重复的经过标准封装的任务,例如: 检查帐号余额;开新帐户 等等…。SOA的目标是通过服务的流程化来实现业务的灵活性,所谓流程(Process)是由一系列相互关联的任务所组成,实现一个具体的业务功能。一个流程可以由一系列服务来实现。
RPC与REST的区别
如果你想只记住一点,那么就请记住 RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指资源.
你会发现,以动词为中心,意味着,当你要需要加入新功能时,你必须要添加更多的动词, 这时候服务器端需要实现 相应的动词(方法), 客户端需要知道这个新的动词并进行调用.
而以名词为中心, 假使我请求的是 hostname/friends/, 无论这个URI对应的服务怎么变化,客户端是无需 关注和更新的,而这种变化对客户端也是透明的.
参考文献:http://www.cnblogs.com/mindsbook/archive/2009/11/17/web_service_restvsrpc.html
https://www.zhihu.com/question/20079608
https://www.zhihu.com/question/30547012
https://www.zhihu.com/question/28557115
http://blog.vsharing.com/fengjicheng/A1059842.html
明天计划的事情:改方案
遇到的问题:水平不够......
收获:大致理清
评论