当前位置:文档之家› ICE协议

ICE协议

ICE采用的网络协议有TCP、UDP以及SSL三种。ICE 是中间件平台。

Oneway(单向调用):客户端只需将调用注册到本地传输缓冲区(Local Transport Buffers)后就立即返回,不会等待调用结果的返回,不对调用结果负责。

Twoway(双向调用):最通用的模式,同步方法调用模式,只能用TCP或SSL协议。

Datagram(数据报):类似于Oneway调用,不同的是Datagram调用只能采用UDP协议而且只能调用无返回值和无输出参数的方法。

BatchOneway(批量单向调用):先将调用存在调用缓冲区里面,到达一定限额后自动批量发送所有请求(也可手动刷除缓冲区)。

BatchDatagram(批量数据报):与上类似

不同的调用模式其实对应着不动的业务,对于大部分的有返回值的或需要实时响应的方法,我们可能都采用Twoway方式调用,对于一些无需返回值或者不依赖返回值的业务,我们可以用Oneway或者BatchOneway方式,例如消息通知;剩下的Datagram和BatchDatagram方式一般用在无返回值且不做可靠性检查的业务上,例如日志。

1个关键的概念:数据的序列化和反序列化。

ICE的核心部份,提供了客户端与服务端的网络连接等核心通信功能,以及其它的网络通信功能的实现及可能的问题的处理,让我们在编写应用代码的时候不必要去关注这一块,而专注于应用功能的实现。

ICE主要就是各种语言之间的转换。

ice协议主要有两部分:一个是编码规则,另一个是状态机。双向连接的特性使得ice能穿越防火墙,NAT边界,还支持压缩,在低带宽链接上很有用

ICE的几个有用组件:

Glacier是Ice防火墙服务:它能让客户与服务器通过防火墙安全地进行

通信,且又不牺牲安全性。客户-服务器之间的通信数据使用公钥证书进

行了完全的加密,并且是双向的。Glacier支持相互认证,以及安全的会话

管理

IcePatch是一种软件修补服务。你可以用它来轻松地把软件更新分发给

客户。客户可以简单地连接到IcePatch,请求获得特定应用的更新。这个服

务会自动检查客户的软件的版本,并以一种压缩形式下载任何更新过的应

用组件,从而节省带宽。你可以用Glacier服务来保护软件补丁,只让得到

授权的客户下载软件补丁。

IceStrom类似于组播。

IceStorm是一种发布-订阅服务,能够解除客户与服务器的耦合。在本

质上,IceStorm充当的是事件分发交换机。发布者把事件发给这个服务,

由它发给订阅者。这样,发布者发布的单个事件就可以发送给多个订阅

者。事件按照主题进行分类,订阅者会指定它们感兴趣的主题。只有那些

与订阅者感兴趣的主题相吻合的主题才会发给这个订阅者。这个服务允许

你指定服务质量标准,让应用在可靠性和性能之间进行适当的折衷。

如果你需要把信息分发给大量应用组件,IceStorm就会特别有用(一个

典型的例子是,拥有大量订阅者的证券报价应用)。IceStorm能解除信息的

发布者与订阅者的耦合,并负责重新分发已发布的信息。此外,IceStorm

还可以作为联盟(federated)服务运行,也就是说,服务的多个实例可以

在不同的机器上运行,使处理负载分摊到许多CPU上。

IceBox是一种简单的应用服务器,可用于协调许多应用组件的启动和停

止。应用组件可以作为动态库、而不是进程进行部署。例如,你可以在单

个Java虚拟机中运行若干应用组件,而无需使用多个拥有自己的虚拟机的

进程,从而减轻整个系统的负担。

Ice只有1个层次最深的对象,其他都是对象上的facts,使用标识符来标识该对象。

相关主题