ICE

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(ICE移动到Internet Communications Engine)
(链接)
 
(未显示3个用户的38个中间版本)
第1行: 第1行:
 
[[Image:ZerocLogo.gif|right]]
 
[[Image:ZerocLogo.gif|right]]
  
Internet Communications Engine
+
ZeroC - Network Your Software
<br>
+
http://www.zeroc.com/ice.html
+
  
[[category:Middleware]]
+
Ice - Comprehensive RPC Framework
 +
 
 +
之前:Internet Communications Engine(Ice), Internet通信引擎
 +
 
 +
设计目标
 +
* 提供适用于异种环境的面向对象中间件平台。
 +
* 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。
 +
* 避免不必要的复杂性,使平台更易于学习和使用。
 +
* 提供一种在网络带宽、内存使用和CPU 开销方面都很高效的实现。
 +
* 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。
 +
更简单地说, Ice 的设计目标可陈述为:“让我们构建与CORBA 一样强大的中间件平台,而又不去犯CORBA 所犯下的任何错误”。
 +
 
 +
==新闻==
 +
{{SeeWikipedia|Internet Communications Engine}}
 +
<rss>http://www.zeroc.com/forums/external.php?type=RSS2|short|date|max=10</rss>
 +
 
 +
==Ice 组成==
 +
===Slice===
 +
Ice专用的接口描述语言。Slice描述了客户端和服务端都必须遵循的接口规范,而且也可以用来描述持久数据。
 +
 
 +
===Slice Compilers===
 +
Slice specifications are compiled into various programming languages. Ice supportsC++, Java, C#, Visual Basic, Python, PHP, and Ruby.
 +
===Ice===
 +
The Ice core library.
 +
===IcePack===
 +
IcePack 是Ice 的定位服务
 +
*IcePack 允许你注册服务器,进行自动启动:当客户发出请求时,服务器无需在运行, IcePack 会在第一个客户请求到达时,随需启动服务器。
 +
*IcePack 支持部署描述符(deployment descriptors),能让你轻松地配置含有若干服务器的复杂应用。
 +
*IcePack 提供了一种简单的对象查找服务,客户可用来获取它们感兴趣的对象的代理。
 +
===IceBox===
 +
IceBox 是一种简单的应用服务器,可用于协调许多应用组件的启动和停止。
 +
===IceStorm===
 +
IceStorm 是一种发布-订阅服务,能够解除客户与服务器的耦合。在本质上, IceStorm 充当的是事件分发交换机。
 +
===IcePatch===
 +
IcePatch 是一种软件更新服务。 你可以用它来轻松地把软件更新分发给客户。客户可以简单地连接到IcePatch,请求获得特定应用的更新。
 +
===Glacier===
 +
Glacier 是Ice 防火墙服务:它能让客户与服务器通过防火墙安全地进行通信,且又不牺牲安全性。 客户-服务器之间的通信数据使用公钥证书进行了完全的加密,并且是双向的。Glacier 支持相互认证,以及安全的会话管理。
 +
===IceGrid===
 +
Ice for Grid Computing
 +
===IceUtil===
 +
A collection of utility functions, such as Unicode handling and thread programming. (C++ only.)
 +
===Freeze===
 +
Freeze provides automatic persistence for Ice servants. With just a few lines of code, an application can incorporate a highly-scalable evictor that efficiently manages persistent objects.
 +
===FreezeScript===
 +
It is common for persistent data types to change, especially in large software projects.
 +
===IceSSL===
 +
A dynamic SSL transport plug-in for the Ice core.
 +
==安装==
 +
分别安装 rpm 包 或
 +
set ICE_HOME=<Ice installation root directory>
 +
set PATH=%ICE_HOME%\bin;%PATH%
 +
nmake /f Makefile.mak
 +
 
 +
==Ice and CORBA==
 +
Differences between Ice and CORBA - http://www.zeroc.com/iceVsCorba.html
 +
==Ice and TAO==
 +
http://www.zeroc.com/performance/
 +
==Demo==
 +
===C++===
 +
创建 Printer.ice
 +
module Demo {
 +
    interface Printer {
 +
        void printString(string s);
 +
    };
 +
};
 +
编译 slice2cpp Printer.ice, 生成 Printer.h 和  Printer.cpp
 +
 
 +
再创建 server.cpp, client.cpp 文件
 +
 
 +
通过 vc6.0 打开 demo.dsw, 编译相关项目,
 +
server.exe
 +
client.exe
 +
 
 +
===Objective‑C===
 +
slice2objc Printer.ice
 +
 
 +
===Java===
 +
export CLASSPATH=classes:$CLASSPATH
 +
mkdir generated
 +
slice2java ‑‑output‑dir generated Printer.ice
 +
java Server
 +
java Client
 +
 
 +
===C#===
 +
mkdir generated
 +
slice2cs ‑‑output‑dir generated Printer.ice
 +
server.exe
 +
client.exe
 +
 
 +
===Python===
 +
slice2py Printer.ice
 +
python Server.py
 +
python Client.py
 +
===Ruby===
 +
slice2rb Printer.ice
 +
server //  Ice for Ruby does not support server-side, we will use the C++ server
 +
ruby Client.rb
 +
 
 +
==成功应用==
 +
*[http://www.skype.com/ Skype] uses Ice as part of its communications infrastructure.
 +
*Digium uses Ice as part of [[Asterisk]] Scalable Communications Framework (SCF), the world's first distributed, scalable, fault tolerant, extensible open source communications platform.
 +
*HP uses Ice as the communications infrastructure for its [http://www.hp.com/halo/ Halo Collaboration Studio.]
 +
More: http://www.zeroc.com/customers.html
 +
*人人网核心的数据和消息中间件用它实现。Ice通信框架在人人网完成了两件事:通信和定位。客户端通过IceGrid组件定位到需要的服务地址,将请求发送到中间层服务,中间层服务将结果返回。客户端只需要知道一个地址就可以找到所有的服务;同时,众多服务也可以在不同的服务器之间随意迁移。在现在的人人网有超过500个Ice写成的中间层服务在运行。
 +
http://sinofool.net/blog/
 +
*上海宝信 selected Ice as the distributed computing foundation for [http://www.baosight.com/product.asp?action=view&id=87 iPlature].
 +
[http://www.zeroc.com/customers.html More Customers]
 +
 
 +
==图集==
 +
<gallery widths=100px heights=100px perrow=6>
 +
Image:ice-grid.png|Grid
 +
Image:ice-active-servant-map.gif|Active Servant Map
 +
Image:slice-cpp.jpg|C++
 +
Image:slice-cpp-java.jpg|Java
 +
</gallery>
 +
 
 +
==链接==
 +
*[http://www.zeroc.com/ Ice官网]
 +
*[https://github.com/zeroc-ice Ice @ Github]
 +
*[http://docs.huihoo.com/ice/ice-1.3.0-cn.pdf Ice 分布式程序设计(954页/中文)]
 +
*[http://docs.huihoo.com/ice/ Ice开放文档]
 +
*[http://www.zeroc.com/newsletter/index.html Ice Connections] 
 +
*http://download.huihoo.com/ice/
 +
 
 +
{{comment}}
 +
 
 +
[[category:middleware]]
 +
[[category:RPC]]
 +
[[category:c++]]
 +
[[category:CORBA]]

2015年12月20日 (日) 05:58的最后版本

ZerocLogo.gif

ZeroC - Network Your Software

Ice - Comprehensive RPC Framework

之前:Internet Communications Engine(Ice), Internet通信引擎

设计目标

  • 提供适用于异种环境的面向对象中间件平台。
  • 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。
  • 避免不必要的复杂性,使平台更易于学习和使用。
  • 提供一种在网络带宽、内存使用和CPU 开销方面都很高效的实现。
  • 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。

更简单地说, Ice 的设计目标可陈述为:“让我们构建与CORBA 一样强大的中间件平台,而又不去犯CORBA 所犯下的任何错误”。

目录

[编辑] 新闻

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 ICE Thanks, Wikipedia.

自http://www.zeroc.com/forums/external.php?type=RSS2加载RSS失败或RSS源被墙

[编辑] Ice 组成

[编辑] Slice

Ice专用的接口描述语言。Slice描述了客户端和服务端都必须遵循的接口规范,而且也可以用来描述持久数据。

[编辑] Slice Compilers

Slice specifications are compiled into various programming languages. Ice supportsC++, Java, C#, Visual Basic, Python, PHP, and Ruby.

[编辑] Ice

The Ice core library.

[编辑] IcePack

IcePack 是Ice 的定位服务

  • IcePack 允许你注册服务器,进行自动启动:当客户发出请求时,服务器无需在运行, IcePack 会在第一个客户请求到达时,随需启动服务器。
  • IcePack 支持部署描述符(deployment descriptors),能让你轻松地配置含有若干服务器的复杂应用。
  • IcePack 提供了一种简单的对象查找服务,客户可用来获取它们感兴趣的对象的代理。

[编辑] IceBox

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

[编辑] IceStorm

IceStorm 是一种发布-订阅服务,能够解除客户与服务器的耦合。在本质上, IceStorm 充当的是事件分发交换机。

[编辑] IcePatch

IcePatch 是一种软件更新服务。 你可以用它来轻松地把软件更新分发给客户。客户可以简单地连接到IcePatch,请求获得特定应用的更新。

[编辑] Glacier

Glacier 是Ice 防火墙服务:它能让客户与服务器通过防火墙安全地进行通信,且又不牺牲安全性。 客户-服务器之间的通信数据使用公钥证书进行了完全的加密,并且是双向的。Glacier 支持相互认证,以及安全的会话管理。

[编辑] IceGrid

Ice for Grid Computing

[编辑] IceUtil

A collection of utility functions, such as Unicode handling and thread programming. (C++ only.)

[编辑] Freeze

Freeze provides automatic persistence for Ice servants. With just a few lines of code, an application can incorporate a highly-scalable evictor that efficiently manages persistent objects.

[编辑] FreezeScript

It is common for persistent data types to change, especially in large software projects.

[编辑] IceSSL

A dynamic SSL transport plug-in for the Ice core.

[编辑] 安装

分别安装 rpm 包 或
set ICE_HOME=<Ice installation root directory>
set PATH=%ICE_HOME%\bin;%PATH%
nmake /f Makefile.mak

[编辑] Ice and CORBA

Differences between Ice and CORBA - http://www.zeroc.com/iceVsCorba.html

[编辑] Ice and TAO

http://www.zeroc.com/performance/

[编辑] Demo

[编辑] C++

创建 Printer.ice

module Demo {
    interface Printer {
        void printString(string s);
    };
};

编译 slice2cpp Printer.ice, 生成 Printer.h 和 Printer.cpp

再创建 server.cpp, client.cpp 文件

通过 vc6.0 打开 demo.dsw, 编译相关项目,

server.exe
client.exe

[编辑] Objective‑C

slice2objc Printer.ice

[编辑] Java

export CLASSPATH=classes:$CLASSPATH
mkdir generated
slice2java ‑‑output‑dir generated Printer.ice
java Server
java Client

[编辑] C#

mkdir generated
slice2cs ‑‑output‑dir generated Printer.ice
server.exe
client.exe

[编辑] Python

slice2py Printer.ice
python Server.py
python Client.py

[编辑] Ruby

slice2rb Printer.ice 
server //  Ice for Ruby does not support server-side, we will use the C++ server
ruby Client.rb

[编辑] 成功应用

  • Skype uses Ice as part of its communications infrastructure.
  • Digium uses Ice as part of Asterisk Scalable Communications Framework (SCF), the world's first distributed, scalable, fault tolerant, extensible open source communications platform.
  • HP uses Ice as the communications infrastructure for its Halo Collaboration Studio.

More: http://www.zeroc.com/customers.html

  • 人人网核心的数据和消息中间件用它实现。Ice通信框架在人人网完成了两件事:通信和定位。客户端通过IceGrid组件定位到需要的服务地址,将请求发送到中间层服务,中间层服务将结果返回。客户端只需要知道一个地址就可以找到所有的服务;同时,众多服务也可以在不同的服务器之间随意迁移。在现在的人人网有超过500个Ice写成的中间层服务在运行。

http://sinofool.net/blog/

  • 上海宝信 selected Ice as the distributed computing foundation for iPlature.

More Customers

[编辑] 图集

[编辑] 链接

Comment-32x32.png

<discussion>characters_max=300</discussion>

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱