ICE综述

news2025/1/9 0:08:32

ICE综述

        ICE(Internet Communications Engine)是ZeroC提供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础对象操作和数据库操作封装在这一层,在业务逻辑层以及表现层(java,php,.net,python)进行更丰富的表现与操作,从而实现比较好的架构。基于ICE的数据层可以在未来方便的进行扩展。ICE支持分布式的部署管理,消息中间件,以及网格计算等等。 ICE和ACE在性能与开发简便上深化了CORBA这是一个老牌的分布式中间件平台,并且以其标准实现困难,开发者使用困难而著称。 ICE采用的许多思想也能在CORBA 及以前的一些分布式计算平台中找到。在有些方面, ICE与CORBA 非常接近,而在另外一些方面,它们的差异则意义深远,并且在架构上有着广泛的影响。如果你曾经使用过CORBA,了解这些差异十分重要。尽管从表面看来,ICE对象模型与CORBA 对象模型是一样的,但它们在一些重要方面却有所不同。类型系统ICE对象和CORBA 对象一样,都只有一个派生层次最深的(most derived)主接口。但ICE对象可以提供其他接口作为facets。重要的是要注意到,一个ICE对象的所有facets 都具有相同的对象标识,也就是说,客户看到的是具有多个接口的单个对象,而不是看到多个对象、每个对象有不同的接口。facets 提供了极大的架构灵活性。特别地,它们为版本管理问题提供了一种解决途径:你可以简单地给已经存在的对象增加新的facet,轻松地扩展某个服务器的功能,而不会破坏已有的、已经部署的客户。代理语义ICE代理(CORBA 对象引用的等价物)不是不透明的。客户只要知道对象的类型和标识,无需其他系统组件的支持,就可以创建出代理(在使用间接绑定时,不必了解对象的传输地址)。

        ICE是一种面向对象的中间件平台。从根本上说,这意味着ICE为构建面向对象的客户-服务器应用提供了工具、API 和库支持。ICE应适合在异种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的。

使用ICE的好处

        (1)客户无需询问外部的查找服务,比如命名服务,就能够创建代理。实际上,对象标识和对象的名字被认为是同一事物。这样能够消除命名服务的内容与实际情况失去同步所可能带来的问题;同时,为了让客户和服务器正常工作、必须正常运转的系统组件的数目也会减少。

        (2)通过创建所需的初始对象的代理,客户可以轻松地进行自引导(bootstrap)。这样就无需使用单独的引导服务了。

        (3)不需要对串化代理进行不同的编码。一种统一的表示就足够了,而这种表示是人可以阅读的。这样就避免了CORBA 的三种不同的对象引用编码(IOR、corbaloc,以及corbaname)所带来的各种复杂问题。开发者多年使用CORBA 的经验表明,对象引用的不透明性很成问题:它不仅需要更加复杂的API 和运行时支,还会妨碍我们构建现实的系统。为此, CORBA 增加了像corbaloc和corbaname这样的机制,以及用于进行引用比较的is_equivalent和hash 操作(这些操作的定义有问题)。所有这些机制都降低了对象引用的不透明性,但CORBA 平台的其他部分仍试图维持引用是不透明的这样一个错觉。结果,开发者在两方面所得的东西都是最糟的:引用既不是完全不透明的,也不是完全透明的——这样所带来的混乱和复杂性相当大。对象标识ICE对象模型假定对象标识在任何地方都是唯一的(但并没有把这个要求强加给应用开发者)。这种对象标识的主要好处是,你可以迁移服务器,也可以把多个不同服务器中的对象合并进一个服务器,而不用考虑名字冲突的问题:如果每个ICE对象都具有唯一的标识,它就不可能与另外的域中的对象的标识发生冲突。ICE对象模型还使用了强对象标识:使用本地的客户端操作,你就能确定两个代理表示的是否是同一个对象(在CORBA 中,要进行可靠的标识比较,你必须调用远程对象上的操作)。本地标识比较要高效得多,而且对于有些应用领域而言(比如分布式事务服务),这样的比较也至关紧要。

ICE在架构上提供的好处

        (1)面向对象的语义:ICE “在线路上”完全保留了面向对象范型。所有的操作调用都使用迟后绑定,所以操作的实现的选定,是根据对象在运行时的(而不是静态的)实际类型决定的。

        (2)支持同步和异步的消息传递:ICE提供了同步和异步的操作调用和分派,并且通过IceStorm提供了发布-订阅消息传递机制。这样,你可以根据你的应用的需要来选择通信模型,而不必把你的应用硬塞进某种模型里。

        (3)支持多个接口:通过facets,对象可以提供多个不相关的接口,同时又跨越这些接口、保持单一的对象标识。这提供了极大的灵活性,特别是在这样的情况下:应用在发生演化,但又需要与更老的、已经部署的客户保持兼容。

        (4)机器无关性:客户及服务器与底层的机器架构屏蔽开来。对于应用代码而言,像字节序和填充这样的问题都隐藏了起来。

        (5)语言无关性:客户和服务器可以分别部署,所用语言也可以不同(目前支持C++、Java,以及PHP (客户端))。客户和服务器所用的Slice 定义建立两者之间的接口合约,这样的定义也是它们唯一需要达成一致的东西。

        (6)操作系统无关性:ICE API 完全是可移植的,所以同样的源码能够在Windows 和UNIX上编译和运行。

        (7)线程支持:Ice run time 完全是线程化的,其API是线程安全的。作为应用开发者,(除了在访问共享数据时进行同步)你无需为开发线程化的高性能客户和服务器付出额外努力。

        (8)传输机制无关性:ICE目前采用了TCP/IP和UDP作为传输协议。客户和服务器代码都不需要了解底层的传输机制(你可以通过一个配置参数选择所需的传输机制)。

        (9)位置和服务器透明性:Ice run time 会负责定位对象,并管理底层的传输机制,比如打开和关闭连接。客户与服务器之间的交互显得像是无连接的。如果在客户调用操作时,服务器没有运行,你可以通过IcePack让它们随需启动。服务器可以迁移到不同的物理地址,而不会使客户持有的代理失效,而客户完全不知道对象实现是怎样分布在多个服务器进程上的。

        (10)安全性:通过SSL 强加密,可以使客户和服务器完全安全地进行通信,这样,应用可以使用不安全的网络安全地进行通信。你可以使用Glacier穿过防火墙,实现安全的请求转发,并且完全支持回调。

        (11)内建的持久机制:使用Freeze,创建持久的对象实现变成了一件微不足道的事情。ICE提供了对高性能数据库Berkeley DB[18] 的内建支持。

        ICE的源码是开放的。尽管要使用ICE平台,并不一定要阅读源码,通过源码你可以了解各种事情是怎样实现的,或把这些代码移植到新的操作系统上。

        总而言之,ICE和ACE 提供了一流的分布式计算开发和部署环境,比我们所知道的其他任何平台都更完整。提供适用于异种环境的面向对象中间件平台,提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发,避免不必要的复杂性,使平台更易于学习和使用。提供一种在网络带宽、内存使用和CPU 开销方面都很高效的实现,提供一种具有内建安全性的实现,使它适用于不安全的公共网络。

ICE的全称是Internet Communications Engine,即因特网通信引擎。

ICE是由ZeroC, Inc.公司开发的。

官网:http://doc.wendoc.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

notepad++ 如何去除换行

选中下方的“扩展” “查找目标”输入:\r\n,替换为:空白 最后全部替换。

钡铼DLT645和IEC104转Modbus协议网关BL120DT:构建智能电力网的关键角色

在电力行业中,DLT645和IEC104转Modbus协议网关已成为重要的通信工具,用于将电力设备的数据和状态信息转换为Modbus协议,以便于远程监控和管理。以下是关于钡铼DLT645和IEC104转Modbus协议网关BL120DT在电力行业应用的案例介绍。 某电力公司需…

记一次地市hw从供应商-目标站-百万信息泄露

起因:某市hw、给了某医院的资产,根据前期进行的信息收集就开始打,奈何目标单位资产太少,唯有一个IP资产稍微多一点点,登录框就两个,屡次尝试弱口令、未授权等均失败。 事件型-通用性-反编译jar-Naocs-后台-…

node-red opc-ua节点操作

node-red opc-ua节点操作 一、使用OPC UA客户端工具Softing OPC Client读写OPC节点数据二、 NodeRed通过OPC UA读取数据并写入mysql三、NodeRed订阅opcua数据,并通过mqtt发布 一、使用OPC UA客户端工具Softing OPC Client读写OPC节点数据 使用OPC UA客户端工具Soft…

超级扫描-专业、快速、安全的二维码和条形码工

官网下载地址: 安果移动 视频介绍:超级扫描-专业、快速、安全的二维码和条形码工具_哔哩哔哩_bilibili 在今天的数字化时代,无论您身处哪里,二维码和条形码无处不在。从商店的货架到在线广告,从名片到活动海报 &…

长江存储YMTC 232L QLC量产,低调上架

有粉丝朋友提醒小编,反馈长江存储232L QLC已经量产,并已经开始售卖了。小编一搜,还真是,“当季新品”。 技术规格信息显示,来自长江存储原厂QLC颗粒。 评论区有用户反馈确认是232层的QLC SSD。 但是,有个奇…

Delphi编程:pagecontrol组件的tab字体变大

1、将pagecontrol组件属性中的font的字体变成四号。 2、将tabsheet1属性中的font的字体设置成八号。 结果如下:

Excel插件:StatPlus Pro 7.7.0 Crack

Windows 版 StatPlus 借助 StatPlus,人们可以获得一套强大的统计工具和图形分析方法,可以通过简单直观的界面轻松访问。StatPlus 的可能应用范围几乎是无限的 - 社会学、金融分析、生物统计学、经济学、保险业、医疗保健和临床研究 - 仅举几个该程序已被…

8、Docker数据卷与数据卷容器

一、数据卷(Data Volumes) 为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。 数据卷 是一个可供一个或多个容器使用的特殊目…

分分钟搞定MAC丝滑切换node版本,升级node

需求描述 在日常工作中,我们经常会遇到不同项目的依赖需要不同的node版本来运行,这个时候就需要切换node版本啦~~ 如何切换 用node.js的多版本管理器 n 来解决问题 查看node所有版本 npm view node versions 查看当前node版本 node -v安装n模块: …

氟化钡镜片

氟化钡晶体具有良好的光学透过性能,在0.15μm-14.5μm的光谱范围内,可以用作紫外和红外光学窗口。同时,又具有优良的闪烁性能,成为高能物理与核物理、核医学等领域中重要的晶体材料。 特此记录 anlog 2023年10月7日

SpringBoot解决LocalDateTime返回数据为数组问题

现象: 在SpringBoot项目中,接口返回的数据出现LocalDateTime对象被转换成了数组 原因分析: 默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。 解决方法: 在配置类中…

什么是原型链(prototype chain)?如何实现继承?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Windows 10 也能安装Kafka?这篇教程让你轻松掌握!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…

英特尔® NUC迷你电脑设置带电自启

连接电源后英特尔 NUC迷你电脑可以自动启动吗? (intel.cn) 想死的风还是吹到了公司 | 👨‍✈️喂,劳动仲裁吗?这里有人强迫猫咪打工!😿

苹果ios系统几种开发者账号区别是什么?注册条件和作用以及内部测试人数哪里不一样?怎么选择开发者账号?

苹果ios系统几种开发者账号区别是什么?注册条件和作用以及内部测试人数哪里不一样?怎么选择开发者账号? 苹果有几种开发者账号区别是什么??注册条件和作用以及内部测试人数哪里不一样?作为开发者我要怎么选…

美元加息已濒精神错乱

「你可以一时欺骗所有人,也可以永远欺骗某些人,但不可能永远欺骗所有人。」—— 亚伯拉罕林肯,美国第16任总统 隔夜美元资本市场上演了极为滑稽的一幕。 UTC时间12:30(北京时间晚8点半),美劳工统计局&#…

信号量机制之整型信号量,记录型信号量

1.信号量机制 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。 1.信号量 信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示…

游戏设计模式专栏(六):在Cocos游戏开发中运用适配器模式

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 适配器模式是一种常见的…

王道考研计算机组成原理——计算机硬件的基础知识

计算机组成原理的基本概念 计算机硬件的针脚都是用来传递信息,传递数据用的: 服务程序包含一些调试程序: 计算机硬件的基本组成 控制器通过电信号来协调其他部件的工作,同时负责解析存储器里存放的程序指令,然后指挥…