`
mmdev
  • 浏览: 12916476 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Ice读书笔记--中间件概念与Ice综述(二)

 
阅读更多

二。Ice综述

1.3)Slice(Ice规范语言)

1.3.1)概述

每个Ice对象都有一个接口,该接口具有一些操作。接口、操作,还有在客户与服务器间交换的数据类型,都是用Slice语言定义的。Slice语言一种独立于特定编程语言的方式来定义客户-服务器的合约。Slice定义由一个编译器编译成特定编程语言的API,也就是说所定义的接口和类型对应的那一部分API会由生成的代码组成。

1.3.2)语言映射(后续会详细介绍)

1.3.3)客户与服务器的结构

客户与服务器都由这样一些代码混合而成:应用程序代码,库代码,根据Slice定义生成的代码:

a)Ice核心为远地通信提供了客户端与服务器端运行时的支持。

b)Ice核心的通用部分,也就是与Slice定义的特定类型无关的部分,可以通过Ice API访问。

c)代理代码是根据Slice的定义生成的,因此与Slice定义的对象很热数据的类型是对应的。

1.3.4)Ice协议

Ice提供了一种RPC协议,既可以把TCP/IP,也可以把UDP用作底层传输机制。此外,Ice还允许把SSL用作传输机制,让客户与服务器之间的通信进行加密。

Ice协议定义了:消息类型(请求or答复),协议状态机,编码规则,消息内容等等。

1.3.5)对象持久

Ice拥有内建的对象持久服务,叫做Freeze。Freeze能够让我们在数据库中存储对象状态:先用Slice定义某个对象要存储的状态,Freeze编译器会生成代码,用

据库中存储和取回对象状态。

1.4)Ice服务

Ice核心为分布式应用开发提供了一个完善的-服务器平台。但现实应用需要的常不止是远地通信能力,他还需要包括:随需启动服务器、把代理分发给客户、分发异件、配置应用、分发应用补丁等等。

1.4.1)IcePack:Ic的定位服务器,用于在使用简介绑定时把符号性的适配器名解析为协议-地址对。

1.4.2)IceBox:一种简单的应用服务器,可用于协调许多应用组件的启动和停止。应用组件可以作为动态库,而不是进程进行部署。

1.4.3)IceStorm:IceStorm是一种发布-订阅服务,能够解除客户与服务器之间的耦合。本质上它充当事件分发交换机。发布者将事件发给他,由他发给订阅者。

1.4.4)IcePatch:IcePatch是一种软件修补服务,通过它可以把软件更新分发给客户。

1.4.5)Glacier:Ice的防火墙服务。

1.5)Ice在架构上提供的好处

为应用开发者提供了一些好处:

a)面向对象的语义:“在线路上”保留面向对象范型。

b)支持同步和异步的操作调用和分派,并通过IceStorm提供了发布-订阅消息传递机制。

c)支持多个接口:对象可以提供多个不相关的接口,同时又跨越这些接口,保持单一的对象标识。

d)机器无关性:客户及服务器与底层的机器架构屏蔽开来。

e)语言无关性:客户和服务器可以分别部署,所用语言也可以不同。由Slice定义建立两者之间的接口合约。

f)实现无关性:客户与服务器之间,各自的内部实现对于对方来说是隐藏的。

g)传输机制无关性:客户与服务器代码不需要了解底层的传输机制。目前Ice采用了TCP/IP和UDP来作为传输协议。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics