XX学院《开源中间件技术》实验指导书

上传人:pu****.1 文档编号:488220298 上传时间:2022-10-09 格式:DOCX 页数:34 大小:463.37KB
返回 下载 相关 举报
XX学院《开源中间件技术》实验指导书_第1页
第1页 / 共34页
XX学院《开源中间件技术》实验指导书_第2页
第2页 / 共34页
XX学院《开源中间件技术》实验指导书_第3页
第3页 / 共34页
XX学院《开源中间件技术》实验指导书_第4页
第4页 / 共34页
XX学院《开源中间件技术》实验指导书_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《XX学院《开源中间件技术》实验指导书》由会员分享,可在线阅读,更多相关《XX学院《开源中间件技术》实验指导书(34页珍藏版)》请在金锄头文库上搜索。

1、开源中间件技术实验指导书XXXX2012 年 12 月目录实验一 RPC 客户与服务器 2一、实验目的 4二、实验环境 4三、实验原理 4四、实验内容及步骤 4五、实验注意事项 6六、实验报告要求 6七、思考题 6实验二 动态链接库 7一、实验目的 7二、实验环境 7三、实验原理 7四、实验内容及步骤 8五、实验注意事项 8六、实验报告要求 8七、思考题 8实验三 COM 组件一、实验目的 9二、实验环境 9三、实验原理 9四、实验内容及步骤 9五、实验注意事项 11六、实验报告要求 11七、思考题 11实验四 DCOM错误!未定义书签。一、实验目的 12二、实验环境 12三、实验原理 12四

2、、实验内容及步骤 13五、实验注意事项 16六、实验报告要求 16错误!未定义书签。七、思考题 16实验五 CORBA 之 IOR、实验目的错误!未定义书签。、实验环境错误!未定义书签。三、实验原理 错误!未定义书签。四、实验内容及步骤 错误!未定义书签。五、实验注意事项 错误!未定义书签。六、实验报告要求 错误!未定义书签。七、思考题 错误!未定义书签。实验六CORBA之命名服务17一、实验目的 17二、实验环境 17三、实验原理 17四、实验内容及步骤 17五、实验注意事项 22六、实验报告要求 22七、思考题 22实验七 RMI 29一、实验目的 29二、实验环境 29三、实验原理 29

3、四、实验内容及步骤 29五、实验注意事项 29六、实验报告要求 30七、思考题 30实验八 EJB 31一、实验目的 31二、实验环境 31三、实验原理 31四、实验内容及步骤 31五、实验注意事项 32六、实验报告要求 32七、思考题 32实验一 RPC 客户与服务器一、实验目的通过编写RPC的客户服务程序,并调用相应的函数,掌握RPC的原理和编写RPC程序的 基本方法。二、实验环境Visual C+ ,Windows三、实验原理RPC其实也是种C/S的编程模式,类似C/S Socket编程模式,但要比它更高一层。当在建 立RPC服务以后,客户端的调用参数通过底层的RPC传输通道,可以 是U

4、DP,也可以是TCP (也即TI-RPC-无关性传输),并根据传输前所提供的目的地址及RPC上层应用程序号转至相 应的RPC Application Porgramme Server,且此时的客户端处于等 待状态,直至收到应答或Time Out 超时信号。内容:创建一个简单的客户机服务器的分布式应用程序,实现客户应用程序在一个远程过程调 用中,向服务器传递一个整数,经过服务器端求阶乘后,将最终结果从客户机端输出 步骤:1 开发接口,具体步骤包括:1.1 创建接口模板在命令行方式下运行 uuidgen 工具,生成文件 Rpctest.idlD:Program FilesMicrosoft Vis

5、ual StudioCommonToolsuuidgen /I /oRpctest.idl12替换Rpctest.idl中接口的定义,改为:interface Rpctest 远程过程调用的求阶乘函数long RpcFactorial(in long nVal); / 出现的部分表示属性 void Shutdown(void);/终止服务器程序函数Shutdown必须要 1.3使用文本编辑器编写ACF (属性配置文件),Rpctest.acfauto_handle / 相关属性implicit_handle (handleRpctest_IfHandle)interface Rpctest 注

6、意:要和idl中接口名称一致1.4使用MIDL编译器进行编译(注:Rpctest.idl和Rpctest.acf都放Bin目录下) 在命令行方式下运行 MIDL.EXE,D:Program FilesMicrosoft Visual StudioVC98Binmidl Rpctest.idl 编译后生成文件Rpctest.h、Rpctest_c.c、Rpctest_s.c2. 开发服务器程序,具体步骤包括:2.1 VC 环境下建一个项目 Rpc tes tserver,把 Rpc tes t.h、Rpc tes t.idl、 Rpctest.acf 和 Rpctest_s.c 放 到 这 个

7、项 目 下 面 , 然 后 导 入 Rpctest.h Rpctest_s.c,创建memstub.h(内存管理函数)2.2编写远程阶乘调用函数:新建文件Rpctest_s_f.c中实现;同时Rpctest_s_f.c 中也包括了终止服务器程序函数Shutdown2.3编写服务器源程序:就是Rpc tes t_s.c 点都不改变。添加一个新文件main.cpp 里面放 main() 函数。2.4 在 VC 环境下编译和链接服务器端程序,最终生成 Rpctestserver.exe 文件 注:在 VC 中 Project-Settings-Link 中添加两个 RPC 运行库: rpcrt4.l

8、ib 和 rpcns4.lib3. 开发客户机程序,具体步骤包括:3.1VC环境下建一个空项目Rpctestclient,然后添加qsorts.c,把Rpctest.h、 Rpctest.idl 、 Rpctest.acf 和 Rpctest_c.c 放到这个项目下面,然后导入 Rpctest.h Rpctest_c.c memstub.h3.2Rpctest_s.c 一点都不改变。添加一个新文件main_c.cpp里面放main()函数3.3 在 VC 环境下编译和链接客户端程序,最终生成 Rpctestclient.exe 文件(在 Debug文件里面)注:同上,也需在此工程中添加rpcr

9、t4.lib和rpcns4.lib。程序源代码清单:文件简单描述Rpctest.idl接口定义语言文件Rpctest.acfRpctest.hRpctest_c.cRpctest_s.c main_c.cpp main.cpp Rpctest_s_f.c属性配置文件 头文件 客户端存根 服务器端存根 客户端主程序 服务器端主程序 远程调用程序五、实验注意事项1、要先运行服务器程序,再运行客户端程序六、实验报告要求1、书写程序的编写过程。2、附程序代码,包括 IDL。3、粘贴程序的运行结果的图片。七、思考题1、如何利用RPC传递复合性数据结构?实验二 动态链接库一、实验目的掌握动态链接库的基本原

10、理,并通过实验学习简单无GUI界面的动态链接库的编写和调试 方法。二、实验环境Visual C+ ,Windows三、实验原理DLL 文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必 需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在 Windows环境下操作的许多函数和资源。DLL多数情况下是带有DLL扩展名的文件,但 也可能是 EXE 或其他扩展名。它们向运行于 Windows 操作系统下的程序提供代码、数据 或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。DLL 的全称是Dynamic Link Lib

11、rary,中文叫做“动态链接文件”在Windows操作系统中,DLL 对于程序执行是非常重要的,因为程序在执行的时候,必须链接到DLL文件,才能够正确 地运行。而有些DLL文件可以被许多程序共用。因此,程序设计人员可以利用DLL文件,使 程序不至于太过巨大。但是当安装的程序越来越多,DLL文件也就会越来越多,如果当你删 除程序的时候,没有用的DLL文件没有被删除的话,久而久之就造成系统的负担了。DLL 是动态连接库。使用动态连接库的一些好处是:1. 多个应用程序共享代码和数据:比如 Office 软件的各个组成部分有相似的外观和功 能,这就是通过共享动态连接库实现的。2. 在钩子程序过滤系统消

12、息时必须使用动态连接库。3. 动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小 组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了 一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。4. 为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针 对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用 AppWizard 生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的 动态连接库实现的。VC+、C+ Builder、Delphi都可以编写DLL文件。Visu

13、al Basic 5.0以上版本也可以 编写一种特殊的DLL,即ActiveX DLL。DLL不是独立运行的程序,它是某个程序的一 个部分,它只能由所属的程序调用。用户不能,也不需要打开它。用VC+编写动态链 接有以下四种类型:Win32 DLL、MFC常规DLL (动态链接MFC)、MFC常规DLL (静 态链接MFC)、MFC扩展DLL等,关于它们之间的区别,在此不一一介绍,可参阅相关 文档。本程序的编写为 Win32 DLL。、实验内容及步骤1、创建DLL文件1) 打开 visual c+ 6.0 通过 new 创建一个 win32 Dynamic-link Libary 的工程,命名为

14、 FIRSTDLL2) 接着选择最后一个选项,让系统创建一些必要的文件3) 修改 FIRSTDLL.cpp 的代码。4)编译、链接生成 DLL2、调用 DLL1) 同样通过new创建一个工程,该工程为Win32 Console application,命名USEFIRSTDLL2) 在USEFIRSTDLL.cpp文件中编写如下代码。4)编译、链接生成可执行程序。void main(void)typedef int(*pMax)(int a,int b); 定义指向和DLL中相同的函数原型指针 HINSTANCE HDLL;定义句柄pMax Max;HDLL=LoadLibrary(FIRST

15、DLL.dll);加载动态链接库FIRSTDll.dll文件,注意指明FIRSTDLL的地址哦 if(HDLL=NULL) printf(cannot find the dll file); Max=(pMax)GetProcAddress(HDLL,Max);然后通过GetProcAddress()函数获取导入到应用程序中的函数指针 if(Max=NULL) printf(cannot find the Max funtion); int A=Max(5,8);printf(比较的结果为:%d ,A);FreeLibrary(HDLL);/卸载 MyDll.dll 文件;五、实验注意事项1、DLL的导出函数的说明方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号