晚上11点,张大胖回到家中

突然,周边的时空发生了奇怪的变化

一座叫“分布式通信”的大楼出现在面前

张大胖迟疑地进入了第一层的大厅

rexec 是Unix上的一个命令,能够执行远程计算机上的程序,算是分布式通信的一个雏形。可是,在21世纪的张大胖看来......

张大胖没有和他纠缠,直接上了2楼


张大胖觉得Stub和Skeleton真是两个古怪的名称!都叫Proxy(代理)多好!
客户端和Stub在同一个进程中,它把请求发给Stub。
Stub通过网络和Skeleton通信,使用约定好的格式发送、接收请求。
这样才对客户端隐藏了网络,就像是调用本地方法一样。
但是怎么生成他们两个呢?

Java RMI看起来不错,但是张大胖也发现了弊端:
客户端和服务器端绑定很紧密,接口的任何改动都需要把新的Stub分发到客户端。

张大胖觉得Java RMI是一种非常落后的RPC,自己项目用过的Dubbo比它好多了,虽然也有类似Stub和Skeleton这样的东西,但是隐藏了,可以在内存中动态生成了。
告别了RPC,张大胖来到3楼。

服务器端有个接口是getUser,需要提供的参数是用户ID, 用XML这么描述:

服务器端返回的数据,可以这么描述:

用XML表示请求和响应,就不用什么Stub和Skeleton了,直接用HTTP和XML就行。

一切都用XML来描述,这种感觉太好了!
可是,张大胖还是觉得少了点东西。

离开了XML-RPC,张大胖继续爬楼,来到了第4层

张大胖很喜欢User Service 的这个XML的接口描述文件,只要解析一下,就能得知接口的方法名,参数名。
正在看接口文件的时候,张大胖被三个人围住了。

程序员可以用WSDL来描述一个服务的接口信息,然后把服务提供者的信息注册到UDDI当中,客户端可以通过SOAP协议来调用这个服务。
张大胖看到这么文绉绉的名称,就觉得应该是各大公司牵头制定的,果不其然。

在4楼转了一圈就发现,虽然有各大公司站台,但这些WSDL, SOAP实在是太难用了。

张大胖爬上了5楼

从动词转到名词是个太大的跨越,张大胖一时理解不了

话虽这么说,可是张大胖觉得这种方式挺简单的,充分利用了HTTP的特性,比楼下的Web Service 清爽太多了。
他打算继续上楼。



更多精彩技术漫画,尽在码农翻身
张大胖在回家的路上意外进入了一栋名为“分布式通信”的神秘大楼。在这里,他体验了从远程过程调用(RPC)到现代RESTful API的发展历程,包括rexec、Java RMI、XML-RPC、SOAP及REST等技术。



2075

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



