1 / 8
文档名称:

中间件编程及体会1.doc

格式:doc   大小:41KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

中间件编程及体会1.doc

上传人:mh900965 2018/1/7 文件大小:41 KB

下载得到文件列表

中间件编程及体会1.doc

相关文档

文档介绍

文档介绍:中间件编程及体会

中间件编程作业:RPC编程,通过Windows系统客户端访问Linux系统上面的文件以及完成open、close、read、write这四个操作,编程的内容有:接口定义、客户端和服务端的代码、开发过程中的心得。

RPC(Remote Procedure Call Protocol),远程过程调用协议,是一种通过网络从远程计算机程序上请求服务。RPC编程是体验中间件的设计的好途径,中间件为如今计算机科学的快速发展产生的各种不同的平台提供了交流的一个接口。RPC是在单台机器上构建并测试应用程序,然后将程序划分为两个或者多个程序片,加入通信协议以允许每片程序在单独的计算机上运行。从一个程序片调用另一个程序片的过程称为远程过程调用,即RPC。在编程过程中使用Rpcgen这个编译工具。Rpcgen以和C语言相类似的语法来书写和编译源代码。
本次编程的宿主机为WINDOWS XP SP3 ,安装VM WARE, 在虚拟机上面安装一个UBUNTU .
接口定义的主要代码如下:
struct openrequest
{
string fname<255>;
int flag
int mode;
};
struct readrequest
{
int fhandle;
int offset;
int length;
};
struct readresult
{
opaque data<>;
};
struct writerequest
{
int fhandle;
int offset;
opaque data<>;
};
typedef int fhandle;/*open 返回参数*/
typedef struct openrequest open_req;/*open 请求参数*/
typedef struct readrequest read_req; /*read请求参数*/
typedef struct readresult read_res;/*read 返回参数*/
typedef struct writerequest write_req;/*write 请求参数*/
typedef int write_res;/*write 返回参数*/
program FILEOPERATE_PROG {
version FILEOPERATE_VERSION {
fhandle ROPEN(open_req)=1;
read_res RREAD(read_req)=2;
write_res RWRITE(write_req)=3;
void RCLOSE(fhandle)=4;
} = 1;
} = 0x37654321;
主要代码:
服务端:
打开文件
fhandle * ropen_1_svc(open_req *argp, struct svc_req *rqstp)
{
static fhandle result;
result=open(argp->fname,argp->flag,argp->mode);
return &result;
}
读文件
rea