CN105391804A - 一种可减少传输流量的远程调用方法 - Google Patents
一种可减少传输流量的远程调用方法 Download PDFInfo
- Publication number
- CN105391804A CN105391804A CN201510942214.5A CN201510942214A CN105391804A CN 105391804 A CN105391804 A CN 105391804A CN 201510942214 A CN201510942214 A CN 201510942214A CN 105391804 A CN105391804 A CN 105391804A
- Authority
- CN
- China
- Prior art keywords
- client
- rmi
- server
- server end
- stream
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
一种可减少传输流量的远程调用方法,客户端Client通过控制链连接到服务器端Server后,得到RMI对象信息,对RMI对象信息进行省流量的序列化,传递到服务器端,服务器端通过反序列化能到原始的对象信息,完成远程调用。本发明的方法通过减小序列化流的大小,不携带对象所在项目的工程信息,从而减少网络带宽的使用,使得client和server端的交互速度提升数倍。另外,任何使用RMI方法的地方,无需在方法层做任何修改,即可达到减少流量的目的。
Description
技术领域
本发明属于网络通信领域,尤其是方法调用过程中减少流量的处理方法,具体地说是一种可减少传输流量的远程调用方法。
背景技术
目前,JavaRMI(远程方法调用RemoteMethodInvocation),是一种机制,能够让在某个Java虚拟机上的对象调用另一个Java虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。
Client通过控制链连接到Server后,得到RMI对象信息[IP,PORT,ObjId],通过数据链连接此[IP:Port],发送请求并获取ObjID对应的对象的响应。
所有RMI中的数据传输,需要进行对象的序列化,传递到服务器端,服务器端通过反序列化能到原始的对象信息。
RMI在client端和server端进行数据传输的时候,需要将参数进行序列化,然后在网络传输,这块序列化流的大小,直接影响client和server端的交互速度。
发明内容
本发明的目的是针对方法调用过程中流量占用多的问题,提出一种可减少传输流量的远程调用方法。
本发明的技术方案是:
一种可减少传输流量的远程调用方法,客户端Client通过控制链连接到服务器端Server后,得到RMI对象信息,对RMI对象信息进行省流量的序列化,传递到服务器端,服务器端通过反序列化能到原始的对象信息,完成远程调用。
本发明具体包括以下步骤:
(1)、客户端通过IP和端口向RMI服务器端发出服务请求;
(2)、RMI服务器端接收到客户端的请求后,返回服务器端的IP,数据传输端口和服务器端的对象ID;
(3)、客户端收到服务端返回的IP,数据传输端口和对象ID之后,会在客户端本地生成一个RMI的本地代理对象即本地存根Stub;
(4)、RMI客户端通过本地代理对象往服务器端的RMI发起对应的请求指令,同时会把对应的方法参数,方法名称传入本地代理对象;
(5)、本地代理对象Stub通过反射机制,调用invoke方法,获取请求对象的方法参数+方法名称;
(6)、本地代理对象Stub获取到相应对象的方法参数之后,首先会获取和远程服务端连接的通道ChannelConnection,然后获取这个连接通道的对象输出流;
(7)、获取到对象输出流之后,本地代理对象调用JDK的序列化对象方法,将之前获取到的对象的方法参数序列化成流写进第六步获取到的对象输出流中;
(8)、客户端将步骤(7)中对象输出流的信息发送到服务器端,服务器接收到请求之后,首先通过JDK的反序列化,将流反序列化成对应的请求方法参数,然后服务器端调用对应的请求方法进行业务处理;
(9)、服务器端方法业务处理结束之后,将结果通过JDK序列化成流,返回给RMI客户端,客户端再次通过反序列化,将流读成对应的结果,然后释放连接,完成了一次远程方法调用步骤。
本发明的有益效果:
RMI在client端和server端进行数据传输的时候,需要将参数进行序列化,然后在网络传输,这块序列化流的大小,直接影响client和server端的交互速度,传统处理序列化流的时候,RMI除了将对象的方法参数进行序列化,还会将该对象所在项目的工程信息返回,这些信息包括了本地的classpath,本地的jar包路径等等信息,这些信息都是客户端本地路径的信息,这些信息对于我们的业务毫无用处,但是序列化完之后,却占据了大量的带宽。本发明方法通过减小序列化流的大小,不携带对象所在项目的工程信息,从而减少网络带宽的使用,使得client和server端的交互速度提升数倍。另外,任何使用RMI方法的地方,无需在方法层做任何修改,即可达到减少流量的目的。
附图说明
图1是本发明的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图1所示,一种可减少传输流量的远程调用方法,客户端Client通过控制链连接到服务器端Server后,得到RMI对象信息,对RMI对象信息进行省流量的序列化,传递到服务器端,服务器端通过反序列化能到原始的对象信息,完成远程调用。本发明具体包括以下步骤:
(1)、客户端通过IP和端口向RMI服务器端发出服务请求;
(2)、RMI服务器端接收到客户端的请求后,返回服务器端的IP,数据传输端口和服务器端的对象ID;
(3)、客户端收到服务端返回的IP,数据传输端口和对象ID之后,会在客户端本地生成一个RMI的本地代理对象即本地存根Stub;
(4)、RMI客户端通过本地代理对象往服务器端的RMI发起对应的请求指令,同时会把对应的方法参数,方法名称传入本地代理对象;
(5)、本地代理对象Stub通过反射机制,调用invoke方法,获取请求对象的方法参数+方法名称;
(6)、本地代理对象Stub获取到相应对象的方法参数之后,首先会获取和远程服务端连接的通道ChannelConnection,然后获取这个连接通道的对象输出流;
(7)、获取到对象输出流之后,本地代理对象调用JDK的序列化对象方法,将之前获取到的对象的方法参数序列化成流写进第六步获取到的对象输出流中;
(8)、客户端将步骤(7)中对象输出流的信息发送到服务器端,服务器接收到请求之后,首先通过JDK的反序列化,将流反序列化成对应的请求方法参数,然后服务器端调用对应的请求方法进行业务处理;
(9)、服务器端方法业务处理结束之后,将结果通过JDK序列化成流,返回给RMI客户端,客户端再次通过反序列化,将流读成对应的结果,然后释放连接,完成了一次远程方法调用步骤。
具体实施时:
在图1所示的RMI通信过程中,修改第3步序列化请求参数,原先的参数包含方法参数和对象所在项目的工程信息两个部分。通过网络抓包抓取的client和server数据传输的网络包分析发现,开始几行是正常的对象序列化信息,还有主机ip。后面大部分都是客户端本地项目的一些jar包、本地的classpath的信息,这些信息占据的整个数据流的80%左右,由于是client本地路径信息,对于server端来说,毫无用处,如果能够去除这些,那么带宽使用情况将大幅度的缩小。
因此,去除掉占80%大小的classPath序列化流,整个序列化参数流大小将缩小4-5倍。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (2)
1.一种可减少传输流量的远程调用方法,其特征是客户端Client通过控制链连接到服务器端Server后,得到RMI对象信息,对RMI对象信息进行省流量的序列化,传递到服务器端,服务器端通过反序列化能到原始的对象信息,完成远程调用。
2.根据权利要求1所述的可减少传输流量的远程调用方法,其特征是它具体包括以下步骤:
(1)、客户端通过IP和端口向RMI服务器端发出服务请求;
(2)、RMI服务器端接收到客户端的请求后,返回服务器端的IP,数据传输端口和服务器端的对象ID;
(3)、客户端收到服务端返回的IP,数据传输端口和对象ID之后,会在客户端本地生成一个RMI的本地代理对象即本地存根Stub;
(4)、RMI客户端通过本地代理对象往服务器端的RMI发起对应的请求指令,同时会把对应的方法参数,方法名称传入本地代理对象;
(5)、本地代理对象Stub通过反射机制,调用invoke方法,获取请求对象的方法参数+方法名称;
(6)、本地代理对象Stub获取到相应对象的方法参数之后,首先会获取和远程服务端连接的通道ChannelConnection,然后获取这个连接通道的对象输出流;
(7)、获取到对象输出流之后,本地代理对象调用JDK的序列化对象方法,将之前获取到的对象的方法参数序列化成流写进第六步获取到的对象输出流中;
(8)、客户端将步骤(7)中对象输出流的信息发送到服务器端,服务器接收到请求之后,首先通过JDK的反序列化,将流反序列化成对应的请求方法参数,然后服务器端调用对应的请求方法进行业务处理;
(9)、服务器端方法业务处理结束之后,将结果通过JDK序列化成流,返回给RMI客户端,客户端再次通过反序列化,将流读成对应的结果,然后释放连接,完成了一次远程方法调用步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510942214.5A CN105391804A (zh) | 2015-12-16 | 2015-12-16 | 一种可减少传输流量的远程调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510942214.5A CN105391804A (zh) | 2015-12-16 | 2015-12-16 | 一种可减少传输流量的远程调用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105391804A true CN105391804A (zh) | 2016-03-09 |
Family
ID=55423634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510942214.5A Pending CN105391804A (zh) | 2015-12-16 | 2015-12-16 | 一种可减少传输流量的远程调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105391804A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763619A (zh) * | 2016-03-31 | 2016-07-13 | 广州华多网络科技有限公司 | 客户端与服务端进行通讯的方法及装置 |
CN108234670A (zh) * | 2018-01-31 | 2018-06-29 | 北京中安智达科技有限公司 | 一种基于zookeeper和netty的分布式远程调用方法 |
CN109873831A (zh) * | 2019-03-14 | 2019-06-11 | 珠海天燕科技有限公司 | 一种数据传输的方法和*** |
CN110958218A (zh) * | 2019-10-16 | 2020-04-03 | 平安国际智慧城市科技股份有限公司 | 基于多网通信的数据传输方法及相关设备 |
CN112367376A (zh) * | 2020-10-28 | 2021-02-12 | 常州微亿智造科技有限公司 | 一种工业物联网下微服务间相互通讯框架的实现方法 |
CN114710541A (zh) * | 2022-01-28 | 2022-07-05 | 赛纳生物科技(北京)有限公司 | 一种传输测序数据的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495757A (zh) * | 2011-11-15 | 2012-06-13 | 深圳市融创天下科技股份有限公司 | 一种适用于java远程调用对象传输的优化方法、装置 |
-
2015
- 2015-12-16 CN CN201510942214.5A patent/CN105391804A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495757A (zh) * | 2011-11-15 | 2012-06-13 | 深圳市融创天下科技股份有限公司 | 一种适用于java远程调用对象传输的优化方法、装置 |
Non-Patent Citations (3)
Title |
---|
戴亮等: "一种新的基于序列化的Java RMI方法", 《计算机工程》 * |
王莉红等: "基于Java-RMI技术的移动代理***设计", 《计算机工程与设计》 * |
闫钧华等: "基于Java的分布式测控***任务调度研究", 《***工程与电子技术》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763619A (zh) * | 2016-03-31 | 2016-07-13 | 广州华多网络科技有限公司 | 客户端与服务端进行通讯的方法及装置 |
CN105763619B (zh) * | 2016-03-31 | 2019-07-05 | 广州欢聚时代信息科技有限公司 | 客户端与服务端进行通讯的方法及装置 |
CN108234670A (zh) * | 2018-01-31 | 2018-06-29 | 北京中安智达科技有限公司 | 一种基于zookeeper和netty的分布式远程调用方法 |
CN109873831A (zh) * | 2019-03-14 | 2019-06-11 | 珠海天燕科技有限公司 | 一种数据传输的方法和*** |
CN109873831B (zh) * | 2019-03-14 | 2021-07-23 | 珠海天燕科技有限公司 | 一种数据传输的方法和*** |
CN110958218A (zh) * | 2019-10-16 | 2020-04-03 | 平安国际智慧城市科技股份有限公司 | 基于多网通信的数据传输方法及相关设备 |
CN112367376A (zh) * | 2020-10-28 | 2021-02-12 | 常州微亿智造科技有限公司 | 一种工业物联网下微服务间相互通讯框架的实现方法 |
CN114710541A (zh) * | 2022-01-28 | 2022-07-05 | 赛纳生物科技(北京)有限公司 | 一种传输测序数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105391804A (zh) | 一种可减少传输流量的远程调用方法 | |
EP2989799B1 (en) | Method and apparatus for transmitting and receiving signaling information in digital broadcasting system | |
EP2383941A1 (en) | Stream media server, client terminal and method and system for downloading stream media | |
CN102547239A (zh) | 基于Android移动终端的视频监控*** | |
CN108234149B (zh) | 一种网络请求的管理方法和装置 | |
CN104427286B (zh) | 一种进行视频通话的方法和*** | |
CN108234190B (zh) | 一种视联网设备的管理方法和*** | |
WO2016210109A1 (en) | Mechanisms to support adaptive constrained application protocol (coap) streaming for internet of things (iot) systems | |
JP2015529044A (ja) | マルチメディアデータの転送特徴情報を配信する方法及び装置 | |
CN109302578A (zh) | 一种登录会议终端以及视频会议的方法和*** | |
CN104468656A (zh) | 一种移动数据的下载上传方法和*** | |
CN102917212A (zh) | 一种基于rtp和rtsp的3g无线视频监控实现方法及*** | |
CN109698818A (zh) | 一种获取在线用户以及跨流媒体通信的方法和装置 | |
CN109376086B (zh) | 一种基于Netty的性能测试平台的通信方法及性能测试平台 | |
CN103581119B (zh) | 一种生产过程数据高速显示***及方法 | |
CN106658388A (zh) | 蓝牙网关 | |
CN101552735A (zh) | 基于订阅模式的可插拔消息总线装置及其实现方法 | |
CN101815073A (zh) | 一种嵌入式蓝牙-以太网服务器 | |
CN103248679A (zh) | 一种网络消息传递方法 | |
CN106412027A (zh) | 服务器的消息推送方法及推送*** | |
CN107846328B (zh) | 基于并发无锁环形队列的网络速率实时统计方法 | |
CN102480463B (zh) | 网络交互方法及*** | |
CN109167965A (zh) | 一种数据处理的方法和装置 | |
CN104714634A (zh) | 一种远程输入方法和*** | |
CN107302525A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160309 |