CN101533361A - 远程过程调用及生成服务接口信息的方法、系统和设备 - Google Patents
远程过程调用及生成服务接口信息的方法、系统和设备 Download PDFInfo
- Publication number
- CN101533361A CN101533361A CN200910135219A CN200910135219A CN101533361A CN 101533361 A CN101533361 A CN 101533361A CN 200910135219 A CN200910135219 A CN 200910135219A CN 200910135219 A CN200910135219 A CN 200910135219A CN 101533361 A CN101533361 A CN 101533361A
- Authority
- CN
- China
- Prior art keywords
- service interface
- interface information
- description form
- server
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种远程过程调用及生成服务接口信息的方法、系统和设备,属于计算机领域。所述RPC方法包括:客户端根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息下载到本地;根据本地的所述第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。生成服务接口信息的方法包括:服务器端建立第一描述形式与第二描述形式对应关系的模板;根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息。客户端设备包括:下载模块和请求模块。服务器包括:模板模块和转换模块。所述系统包括:服务器端和客户端。本发明实现了服务接口的提前绑定,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
Description
技术领域
本发明涉及计算机领域,特别涉及一种远程过程调用及生成服务接口信息的方法、系统和设备。
背景技术
jabsorb是目前业界比较流行的一种简单的轻量级的Ajax/Web 2.0架构,允许用户在浏览器上通过JavaScript代码调用服务器端java应用。
jabsorb提供了一种通用的用户请求解决方案,具体过程如下:
1)第一次RPC(Remote Procedure Call,远程过程调用)请求时,客户端向服务器端发送一个system.listMethods请求;
2)服务器端接收到该请求后,将服务器端接口列表以json的数据形式发送给客户端;
3)客户端解析接收到的信息,获取其中的服务器端接口列表,并根据服务器端接口列表构建RPC client(客户端)对象;
4)客户端调用服务器端提供的某一接口方法,向服务器端发送第二次RPC请求,完成实际的用户请求。
综合上述,现有技术至少存在以下问题:
每一次用户请求时,jabsorb使用了两次RPC请求的方案。这种在一次用户请求中发起两次连接的方式,浪费了服务器的连接资源,在服务负载较大时,会导致服务器CPU(Central Processing Unit,中央处理器)使用率浮高。
发明内容
为了节省服务器的连接资源,本发明实施例提供了一种远程过程调用及生成服务接口信息的方法、系统和设备。所述技术方案如下:
一种远程过程调用的方法,所述方法包括:
客户端根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息下载到本地;
根据本地的所述第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
其中,所述第一描述形式的服务接口信息是最新版本的第一描述形式的服务接口信息。
一种生成服务接口信息的方法,所述方法包括:
服务器端建立第一描述形式与第二描述形式对应关系的模板;
根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息。
其中,所述根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息之后还包括:
将所述第一描述形式的服务接口信息标记版本号,使客户端根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
一种远程过程调用的系统,所述系统包括:服务器端和客户端;
所述服务器端,用于建立第一描述形式与第二描述形式对应关系的模板,根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息;
所述客户端,用于根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息从所述服务器端下载到本地,根据本地的所述第一描述形式的服务接口信息,向所述服务器端发送远程过程调用请求。
其中,所述服务器端,还用于将所述第一描述形式的服务接口信息标记版本号;
所述客户端,还用于根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
一种客户端设备,所述客户端设备包括:
下载模块,用于根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息下载到本地;
请求模块,用于根据所述下载模块下载到本地的所述第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
其中,所述下载模块,还用于将最新版本的所述第一描述形式的服务接口信息下载到本地。
一种服务器,所述服务器包括:
模板模块,用于建立第一描述形式与第二描述形式对应关系的模板;
转换模块,用于根据所述模板模块建立的模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息。
其中,所述服务器还包括:
标记模块,用于将所述转换模块生成的第一描述形式的服务接口信息标记版本号,使客户端根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
本发明实施例提供的技术方案带来的有益效果是:
根据建立的模板,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息,实现了服务接口的提前绑定;根据预先下载的第一描述形式的服务接口信息,向服务器端发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
附图说明
图1是本发明实施例1中提供的远程过程调用的方法流程图;
图2是本发明实施例1中提供的生成服务接口信息的方法流程图;
图3是本发明实施例1中提供的RPC系统结构示意图;
图4是本发明实施例1中提供的远程过程调用及生成服务接口信息的信息交互图;
图5是本发明实施例2中提供的远程过程调用的系统结构示意图;
图6是本发明实施例3中提供的客户端设备结构示意图;
图7是本发明实施例4中提供的服务器结构示意图;
图8是本发明实施例4中提供的服务器另一结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种远程过程调用的方法,该方法包括:
101:客户端根据第一描述形式的特征信息,将该第一描述形式的服务接口信息下载到本地;
102:根据本地的该第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
本实施例提供的远程过程调用的方法,根据预先下载的第一描述形式的服务接口信息,向服务器端发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
参见图2,本实施例还提供了一种生成服务接口信息的方法,该方法包括:
201:服务器端建立第一描述形式与第二描述形式对应关系的模板;
202:根据该模板,将该第二描述形式的服务接口信息转换为该第一描述形式的服务接口信息。
本实施例提供的生成服务接口信息的方法,根据建立的模板,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息,实现了服务接口的提前绑定,使得客户端可以根据预先下载的第一描述形式的服务接口信息,向服务器端发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
参见图3所示的RPC系统结构示意图,包括服务器端和客户端。其中,服务器端包括接口服务器a、接口发布工具b和内容服务器c,根据具体的需求,三者可以是三个独立的设备,也可以集成到一个设备上;客户端包括客户端设备d。下面结合图3,详细叙述远程过程调用及生成服务接口信息的过程,其信息交互图参见图4所示:
401:接口服务器a使用模板引擎,定制第一描述形式与第二描述形式对应关系的模板;
其中,第一描述形式,是客户端的描述形式,例如:JavaScript;第二描述形式,是服务器端的描述形式,例如:Java,第二描述形式包括多种存在形式,例如:Java的class文件,Java的exe文件等。
402:接口发布工具b根据定制的模板,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息,并为第一描述形式的服务接口信息标记版本号,发布到内容服务器c上,同时更新配置中心,使客户端与服务器端版本一致;
具体的,通过反射方式,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息;
例如,一个提供了两个服务接口信息的Java的class文件如下:
public interface IUserAndQuestionDao{
int addAskPending(int userId,int questionId,int time);
int addAnswered(int userId,int questionId,int time);
}
转换后,对应生成的JavaScript文件代码如下:
Var rpcClient={
addAskPending:function(){......}
addAnswered:function(){......}
}
进一步的,当不考虑软件的升级问题时,第一描述形式的服务接口信息也可以不标记版本号,采用新版本覆盖旧版本的方式,即内容服务器c上只保留最新版本的接口描述信息,以保持客户端与服务器端版本的一致性。
403:客户端设备d根据第一描述形式的特征信息,将最新版本的第一描述形式的服务接口信息下载到本地;
进一步的,在客户端设备访问网站时,或访问网站的一个特定业务服务时,浏览器发现据第一描述形式的特征信息,例如:script标签,则自动将相应的最新版本的第一描述形式的服务接口信息下载到本地;
例如:用户访问网站时,浏览器发现script标签,如<script type="text/javascript"src="http://cache.soso.com/wenwen/js/rpcClient.js"></script>,浏览器下载到客户端本地后,就得到rpcClient的定义。
404:客户端设备d根据本地的最新版本的第一描述形式的服务接口信息,向接口服务器a发送RPC请求;
具体的,根据该最新版本的第一描述形式的服务接口信息,组装成一个json格式的http请求,将该http请求发送到服务器端,完成一个具体的RPC调用。
例如:网页中调用javascript代码rpcClient.addAnswered,就可以向接口服务器发起一个RPC请求。
405:接口服务器a接收到RPC请求后,通过反射等方式找到相应的服务器端对象,执行相应的方法,将执行结果封装成json格式返回给客户端设备d,客户端设备d的第一描述形式的服务接口信息负责解析和展示结果。
本实施例提供的方法,针对特定业务,生成依赖性很强的JavaScript代码,实现了RPC接口的提前绑定,节省了服务器的http连接资源,尤其适合B/S(Browser/Server,浏览器/服务器)模式的发布系统,相对于现有技术,在一次用户请求中发起两次连接的方法,避免了服务器CPU使用率浮高的弊端。
实施例2
参见图5,本实施例提供了一种远程过程调用的系统,该系统包括:服务器端501和客户端502;
该服务器端501,用于建立第一描述形式与第二描述形式对应关系的模板,根据该模板,将该第二描述形式的服务接口信息转换为该第一描述形式的服务接口信息;
该客户端502,用于根据第一描述形式的特征信息,将该第一描述形式的服务接口信息从该服务器端501下载到本地,根据本地的该第一描述形式的服务接口信息,向该服务器端501发送远程过程调用请求。
进一步的,
该服务器端501,还用于将该第一描述形式的服务接口信息标记版本号;
该客户端502,还用于根据该版本号将最新版本的该第一描述形式的服务接口信息下载到本地。
本实施例提供的系统所涉及的服务器端和客户端,与方法实施例中的服务器端和客户端属于同一构思,其具体的实现过程详见方法实施例,在此不再赘述。
本实施例提供的系统,根据建立的模板,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息,实现了服务接口的提前绑定;根据预先下载的第一描述形式的服务接口信息,向服务器端发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
实施例3
参见图6,本实施例提供了一种客户端设备,包括:
下载模块601,用于根据第一描述形式的特征信息,将该第一描述形式的服务接口信息下载到本地;
请求模块602,用于根据该下载模块601下载到本地的该第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
进一步的
该下载模块601,还用于将最新版本的该第一描述形式的服务接口信息下载到本地。
本实施例提供客户端设备,与方法实施例中的客户端设备属于同一构思,其具体的实现过程详见方法实施例,在此不再赘述。
本实施例提供的客户端设备,根据预先下载的第一描述形式的服务接口信息,向服务器端发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
实施例4
参见图7,本实施例提供了一种服务器,该服务器包括:
模板模块701,用于建立第一描述形式与第二描述形式对应关系的模板;
转换模块702,用于根据该模板模块701建立的模板,将该第二描述形式的服务接口信息转换为该第一描述形式的服务接口信息。
进一步的,参见图8,该服务器还包括:
标记模块703,用于将该转换模块702生成的第一描述形式的服务接口信息标记版本号,使客户端根据该版本号将最新版本的该第一描述形式的服务接口信息下载到本地。
本实施例提供服务器,与方法实施例中的服务器端属于同一构思,其具体的实现过程详见方法实施例,在此不再赘述。
本实施例提供的服务器,根据建立的模板,将第二描述形式的服务接口信息转换为第一描述形式的服务接口信息,实现了服务接口的提前绑定,使得客户端可以根据预先下载的第一描述形式的服务接口信息,向服务器发送远程过程调用请求,节省了服务器的连接资源,避免了CPU使用率浮高的弊端。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种远程过程调用的方法,其特征在于,所述方法包括:
客户端根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息下载到本地;
根据本地的所述第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
2、如权利要求1所述的方法,其特征在于,所述第一描述形式的服务接口信息是最新版本的第一描述形式的服务接口信息。
3、一种生成服务接口信息的方法,其特征在于,所述方法包括:
服务器端建立第一描述形式与第二描述形式对应关系的模板;
根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息。
4、如权利要求3所述的方法,其特征在于,所述根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息之后还包括:
将所述第一描述形式的服务接口信息标记版本号,使客户端根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
5、一种远程过程调用的系统,其特征在于,所述系统包括:服务器端和客户端;
所述服务器端,用于建立第一描述形式与第二描述形式对应关系的模板,根据所述模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息;
所述客户端,用于根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息从所述服务器端下载到本地,根据本地的所述第一描述形式的服务接口信息,向所述服务器端发送远程过程调用请求。
6、如权利要求5所述的系统,其特征在于,所述服务器端,还用于将所述第一描述形式的服务接口信息标记版本号;
所述客户端,还用于根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
7、一种客户端设备,其特征在于,所述客户端设备包括:
下载模块,用于根据第一描述形式的特征信息,将所述第一描述形式的服务接口信息下载到本地;
请求模块,用于根据所述下载模块下载到本地的所述第一描述形式的服务接口信息,向服务器端发送远程过程调用请求。
8、如权利要求7所述的客户端设备,其特征在于,所述下载模块,还用于将最新版本的所述第一描述形式的服务接口信息下载到本地。
9、一种服务器,其特征在于,所述服务器包括:
模板模块,用于建立第一描述形式与第二描述形式对应关系的模板;
转换模块,用于根据所述模板模块建立的模板,将所述第二描述形式的服务接口信息转换为所述第一描述形式的服务接口信息。
10、如权利要求9所述的服务器,其特征在于,所述服务器还包括:
标记模块,用于将所述转换模块生成的第一描述形式的服务接口信息标记版本号,使客户端根据所述版本号将最新版本的所述第一描述形式的服务接口信息下载到本地。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135219A CN101533361A (zh) | 2009-04-16 | 2009-04-16 | 远程过程调用及生成服务接口信息的方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135219A CN101533361A (zh) | 2009-04-16 | 2009-04-16 | 远程过程调用及生成服务接口信息的方法、系统和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101533361A true CN101533361A (zh) | 2009-09-16 |
Family
ID=41103979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910135219A Pending CN101533361A (zh) | 2009-04-16 | 2009-04-16 | 远程过程调用及生成服务接口信息的方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101533361A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916973A (zh) * | 2012-11-09 | 2013-02-06 | 苏州阔地网络科技有限公司 | 一种动态接口的实现方法及系统 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN103246547A (zh) * | 2012-02-14 | 2013-08-14 | 北京亿阳信通科技有限公司 | 远程调用对象的方法和系统 |
CN107172094A (zh) * | 2017-07-05 | 2017-09-15 | 北京并行科技股份有限公司 | 访问超级计算中心上服务程序的方法及系统 |
CN108509282A (zh) * | 2018-02-08 | 2018-09-07 | 厦门快商通信息技术有限公司 | 基于golang反射技术的rpc跨语言调用服务治理方法 |
CN109062710A (zh) * | 2018-07-19 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种远程过程调用方法、终端设备及网络设备 |
CN110633162A (zh) * | 2019-09-23 | 2019-12-31 | 苏州达家迎信息技术有限公司 | 远程调用实现方法、装置、计算机设备及存储介质 |
CN111600861A (zh) * | 2020-05-08 | 2020-08-28 | 格尔软件股份有限公司 | 一种兼容多终端多浏览器的颁发数字证书的方法 |
CN109600384B (zh) * | 2018-12-28 | 2021-08-03 | 江苏满运软件科技有限公司 | Rpc接口升级中流量切换方法、系统、设备及存储介质 |
-
2009
- 2009-04-16 CN CN200910135219A patent/CN101533361A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246547A (zh) * | 2012-02-14 | 2013-08-14 | 北京亿阳信通科技有限公司 | 远程调用对象的方法和系统 |
CN102916973A (zh) * | 2012-11-09 | 2013-02-06 | 苏州阔地网络科技有限公司 | 一种动态接口的实现方法及系统 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN107172094A (zh) * | 2017-07-05 | 2017-09-15 | 北京并行科技股份有限公司 | 访问超级计算中心上服务程序的方法及系统 |
CN108509282A (zh) * | 2018-02-08 | 2018-09-07 | 厦门快商通信息技术有限公司 | 基于golang反射技术的rpc跨语言调用服务治理方法 |
CN109062710A (zh) * | 2018-07-19 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种远程过程调用方法、终端设备及网络设备 |
CN109062710B (zh) * | 2018-07-19 | 2021-10-19 | 创新先进技术有限公司 | 一种远程过程调用方法、终端设备及网络设备 |
CN109600384B (zh) * | 2018-12-28 | 2021-08-03 | 江苏满运软件科技有限公司 | Rpc接口升级中流量切换方法、系统、设备及存储介质 |
CN110633162A (zh) * | 2019-09-23 | 2019-12-31 | 苏州达家迎信息技术有限公司 | 远程调用实现方法、装置、计算机设备及存储介质 |
CN111600861A (zh) * | 2020-05-08 | 2020-08-28 | 格尔软件股份有限公司 | 一种兼容多终端多浏览器的颁发数字证书的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101533361A (zh) | 远程过程调用及生成服务接口信息的方法、系统和设备 | |
CN105678540B (zh) | 一种支付处理方法、装置及智能设备 | |
CN101436148B (zh) | 集成客户端及进行桌面应用与网络应用交互的方法 | |
CN110297635B (zh) | 页面的显示方法、装置、设备以及存储介质 | |
CN109542427B (zh) | 一种系统定制方法、装置及电子设备和存储介质 | |
CN107872437B (zh) | 一种用于业务请求的方法、装置及服务器 | |
CN102752369B (zh) | 电视应用服务的提供方法及虚拟化内容服务平台 | |
US9392051B2 (en) | Application distribution supplying a dedicated application to a terminal from an application deposited by the developer | |
CN110838071A (zh) | 保单数据的处理方法、装置及服务器 | |
CN103092602A (zh) | 软件开发套件以及终端装置 | |
CN102622212B (zh) | 业务混搭的方法及系统 | |
CN102663009A (zh) | 一种支持企业用户数据私有化的web服务集成方法 | |
CN103677970A (zh) | 实现终端本地桌面和远端虚拟桌面合并显示的系统和方法 | |
CN107734050B (zh) | 一种负载机分配方法、计算设备及负载机分配系统 | |
CN102811199A (zh) | 一种接口适配方法、装置及系统 | |
CN107943845A (zh) | 一种电子回单生成方法及设备 | |
CN111339047A (zh) | 一种数据交互方法、装置及系统 | |
CN102301359A (zh) | 通过计算机之间的网络提供用户接口装置处的变化的指示 | |
CN114301970B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN104539450B (zh) | 网站运营活动处理系统、方法和装置 | |
CN111078165A (zh) | 一种基于互联网的共享打印(扫描)设备及系统 | |
CN109240673B (zh) | 一种基于react-native的视图动态加载更新方法及系统 | |
CN101604257A (zh) | 虚拟化软件的执行方法及装置 | |
Choe et al. | MetaService: an object transfer platform between Android applications | |
CN111078240A (zh) | 一种能够自动升级的终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090916 |