ICE第二版模板.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ICE第二版模板

第2章 Zeroc ICE启程2.1 Zeroc ICE平台介绍Zeroc ICE(以下简称ICE)师出名门,是由前CORBA专家Marc Laukien、Michi Henning及SSL安全调用,并且随着IT技术的变化和发展,ICE不断地推陈出新,每年都有新版本问世,从诞生到当下,十几年的历史,其王者地位无人撼动。ICE,因此在很多细节方面都有一些值得称道的做法,下面是其中一些关键特性。支持多语言之间的RPC互通。与众多平台不同,它的服务端也可以是几种语言开发,比如C、.NET、JAVA、Python等,不同语言开发的服务端与客户端可以完全互通,对于支持多语言的服务来说,是很难得的一个特性,省去了大量的开发成本和开发周期。高性能RPC调用。这点是业界公认的,一些大型联网游戏及Skype等对实时性要求很高的系统都采用了ICE平台,足以说明这一点。笔者也曾做过简单对比,也验证了其高性能,而且在不同语言的客户端调用时,其性能仍然很好。支持传统的RPC调用、异步调用、One-Way调用,批量发起请求,支持TCP通信、UDP通信适用于不同业务场景。支持安全通信,ICE框架里提供了支持业界标准的SSL安全加密的可拔插插件。并且多种编程语言都支持该特性。多平台支持。包括X86系统、ARM、移动设备等。提供了强大的ICE Grid。支持注册表主从备份,无单点故障,服务按需启动,随时扩容和迁移,完备的负载均衡机制无须客户端重启,自动感应服务位置的变化。不断更新,与时俱进。对近些年流行的JavaScript语言及新的移动平台的支持都及时跟上。这里,笔者仅就多语言开发支持这一特性来分析Zeroc ICE平台所能带给你的额外价值,当你采用ICE框架开发一个服务后所能直接变现的承诺,在图2.1中完美诠释:。图2.1 ICE多语言支持示意图对于一个规模较大的平台来说,开发一个服务并不很难,但如何让多种语言都能很一致地调用你的服务并联调通过,则很不容易,即使对于SOAP这种看似很标准的接口来说,依然存在很多编程语言和SOAP框架的版本等兼容性问题。而HTTP Rest的接口,在联调时还是会碰到各种参数问题。从经验来看,除非把一个现成的编译好的客户端代码发给对方,否则会开发一次,到处联调,形成平台开发的梦魇。 我们来看看ICE平台的组成,ICE平台从功能可以划分为以下几部分。Slice工具。将Slice语言定义的服务接口编译成各种具体语言的实现代码,属于开发环境的一部分。ICE容器和命令。包括ICEGrid、ICERegistry、ICENode、ICEAdmin、ICEPatch等命令,用于启动、管理ICE Grid,需要在运行ICE服务的机器上选择性部署其中的某一个或几个组件。ICE运行库。为一组API库,不同的语言有不同的实现,如Java对应Jar文件,C语言对应.so文件(在Windows下对应为.dll文件),这些运行库需要被ICE服务端程序和客户端程序所调用,以实现ICE内部的底层通信。下面我们看看采用ICE平台开发一个具体项目时所要遵循的一般流程,如图2.2所示。图2.2 ICE跨语言开发流程示意图这个开发流程示意图告诉我们,怎样从零开始,开展ICE跨平台的项目开发活动,简单的说,就是首先用Slice语言定义中立的服务接口文件,然后采用相应语言的命令行编译生成对应的程序骨架源文件,最后实现服务端业务代码开发,部署服务,然后客户端利用Ice提供的运行期客户端Library(JAR文件)实现远程服务方法调用,详细步骤如下所示:分析和设计系统的服务:采用面向服务架构或者是“微服务”的设计理念进行系统分析和设计,确定系统中的“服务”单元、每个服务的接口及服务之间的依赖关系。服务接口定义:采用ICE Slice语言对服务接口进行定义,并用Slice工具编译成你所熟悉的开发语言(本书以Java为例)的实现代码,这些实现代码包括服务端和客户端骨架代码,可以认为是项目中的“公共”包。服务端业务逻辑实现:在Slice生成的服务端代码上进行业务逻辑代码的编写,在这个过程中除了在服务之间相互调用时用到ICE的一些API外,在绝大多数情况下,不会用到ICE的代码。编写ICEGrid的服务描述文档:xxxgrid.xml,此文档类似于J2EE的web.xml或 EJB的服务描述文件,定义了每个服务的访问地址(Endpoint)、部署的节点(ICENode)、负载均衡策略(replica-group)等关键信息。打包代码并部署到各个ICENode上,启动ICEGrid,借助ICE工具发布xxxgrid.xml,服务端工作至此基本完成。很重要的一点是,借助ICE平台提供的工具,你可以很方便地将xxxgrid.xml中的服务重新规划和部署到新的节点上,而客户端无须重

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档