`

关于 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 3.7 手册

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

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

    Zeroc ICE是一个开源的中间件平台,它支持C++、Java、Python、.NET等语言的分布式对象通信。ICE全称Internet Communications Engine,即互联网通信引擎,是一种用于开发分布式计算应用的强大工具。本文档主要围绕ICE...

    552404 ZeroC Ice权威指南_ZeroCI_

    《552404 ZeroC Ice权威指南》是一本深度解析ZeroCI框架的专业书籍,旨在为读者提供全面且深入的ICE(Internet Communication Engine)框架使用知识。ICE是一款跨平台的中间件,由ZeroC公司开发,用于构建分布式系统...

    ZeroC Ice权威指南

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

    ZeroC ICE原理图

    ### ZeroC ICE原理详解 #### 一、ZeroC ICE简介 ZeroC ICE(Internet Communications Engine)是由ZeroC公司开发的一款高性能、跨平台的中间件框架。该框架旨在为分布式应用程序提供一套完整且易于使用的解决方案...

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

    - **1.1.2 Ice 服务概览**:概述了Ice提供的一系列服务,包括但不限于身份验证、安全性和日志记录等。 - **1.1.3 Ice 的架构优势**:讨论了使用Ice进行分布式编程的优势,例如跨平台兼容性、易于扩展性以及高级别...

    Zeroc ice消息中间件

    Zeroc ICE是一款高效、可扩展的消息中间件,它提供了基于对象的远程方法调用(Remote Method Invocation,RMI)框架,支持多种编程语言,包括C++、Java、Python等。这款中间件允许应用程序在分布式环境中进行透明...

    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 3.3.1文档

    ### 分布式编程与ICE 3.3.1:关键知识点概述 ...ICE 3.3.1作为一个成熟的分布式编程框架,在多个领域都有广泛应用。通过对该版本的深入了解,可以帮助开发者更好地利用ICE的强大功能,解决实际项目中的复杂通信问题。

    zeroc ice3.6 window 安装包

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

    zeroc ICE 3.6

    zeroc ICE 3.6 是一个强大的中间件框架,它主要用于构建分布式系统和实时应用程序。ICE,全称为“Internet Communications Engine”,是由ZeroC公司开发的一种跨平台、高性能的RPC(远程过程调用)框架。这个版本3.6...

    Zeroc_ICE学习大全

    **Zeroc ICE 学习大全** Zeroc ICE(Integration and Communication Environment)是一种高性能、跨平台的中间件,用于构建分布式系统。它提供了一种简单而强大的方式来实现对象间的远程调用,使得开发人员可以像...

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

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

    ZeroC Ice 3.7.3 源码与中文教程.rar

    Ice 应用适合在异 种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不 同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论 部署环境如何,这些应用的源码都是可移植的。

    Ubuntu-zeroc-ice 环境安装

    在Ubuntu系统上安装Zeroc-ICE环境主要涉及以下知识点: 1. Ubuntu虚拟机的安装:用户需要在计算机上安装一个虚拟机软件,比如VirtualBox或者VMware,然后在虚拟机中安装Ubuntu操作系统。这一步骤是为了创建一个独立...

    Python库 | zeroc_ice-3.7.0-cp36-cp36m-win_amd64.whl

    这个文件名的结构包含了关于库的信息,如zeroc_ice是库的名称,3.7.0是库的版本号,cp36指的是兼容Python 3.6,cp36m表示这是一个优化过的(可能是minified)版本,最后的win_amd64表明这是针对64位Windows系统的。...

    zeroc ice u3d 网络组件

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

    zeroc Ice c# 的源码

    zeroc Ice是一款强大的分布式对象中间件,它支持多种编程语言,包括C#。这款软件的主要目的是简化跨网络的异构系统间的通信,提供了一种高效、安全且类型安全的接口定义语言(IDL)来定义服务接口。在C#环境下,...

Global site tag (gtag.js) - Google Analytics