ICE 入门(1)

来源:互联网 发布:净资产收益率排序软件 编辑:程序博客网 时间:2024/05/16 05:05

Ice 全称The Internet Communications Engine 。网络互联引擎。

Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面向对象的客户-服务

器应用提供了工具、API 和库支持。Ice 应用适合在异种环境中使用:客户和服务器可以用不
同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术

进行通信。无论部署环境如何,这些应用的源码都是可移植的。

他是面向对象的;

他可以构建分布式程序;

有了他,你只需关注业务逻辑即可,不需关注通讯的细节。

他是开源,跨平台的;可以自己用源码编译;

官网:https://doc.zeroc.com

windows下下载https://zeroc.com/download.html。 Ice-3.5.1-6.msi

安装好了有Demo程序;

用C++需要Visual Studio 2010及以上版本;

ICE支持多种编程语言:C++、Java、C#、VB、Python、Ruby,也就是说使用ICE时我们可以让这些语言无缝沟通,不过由于ICE是用C++编写的,不管用什么语言,你都需要先用C++编译出一个ICE才行(或者下载已编译的版本)。 

跨语言的分布式系统首先要定义一个与编程语言无关的接口描述语法,用于分布于各处的服务器与客户端之间对话。比如DCOM和CORBA使用IDL语法,SOAP使用WSDL语法,当然还有时下流行的JSON。

ICE使用的是称为Slice(Specificatoin Language for Ice)的语法,Slice语法和C++(或Java,C#)比较相近,只要会C++(或Java,C#)很容易就能写Slice定义了

    

下表是Slice与C++的映射关系

SLICEC++#include#include#ifndef#ifndef#define#define#endif#endifmodulenamespaceboolboolbyteIce::ByteshortIce::ShortintIce::IntlongIce::LongfloatIce::FloatdoubleIce::DoublestringIce::stringenumenum(不支持指定数字)structstructclassclass(所有方法都是纯虚函数)interfacestruct(所有方法都是纯虚函数,没有成员变量)sequence<T>std::vector<T>dictionary<Key,Value>std::map<Key,Value>exception Errclass Err:public Ice:UserExceptionnonmutating方法限定符const方法idempotent方法限定符-out 参数限定符引用类型*对应类型的代理类
0 0
原创粉丝点击