[首页] [公司产品] [解决方案] [购买信息] [公司概况] [产品下载]


 

* 编程指南
* 流程图
* 演示程序
* 软件下载

 


 
中间件 开发工具

* PowerRPC
 网络软件开发工具
* SUN RPC Win32
 网络软件开发工具

* JavaRPC
 网络软件开发工具

 
 


<< 返回

PowerRPC 下载试用版,请点击下载清单上的文件名


POWERRPC是一个开发高性能网络软件的工具,它能让网络软件的开发变得快速而高效,大大降低开发成本。

它是当今世界上最先进的RPC开发工具,使用简单易学、功能强大,使您能在数十分钟内开发出运行于各种平台的分布计算软件。POWERRPC支持各种UNIX,LINUX和WIN32。它的用户包括财富500中的多家跨国公司,如NOKIA,AOL,HP,SONY,波音,INTEL,花旗银行等 。

RPC广泛应用于UNIX和WINDOWS操作系统,其核心技术在一般网络编程、操作系统和分布计算的教科书与参考书中都会涉及到。较权威的有 :
1) UNIX Network Programming, Volume 2: Interprocess Communications (作者:W. Richard Stevens)
2) TCP/IP网络互联技术 II (清华大学出版社 )
3) Power Programming With RPC (作者:John Bloomer)

编程指南

一步一步学用PowerRPC

下面,我们将演示怎样用POWERRPC写一个服务器程序。我们用一个常用例子,那就是写一个通过互联网(TCP/IP)获取股票报价的SEVER/CLIENT。当然,任何人都可以用直接用SOCKET来传送数据,手工完成这个练习,但是这样写出的代码是没有普适性和多少重复利用价值的,而且还会有很多问题考虑不到。POWERRPC的目的,就是要提供一个框架自动产生网络通讯部分的源代码,使程序源集中精力在商业逻辑上,而不是网络数据传输上--即使是非常复杂的数据结构,如数组,指针,LINKED LIST,树等。

用POWERRPC来写这个程序,你只要写十几行C代码就漂亮的解决问题了。首先,你在一个界面定义文件里声明一个界面函数getQuote(),然后用POWERRPC编译器从这个界面产生一系列C源代码。POWERRPC在客户端生成一个同名函数getQuote(),这个函数把其参数传给服务器程序,并等待结果。服务器收到参数后,调用真正的getQuote(),然后把结果送会客户端。对于客户端程序来说,这个远程调用看起来就象调用一个本地函数一样,没有区别。

好,让我们开始写我们的第一个POWERRPC软件吧!

步骤:

第一步

写一个界面定义文件。这个文件的语法基本上就是C的声明语法,可以定义各种C数据结构。

%cat quote.idl

typedef struct {

char Ticker[8];
double Low, High, Close;

}stkQuote;

interface quote {

int getQuote( inout stkQuote* pQuote);

} 0x12345;

第二步:

写服务器的实现代码文件 quote_impl.c

%cat quote_impl.c

#include "quote.h"
/* the header file to
be generated by powerRPC*/

int getQuote(stkQuote* pQuote) {

/* let's just return some good numbers */

printf("Client asked quote for %s\n",
pQuote->Ticker);
pQuote->Low = 45.2;
pQuote->High = 55.5;
pQuote->Close = 54.1;
return 0;

}

第三步:

用POWERRPC编译quote.idl

%powerRPC quote.idl

运行结果是POWERRPC会生成五个文件,以下是它们的用途
文件名
目 的
用于
quote.h 共用的头文件 服务器实现文件和客户端程序都需包括此文件
quote_xdr.c 编码与解码参数以实现数据在不同硬件不同操作系统能够交换 客户断和服务端
quote_svc.c 服务端函数调度。收到客户端调用后,解码参数,并调用对应函数 服务端
quote_cln.c 客户端占位函数。它定义getQuote()的客户端“代理”,在其里面,参数通过XDR传到服务端,然后客户端被锁住,等待服务端回应 客户端
quote.mak 编译客户端和服务端程序的MAKEFILE 我们幸运的程序员

第四步:

写一个调用getQuote()的客户程序

%cat quote_call.c

#include "quote.h"
int main(int argc, char** argv) {
stkQuote quote;

if(argc<3) {
printf("Usage: %s serverhost tikcer\n",
argv[0]);
exit(0);
}
if(quote_bind(argv[1],0,0,0) == NULL) {
printf("Fail connecting to server on %s\n",
argv[1]);
exit(1);
}
strcpy(quote.Ticker, argv[2]);
if(getQuote("e)) {
printf("Fail getting quote for %s\n",
quote.Ticker);
} else {
printf("Low = %f, High =%f, Close = %f",
quote.Low, quote.High, quote.Close);
}
quote_unbind(0);
return 0;
}

第五步:

编译、运行

% make -f quote.mak

以上命令将生成客户端和服务端的可执行文件。现在我们可以试验了

先运行服务器

% quoteserv&

然后运行客户程序。我们可以把客户程序拷贝到联网的另一台机器试验

% quoteclnt [服务端所在机器名] YHOO

总结:

现在,你看到用POWERRPC写SERVER/CLIENT有多容易了吧!也许有些地方还不明白,如quote_bind(), quote_unbind(), 但也许你已经可以猜出一点来。但这只是一个最简单的例子。在用户手册里我们有更有趣的例子,比如一百行源代码就写出一个文件服务器。再花个把小时的时间,你就可以基本掌握POWERRPC这个强大的武器了。有了这样的杀手锏,写分布计算的软件手到擒来。


 
| Home | Products | Purchase | Company | Download |
北京东方之晓科技发展有限公司版权所有
2011©Dongfangzhixiao All Rights Reserved