ICE(三)——概述

ICE是一种面向对象的中间件平台。可以在异构环境中使用:客户与服务器可以用不同的编程语言,可以运行在不同的操作系统和机器架构上,可以使用多种网络技术进行通信。

Slice

Slice(Specification Language for Ice)是ICE所特有的一种语言,Slice在客户与服务器之间建立合约,描述应用所使用的各种类型及对象接口。 

1.含有Slice定义的文件必须以.ice为扩展名。 

2.支持 #ifndef、 #define、 #endif,以及 #include 预处理指令。(#include只允许使用<>,不能使用“”指定文件名)。

语言映射

语言映射是决定怎样把每一个Slice成分翻译成为特定语言的一些规则。

以Slice-to-C++ 映射为例: 

-标识符的映射

所有的Slice标识符都映射到相同的C++标识符。(例外:当Slice与C++标识符一样时,对应的C++标识符前加上前缀____cpp____ 

-模块的映射

Slice模块映射到C++的名字空间,并保持嵌套层次。

eg:  

Slice代码如下:

module M1 {
            module M2 {	
                          // ...	
            };
	    // ...
};
// ...
module M1 { // Reopen M1
             // ...
};


上面的Slice映射到C++为:

<span style="font-size:18px;">namespace M1 {
                   namespace M2 {	
                   // ...	
                   }	
 // ...
}
// ...
namespace M1 { // Reopen M1
                    // ...</span><span style="color: rgba(128, 128, 128, 0.6); font-size: 0.9em;">
}</span>

-此外还有简单内建类型,用户定义类型,常量,异常,接口,操作,类等的映射。


**客户与服务器的结构**


1.ICE核心为远地通信提供了客户端和服务器端运行时支持。

2.ICE 核心的通用部分 (也就是说,与你用 Slice 定义的特定类型无关的部分) 可通过 ICE API 访问。

3.代理代码和骨架代码是根据你的Slice定义生成的。

4.对象适配器是专用于服务器端的 ICE API 的一部分:只有服务器才使用对象适配器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值