ICE笔记(03):ICE介绍 中间件概念与Ice综述

Ice-Internet Communications Engine,是一种面向对象、跨平台、多语言的通信中间件。支持C++、Java、C#、VB、Python等,客户和服务器可以用不同的语言,可以运行在不同的操作系统和机器架构上,支持TCP/UDP。

 

客户与服务器都由这样一些代码混合而成:应用程序代码,库代码,根据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编译器会生成代码,用

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

 

 ICE有以下几部分组成:  

Slice 

ICE的规范语言,跟CORBA的IDL(Interface Definition Language)等价的东西。Slice建立了客户端和服务器端共同遵守的契约:接口。Slice也用来描述对象持久数据。  

Slice Compilers 

Slice的规范语言可以影射成多种编程语言。目前ICE支持C++,Java,Python,PHP,C#和VB的语言影射。Ice的客户端和服务器端协同工作,而不会知道分别实现的是何种编程语言。  

Ice 

Ice的核心库。在众多的特性当中,Ice核心库通过一个高效的协议(包含TCP/UDP层上协议压缩)来管理所有的通信任务,为多线程服务器提供了一个灵活的线程池,并且有特别的功能来支持上百万对象的可扩展性。  

IceUtil 

一些常用的功能函数集。例如Unicode处理和多线程编程,是用C++写成。  IceBox 

一个专用于ICE应用的应用服务器。ICEBox可以方便地运行和管理动态加载、共享库或java类的形式Ice的服务。  

IcePack 

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

一个成熟的服务激活和部署工具。IcePack能大大简化在异构网络之间部署应用的复杂性。只要简单的编写XML格式的一个部署描述文件,IcePack就能自动处理剩下的工作。  

 

IceBox

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

 

IceStorm 

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

 

一个支持联盟的消息服务。和大多数的其他消息和事件服务相比,IceStorm支持有类型的事件,这意味着通过联盟广播一个消息和调用一个接口上的一个方法一样容易。  

 

IcePatch 

一个软件修补和分发的服务。为确保运行的软件是最新的版本,要经常更新软件,这是一件乏味的工作。

 

IcePatch自动更新在某个目录层次下的文件。只有需要更新的文件会下作到客户端,为了快速的下载更新,IcePatch使用的高效的压缩算法。 

 

Freeze 

Freeze提供了Ice Servants对象的自动持久性。通过几行代码,一个应用就可以生成一个高度可扩展的逐出器(evictor)来高效地管理持久对象。  

 

FreezeScript 

在大的软件项目里,持久对象的数据类型改变很常见。为了最小化这些变化的影响,FreezeScript提供了相应的工具来检查和移植Freeze生成的数据库。这些工具支持XML格式的配置脚本,易于使用。

 

IceSSL 

用于Ice核心的动态的SSL传输插件。提供了认证、加密和消息完整性,使用工业标准的SSL协议来实现。

 

Glacier 

Ice的防火墙服务

面向对象中间件平台的一个最大的挑战是安全性和防火墙。Glacier是Ice的防火墙解决方案,它大大简化了安全 程序的部署。Glacier认证和过滤客户的请求并允许服务器通过安全的方式回调客户端对象。结合IceSSL的使用,Glacier提供了强大的安全解 决方案,即安全,又易于配置管理。  

 

 

 

 

如想了解更多的详细信息,可以到http://www.zeroc.com上下载关于Ice的更多文档。 

 

Ice应用组成:

Ice对象——Ice对象是在本地或远地的地址空间中、能响应客户请求的实体。先由Slice定义,然后编译成特定语言版本;每个Ice对象有多个接口,支持特定操作,客户通过调用它的接口来发出请求;每个对象有唯一的对象标识。

Servants——服务器端编写的类实例,体现Ice对象行为。

代理(Proxies)——代理是Ice对象在客户端的代表,客户调用代理上的操作来获得服务端上Ice对象提供的服务。

通信器(Ice::Communicator)——通信时,服务器和客户建立一个通信器,为通信进程分配和管理资源,是双方通信的专用线路。

对象适配器(object adapter)——专用于服务器端的Ice API,把Ice run time与服务端编写的Servant类连接在一起。每个适配器绑定一个端口。

Ice应用的结构如下:



 

Slice

Slice (Specification Language for Ice, Ice规范语言),用于对象接口定义与实现相分离的基础性抽象机制,可以把定义好的Ice对象映射成特定语言。

Slice开发过程见下图:

相同开发环境



 

不同开发环境:



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值