ice学习笔记

ICE-python学习笔记(一)——ice demo 基础 官网有个demo,大概意思就是: 先写一个.ice的文件:(Printer.ice) module Demo { interface subjectMatter { string printString(string s); } } 然后运行下面的语句生成文件: slice2pyPrinter.ice 生成如下文件: 然后... 阅读详情

引言
通过使远地调用变得像传统的方法调用一样容易,现代中间件技术力图
减轻程序员在转向分布式应用开发时的负担:你调用某个对象上的方法,
当该方法完成时,就会返回结果,或是抛出异常。当然,在分布式系统
中,对象的实现可能会驻留在另一个主机上,从而带来一些语义上的差
异,程序员必须加以注意,比如远地调用的开销,以及可能发生与网络有
关的错误。尽管有这样一些问题,程序员的面向对象编程经验仍然是有用
的,上述的同步编程模型(发出调用的线程会阻塞到操作返回)是我们所
熟悉和容易理解的。
Ice 在本质上是一个异步的中间件平台,出于对应用(及其程序员)的
考虑而模拟了同步的行为。当Ice 应用通过代理、向远地对象发出同步的双
向调用时,发出调用的线程会阻塞起来,以模拟同步的方法调用。在此期间, Ice run time 在后台运行,处理消息,直到收到所需的答复为止,然后
发出调用的线程就可以解除阻塞,解编结果了。
但是,在许多情况下,同步编程的阻塞本质太过受限。例如,在等待远
地调用的响应返回时,应用本来可以另外做一些工作;在这样的情况下使
用同步调用,应用就会被迫把工作推后、等待响应返回,或是在另外一个
线程中执行该工作。如果这些做法都不可接受, Ice 的异步设施提供了一种
有效的解决方案,可以改善性能和可伸缩性,或是简化复杂的应用任务。

异步方法分派
一个服务器在同一时刻所能支持的同步请求数受到Ice run time 的服务
器线程池的尺寸限制(参见15.3 节)。如果所有线程都在忙于分派长时间
运行的操作,那么就没有线程可用于处理新的请求,客户就会经验到不可
接受的无响应状态。
异步方法分派(AMD) 是AMI 的服务器端等价物,能够解决这个可伸缩
性问题。在使用AMD 时,服务器可以接收一个请求,然后挂起其处理,
以尽快释放分派线程。当处理恢复、结果已得出时,服务器要使用Ice run
time 提供的回调对象,显式地发送响应。
用实际的术语说, AMD 操作通常会把请求数据(也就是,回调对象和
操作参数)放入队列 ,供应用的某个线程(或线程池)随后处理用。这
样,服务器就使分派线程的使用率降到了最低限度,能够高效地支持数千
并发客户。
另外, AMD 还可用于需要在完成了客户的请求之后继续进行处理的操
作。为了使客户的延迟降到最低限度,操作在返回结果后,仍留在分派线
程中,继续用分派线程执行其他工作。
关于AMD 的更多信息,参见17.4 节。

总结
同步的远地调用是对本地的方法调用的自然扩展,它利用了程序员的面
向对象编程经验,使初学分布式应用开发的程序员的学习曲线平缓下来。
但是,同步调用的阻塞本质使得有些应用任务的实现变得更为困难,甚至
不可能,因此, Ice 提供了一个直截了当的接口,你可以用这个接口来访问
Ice 的异步设施。
如果使用异步方法调用,发出调用的线程可以调用一个操作,然后马上
就重获控制,不用阻塞起来等待操作完成。当Ice run time 收到结果时,它
会通过回调通知应用。
与此类似,异步方法分派允许servant 在任何时候发送操作的结果,而
不一定要在操作实现中发送。通过把费时的请求放在队列中,后面再进行
处理, servant 可以改善可伸缩性,并节省线程资源。

ICE-python学习笔记(二)—— .ice文件的编写 前言 做个笔记,持续更新 备注 支持C语言的标注法:/* xxxx*/ 和 // include 支持类似C语言的include,推荐使用<>,不允许使用 \ #include<SliceDefs/Clock.ice> 枚举 允许枚举 #if defined(__ICE_VERSION__) && __ICE_VERSION__ ... 阅读详情

相关推荐

ICE——java学习笔记(一)

主要内容摘抄自官网。 安装 我以前用python的时候装过。 官网:https://zeroc.com/downloads/ice 我是windows系统 ICE官网的连接不知道为什么不能用,有大佬直接扒了下载地址出来: https://zeroc.com/download/Ice/3.7/Ice-3.7.1.msi 下载后点开直接安装 打开命令行,输入slice2java -...

兰兰的博客 606

ICE学习笔记(01):Slice规范

【colorado】按语:本文是DPWI第4章的笔记。在3.3.1版的1~9章中与1.3.0版马维达先生中译本相应章节的内容基本相同,变化比较小,可以参考马维达先生的译本。 Slice 在客户与服务器之间建立合约,描述应用程序所使用的各种类型及对象接口。这种描述与语言实现无关。Slice 定义由编译器编译到特定的实现语言,编译算法称之

东风 1万+

初学ICE中间件总结笔记(一)

slice2cpp Printer.ice 参考文章连接:http://blog.youkuaiyun.com/whuqin/article/details/7750107 http://blog.youkuaiyun.com/nokianasty/article/details/9701863 http://yangguo.iteye.com/blog/1096630 ICE介绍 是ZeroC

daemon_msg的专栏 6032

ICE学习笔记一

每天都在用ICE,确又老是忘记,今天开始,把每次遇到的问题记录下来,免得每次碰到同样的问题去度娘、谷歌老半天。 先记录一段最简单的ICE进程间通讯实例(整理自ice开发指南),只针对java开发语言 实现目标:客户端进程像服务端进程发送一个hello world字符串,服务端收到之后在控制台打印出来 1.定义slice(Printer.ice),如下: [["java:packag...

iteye_16191的博客 220

GEE实战:基于Modis NPP数据的全球植被生产力动态监测与分析

本文详细介绍了如何利用Google Earth Engine(GEE)平台和Modis NPP数据,进行全球植被生产力的动态监测与分析。通过实战代码演示,涵盖数据加载、区域统计、年际趋势计算及空间制图等核心步骤,为生态评估与气候变化研究提供了一套高效的数据分析解决方案。

weixin_29197699的博客 550

Nginx配置Cookie安全属性:HttpOnly、Secure、SameSite实战指南

Cookie是Web应用中维持用户状态的核心机制,其安全配置直接关系到会话管理与身份认证的可靠性。从原理上讲,HttpOnly属性可防止XSS攻击窃取Cookie,Secure属性确保Cookie仅在HTTPS加密连接中传输,而SameSite属性则用于控制跨站请求时Cookie的发送行为,能有效防御CSRF攻击。这些安全属性的技术价值在于构建纵深防御体系,提升应用的整体安全性。在现代浏览器(如Chrome 80+)默认将未明确声明的Cookie视为SameSite=Lax的背景下,正确配置这些属性变得尤为

weixin_33783283的博客 323

避坑指南:在GEE中合成月度NPP数据时,为什么必须加.millis()和提前clip?

本文详细解析了在Google Earth Engine(GEE)中合成月度NPP数据时,为何必须添加.millis()方法和提前进行clip操作。通过技术原理分析和实际案例,帮助用户避免常见错误,确保数据处理的准确性和效率,特别适用于GEE和NPP数据处理的研究者。

weixin_30425949的博客 480

在AutoDL的A100云服务器上,用Docker搞定Sapien+RobotWin环境(附完整conda list)

本文详细介绍了在AutoDL的A100云服务器上使用Docker构建Sapien+RobotWin环境的完整指南。通过配置Vulkan渲染管线、精确复现Conda环境以及解决常见问题,帮助研究人员高效搭建稳定的机器人仿真开发环境,特别适合需要高性能GPU加速的复杂仿真任务。

weixin_30689307的博客 433

Zeroc Ice 学习笔记--集成Ice与Spring(参考Zeroc Ice 权威指南)

public class SpringUtil { private static ClassPathXmlApplicationContext ctx; private static final String configPath="applicationContext.xml"; public static synchronized &lt;T&gt; T getBean...

pdw2009的专栏 2239

【最全选型攻略-盘点篇】市面上有哪些靠谱的工业3D相机品牌?(双目、结构光、TOF、激光三角)

选工业3D相机,选最靠谱的品牌,选最Match你的产品,看这一篇就够了!

jiqishijueyingdi的博客 1万+

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

ZeroC Ice权威指南-学习笔记1——hello world

前言 ZeroC Ice是一款很好的RPC框架,性能极好。但是参考文档不足是其一大问题,这也影响了它的传播。《ZeroC Ice权威指南》是唯一的中文教材,但写的不尽如人意,作为入门教材,啃着有点费劲。本系列博客就是学习这本教材的学习笔记,可以作为有需要的同学的辅助参考材料。其中主要是实操类的流程介绍,由于书中的ice版本比较老,和比较新的ice版本有不少使用上的差异,本系列博客使用的是ICE3.7.2,按照书中的步骤,会遇到不少的坑,所以整理了一些学习笔记。 但是!学习了一段时间发现,我所在的公司在逐步弃

yunduanyou的博客 1368

【实际操作】DenseFusion复现过程详解-YCB-Video数据集

这一篇是在YCB-Video数据集上的训练和测试过程。本次实验建立在实现LineMod数据集训练基础之上,因为前期的环境搭建都是一样的。首先,需要下载YCB-Video数据集,可以自己找找百度网盘资源,大概有两百多G。把下载下来的数据放在/work/DenseFusion/datasets/ycb/下并命名为YCB_Video_Dataset。同样的,激活自己的环境并进入 /work/DenseFusion/下,用命令:./experiments/scripts/train_ycb.sh出现以下内容开始训练

weixin_44564705的博客 3564

ICE 学习笔记

Hello.ice #ifndef SIMPLE_ICE  #define SIMPLE_ICE  //名字空间 or 包名  module demo.slice.Hello  {  interface Hello{   void printString(string s);  };  };#endif  服务器:  HelloI.java  package demo.ice.Hello.serv

bubei的专栏 1876

YOLOv8独家原创改进:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4686

【SystemVerilog基础】SystemVerilog Assertion 概述

断言主要是描述复杂的设计行为;是传统验证方法学一个很好的补充,可以检查到电路内部细节,相当于一种白盒验证,传统的验证方法学是纯粹的黑盒验证!property跟上面的sequence差别不大,唯一有差别可能多了两个implication(|->,|=>)注意,当有前置条件时,不满足前置条件不会fail,而是伪真!上面这个因为没有前置条件,每个周期都会去检查!注意:当没有前置条件时,不满足条件会直接fail!

MoorePlus的博客 334

RFC5245 ICE学习笔记1

ICE学习笔记 -- RFC 5245 RFC 5245 ICE 1, offer/answer model 2, ICE Step: 1) 产生候选地址(1.公网 2.NAT反射 3.Relay转发地址) Generate candidates (host candidates, server reflexive candidates, peer reflexive candidates, and relayed candidates) 2) 本地对端交换候选地址,完成连接性检查...

hyl999的专栏 587

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ICE(internet communication engine)学习笔记

 直接在google上搜索ICE,出来的结果并不多,所以很多人就认为ICE是个神秘的东西,其实,国内已经有很多大型应用在使用ICE了。前段时间因为工作的关系被逼学习了ICE, 感觉不错的东西。我记录下入门的一些概念,希望对后来的学习者有所帮助。     什么是ICE  (Internet Communications Engine)          首先,ICE是一个中间件(如果

chayatou的专栏 5542

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Zeroc Ice 学习笔记--IceBox

Zeroc Ice 学习笔记--IceBox 1、介绍 IceBox就好像是一个Tomcat,只需要服务实现Ice.Server接口并能轻松搞定 2、案例(参考Zeroc Ice 权威指南) ice文件 编译Ice文件: 接口实现: 实现方法中连接数...

544

Zeroc Ice 学习笔记--基础部分

Zeroc Ice 学习笔记 1、Slice语言基本介绍 基本类型:bool、byte、short、int、long、float、double、string const string test =“hello”;常量定义 enum fruit {...

457

ICE 2.0学习笔记1(HelloWorld)

Hello.ice  #ifndef SIMPLE_ICE#define SIMPLE_ICE//名字空间 or 包名module demo.slice.Hello{ interface Hello{  void printString(string s); };}; #endif

冰河の泥鱼的专栏 1361

ICE中间件学习笔记 基础理论篇

ICE中间件学习笔记 基础理论篇 1、“最多一次”语义     idempotent操作,如:x=1,执行多次对结果无影响,反之如:x++,执行多次对结果有影响。Ice的内在机制保证了在第一次确定失败时才会进行重试,将操作标记为idempotent,将使Ice runtime更积极的进行错误恢复。 2、同步方法调用     缺省情况下,客户端将使用同步方式进行远程过程调用,期间客户

liang12360640的专栏 1623

ICE—互联网通信引擎的学习笔记

在开发企业应用的时候,网络通信引擎的选取是至关重要的,有些大公司往往自己独立开发网络协议以及处理socket通信,但对于中小企业来说,利用开源的网络引擎无疑会给你带来很多好处,你无须再关心繁琐的编解码以及一系列协议,也无须关心底层网络通信,你只需要关心你的业务就可以了,本文介绍的是ice网络通信引擎,其中大名鼎鼎的skype的通信协议的一部分就是采用的是它!   互联网通信引擎的选型我觉得有几...

214
上一篇: osgi介绍(一)什么是osgi
下一篇: shutdown hook(关闭钩子)的用处-程序关闭之前要做的事情
friendggz
博客等级 码龄23年 9粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值