




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICE网络编程利用ICE通信中间件构建分布式应用程序开发框架NISEC讲座系列之---演讲人:牵牛散步时间地点:JCB-410ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架一.ICE的有关概念1.什么是ICE?ICE,夏天我最容易想的是冰激淋:--)在这里我们要讲的可不是冰激淋,而是一种用于分布式程序设计的网络通信中间件ICE(InternateCommunicationsEngine).ICE的设计目标主要是以下几点:•提供适用于异种环境的面向对象中间件平台。在用ICE进行分布式程序设计时,你可以不必考虑客户端或者效劳器端程序所运行的平台(WINDOWS或者是LINUX,UNIX),也可以不用关心程序使用的开发语言(不过有一点需要注意,目前,利用PHP,RUBY等WEB脚本语言只能编写ICE程序的客户端,而效劳器端一般利用C++或者JAVA来实现).•提供一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。•防止不必要的复杂性,使平台更易于学习和使用。ICE的学习比较曲线比较短,很容易上手.只要你熟悉某一种语言(例如C++或JAVA),了解了ICE编程范式之后,很快就能开发出实际的应用.•提供一种在网络带宽、内存使用和CPU开销方面都很高效的实现。•提供一种具有内建平安性的实现,使它适用于不平安的公共网络。支持SSL协议(要使用此协议必须装OPENSSL开发包)ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架2.中间件技术与物流公司中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能够使应用软件相对独立于计算机硬件和操作系统平台.中间件具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作。在具体实现上,中间件是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。从开发者的角度来看,中间件技术为其提供了一个开发分布式程序的框架即一套API,使其不需要进行枯燥乏味,而且需要花费大量时间和精力的根底设施的开发.使开发者能把大量的精力放在业务程序的开发上,提高应用程序的质量和开发效率.这就好比一个生产的厂商,它的客户可能分布在世界的很多地方(这里假设这个厂商只在一个地方生产),当生产出来后,厂商有两个方案,一是自己建立物流部门去配送.二是把这些配送业务交给专业的物流公司去处理.显然第一种方案是比较适宜的,因为该厂商的专长是设计制造,而不是进行物流配送.对该厂商来说,他只需要按照物流公司的流程,把货交给物流公司,剩下的事情就由物流公来办,至于公司的产品是用飞机还是轮船运送的,厂商可以完全不关心,它只需要知道产品是否平安,完整的到达目的地了.对于这家厂商来说,此物流公司就是一个〞中间件〞.它们就可以把更多的精力放在如何设计和生产更好的产品上.ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架3.ICE对于发者来说有何优点?•支持同步和异步的消息传递•支持多个接口•机器无关性•语言无关性•实现无关性•操作系统无关性•多线程支持•传输机制无关性•平安性•开放源代码ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架4.ICE的相关术语•Slice〔Ice标准语言〕每个Ice对象都有一个接口,该接口具有一些操作。接口、操作,还有在客户及效劳器间交换的数据的类型,都是用Slice语言定义的。Slice允许你以一种独立于特定编程语言〔比方C++或Java〕的方式定义客户-效劳器的合约。Slice定义由一个编译器编译成特定编程语言的API,也就是说,与你所定义的接口和类型对应的那一局部API,会由生成的代码组成。•通信器(Ice::Communicator)ICE在进行通信时,效劳器和客户端都必须建立一个通信器,通信器为该通信进程分配和管理资源,可以把通信器看做通信双方的一个专用线路.•对象适配器(Ice::ObjectAdapter)对象适配器实现了一个向上调用接口,把Iceruntime与效劳器中的应用代码连接在一起.它提供一个或更多传输端点。客户通过这些端点访问适配器所提供的Ice对象,即通过适配器访问servant.一个对象适配器与一个端口绑定.如果效劳器端同时监听两个端口的话必须建立两个适配器.ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架•用户代理客户端通过用户代理来调用效劳器端提供的servant.可以把用户代理想象本钱地C++程序里的类指针,通过类指针来对实例进行操作.•Servant即ICE效劳器端提供给客户端的效劳.也是我们建立最关心的部份.它映射在效劳器端就是我们通过SLICE定义编译生成后的接口类.一个接口类为一个效劳.Servant必须和某个适配器绑定.ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架二.ICE的安装1.ICE在WINDOWS下的安装(FORVC++6.0WITHSP2)•下载windows平台下的安装软件包,ICE支持多种开发程序,在这里我们安装Ice-3.0.0-VC60.msi.软件包可以到官方网站去下载•一路NEXT完成安装.然后需要配置ICE的环境变量.在系统环境变量中配置以下变量: ICE_HOME=<Iceinstallationrootdirectory> PATH=%ICE_HOME%\bin;%PATH%配置好后翻开命令控制台,输入命令〞slice2cpp〞如果能看到以下内容那么说明ICE安装成功.ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架2.配置ICE开发环境•配置IDE的开发环境,在VC++软件中做以下配置:-Tools->Options->Directories-选择“Includefiles〞标签栏-增加<Iceinstallationrootdirectory>\include和<Iceinstallationroot directory>\include\stlport到列表.然后移动“\include\stlport〞目录到列表的顶部.-选择“Libraryfiles〞标签栏-增加<Iceinstallationrootdirectory>\lib到列表.-选择“Executablefiles〞标签栏-增加<Iceinstallationrootdirectory>\bin到列表.•配置具体开发工程(以下为配置DEBUG版本,RELEASE版本类似),在VC++软件中做以下配置:-ProjectSettings>>C/C++(Tab)>>Category:CodeGeneration>>Userrun-timeddlibrary:DebugMultithreadedDLL(ICE是多线程的)
-ProjectSettings>>C/C++(Tab)>>Category:Preprocessor>>Additionalincludedirectories:(在此项中填入一个点".",表示根目录)
-ProjectSettings>>C/C++(Tab)>>Category:C++Language>>勾选"EnableRun-TimeTypeInformation(RTTI)"项
-ProjectSettings>>Link(Tab)>>Category:General>>在"Object/librarymodules:"框中的未首参加两个包"iced.lib"和"iceutild.lib"ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架2.ICE在LINUX(RedHat9)下的安装(FORC++)•安装要求:-系统中必须有GCC3.0以上版本(我们通过源码安装)-需要至少三个软件包:bzip2-1.0.3.tar.gz,,Ice-3.0.0.tar.gz.如果需要ICE的其它效劳的话应安装相应软件包.在这里我们假设这三个软件包都在系统的/usr/drc目录下.•安装bzip2:#>make#>cpbzlib.h/usr/include•安装bzip2-devel:•安装ICE:#>make–i#>makeinstall–iICE网络编程---利用ICE通信中间件构建网络应用程序开发框架•设置环境变量:#>exportPATH=/usr/drc/Ice-3.0.0/bin:$PATH•至此ICE安装完成,在SHELL里输入命令〞slice2cpp〞如能看到以下提示,那么说明ICE安装成功.ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架下面,我们用一个类似helloworld的程序来给大家演示一下,一个ICE通信程序是如何编写的.此程序包括两端,一个是客户端程序client,一个是效劳端程序server.此程序的功能是:server侦听一个端口60018,client去连接server,连接上后,给server发送一个字符串,server收到字符串后在其屏幕上打印此字符串,并返回一个表示接收成功的串给client,client接收到此串后打印在其屏幕上.1.首先,我们要定义通信双方的通信接口,既然是接口,那么接口信息是通信双方共享的信息.定义接口通过编写ICE的Slice文件来完成.以下是我们此程序的Slice文件内容://3.0以后的版本必须把接口定义在模块(module),模块映射为C++里的名字空间moduleNisecICE{ //定义ICE接口,映射为C++里同名的一个类〔纯虚类,因此不能实例化,必须继承并重载类中的相应方法〕 interfaceHelloICE { //定义接口里的操作,映射为C++里同名的一个纯虚拟方法 stringSayHello(stringcontent); };};三.ICE的编程范型ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架2.编译Slice文件,生成相应的.CPP和.H文件:利用ICE提供的命令〞Slice2cpp〞对刚刚定义的.ice文件进行编译,会生成一个.cpp文件和一个相应的.h文件.这两个文件里就是实现我们接口的相关骨架类.这两个文件通信双方都需要用到.3.编写效劳器端程序,效劳器端的程序,一般都是按以下步骤来编写的:-继承相关的接口类,并实现其纯虚函数建立通信器,并初始化(包括设置通信协议,监听端口,线程池大小等)创立适配器创立代理接口并设置代理标识增加代理到适配器激活适配器通信器启动并阻塞,等待处理客户端的请求关闭通信器,释放相关资源ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架4.编写客户端程序,一般可以按照以下步骤:-建立通信器,并初始化(包括设置server的IP,协议,端口,连接超时时间,目标代理名等)-建立代理对象-寻找server代理-如代理存在,即可通过代理对象调用server上此代理类型所有的操作.-操作完毕,销毁通信器,释放相关资源5.用ICE进行编程时应注意的问题:-client连接server时一定要注意设置超时时间,不然很容易导致网络阻塞-在涉及到一些传递通信所需要的参数,如端口,IP,协议等的时候,这些参数应该从配置文件里读取,或者通过参数传递,不要进行硬编码.还有在C++里字符变量的类型应该用std::string,而不要用C语言风格的char[].以防止内存泄漏和指针越界.-在利用多线程进行异步程序开发时,要注意给共享资源加锁,以免导致数据被破坏.-我们利用C++进行ICE程序开发,因此在编写ICE的程序时,例如客户端建立连接ICE网络编程---利用ICE通信中间件构建网络应用程序开发框架-我们用C++进行ICE程序开发,因此在编写ICE的程序时,例如客户端建立连接客户端时,应该写成一个类,这类至少要包括三个方法,初始化通信器,调用相关操作,销毁通信器.这样当工程组成员需要与效劳器进行通信时,只需要实例化此类即可.提高了效率.而不用再自己去写ICE通信客户端.*代码见源程序PPT〔全名:PowerPoint〕是美国微软公司出品的办公软件系列重要组件之一〔另外还有Excel、Word等〕;最常用的就是用来制作幻灯片。MicrosoftOfficePowerPoint是一种演示文稿图形程序,该软件是功能强大的演示文稿制作软件;可协助用户单独或联机创立永恒的视觉效果;它增强了多媒体支持功能,利用该软件制作的文稿,可以通过不同的方式播放,也可将演示文稿打印成一页一页的幻灯片,使用幻灯片机或投影仪播放,可以将演示文稿保存到光盘中以进行分发,并可在幻灯片放映过程中播放音频流或视工程列表;新增工程;修改工程;删除工程;工程授权;工程任务统计;工程资源管理;工程进度管理;工程任务包管理;工程文档管理;工程费用管理;工程归档;工程查询;当前任务;工程统计分析。4.库存管理——掌握库存的动态流动状况,减少库存资金的占用,加强资金的合理使用。选择“库存管理〞模块后,在主菜单下将出现"库存资料维护"、"入库"、"出库"、"库存查询"、"仓库资料维护"、"业务类型维护"、"货物单位资料维护"几个子菜单。左方出现“存货管理〞模块的树状结构的库存分类信息。右边会出现库存列表,当没有选择库存分类的时候,库存资料列表将显示所有库存工程,按录入时间排序;在选择某个分类的时候,将显示该分类下的库存列表,库存列表会把当前的库存数量显示出来,点击某库存的链接将显示库存工程的详细信息。此模块包含以下主要功能:新增分类;修改分类;删除分类;新增存货工程;修改存货资料;删除存货资料;库存查询;入库登记;出库登记;查询存货收发记录;仓库资料维护;业务类型资料维护;货物单位资料维护。=========================================================================================================================================================原文出自【比特网】,转载请保存原文链接:频流。对用户界面进行了改进并增强了对智能标记的支持,可以更加便捷地查看和创立高品质的演示文稿一套完整的PPT文件一般包含:片头动画、PPT封面、前言、目录、过渡页、图表页、图片页、文字页、封底、片尾动画等;所采用的素材有:文字、图片、图表、动画、声音、影片等;国际领先的PPT设计公司有:themegallery、poweredtemplates、presentationload等;近年来,中国的PPT应用水平逐步提高,应用领域越来越广;PPT正成为人们工作生活的重要组成局部,在工作汇报、企业宣传、产品推介、婚礼庆典、工程竞标、管理咨询等领域。叙利亚内战局势急剧升级,国营电视台证实,国防部长拉杰哈今天在首都的一次自杀式袭击中被炸死,是叙利亚国内冲突爆发以来,政府军损失的最高级军方官员,另外,内政部长、情报首长也被炸伤。袭击者是总统巴沙尔的一名近身侍卫。叙利亚自由军和伊斯兰旅两个反政府组织都宣称对袭击负责,但否认事件是国营电视台所说的自杀式袭击,而是将fgdfgdfg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卖地修路合同范本
- 代理保险销售合同范本
- 取消房屋合同范例
- 叉车委托销售合同范本
- 勘察设计采购合同范本
- 合作办厂生产加工合同范例
- 包干合同范本
- 一次性塑料口罩中有毒有害物质的环境行为及其水生毒性效应研究
- 胡晓《疏影淡月》的演奏实践探究
- 张方平政论文研究
- 马克思主义理论前沿汇总
- 高中英语北师大版全七册单词表
- 【幼儿园园本教研】幼儿表征的教师一对一倾听策略
- 人教版新教材高一上学期期末考试数学试卷及答案(共五套)
- 采血知情同意书模板
- Mysql 8.0 OCP 1Z0-908 CN-total认证备考题库(含答案)
- 学习探究诊断 化学 必修二
- 冀教2011版九年级英语全一册《Lesson9ChinasMostFamous“Farmer”》教案及教学反思
- 三年级下册音乐教学计划含教学进度安排活动设计word表格版
- 无极绳绞车检修技术规范
- 雷锋生平事迹简介
评论
0/150
提交评论