ICE通信框架简介
ICE是什么
munications Engine
ICE是一款高性能的中间件,支持分布式的部署管理,消息中间件,以及网格计算等等
跨平台,跨语言的通信中间件
ACE + TAO
DCOM CORBA
SOAP web service
ICE特性
面向对象的语义。
支持同步和异步的消息传递,提供了同步和异步的操作调用和分派,提供了发布——订阅消息传递机制。
与硬件架构无关,客户端及服务器与底层的硬件架构屏蔽开来。对于应用代码而言,像字节序和填充这样的问题都隐藏了起来。
与上层的编程语言无关,客户端和服务器可以分别部署,所用语言也可以不同,支持C++、Java语言,客户端支持PHP语言。
与采用的操作系统无关,ICE完全是可移植的,同样的源码能够在Windows、Linux、MacOS和UNIX上编译和运行。
ICE特性(续)
完全是线程化的,其API是线程安全的。
采用TCP、IP 和UDP作为传输协议,客户端和服务器代码都不需要了解底层的传输机制。
服务器的位置是对用户透明的,ICE例程负责定位对象,并管理底层的传输机制,比如打开和关闭连接。客户与服务器之间的交互显得像是无连接的。服务器可以迁移到不同的物理地址,而不会使客户持有的代理失效,而客户完全不知道对象实现是怎样分布在多个服务器进程上的。
采用SSL强加密,可以使客户和服务器完全安全地进行通信。
采用内建的持久机制创建持久的对象。并且提供了对高性能数据库Berkeley DB的内建支持。
支持的平台
C++, .NET, Java, Python, Objective-C, Ruby, PHP
Window Linux 手机平台 MacOS
源码提供 BSD。。。
为啥ICE适合500wan
运行效率
相对于ACE 自己写的socket 效率会低点
但相对 corba, web service http协议高
开发效率
我们系统的特性
多语言
多平台
性能瓶颈主要在存储上面
传统的网络编程
http 方式就不说了属于应用层
TCP/IP 层的Socket编程
初始化 fork
关闭不必要的文件描述符
Socket 调用
Bind
Listen
循环
accept
Select/epoll
网络编程相关
进程/线程模式
进程线程的管理
one per request
预fork
线程的监控,重生
数据的共享互斥同步
共享内存
管道
信号量
网络编程相关(续)
队列等常用数据结构
锁同步互斥
ICE方式的编程
Slice 接口不需要我们再去编解码,定义复杂的socket协议
Leader/follow 线程池不需要我们再去管理线程,任务调度
本身epoll select 模型简化了通信模型
内置的互斥同步处理库
我们只需要关注于我们的业务,面向接口编程
架构师的胸怀 来自淘豆网m.daumloan.com转载请标明出处.