在独立环境中,系统的功能调用,就是自然的直接调用,一个模块调用另一个模块,这个我们都能理解。但如果是在分布式环境下,涉及到系统之间的调用,那么问题就来了。
这个是我目前学习时接触到的概念又多,又混乱,又重叠的一个基础知识,网上的释义和帖子大多也不完整,有些简直的引人入坑….. 整整耗费了自己两个星期的时间,查阅比对资料,阅读程序,最终总结出来的成果如下,虽然可能也不完全正确,但是我相信至少在整体方向上是对的。剥去那各种各样的名词,理解真正的内涵。
一、系统间的相互调用
1.明确概念:
系统间的相互调用其实已经很熟悉了,也很容易理解。但是某本书上,把应用之间的远程调用,统称为RPC,从此开始了我的腥风血雨….RPC在不同的文章里代表了太多不同的意义….现在总结如下:RPC称为远程过程调用,可以认为是各应用之间调用的统称,通过网络在远程计算机上请求服务。当然RPC在不同的语境下还有很多其它含义–代表最传统的RPC,代表一种传统的WebService的风格(叫做RPC风格)。
所以,我们这里首先要明确一个概念:分布式系统的相互调用,即系统间跨网络的相互调用,并不一定要有一个统一名词(如果非要用一个词,那我会用RPC来表示,但一定要区分语境)。我们只需要知道,系统间调用,有多种多样的方式,并且,从最传统的调用方式起到现在,经历了无数演化,向着更快更轻的目标发展。
2.演进过程
系统间的相互调用,经过不断的发展出现了非常多的形式,总体来说可以大致分类如下:
1)RPC,OMG,DCOM,CORBA,socket,RMI,etc.
是的,又看到了RPC,这里的RPC是指一种古老的调用形式,Remote Procedure Call( RPC ) (based on operation, by calling function or method)。The first Web services tools were focused on RPC, However, it is sometimes criticized for not being loosely coupled, because it was often implemented by mapping serv