• 1. 曾海涛 ICE通信框架简介
  • 2. ICE是什么Internet Communications Engine ICE是一款高性能的中间件,支持分布式的部署管理,消息中间件,以及网格计算等等 跨平台,跨语言的通信中间件 ACE + TAO DCOM CORBA SOAP web service
  • 3. ICE特性面向对象的语义。 支持同步和异步的消息传递,提供了同步和异步的操作调用和分派,提供了发布——订阅消息传递机制。 与硬件架构无关,客户端及服务器与底层的硬件架构屏蔽开来。对于应用代码而言,像字节序和填充这样的问题都隐藏了起来。 与上层的编程语言无关,客户端和服务器可以分别部署,所用语言也可以不同,支持C++、Java语言,客户端支持PHP语言。 与采用的操作系统无关,ICE完全是可移植的,同样的源码能够在Windows、Linux、MacOS和UNIX上编译和运行。
  • 4. ICE特性(续)完全是线程化的,其API是线程安全的。 采用TCP、IP 和UDP作为传输协议,客户端和服务器代码都不需要了解底层的传输机制。 服务器的位置是对用户透明的,ICE例程负责定位对象,并管理底层的传输机制,比如打开和关闭连接。客户与服务器之间的交互显得像是无连接的。服务器可以迁移到不同的物理地址,而不会使客户持有的代理失效,而客户完全不知道对象实现是怎样分布在多个服务器进程上的。 采用SSL强加密,可以使客户和服务器完全安全地进行通信。 采用内建的持久机制创建持久的对象。并且提供了对高性能数据库Berkeley DB的内建支持。
  • 5. 支持的平台C++, .NET, Java, Python, Objective-C, Ruby, PHP Window Linux 手机平台 MacOS 源码提供 BSD。。。
  • 6. 为啥ICE适合500wan运行效率 相对于ACE 自己写的socket 效率会低点 但相对 corba, web service http协议 高 开发效率 我们系统的特性 多语言 多平台 性能瓶颈主要在存储上面
  • 7. 传统的网络编程http 方式 就不说了 属于应用层 TCP/IP 层的Socket编程 初始化 fork 关闭不必要的文件描述符 Socket 调用 Bind Listen 循环 accept Select/epoll
  • 8. 网络编程相关进程/线程模式 进程线程的管理 one per request 预fork 线程的监控,重生 数据的共享 互斥 同步 共享内存 管道 信号量
  • 9. 网络编程相关(续)队列等常用数据结构 锁 同步 互斥
  • 10. ICE方式的编程Slice 接口 不需要我们再去编解码,定义复杂的socket协议 Leader/follow 线程池 不需要我们再去管理线程,任务调度 本身epoll select 模型 简化了通信模型 内置的互斥 同步处理库 我们只需要关注于我们的业务,面向接口编程
  • 11. SLICE语言客户端与服务器之间接口协议,描述应用程序互相通信所使用的各种类型及对象接口 由编译器编译特定语言的类型定义和API 数据类型 基本数据类型 枚举,结构体,序列,字典 异常。。。 具体可以参考手册
  • 12. Slice示例-过关服务module GuoguanService { interface Lottery { void doGuoguan(int lotid, string expect, string opencode); void doUpdate(int lotid, string expect); string getStatus(int lotid); string postXml(int lotid, string expect); string postExpect(int lotid, string expect); string sendMsg(int lotid, string expect,string openCode); string doCompare(int lotid, string expect); void restart(); void shutdown(); }; };
  • 13. slice2py
  • 14. 示例演示。。。
  • 15. ICE在500wan的应用消息中心 个人中心最新动态 (php->python) 数据库执行日志 (php->python) 告警平台 (icestorm 订阅方式)
  • 16. ICE的应用(续)账务中心 交易服务器 目前500wan核心交易都已经全部移植到ICE通信平台上 开发语言:C++ 客户端php 稳定性,效率 表现不错
  • 17. ICE的应用(续)后台服务 (ajax php->python ) 过关统计 北单自动派奖 自动切票 静态文件发布 (多级分布式发布) 后续还会有很多很多。只有想不到,没有做不到的。。。
  • 18. 参考官网 www.zeroc.com 官方文档 1.3 中文. 3.+ 版本英文版 UNIX环境高级编程 操作系统 相关知识 多线程/进程编程 同步/互斥 Socket 编程 。。。 我 阿星 振旺
  • 19. Q&AThanks msn&mail:gnudriver@hotmail.com qq:41608155