ICE技术概论

来源:互联网 发布:三维重建软件有哪些 编辑:程序博客网 时间:2024/06/04 23:33
ICE概述
ICE属于RPC(Remote Proceture CallProtocol)的一种,是一种面向对象的中间件平台。ICE为构建面向对象的客户-服务器应用提供了工具、API 和库支持。Ice 应用适合在异种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的。
ICE定义了一种接口定义语言Slice,该语言实现了不同语言之间的映射。服务器与客户端只需要使用Slice语言定义通信使用的接口和数组结构,然后通过ICE的工具编译可生成不同语言的接口和数据结构。例如,使用slice2cpp.exe可将Slice语言定义的接口和数据结构映射为C++语言的数据结构和接口。服务器与客户端可以将同一个接口定义文件映射为不同的语言,分别使用不同的语言进行开发。在Web应用中,服务器使用C++开发而客户端使用C#或Java开发的情况较多,使用ICE将会是一种不错的选择。目前ICE实现了与C++、Java、C#、PHP、Python、HTML等的映射。
ICE服务
ICE实现了一些服务,使得应用拥有一些特殊的能力:随需启动服务器、把代理分发给客户、分发异步事件、配置应用、分发应用补丁,等等。
IcePack
IcePack 允许注册服务器,进行自动启动:当客户发出请求时,服务器无需在运行, IcePack 会在第一个客户请求到达时,随需启动服务器。  
IcePack 支持部署描述符 (deployment descriptors) ,使得配置含有若干服务器的复杂应用变的很轻松。
IcePack 提供了一种简单的对象查找服务,客户可用来获取它们感兴趣的对象的代理。
IceBox
IceBox 是一种简单的应用服务器,可用于协调许多应用组件的启动和停止。应用组件可以作为动态库、而不是进程进行部署。
IceStorm
IceStorm 是一种发布-订阅服务,能够解除客户与服务器的耦合。在本质上, IceStorm充当的是事件分发交换机。发布者把事件发给这个服务,由它发给订阅者。这样,发布者发布的单个事件就可以发送给多个订阅者。事件按照主题进行分类,订阅者会指定它们感兴趣的主题。只有那些与订阅者感兴趣的主题相吻合的主题才会发给这个订阅者。这个服务允许我们指定服务质量标准, 让应用在可靠性和性能之间进行适当的折衷。
IcePatch
IcePatch 是一种软件修补服务。 服务器可以用它来轻松地把软件更新分发给客户。客户可以简单地连接到 IcePatch,请求获得特定应用的更新。这个服务会自动检查客户的软件的版本,并以一种压缩形式下载任何更新过的应用组件,从而节省带宽。你可以用 Glacier 服务来保护软件补丁,只让得到授权的客户下载软件补丁。
Glacier
Glacier 是 Ice 防火墙服务:它能让客户与服务器通过防火墙安全地进行通信,且又不牺牲安全性。 客户-服务器之间的通信数据使用公钥证书进行了完全的加密,并且是双向的。 Glacier 支持相互认证,以及安全的会话管理。
ICE开发过程
1、使用ICE接口定义语言定义接口和数据结构
2、将接口定义文件映射为服务器开发语言的接口类型
3、将接口定义文件映射为客户端开发语言的接口类型
4、在服务器端实现接口,并开发服务器与客户端
5、服务器运行流程:启动服务器-->注册接口-->启动服务-->等待客户端连接
6、客户端运行流程:启动客户端-->连接服务器-->获取接口代理-->调用接口


本文出自f_ty_45的博客,转载请保留此出处http://blog.csdn.net/f_ty_45/article/details/8946312

原创粉丝点击