部分参考自:https://www.cnblogs.com/SGSoft/archive/2007/05/02/734454.html
https://blog.csdn.net/liuxuezong/article/details/28925453
https://blog.csdn.net/qingen1/article/details/13052139
1 前言
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用(oneway);回调是一种双向调用模式(twoway),也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
2 常见知识
Client(客户端)
估计这个大家都非常清楚,通俗的讲就是一个请求的发起方。
Proxy(代理)
代理实际上就是远程服务驻在本地的一个代表,创建它时首先会和远程服务经行握手和状态确认等操作,Client所有的操作都是通过Proxy来办理的。代理又分为直接代理(已经知道服务端的位置及其他信息)和间接代理(不知道服务器在哪里,由Registry注册器告诉它地址等信息)。
Adapter(适配器)
Adapter是配置相当于服务单位(Servant)的管理者,它管理着每个请求该分配给哪一个服务单位。
Servant(服务单元)
它是服务的最小单位,一般是具体到 某个接口的实现。
Interface(接口)
ICE我们会经常提到了接口的实现,但是这个接口是谁定义的,这个时候我们不免要提到Slice(Specification Language for Ice),也就是ICE所使用的“语言”,正是有了这个“中间语言”,我们才可以做到支持各种编程语言,因为