晚上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 清爽太多了。
他打算继续上楼。
更多精彩技术漫画,尽在码农翻身