MemoryGarden's Blog

努力 -----------大能猫

C++博客 首页 新随笔 联系 聚合 管理
  118 Posts :: 11 Stories :: 20 Comments :: 0 Trackbacks
Ice 在架构上为应用开发者提供了一些好处:
• 面向对象的语义
Ice “在线路上”完全保留了 面向对象范型。所有的操作调用都使用
迟后绑定,所以操作的实现的选定,是根据对象在运行时的(而不是
静态的)实际类型决定的。
• 支持同步和异步的消息传递
Ice 提供了同步和异步的操作调用和分派,并且通过IceStorm 提供了
发布-订阅消息传递机制。这样,你可以根据你的应用的需要来选择通
信模型,而不必把你的应用硬塞进某种模型里。
• 支持多个接口
通过facets,对象可以提供多个不相关的接口,同时又跨越这些接
口、保持单一的对象标识。这提供了极大的灵活性,特别是在这样的情
况下:应用在发生演化,但又需要与更老的、已经部署的客户保持兼
容。
• 机器无关性
客户及服务器与底层的机器架构屏蔽开来。对于应用代码而言,像
字节序和填充这样的问题都隐藏了起来。
• 语言无关性
客户和服务器可以分别部署,所用语言也可以不同(目前支持
C++、Java,以及PHP (客户端))。 客户和服务器所用的Slice 定义建
立两者之间的接口合约,这样的定义也是它们唯一需要达成一致的东
西。
• 实现无关性
客户不知道服务器是怎样实现其对象的。这意味着,在客户部署之
后,服务器的实现可以改变,例如,它可以使用不同的持久机制,甚至
不同的程序设计语言。
• 操作系统无关性
Ice API 完全是可移植的,所以同样的源码能够在Windows 和UNIX
上编译和运行。
• 线程支持
Ice run time 完全是线程化的,其API 是线程安全的。 作为应用开发
者,(除了在访问共享数据时进行同步)你无需为开发线程化的高性能
客户和服务器付出额外努力。
• 传输机制无关性
Ice 目前采用了TCP/IP 和UDP 作为传输协议。客户和服务器代码都
不需要了解底层的传输机制(你可以通过一个配置参数选择所需的传
输机制)。
• 位置和服务器透明性
Ice run time 会负责定位对象,并管理底层的传输机制,比如打开和
关闭连接。客户与服务器之间的交互显得像是无连接的。如果在客户调
用操作时,服务器没有运行,你可以通过IcePack 让它们随需启动。服
务器可以迁移到不同的物理地址,而不会使客户持有的代理失效,而客
户完全不知道对象实现是怎样分布在多个服务器进程上的。
• 安全性
通过SSL 强加密,可以使客户和服务器完全安全地进行通信,这
样,应用可以使用不安全的网络安全地进行通信。你可以使用Glacier
穿过防火墙,实现安全的请求转发,并且完全支持回调。
• 内建的持久机制
使用Freeze,创建持久的对象实现变成了一件微不足道的事情。Ice
提供了对高性能数据库Berkeley DB[18] 的内建支持。
• 开放源码
Ice 的源码是开放的。尽管要使用Ice 平台,并不一定要阅读源码,
通过源码你可以了解各种事情是怎样实现的,或把这些代码移植到新的
操作系统上。
总而言之, Ice 提供了一流的分布式计算开发和部署环境,比我们所知
道的其他任何平台都更完整。


posted on 2009-12-17 13:38 memorygarden 阅读(1291) 评论(0)  编辑 收藏 引用 所属分类: ICE

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理