ICE中间件学习笔记 基础理论篇

ICE中间件学习笔记 基础理论篇

1、“最多一次”语义

    idempotent操作,如:x=1,执行多次对结果无影响,反之如:x++,执行多次对结果有影响。Ice的内在机制保证了在第一次确定失败时才会进行重试,将操作标记为idempotent,将使Ice runtime更积极的进行错误恢复。


2、同步方法调用

    缺省情况下,客户端将使用同步方式进行远程过程调用,期间客户端线程被挂起,并在调用结束时恢复。


4、异步方法调用

    Ice支持异步的方法调用(AMI),客户端除了传递通常的参数外,还需传递一个回调对象,当操作完成时,Ice runtime会调用回调对象的方法。

注意:服务器的servant并不能区分客户端是同步调用还是异步调用。


5、异步方法分派(AMD)

   是AMI的服务器等价物,缺省方式是同步分派,服务器run time向上调用服务器应用代码,当操作在执行时,一个执行线程会被“束缚”在服务器中,直到操作完成才会释放。如果调用的客户端数量众多,服务器将无法承受。

    而异步方法分派,则是runtime仅给应用代码一个通知,应用并不会立即处理该操作,当操作的结果可用时,应用发起API调用,告诉Ice runtime最后返回客户端。

注意:客户端并不能区分服务器执行的是同步还是异步分派。


6、单向方法调用

    具有“尽力”语义,客户端runtime会把调用交给本地传输机制,实际的调用由操作系统异步发送。单向调用是不可靠的,由参数错误、对象不存在等引起的问题并不会反馈到客户端。

     对服务器而言无法区分是单向调用还是双向调用。只有当目标对象提供了面向流的传输机制时(TCP/IP或SSL)才能使用单向调用。

注意:即使单向操作是在面向流的机制中发送的,也没有办法保证服务器的调用次序是预想中的,因为服务器是异步调用,线程间的调度是无序的。


7、成批的单向调用

    当客户端发起数量众多的单向调用时,带给服务器的开销是巨大的,runtime将为每一个调用在用户模式/内核模式中切换。成批单向调用允许客户端累积一定数量的单向调用后,调用API通知runtime进行发送,从而形成一个通信包发送给服务器,同时服务器可保证是按调用顺序依次执行。


8、数据报调用

    与第6条类似,包括不可靠特性和无序特性,特别的,数据包采用UDP而单向调用采用TCP/IP。带来的问题是丢包的可能性,适用于LAN网及对及时性要求比可靠性高的intel网。


9、成批的数据报调用

    通过缓冲机制,客户端在累积了一定量时调用API刷出,需注意的是包大小尽量比网络PDU限制小,否则会产生UDP分包而加大丢包概率,同时可能出现部分丢包的情况,成批数据报调用在服务器端将顺序执行。


10、ICE自有服务(好像有些老,随进度更新吧)

IcePack(定位服务):随需启动服务器,部署描述符,简单的对象查找服务

IceBox(简单应用服务):协调应用组件启动或停止,应用服务器可作为动态库而不是进程部署。

IceStorm(发布-订阅服务):降低客户端与服务端的耦合,大量订阅的场景中很有用(如证券报价应用),同时可作为联盟应用,多个服务器实例运行在不同机器上,实现负载均衡。

IcePatch(软件补丁服务):客户端连接后请求获得特定应用的更新,服务器以压缩形式下发,节省带宽。

Glacier(防火墙服务):客户端-服务端双方向公钥加密。

Freeze(对象持久服务):内建的对象持久服务,采用高性能数据库BerkeleyDB实现存储。

IceGrid(网格):实现服务集群。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 ICE 概述 网络通信引擎(Internet Communications Engine, Ice)是由 ZeroC的分布式系统开发专家实 现的一种高性能、面向对象的中间件平台。它号称标准统一,开源,跨平台,跨语言,分布式, 安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯屏蔽。因此相比 CORBA,DCOM,SOAP,J2EE等的中间件技术,自然是集众多优点于一身,而却没有他们的 缺点。 Ice提供了完善的分布式系统解决方案,适合所有的异构网络环境:客户端和服务器端可以 用不同的程序语言来实现,可以运行在不同的操作系统和不同的体系结构的机器上,使用不同 的网络通信技术(TCP/UDP,SSL或通过插件功能扩展协议)。Ice也提供了客户端和服务器端 的完全分离,客户端不需要知道服务器的实现过程和具体位置。Ice采用软总线的机制,使得在 任何情况下、采用任何语言开发的软件只要符合接口规范的定义,均能集成到分布式环境中去。 Ice面向对象,可以将所有应用看作是对象及相关操作的集合,构建在 Ice之上的分布式系统的 对象的获取只取决于网络的通畅性和获取服务对象特征的准确程度,而与对象的位置以及对象 所处的设备环境无关。 Ice提供了简单的对象模型和类型系统,精简而强大的运行时 API,简单的语言映射,紧凑 高效并可扩展的协议,丰富的客户端调用和服务器端分派方式,完善的安全解决方案,大量高 效而实用的服务和工具。基于这些,Ice特别适合对技术和性能要求都很高的分布式系统开发。 由于这些原因,现在 Ice已经被很多大公司采用,作为安全、伸缩性强的底层通信平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值