- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ice通信框架简介
ICE通信框架简介 曾海涛 ICE是什么 Internet Communications 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 模型 简化了通信模型 内置的互斥 同步处理库 我们只需要关注于我们的业务,面向接口编程 SLICE语言 客户端与服务器之间接口协议,描述应用程序互相通信所使用的各种类型及对象接口 由编译器编译特定语言的类型定义和API 数据类型 基本数据类型 枚举,结构体,序列,字典 异常。。。 具体可以参考手册 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(); }; }; slice2py 示例演示 。。。 ICE在500wan的应用 消息中心 个人中心必威体育精装版动态 (php-python) 数据库执行日志 (php-python) 告警平台 (icestorm 订阅方式) ICE的应用(续) 账务中心 交易服务器 目前500wan核心交易都已经全部移植到ICE通信平台上 开发语言:
您可能关注的文档
- HCS12中断讲解.ppt
- HisReport使用说明.docx
- HEAO-3.docx
- honeywell报警主机常见问题分析.doc
- HorizonII基站区别.ppt
- high-availability.ppt
- hdw-2016-08-Translation for company profile 2.ppt
- HDS容灾方案.doc
- Hotel Matters-general enquiries.ppt
- GZDW直流电源系统说明书.doc
- VLT系列开发:VLT MicroDrive FC 51_(4).VLT MicroDrive FC 51安装与配置.docx
- VLT系列开发:VLT Decentralized Drive FC 360_(7).VLT Decentralized Drive FC 360的网络通信与集成.docx
- VLT系列开发:VLT FlexDrive FC 280_(12).VLT FlexDrive FC 280必威体育精装版技术发展与趋势.docx
- ASDA系列开发:ASDA-A2系列_(4).ASDA-A2系列控制算法.docx
- DOP系列开发:DOPA系列_(8).DOPA跨平台开发指南.docx
- DOP系列开发:DOPB系列_(8).DOPB性能优化技巧.docx
- ASDA系列开发:ASDA-A3系列_(11).ASDA-A3系列性能优化.docx
- ASDA系列开发:ASDA-A3系列_(4).ASDA-A3系列通信协议.docx
- ASDA系列开发:ASDA-E系列_(4).ASDA-E系列驱动编程.docx
- VLT系列开发:VLT Decentralized Drive FC 360_(10).VLT Decentralized Drive FC 360的安全与防护措施.docx
文档评论(0)