The Internet Communications Engine (Ice) 跨平台异构通讯方案 第一弹-ICE简介

  .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程序,写一个正式能用的通讯程序出来。

  

posted @ 2014-07-24 08:37  灬后知后觉  阅读(801)  评论(0编辑  收藏  举报