`

关于 ZeroC ICE 的不成熟思考(续)

 
阅读更多

看完了 Distributed Programming with Ice,阅读量相当大,只好粗看一遍,有好几种语言实现的地方只看C++,即使这样也有了3个月的时间,才看完,并练习了Ice部分的Demo。

Ice是优秀的通讯中间件,是用于建立高性能、高伸缩性通讯基础设施的平台框架。让我感到疑惑的是:现在企业信息化管理的基础和核心是大型关系数据库系统,如DB2,Oralce,SQL Server,甚至还有MySQL。缺乏这些数据库系统的访问手段,Ice能够成为一个广泛适用的中间件吗?我认为不能,Ice不能独立完成中间件的功能,它只能是中间件系统的一个组成部分,它不可能成为Spring+Hibernate那样的中间件组合。

Ice的重点是通讯,在数据持久化方面使用Berkeley DB,访问数据库方面做得太少了。如果访问关系数据库,需要开发员自己实现数据库访问层。因此它适用于持久化数据不复杂,关系比较少,而对通讯有很高要求的场合。所谓电信级中间件,也是指通讯来讲的。就数据库访问层来说,Ice几乎没有提供什么帮助。要在Ice中实现数据持久层开发必然要考虑到数据库适应性,SQL解析,缓存,各种锁以及多服务器间的同步等许多让人头疼的问题,相当于开发一个定制的Hibernate。

Ice的另一个重点是多语言编写的程序对象间的相互通讯,尤其是目前C/C++语言与Java系统按对象方式通讯的手段缺乏,Ice正好满足了这种需求。

IceGrid部分介绍了,网格由节点构成,节点向注册服务器注册适配器,才能被客户端访问。客户端通过注册服务器获得访问节点的地址,然后直接与节点交互。为防止注册服务器单点故障,将它设计成主从模式。主服务器down后,从服务器可以继续提供访问服务,只是不能加入新注册;从服务器必须重启才能成为主服务器。

多个节点可以组成一个复制组,进行适配器复制,实现负载均衡,文章讨论了负载均衡的各种方法:顺序,适应,轮循等……但是没有讨论session复制问题,也就是如果服务器是有状态的情况下,如何实现多个服务器的状态同步——session复制?文章没有明确说明。session复制是多服务器同步必须考虑的问题,不知道IceGrid是如何实现的。

我认为Ice不能做为完整的中间件,刚接触Ice时,中文网上充满了对Ice的赞美,没有对Ice的缺点和适用范围的介绍。英文网只有官方网站介绍的比较详细,也是充斥着Ice性能如何如何,比CORBA怎么怎么好。没有对Ice使用范围的中肯建议或评价。因此学习Ice完全是在认为它能够解决我对中间件的一般需求的情况下完成的。现在我感觉它实现不了所有中间件的目标,或者说要以它实现目标,需要花费的代价高过用其它系统实现目标的代价。

分享到:
评论

相关推荐

    ZeroC Ice权威指南

    《ZeroC Ice权威指南》从浅到深、从原理到背后地进行源码分析,从讲解Demo到解决实际项目开发中的具体技术问题,带领读者一路探究Ice那些不为人知的奥秘,扫清Ice用于企业系统开发的技术困难;并带领读者从零开始...

    ZeroC Ice 3.7 手册

    ZeroC Ice 3.7 手册 Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源...

    ZeroC ICE原理图

    ZeroC ICE 是指ZeroC公司的ICE(Internet Communications Engine)中间件平台。对于客户端和服务端程序的开发提供了很大的便利。 目前ICE平台中包括Ice,Ice-E,Ice Touch。 Ice为主流平台设计,包括Windows和...

    zeroc ice3.6 window 安装包

    zeroc ice3.6 window 安装包,因为安装包太大,所以使用百度网盘地址。具体使用demo参见我的博客

    zeroc ice pdf文档

    Zeroc Ice 3.4.2/3.5.1/3.6.4/3.7.0 总共4个版本的pdf帮助文档打包. Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。

    zeroc ice3.4安装2

    zeroc ice3.4安装2 Ice is a modern object-oriented toolkit that enables you to build distributed applications with minimal effort. Ice allows you to focus your efforts on your application logic while ...

    Zeroc Ice微服务架构

    本文主要介绍Zeroc Ice微服务架构入门

    Zeroc ice消息中间件

    Zeroc ice消息中间件,里面有五本相关的电子书。

    ZeroC Ice3.7 英文版加注中文书签官方手册.zip

    ZeroC Ice 3.7 手册 Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌...

    ZeroC Ice3.7 官方手册英文版加注中文书签

    ZeroC Ice是一个过渡到分布式程序设计的很好的开发框架。虽然网上有不多的中文资料,但介绍的Ice框架版本较老。新版本中文资料很难找到,特别是3.7的资料。官方资料虽然是英文的,但够详细。由于资料篇幅较大,快速...

    zeroc ice教程 ice环境配置 Ice中文教程 C++ ICE java ICE ICE入门 ice基础教程 ice开发文档

    教程包括: 第一部分 Ice综述 第二部分 核心概念 第三部分 高级Ice 第四部分 Ice服务 附录ice各种配置说明

    552404 ZeroC Ice权威指南_ZeroCI_

    权威指南在国内细致的描述了ICE框架的使用

    zeroc Ice c# 的源码

    有关于zeroc ice 的c# 方面源码 用vs 2010 编译的 有 Ice,glacier2。

    zeroc ICE 3.3.1文档

    ICE 3.3.1英文文档,有用的多交流

    zeroc ice u3d 网络组件

    zeroc_ice u3d tcp socket c# www.zeroc.com ice的unity3d版本。 独家发布。外边绝对没有。 需要咨询。可以给我发信息。

    zeroc ice 3.4.2 source demo

    zeroc ice brocast video or audio. performance is so high. this use c develop. across platform, like:windows, linux, macosx.

    ZeroC ICE C#客户端 C++服务端 参数中包含有中文的string出错的解决方法

    ZeroC ICE C#客户端 C++服务端 参数中包含有中文的string出错的解决方法 现象: 使用ICE做开发,C++的服务端,C#的客户端,如果返回的string参数中包含有中文,则C#客户端会抛异常。

    zeroc ICE 3.6

    百度硬盘地址 zeroc ICE 3.6 zeroc ICE 3.6 zeroc ICE 3.6 zeroc ICE 3.6zeroc ICE 3.6zeroc ICE 3.6

Global site tag (gtag.js) - Google Analytics