漫画 | 历经40年,分布式通信太难了!

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

漫画 | 历经40年,分布式通信太难了!_第1张图片

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

漫画 | 历经40年,分布式通信太难了!_第2张图片

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

漫画 | 历经40年,分布式通信太难了!_第3张图片


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

漫画 | 历经40年,分布式通信太难了!_第4张图片

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

漫画 | 历经40年,分布式通信太难了!_第5张图片

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

漫画 | 历经40年,分布式通信太难了!_第6张图片

漫画 | 历经40年,分布式通信太难了!_第7张图片

张大胖觉得Stub和Skeleton真是两个古怪的名称!都叫Proxy(代理)多好!

客户端和Stub在同一个进程中,它把请求发给Stub。 

Stub通过网络和Skeleton通信,使用约定好的格式发送、接收请求。 

这样才对客户端隐藏了网络,就像是调用本地方法一样。

但是怎么生成他们两个呢?

漫画 | 历经40年,分布式通信太难了!_第8张图片

Java RMI看起来不错,但是张大胖也发现了弊端:

客户端和服务器端绑定很紧密,接口的任何改动都需要把新的Stub分发到客户端。

漫画 | 历经40年,分布式通信太难了!_第9张图片

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

告别了RPC,张大胖来到3楼。

漫画 | 历经40年,分布式通信太难了!_第10张图片

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

漫画 | 历经40年,分布式通信太难了!_第11张图片

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

漫画 | 历经40年,分布式通信太难了!_第12张图片

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

漫画 | 历经40年,分布式通信太难了!_第13张图片

一切都用XML来描述,这种感觉太好了!

可是,张大胖还是觉得少了点东西。

漫画 | 历经40年,分布式通信太难了!_第14张图片

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

漫画 | 历经40年,分布式通信太难了!_第15张图片

张大胖很喜欢User Service 的这个XML的接口描述文件,只要解析一下,就能得知接口的方法名,参数名。

正在看接口文件的时候,张大胖被三个人围住了。

漫画 | 历经40年,分布式通信太难了!_第16张图片

程序员可以用WSDL来描述一个服务的接口信息,然后把服务提供者的信息注册到UDDI当中,客户端可以通过SOAP协议来调用这个服务。 

张大胖看到这么文绉绉的名称,就觉得应该是各大公司牵头制定的,果不其然。

漫画 | 历经40年,分布式通信太难了!_第17张图片

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

漫画 | 历经40年,分布式通信太难了!_第18张图片

张大胖爬上了5楼

漫画 | 历经40年,分布式通信太难了!_第19张图片

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

漫画 | 历经40年,分布式通信太难了!_第20张图片

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

他打算继续上楼。

漫画 | 历经40年,分布式通信太难了!_第21张图片

漫画 | 历经40年,分布式通信太难了!_第22张图片

更多精彩技术漫画,尽在码农翻身

你可能感兴趣的:(java,linux,网络,http,webservice)