中间件实验报告2

中间件实验报告2

ID:41556502

大小:70.19 KB

页数:7页

时间:2019-08-27

中间件实验报告2_第1页
中间件实验报告2_第2页
中间件实验报告2_第3页
中间件实验报告2_第4页
中间件实验报告2_第5页
资源描述:

《中间件实验报告2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、电子科技大学计算机学院标准实验报告(实验)课程名称:中间件技术(实验)项目名称:基于mico开源CORBA中间件编写一个分布式调用服务电子科技大学研究生院电孑网技丈学实验报告学生姓名学号实验中所参与的工作完成所有工作一、实验目的:本实验的目的和任务是,通过利用基于mico的开源CORBA中间件编写一个分布式调用服务的小型软件,让学生理解中间件的基本原理,并掌握进行CORBA程序设计和开发的基本方法。二、实验内容:1)服务器实现一个网格,其结构如图1所示。网格有高度和宽度,客户端可以设置和读取这两个属性。网格由若干网格单元组

2、成,每个单元有一个类型为整型的值,客户端可以设置和读収单元值。另外,一旦网格的高度和宽度以及网格的单元值三者中任意一个发生变化,须立即通知客户端作相应处理,反映出该变化。234579256789456688图12)系统由一个服务器和两个客户端组成,如图2所示。图23)服务器端使用C++开发语言。两个客户端分别使用C++和Java两种开发语言。三.实验步骤:1.查阅资料下载micocobra并编译安装。2.服务器端实现,编写tabl.idl通过idl-poatable.idl命令生成table.cc和table.h文件。服务

3、器端运行时,需要获収RootPOA初始引用,然后注册命名服,接着绑定此命名和服务对象,最后启动服务程序。3.实现C++客户端,初始化ORB,获取服务器命名服务对象的引用,获得业务服务对象的引用,最后执行具体业务逻辑。4.实现java客户端与C++客户端不同的是需要通过table.idle生成相应java类,其他与C++客户端类似5.测试,总结,编写相关报告四、总结及心得体会:此实验是按照网上的一个例子一步步來的,在编译micocobra时出现UINT.MAX的定义问题但最终解决。C++客户端并没有遇到太多麻烦,但是java

4、客户端,由于对于java并不精通,出现了各种连接错误或者函数不存在的问题,通过查阅资料添加相应的java包解决了这些问题,通过这次实验,还是了解了中间件的基本原理,熟悉了进行CORBA程序设汁和开发的基本方法。五、测试和截图(I)C++客户端运行结果如下图所示:table*swidth=100table'sheight=100valueoftable[2][1]=100图1C++客八端测试截图(2)java客户端执行结果如下图所示:before:width=50,height=60,value[2-2]=296add:wi

5、dth+50,height+60,value[2-2]+100after:width=lOO,hei.ght=120,value[2-2]=300图2java客户端测试截图六、附件table.idl文件如下:interfaceTablevoidsetWidth(inunsignedlongwidth);longgetWidth();voidsetHeight(inunsignedlongheight);longgetHeight();voidsetValue(inunsignedlongx,inunsignedlongy,

6、inunsignedlongz);longgetValue(inunsignedlongx,inunsignedlongy);};客户端代码:client.cc如下:#include"table.h"#ifdefHAVE_UNISTD_H#ineludevunistd.h>#endifusingnamespacestd;intmain(intargc,char*argv[]){intemd;charaddr[2561;CORBA::ORB_varorb=CORBA::ORB_init(argc,argv);CORBA::O

7、bject_varobj=orb->bind(,,IDL:Table:1.0,“inet:127.0.0.1:8888”);if(CORBA::is_nil(obj)){cout«"oops:couldnotlocateHelloWorldserver"«endl;exit(l);}Table_varhello=Table::_narrow(obj);hello->setWidth(100);hello->setHeight(100);hello->setValue(2,1,100);cout«"table'swidth

8、="«hello->getWidth()«endl;cout«"table'sheight=u«hello->getHeight()«endl;cout«"valueoftable[2][l]="«hello->getValue(2,1)«endl;return0;}server.ee女口下:#incl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。