ICE 网络编程
利用 ICE 通信中间件构建分布式应用程序开发框架
NISEC 讲座系列之 ---
演讲人 : 牵牛散步
时间 :2007.06.15
地点 :JCB-410
ICE 网络编程
--- 利用 ICE 通信中间件构建网络应用程序开发框架
一 . ICE 的有关概念
1. 什么是 ICE?
ICE, 夏天我最容易想的是冰激淋 : -- )
在这里我们要讲的可不是冰激淋 , 而是一种用于分布式程序设计的网络通信中间件 ICE
(Internate Communications Engine).ICE 的设计目标主要是以下几点 :
• 提供适用于异种环境的面向对象中间件平台。
在用 ICE 进行分布式程序设计时 , 你可以不必考虑客户端或
者服务器端程序所运行的平台 (WINDOWS 或者是 LINUX,
UNIX), 也可以不用关心程序使用的开发语言 ( 不过有一点
需要注意 , 目前 , 利用 PHP,RUBY 等 WEB 脚本语言只能编
写 ICE 程序的客户端 , 而服务器端一般利用 C++ 或者 JAVA
来实现 ).
• 提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。
• 避免不必要的复杂性,使平台更易于学习和使用。
ICE 的学习比较曲线比较短 , 很容易上手 . 只要你熟悉某一种
语言 ( 例如 C++ 或 JAVA), 了解了 ICE 编程范式之后 , 很快就能
开发出实际的应用 .
• 提供一种在网络带宽、内存使用和 CPU 开销方面都很高效的实现。
• 提供一种具有内建安全性的实现,使它适用于不安全的公共网络。
支持 SSL 协议 ( 要使用此协议必须装 OPENSSL 开发包 )
ICE 网络编程
--- 利用 ICE 通信中间件构建网络应用程序开发框架
2. 中间件技术与物流公司
中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能够
使应用软件相对独立于计算机硬件和操作系统平台 . 中间件具有标准的程序接口和协 议,
可以实现不同硬件和操作系统平台上的数据共享和应用互操作。在具体实现上,中间件
是一个用 API 定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
从开发者的角度来看 , 中间件技术为其提供了一个开发分布
式程序的框架即一套 API, 使其不需要进行枯燥乏味 , 而且需
要花费大量时间和精力的基础设施的开发 . 使开发者能把大
量的精力放在业务程序的开发上 , 提高应用程序的质量和开发效率 .
这就好比一个生产手机的厂商 , 它的客户可能分布在世界
的很多地方 ( 这里假设这个厂商只在一个地方生产手机 ),
当手机生产出来后 , 厂商有两个方案 , 一是自己建立物流部门
去配送手机 . 二是把这些配送业务交给专业的物流公司去处
理 . 显然第一种方案是比较合适的 , 因为该厂商的专长是设计
制造手机 , 而不是进行物流配送 . 对该厂商来说 , 他只需要按照
物流公司的流程 , 把货交给物流公司 , 剩下的事情就由物流公
来办 , 至于公司的产品是用飞机还是轮船运送的 , 手机厂商可
以完全不关心 , 它只需要知道产品是否安全 , 完整的到达目的
地了 . 对于这家手机厂商来说 , 此物流公司就是一个”中间件” .
它们就可以把更多的精力放在如何设计和生产更好的产品上 .
ICE 网络编程
--- 利用 ICE 通信中间件构建网络应用程序开发框架
ICE 网络编程
--- 利用 ICE 通信中间件构建网络应用程序开发框架
3.ICE 对于发者来说有何优点 ?
• 支持同步和异步的消息传递
• 支持多个接口
• 机器无关性
• 语言无关性
• 实现无关性
• 操作系统无关性
• 多线程支持
• 传输机制无关性
• 安全性
• 开放源代码