Ice-Internet Communications Engine,是一种面向对象、跨平台、多语言的通信中间件。支持C++、Java、C#、VB、Python等,客户和服务器可以用不同的语言,可以运行在不同的操作系统和机器架构上,支持TCP/UDP。
客户与服务器都由这样一些代码混合而成:应用程序代码,库代码,根据Slice定义生成的代码:
a)Ice核心为远地通信提供了客户端与服务器端运行时的支持。
b)Ice核心的通用部分,也就是与Slice定义的特定类型无关的部分,可以通过Ice API访问。
c)代理代码是根据Slice的定义生成的,因此与Slice定义的对象很热数据的类型是对应的。
1.3.4)Ice协议
Ice提供了一种RPC协议,既可以把TCP/IP,也可以把UDP用作底层传输机制。此外,Ice还允许把SSL用作传输机制,让客户与服务器之间的通信进行加密。
Ice协议定义了:消息类型(请求or答复),协议状态机,编码规则,消息内容等等。
1.3.5)对象持久
Ice拥有内建的对象持久服务,叫做Freeze。Freeze能够让我们在数据库中存储对象状态:先用Slice定义某个对象要存储的状态,Freeze编译器会生成代码,用
据库中存储和取回对象状态
ICE有以下几部分组成:
Slice
ICE的规范语言,跟CORBA的IDL(Interface Definition Language)等价的东西。Slice建立了客户端和服务器端共同遵守的契约:接口。Slice也用来描述对象持久数据。
Slice Compilers
Slice的规范语言可以影射成多种编程语言。目前ICE支持C++,Java,Python,PHP,C#和VB的语言影射。Ice的客户端和服务器端协同工作,而不会知道分别实现的是何种编程语言。
Ice
Ice的核心库。在众多的特性当中,Ice核心库通过一个高效的协议(包含TCP/UDP层上协议压缩)来管理所有的通信任务,为多线程服务器提供了一个灵活的线程池,并且有特别的功能来支持上百万对象的可扩展性。
IceUtil
一些常用的功能函数集。例如Unicode处理和多线程编程,是用C++写成。 IceBox
一个专用于ICE应用的应用服务器。ICEBox可以方便地运行和管理动态加载、共享库或java类的形式Ice的服务。
IcePack
Ic的定位服务器,用于在使用简介绑定时把符号性的适配器名解析为协议-地址对。
一个成熟的服务激活和部署工具。IcePack能大大简化在异构网络之间部署应用的复杂性。只要简单的编写XML格式的一个部署描述文件,IcePack就能自动处理剩下的工作。
IceBox
一种简单的应用服务器,可用于协调许多应用组件的启动和停止。应用组件可以作为动态库,而不是进程进行部署。
IceStorm
IceStorm是一种发布-订阅服务,能够解除客户与服务器之间的耦合。本质上它充当事件分发交换机。发布者将事件发给他,由他发给订阅者。
一个支持联盟的消息服务。和大多数的其他消息和事件服务相比,IceStorm支持有类型的事件,这意味着通过联盟广播一个消息和调用一个接口上的一个方法一样容易。
IcePatch
一个软件修补和分发的服务。为确保运行的软件是最新的版本,要经常更新软件,这是一件乏味的工作。
IcePatch自动更新在某个目录层次下的文件。只有需要更新的文件会下作到客户端,为了快速的下载更新,IcePatch使用的高效的压缩算法。
Freeze
Freeze提供了Ice Servants对象的自动持久性。通过几行代码,一个应用就可以生成一个高度可扩展的逐出器(evictor)来高效地管理持久对象。
FreezeScript
在大的软件项目里,持久对象的数据类型改变很常见。为了最小化这些变化的影响,FreezeScript提供了相应的工具来检查和移植Freeze生成的数据库。这些工具支持XML格式的配置脚本,易于使用。
IceSSL
用于Ice核心的动态的SSL传输插件。提供了认证、加密和消息完整性,使用工业标准的SSL协议来实现。
Glacier
Ice的防火墙服务
面向对象中间件平台的一个最大的挑战是安全性和防火墙。Glacier是Ice的防火墙解决方案,它大大简化了安全 程序的部署。Glacier认证和过滤客户的请求并允许服务器通过安全的方式回调客户端对象。结合IceSSL的使用,Glacier提供了强大的安全解 决方案,即安全,又易于配置管理。
如想了解更多的详细信息,可以到http://www.zeroc.com上下载关于Ice的更多文档。
Ice应用组成:
Ice对象——Ice对象是在本地或远地的地址空间中、能响应客户请求的实体。先由Slice定义,然后编译成特定语言版本;每个Ice对象有多个接口,支持特定操作,客户通过调用它的接口来发出请求;每个对象有唯一的对象标识。
Servants——服务器端编写的类实例,体现Ice对象行为。
代理(Proxies)——代理是Ice对象在客户端的代表,客户调用代理上的操作来获得服务端上Ice对象提供的服务。
通信器(Ice::Communicator)——通信时,服务器和客户建立一个通信器,为通信进程分配和管理资源,是双方通信的专用线路。
对象适配器(object adapter)——专用于服务器端的Ice API,把Ice run time与服务端编写的Servant类连接在一起。每个适配器绑定一个端口。
Ice应用的结构如下:
Slice
Slice (Specification Language for Ice, Ice规范语言),用于对象接口定义与实现相分离的基础性抽象机制,可以把定义好的Ice对象映射成特定语言。
Slice开发过程见下图:
相同开发环境
不同开发环境:
相关推荐
下面,我们将深入探讨ICE中间件的核心概念、功能、以及如何进行开发。 **ICE中间件核心概念** 1. **对象代理(Object Proxy)**: 在ICE中,对象是通过对象代理进行通信的。对象代理是远程对象在本地的表示,它负责...
./server: Network.cpp:475:Ice::SocketException: socket exception: Address already in use ///stringtoProxy对于任何string都是有效的,均可以生成相应代理,但是该代理是否有效是无法保证的. 如果代理无效,...
**ICE中间件的核心概念** 1. **对象接口**: ICE中的对象接口定义了服务提供者和消费者之间的通信协议。这些接口是接口规范,不包含任何实现细节。 2. **多语言支持**: ICE支持多种编程语言,允许不同语言的组件...
**中间件技术:ICE 入门介绍** ICE(Internet Communications Engine)是一种专为现实世界中的程序员设计的中间件平台,其目标是提供一种高性能、高效且功能强大的互联网通信解决方案。ICE 不仅包含了丰富的分层...
《ICE中间件资料大全》是针对ICE(Internet Communication Engine)这一强大的分布式程序设计框架的一份综合资源包。ICE是一款高效、灵活且可扩展的中间件,由ZeroC公司开发,旨在简化多语言、跨平台的分布式系统...
ice demo是很好的学习ice的东西,ice是一个很好的分布式的网络通讯中间件,很好的支持跨平台等各种功能。 ice demo是很好的学习ice的东西,ice是一个很好的分布式的网络通讯中间件,很好的支持跨平台等各种功能。 ...
数据湖:Iceberg:数据湖概念与架构.docx
Linux平台下的ICE(Internet Communication Engine)通信中间件是一款高效、灵活且可扩展的软件框架,专为构建分布式系统而设计。ICE支持多种编程语言,包括C++、Java、Python、Ruby等,使得开发者可以根据项目需求...
Zeroc ICE是一款高效、可扩展的消息中间件,它提供了基于对象的远程方法调用(Remote Method Invocation,RMI)框架,支持多种编程语言,包括C++、Java、Python等。这款中间件允许应用程序在分布式环境中进行透明...
综上所述,这篇“ice中间件平台_中文教程”详细地介绍了ICE中间件平台的核心概念、编程语言映射、分布式程序设计、以及与其他中间件平台的对比。通过阅读本教程,开发者将能够了解ICE的强大功能,并且能够运用ICE来...
在ICE的基础概念部分,文档首先对ICE架构进行了综述,介绍了ICE服务以及ICE在架构上提供的优势。此外,还通过与CORBA的对比,进一步阐述了ICE的特点。随后,文档通过一个简单的HelloWorld应用示例,展示了如何编写...
Ice中间件,java c++ ,开发框架
ICE(Internet Communications Engine)是ZeroC提 供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础 对象操作和数据库...
ZeroC公司的ICE中间件的简单介绍。很好的网络通信中间件。
- **故障检测与恢复**:ICE支持故障检测机制,能够在检测到节点故障后自动触发故障恢复流程,比如重新分配任务给其他健康的节点。 #### 结论 基于ICE构建的分布式搜索服务充分利用了ICE中间件的强大功能,实现了...
ICE的主要组件包括:ICE Proxy、ICE Skeleton、ICE Stubs以及ICE Transport Layer。 1. **ICE Proxy**:客户端通过代理对象与服务端对象交互,代理对象负责将本地调用转换为网络消息。 2. **ICE Skeleton**:在...
- **1.2.1 客户端和服务器**:ICE支持典型的客户端/服务器模型,其中客户端发起请求,服务器处理请求并返回结果。 - **1.2.2 Ice核心**:这是ICE的基础组件,负责处理网络通信和对象定位等核心任务。 - **1.2.3 Ice ...
1. **类型安全**:ICE提供了编译时的类型安全检查,避免了因为数据类型不匹配导致的错误。 2. **多语言支持**:ICE支持多种编程语言,使得开发人员可以选择最适合自己项目的语言。 3. **跨平台**:ICE可在Windows、...
### ICE中间件的核心概念 1. **对象代理(Object Proxy)**:ICE通过对象代理在客户端和服务器之间进行通信。对象代理负责将客户端调用转化为网络消息,并将服务器响应转发回客户端。 2. **接口定义语言(IDL)**...