欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
ICE
小 (→链接) |
|||
(未显示1个用户的23个中间版本) | |||
第1行: | 第1行: | ||
[[Image:ZerocLogo.gif|right]] | [[Image:ZerocLogo.gif|right]] | ||
− | |||
− | + | ZeroC - Network Your Software | |
− | + | ||
+ | Ice - Comprehensive RPC Framework | ||
+ | |||
+ | 之前:Internet Communications Engine(Ice), Internet通信引擎 | ||
+ | |||
+ | 设计目标 | ||
* 提供适用于异种环境的面向对象中间件平台。 | * 提供适用于异种环境的面向对象中间件平台。 | ||
* 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。 | * 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。 | ||
第10行: | 第14行: | ||
* 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。 | * 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。 | ||
更简单地说, Ice 的设计目标可陈述为:“让我们构建与CORBA 一样强大的中间件平台,而又不去犯CORBA 所犯下的任何错误”。 | 更简单地说, Ice 的设计目标可陈述为:“让我们构建与CORBA 一样强大的中间件平台,而又不去犯CORBA 所犯下的任何错误”。 | ||
+ | |||
+ | ==新闻== | ||
+ | {{SeeWikipedia|Internet Communications Engine}} | ||
+ | <rss>http://www.zeroc.com/forums/external.php?type=RSS2|short|date|max=10</rss> | ||
==Ice 组成== | ==Ice 组成== | ||
第54行: | 第62行: | ||
==Demo== | ==Demo== | ||
===C++=== | ===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, 编译相关项目, | 通过 vc6.0 打开 demo.dsw, 编译相关项目, | ||
server.exe | server.exe | ||
client.exe | client.exe | ||
+ | |||
+ | ===Objective‑C=== | ||
+ | slice2objc Printer.ice | ||
+ | |||
===Java=== | ===Java=== | ||
export CLASSPATH=classes:$CLASSPATH | export CLASSPATH=classes:$CLASSPATH | ||
+ | mkdir generated | ||
+ | slice2java ‑‑output‑dir generated Printer.ice | ||
java Server | java Server | ||
java Client | java Client | ||
+ | |||
===C#=== | ===C#=== | ||
+ | mkdir generated | ||
+ | slice2cs ‑‑output‑dir generated Printer.ice | ||
server.exe | server.exe | ||
client.exe | client.exe | ||
===Python=== | ===Python=== | ||
+ | slice2py Printer.ice | ||
python Server.py | python Server.py | ||
python Client.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. | *[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.] | *HP uses Ice as the communications infrastructure for its [http://www.hp.com/halo/ Halo Collaboration Studio.] | ||
More: http://www.zeroc.com/customers.html | 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: | + | [[category:middleware]] |
+ | [[category:RPC]] | ||
+ | [[category:c++]] | ||
+ | [[category:CORBA]] |
2015年12月20日 (日) 05:58的最后版本
ZeroC - Network Your Software
Ice - Comprehensive RPC Framework
之前:Internet Communications Engine(Ice), Internet通信引擎
设计目标
- 提供适用于异种环境的面向对象中间件平台。
- 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。
- 避免不必要的复杂性,使平台更易于学习和使用。
- 提供一种在网络带宽、内存使用和CPU 开销方面都很高效的实现。
- 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。
更简单地说, Ice 的设计目标可陈述为:“让我们构建与CORBA 一样强大的中间件平台,而又不去犯CORBA 所犯下的任何错误”。
目录 |
[编辑] 新闻
您可以在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写成的中间层服务在运行。
- 上海宝信 selected Ice as the distributed computing foundation for iPlature.
[编辑] 图集
[编辑] 链接
<discussion>characters_max=300</discussion>