.net中的通讯方案很多,从.net Remoting,MSMQ,Webservice,WSE,WCF等等,他们都有一个特点,易用,但是都不能跨语种异构,如果你服务端要用java开发,客户端用C#开发,或者其它语言譬如C++Python,PHPRubyObjective-C,等等,那么.net提供的解决方案将不再有效。现在,隆重推出跨平台异构方案ICE。ICE官网:http://www.zeroc.com/ice.html

  简介:The Internet Communications Engine (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, and it takes care of all interactions with low-level network programming interfaces. With Ice, there is no need to worry about details such as opening network connections, serializing and deserializing data for network transmission, or retrying failed connection attempts (to name but a few of dozens of such low-level details).

 关于ICE的中文资料十分匮乏,实际开发过程中我全部是根据官网提供的文档来做处理的,官网文档Url:http://doc.zeroc.com/display/Doc/Home

 另外关于ICE的性能还有一些其它的评测:http://zeroc.com/articles/IcePerformanceWhitePaper.pdf

这上面的数据显示ICE比WCF的性能略高一些,当然是在一个数量级的。

 开发环境搭建:在写第一个简单程序之前,首先需要下载ICE安装文件:http://www.zeroc.com/download.html和ICE插件:http://www.zeroc.com/vsaddin.html,这个有什么用呢,听我细细说来.

ICE通讯框架基本原理: 若是让你自己设计一个通讯框架,支持多种语言,你会怎么弄? ICE的思路是,用一个中间语言,建立数据结构规范和接口规范,然后再用一个IDE编译插件,将中间语言数据结构规范和接口规范编译为当前的语言,譬如C#的CS文件,接下来,你在客户端和服务端实现中间语言定义号的接口,再做一些其它处理,就可以实现一个分布式程序了。这个思路确实很Nice,值得我们借鉴。

安装文件中有一些ICE的dll,ICE的Demo,还有一些其它的东西。

ICE插件就是我上面说的IDE编译插件。

 熟悉WCF的朋友知道,WCF在编写分布式程序时要定义数据contract和服务Contract,ICE也是如此,只不过用的中间语言定义,加上编译器编译为了我们能理解的语言。

至于 为什么要用中间语言,其实很简单,每个语言所支持的数据结构的名称是不一样的,譬如Java的Map和.net的Dictionnary,诸如此类,中间语言起到一个转换的效果。中间语言的语法类似与C,或者说C++的语言,用起来有一定难度。

好了,简介至此,下一篇将开始我们的Hello world程序,写一个正式能用的通讯程序出来。

  

The Internet Communications Engine (Ice) 跨平台异构通讯方案 第一弹-ICE简介的更多相关文章

  1. The Internet Communications Engine (Ice) 跨平台异构通讯方案 第二弹-Hello world!

    如果不知道ICE是什么的同学,请看上一篇的ICE简介:http://www.cnblogs.com/winds/p/3864677.html 好了,HelloWorld,从中间语言讲起. 首先,我们新 ...

  2. 什么是ICE (Internet Communications Engine)

    http://user.qzone.qq.com/77811970 直接在google上搜索ICE,出来的结果并不多,所以很多人就认为ICE是个神秘的东西,其实,国内已经有很多大型应用在使用ICE了. ...

  3. Ice-E(Embedded Internet Communications Engine)移植到s3c2440A(arm9)linux(2.6.12)上的

    2009-03-26 18:31:31 原文链接 1.前言 ICE-E是ICE在嵌入式上运行的一个版本,与ICE比较如下: Category Ice 3.3.0 Ice-E 1.3.0 Thread ...

  4. ZeroC Ice启用SSL通讯的配置

    Zeroc ICE ( Internet Communications Engine )中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯 ...

  5. 【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)

    [连载]<C#通讯(串口和网络)框架的设计与实现>-1.通讯框架介绍 [连载]<C#通讯(串口和网络)框架的设计与实现>-2.框架的总体设计 目       录 C#跨平台物联 ...

  6. 开源跨平台IOT通讯框架ServerSuperIO,集成到NuGet程序包管理器,以及Demo使用说明

          物联网涉及到各种设备.各种传感器.各种数据源.各种协议,并且很难统一,那么就要有一个结构性的框架解决这些问题.SSIO就是根据时代发展的阶段和现实实际情况的结合产物. 各种数据信息,如下图 ...

  7. 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载

    更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间 ...

  8. [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!

    注:ServerSuperIO 2.0 还没有提交到开源社区,在内部测试!!! 1. ServerSuperIO(SSIO)说明 SSIO是基于早期工业现场300波特率通讯传输应用场景发展.演化而来. ...

  9. [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式

    1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业 ...

随机推荐

  1. IE 直接打印 页面的方式

    1. 通过在IE中加载adobe pdf reader 插件 进行直接打印和打印的配置(推荐) <body>   <object id="pdf1" width= ...

  2. day03.2-内置函数的使用

    1. 取绝对值函数,abs() res = abs(-1) print(res) """ 运行结果:1 结果分析:计算-1的绝对值 """ ...

  3. lua 5.3 英文手册 google机器翻译版

    LUA Lua 5.3参考手册作者:Roberto Ierusalimschy,Luiz Henrique de Figueiredo,Waldemar Celes 版权所有©2015-2018 Lu ...

  4. 【OCP|052】052考试题库又变了,最新052题库收集整理-第15题

    15.Which two are true about space management in tablespaces? A) Locally managed tablespaces have eit ...

  5. centos6 编译安装nodejs4.3

    官网下载源码包 https://nodejs.org/en/download/ source code #下载 wget https://nodejs.org/dist/v4.3.2/node-v4. ...

  6. php中模拟post,get请求和接受请求详细讲解

    在php中我们经常用到curl拓展来进行模拟post.get请求,下面就来具体说说怎么模拟: 一.首先模拟post请求: function http_post_data($url, $query_da ...

  7. loj #6570. 毛毛虫计数

    $ \color{#0066ff}{ 题目描述 }$ hsezoi 巨佬 olinr 喜欢 van 毛毛虫,他定义毛毛虫是一棵树,满足树上存在一条树链,使得树上所有点到这条树链的距离最多为 1. 给定 ...

  8. CF666E Forensic Examination SAM+线段树合并+前缀树倍增

    $ \color{#0066ff}{ 题目描述 }$ 给你一个串\(S\)以及一个字符串数组\(T[1..m]\),\(q\)次询问,每次问\(S\)的子串\(S[p_l..p_r]\)在\(T[l. ...

  9. AIMR 固定收益推荐读物

    目录 AIMR Suggested Fixed-Income Readings I. Perspectives on Interest Rates and Pricing of Traditional ...

  10. Compile Groovy/Spock with GMavenPlus

    在之前的博文里曾使用GMaven插件编译Groovy/Spock,这次使用GMavenplus插件,更加方便. 具体步骤 1. 导入Spock和Groovy依赖 <dependency> ...