用ICE开发分布式程序

Waiting4you 发布于 2009/06/08 19:39
阅读 4K+
收藏 3
ICE

ICE是ZeroC公司开发的一款高效的开源中间件平台,全称是Internet Communications Engine。

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

ICE支持多种编程语言:C++、Java、C#、VB、Python、Ruby,也就是说使用ICE时我们可以让这些语言无缝沟通,不过由于ICE是用C++编写的,不管用什么语言,你都需要先用C++编译出一个ICE才行(或者下载已编译的版本)。

本篇文章以C++语言作为演示语言,其它语言除语法不同外,使用方法非常类似。

配置ICE开发环境

首先,从http://www.zeroc.com/download.html 下载ICE,目前最新版本是Ice-3.3.1。下载页面里除了ICE的源码之外,也提供了VC或C++Builder的已编译安装包以及各Linux版本的RPM下载。

如果下载的是源码版本,编译方法是(以VC2005 Express为例):

1. ICE需要一些第三方库,在编译ICE之前要先编译第三方库,清单如下(它们也能在ICE官网上下载):

Berkeley DB
expat
OpenSSL
bzip2
mcpp

2. 编译完上面这些库以后,把它们放到同一个目录中,然后设置环境变量THIRDPARTY_HOME:

set THIRDPARTY_HOME = d:\ice3party

3. 打开$ICE/cpp/Make.rules.mak,找到CPP_COMPILER变量,改成CPP_COMPILER = VC80_EXPRESS
    这个依据你的编译器决定,可以是VC60, VC80, VC80_EXPRESS, VC90, VC90_EXPRESS, BCC2007, BCC2009

4. 如果想让编译的库能脱离VC运行时库,打开$ICE/cpp/Make.rules.msvc,把CPPFLAGS    = $(CPPFLAGS) -MD改成CPPFLAGS    = $(CPPFLAGS) -MT

5. 在命令行下进入$ICE/cpp目录,输入nmake -f Makefile.mak开始编译。默认是编译成Debug模式的DLL库。如果想编译成静态库,可以设置变量STATICLIBS=yes;想编译成Release模式,设置OPTIMIZE=yes。如

nmake -f Makefile.mak STATICLIBS=yes OPTIMIZE=yes

如果按上面方法设置,应该不会有问题。

6. 最最后,把bin目录加入path变量,以便让系统能找到ICE的dll文件(其实主要是三个dll文件,ice33.dll、iceutil33.dll和bzip2.dll) 以后编译ICE的程序时,把上面编译好或直接下载的已编译版本的ice.lib和iceutil.lib(或Debug版本的iced.lib和iceutild.lib)链接入项目即可。

加载中
0
刘理志
刘理志

哪天有空的时候,得试试这个电信级别的。。。

返回顶部
顶部