ICE
文章平均质量分 77
晨明一剑
独立游戏制作人
展开
-
ICE学习(一) ICE 编程模型
The Ice Programming ModelICE编程包含4步:1. 用Slice(Specification Languagefor Ice)定义类型和接口。2. 将Slice定义(Slice definitions)编译为你选择的语言。3. 写客户端, 其中使用到Slice编译器生成的代码4. 写服务器,其中使用到Slice编译器生成的代码下图原创 2014-04-03 11:06:47 · 8588 阅读 · 0 评论 -
ICE-NODEJS NODE.JS使用ICE进行分布式通信-环境搭建
ICE3.7目前并不是稳定版本,因此选择ICE3.6.4,编译器VS2015。要注意,ICE3.6的代码和ICE3.7的代码不同。使用官方文档时,使用对应的版本。参考 https://doc.zeroc.com/pages/viewpage.action?pageId=16715986一.ICE安装:ICE3.6.4 https://zeroc.com/downloads/ic原创 2018-01-18 16:57:33 · 2694 阅读 · 0 评论 -
ICE-NODEJS SLICE to JavaScript 客户端操作
参考https://doc.zeroc.com/display/Ice36/JavaScript+Mapping+for+OperationsAMI(Asynchronous Method Invocation)用来描述客户端支持异步编程模型。AMI支持单向和双向请求并且不会阻塞。当客户端发起AMI请求时,ICE将消息放到传输队列后,应用就可以执行下面的代码。当请求结束时,应用会接到回调。原创 2018-01-30 17:53:08 · 1061 阅读 · 1 评论 -
ICE学习(九) 客户端自动重试
参考https://doc.zeroc.com/display/Ice36/Automatic+RetriesICE客户端如果发送消息失败,可能会自动重试。这一特性非常强大。在特定环境下,这一点将显著提升程序的健壮性同时不需要额外编码。重试机制遵守一个原则: 最多一次(at-most-once semantics)。 最多一次原则规定,ICE客户端在失败的时候,不会重试,除非能确定服务器没原创 2018-01-22 15:49:51 · 2363 阅读 · 0 评论 -
ICE学习(八)-异步方法调用AMI
Asynchronous Method Invocation (AMI)是客户端的异步编程模型。和同步请求不同,AMI不会堵塞他所在的线程。对于服务器端来说,同步和异步请求是没有什么区别的。基本异步API看下边的SLICE定义,使用slice2cpp生成.h,.cpp文件。module Demo { interface Employees {原创 2015-10-23 17:04:10 · 2561 阅读 · 0 评论 -
ICE学习(七)-线程池
线程池服务器线程池每个服务器(communicator)都有2个线程池:Client thread pool:处理对客户端请求的回复,并回调(通知客户端异步回调对象AMI callback objects)。Server thread pool:处理客户端的请求。配置线程池name.Size线程池的初始大小,默认值1。name.SizeMax线程池最大体积。默认原创 2015-10-22 13:59:17 · 5364 阅读 · 0 评论 -
ICE学习(六)-Slice语言介绍
Slice语言介绍Slice (Specification Language for Ice)语言建立了一种服务器和客户端之间的契约,他描述了接口和数据类型。这种描述和语言无关,因此,客户端和服务器不需要用同一种语言来编写。 读作 [slaɪs]编译器可以将Slice定义编译转换为其他语言的数据类型和API。目前,支持C++, Java, C#, Python, Objective-C原创 2014-09-17 09:30:37 · 4871 阅读 · 1 评论 -
ICE学习(五)-Ice Storm介绍
IceStorm 是一个高效的publish/subscribe服务。程序需要分发给多个信息的情况很多。比如一个天气监控程序,它从气象塔收集风速和温度情况然后定期的把他们分发到天气监控站,架构如下图但是,这种架构的缺点就是,collector和monitor耦合在一起。这种耦合使得collector的实现变得复杂,因为他需要处理monitor的注册,投递,和错误恢复等等。有了Ice我们可以原创 2014-04-10 10:19:11 · 11377 阅读 · 8 评论 -
ICE学习(四)-Ice Box介绍
参考http://doc.zeroc.com/display/Ice/IceBoxIceBox是一个易用的ice应用服务的框架。它使用通用的IceBox server来取代普通的Ice server。IceBox server通过属性来配置,可以被远程管理。这种架构有很多优点如下:1.一个IceBox server启动的几个服务可以获得 Ice's collocation optimi原创 2014-04-09 11:38:32 · 5064 阅读 · 0 评论 -
ICE学习(三)-Ice Services介绍
http://doc.zeroc.com/display/Ice/Ice+ServicesIce提供了一个复杂的客户端-服务器平台。但是,真实的应用程序需要的不止是远程通讯能力,一般来说,你还需要按需启动服务器,分布式代理,分布异步时间,配置应用,升级应用程序等能力。Ice提供了许多服务来支持这些功能。这些服务被实现为一个Ice服务器,你的应用作为一个客户端。虽然,开发者可以自己用Ice来原创 2014-04-05 21:46:01 · 1860 阅读 · 0 评论 -
ICE 安装配置VS插件
ICE为不同的IDE都提供了插件。本文介绍VS的配置。首先建立一个控制台工程,以此为例,进行介绍。1.激活插件选择工具-> IceConfiguration或者在工程右键选择IceConfiguration,打开插件的配置界面。2.配置工程设置Enable IceBuilder必须选择。Trace Level 用来控制输出窗口中打印的信息。Output director原创 2014-04-05 21:41:28 · 2630 阅读 · 0 评论 -
ICE学习(二)-Ice编程 C++
本节介绍下如何用C++编写ICE程序,步骤和之前编程模型里介绍的是一样的。这个程序很简单,是一个远程打印,客户端发一个字符串给服务器,服务器打印再发一个回复回来。1.写Slice Definition//Printer.icemodule Demo { interface Printer { void printString(string s);原创 2014-04-05 21:39:07 · 4006 阅读 · 0 评论 -
ICE-NODEJS SLICE to JavaScript 客户端接口映射
参考:https://doc.zeroc.com/display/Ice36/Client-Side+Slice-to-JavaScript+Mapping代理接口 Proxy Interfaces in JavaScriptSlice语言定义接口如下:interface Simple { void op();};Slice编译器会产生原创 2018-01-26 17:08:52 · 454 阅读 · 0 评论