CN101719929A - 一种实现Web Service下实时数据传输的方法 - Google Patents
一种实现Web Service下实时数据传输的方法 Download PDFInfo
- Publication number
- CN101719929A CN101719929A CN200910230297A CN200910230297A CN101719929A CN 101719929 A CN101719929 A CN 101719929A CN 200910230297 A CN200910230297 A CN 200910230297A CN 200910230297 A CN200910230297 A CN 200910230297A CN 101719929 A CN101719929 A CN 101719929A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- thread
- request
- web service
- 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
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种实现Web Service下实时数据传输的方法,通过缓存机制、请求合并、多线程及队列机制等技术,解决Web Service普遍存在的效率问题,提高客户及服务程序的运行速度,实现实时数据传输,进而提供高速的用户体验,增加用户满意度。通过缓存机制可以有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度;通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载;多线程与队列机制使得程序可以在保证重要数据首先送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高***的反应速度,改善用户体验。
Description
技术领域
本发明涉及一种实现Web Service下实时数据传输的方法。
背景技术
随着计算机技术的发展,客户应用程序逐步从单机发展到网络应用,Web Service是当前的一项重要技术。Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。它的优点在于松散的处理异构***之间的通信和数据交换,可以随机应变的处理各个***之间的整合问题。但是同时,Web Service在网络中传输是以xml为基础的消息的请求和响应,大量的数据传输会使网络成为瓶颈,直接影响数据传输的效率。
发明内容
本发明的目的就是针对上述的问题,提供了一种实现Web Service下实时数据传输的方法,该方法通过缓存机制、请求合并、多线程及队列机制等技术,解决Web Service普遍存在的效率问题,提高客户及服务程序的运行速度,减少***对网络资源的占用,实现实时数据传输,进而提供高速的用户体验,增加用户满意度。通过缓存机制可以有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度;通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载;多线程与队列机制使得程序可以在保证重要数据首先送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高***的反应速度,改善用户体验。相对传统的工作方式,采用该方案的应用性能显著提高。
本发明采用了如下技术手段:
1.采用缓存机制
这种机制对于任何的软件解决方案都适用,而对于Web Service解决方案来讲,更是具有锦上添花的作用。缓存机制最通用的一个思想是,将使用次数比较多的数据缓存起来,如果再有相同请求时,就将缓存中的数据返回。这样会减少数据逻辑处理所带来的时间。
2.请求合并
所有数据操作在本地进行一次性的设置,将一组关联小请求合并为一个大的请求,使得原本多次等待的远程操作只需要一次数据传输就能完成。这样用户在处理数据时不会感到网络所带来的停顿,也可以有效提高网络传输数据中有效信息的含量。
3.可配置的多线程模式
以多线程并行工作的方式代替传统的工作方式,并可通过配置文件调整最大的工作线程数限制。允许使用者根据实际数据的规模,调优参数,达到实际环境的最佳性能。
4.队列机制
启动各工作线程,各线程在队列上等待任务;就像一个工厂中有很多的工人,你把任务放到一个队列中,那些工人就会自动的获取任务,每次处理任务完成后,再次在队列中等待新的任务。有任务时,取出任务进行处理;无任务时,空闲等待。每个任务只能被一个线程取出并处理。队列机制是解决多线程并行协同工作的可靠和高效的手段。
这样,本发明提供的实现Web Service下实时数据传输的方法,包括如下步骤:
第1步:客户端向服务端请求数据信息,即传送块的大小和起始位置。
第2步:服务端响应并处理请求。
第3步:查询缓存中是否存在该数据的副本,若存在,则从缓存中取出该数据直接返回给客户端,否则,利用多线程进行数据传输,并将结果集的对象保存在缓存中;如果缓存已满,则利用最近最少使用原则,清楚缓存中的一部分数据对象;通过缓存机制有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度。
第4步:请求合并,对于Web Service来讲,很多用户仍然将其作为传统的RCP来进行调用。每次都调用Web Service Provider所提供的函数,造成了效率的极大浪费。可以在本地进行一次性的设置,将一组关联小请求合并为一个或几个大的请求,再把生成的XML打包后发送给服务端。通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载。
第5步:加入任务队列。
第6步:启动工作线程组,通过配置参数决定启动工作线程的数目,按照数据的规模大小以及运行服务器的处理能力调整;线程组的各个线程启动后,处于空闲等待任务状态。
第7步:从队列中取出任务,线程启动后,或每次处理任务完成后,都在队列上等待新任务;有任务时,取出任务进行处理,无任务时,空闲等待;每个任务只能被一个线程取出并处理。
第8步:缓存管理,每个线程处理任务完成后将数据保存在缓存队列中。
第9步:数据传送完毕后,合并所有的线程文件,判断数据是否传输完毕的标志是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务;数据传送完毕后,合并所有的线程文件,并返回给客户端。多线程与队列机制使得程序可以在保证重要数据首先送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高***的反应速度,改善用户体验。
所述第4步中缓存的大小通过属性文件进行设置。
所述第5步有两种实现方式:假设把客户端发送给服务器端的xml打包成100份,然后把这些信息(开始位置、结束位置等)投递到任务队列中。一种是由管理线程直接把任务投递到线程的任务队列,这样每个线程都有自己的任务队列;另一种是有一个公用的任务队列,管理线程有任务就往里面放,工作线程一空闲就到里面取。
本发明具有如下优点:
1.显著提高数据传输的性能
通过缓存机制、请求合并、多线程及队列机制等技术,可充分利用服务器的CPU等资源,实现数据的高度传送;
2.扩展数据传输的应用范围
配置并发工作线程的数目,可以有效支持规模较大的数据,扩展了数据传输的应用范围。
附图说明
图1是本发明实施例的流程图。
具体实施方式
下面以非限定性的实施方式对本发明做进一步解释、说明。
一种实现Web Service下实时数据传输的方法,如图1所示,包括如下步骤:
第1步:客户端向服务端请求数据信息,即传送块的大小和起始位置。
第2步:服务端响应并处理请求。
第3步:查询缓存中是否存在该数据的副本,若存在,则从缓存中取出该数据直接返回给客户端,否则,利用多线程进行数据传输并将结果集的对象保存在缓存中;如果缓存已满,则利用最近最少使用原则,清楚缓存中的一部分数据对象;通过缓存机制有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度。
第4步:请求合并,对于Web Service来讲,很多用户仍然将其作为传统的RCP来进行调用。每次都调用Web Service Provider所提供的函数,造成了效率的极大浪费。可以在本地进行一次性的设置,将一组关联小请求合并为一个或几个大的请求,再把生成的XML打包后发送给服务端。通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载。本步中缓存的大小通过属性文件进行设置。
第5步:加入任务队列。本步有两种实现方式:假设把客户端发送给服务器端的xml打包成100份,然后把这些信息(开始位置、结束位置等)投递到任务队列中。一种是由管理线程直接把任务投递到线程的任务队列,这样每个线程都有自己的任务队列;另一种是有一个公用的任务队列,管理线程有任务就往里面放,工作线程一空闲就到里面取。
第6步:启动工作线程组,通过配置参数决定启动工作线程的数目,按照数据的规模大小以及运行服务器的处理能力调整;线程组的各个线程启动后,处于空闲等待任务状态。
第7步:从队列中取出任务,线程启动后,或每次处理任务完成后、都在队列上等待新任务;有任务时,取出任务进行处理,无任务时,空闲等待;每个任务只能被一个线程取出并处理。
第8步:缓存管理,每个线程处理任务完成后将数据保存在缓存队列中。
第9步:数据传送完毕后,合并所有的线程文件,判断数据是否传输完毕的标志是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务;数据传送完毕后,合并所有的线程文件,并返回给客户端。多线程与队列机制使得程序可以在保证重要数据首先送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高***的反应速度,改善用户体验。
Claims (3)
1.一种实现Web Service下实时数据传输的方法,包括如下步骤:
第1步:客户端向服务端请求数据信息,即传送块的大小和起始位置;
第2步:服务端响应并处理请求;
其特征在于还包括:
第3步:查询缓存中是否存在该数据的副本,若存在,则从缓存中取出该数据直接返回给客户端,否则,利用多线程进行数据传输,并将结果集的对象保存在缓存中;如果缓存已满,则利用最近最少使用原则,清楚缓存中的一部分数据对象;
第4步:请求合并,在本地进行一次性设置,将一组关联小请求合并为一个或几个大的请求,再把生成的XML打包后发送给服务端;
第5步:加入任务队列;
第6步:启动工作线程组,通过配置参数决定启动工作线程的数目,按照数据的规模大小以及运行服务器的处理能力调整;线程组的各个线程启动后,处于空闲等待任务状态;
第7步:从队列中取出任务,线程启动后,或每次处理任务完成后,都在队列上等待新任务;有任务时,取出任务进行处理,无任务时,空闲等待;每个任务只能被一个线程取出并处理;
第8步:缓存管理,每个线程处理任务完成后将数据保存在缓存队列中;
第9步:数据传送完毕后,合并所有的线程文件,判断数据是否传输完毕的标志是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务;数据传送完毕后,合并所有的线程文件,并返回给客户端。
2.根据权利要求1所述的实现Web Service下实时数据传输的方法,其特征在于:所述第3步中缓存的大小通过属性文件进行设置。
3.根据权利要求1所述的实现Web Service下实时数据传输的方法其特征在于:所述第5步有两种实现方式:一种是由管理线程直接把任务投递到线程的任务队列,这样每个线程都有自己的任务队列;另一种是有一个公用的任务队列,管理线程有任务就往里面放,工作线程一空闲就到里面取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910230297A CN101719929A (zh) | 2009-11-20 | 2009-11-20 | 一种实现Web Service下实时数据传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910230297A CN101719929A (zh) | 2009-11-20 | 2009-11-20 | 一种实现Web Service下实时数据传输的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101719929A true CN101719929A (zh) | 2010-06-02 |
Family
ID=42434444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910230297A Pending CN101719929A (zh) | 2009-11-20 | 2009-11-20 | 一种实现Web Service下实时数据传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101719929A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025650A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理***和消息处理方法 |
CN102088485A (zh) * | 2010-12-30 | 2011-06-08 | 用友软件股份有限公司 | 数据获取方法和装置 |
CN102158847A (zh) * | 2010-12-01 | 2011-08-17 | 北京迅捷英翔网络科技有限公司 | 手机与服务器之间的通讯方法及*** |
CN102685159A (zh) * | 2011-03-10 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 文件传输方法及装置 |
CN102088398B (zh) * | 2009-12-08 | 2013-03-20 | 华为技术有限公司 | Web并发事件处理方法及装置 |
CN102981901A (zh) * | 2012-11-19 | 2013-03-20 | 北京思特奇信息技术股份有限公司 | 一种处理连接请求的方法及装置 |
CN103392179A (zh) * | 2011-05-12 | 2013-11-13 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置、浏览器及移动终端 |
CN103685326A (zh) * | 2012-08-31 | 2014-03-26 | 盐城睿泰数字科技有限公司 | 一种web并发数据传输方法及web应用*** |
CN104202399A (zh) * | 2014-09-05 | 2014-12-10 | 国家电网公司 | 一种基于请求缓冲池的数据服务调度方法 |
CN105592163A (zh) * | 2016-01-25 | 2016-05-18 | 上海斐讯数据通信技术有限公司 | 一种通信方法及*** |
CN105610965A (zh) * | 2016-01-21 | 2016-05-25 | 广东电网有限责任公司 | 基于osb接口规范的跨***批量数据传输方法 |
CN107229623A (zh) * | 2016-03-23 | 2017-10-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN107273216A (zh) * | 2016-04-08 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及*** |
CN109155795A (zh) * | 2016-05-26 | 2019-01-04 | 百事可乐公司 | 对来自联网型分配机的遥测数据进行并行和可伸缩处理的***及方法 |
CN109842646A (zh) * | 2017-11-27 | 2019-06-04 | 北京京东尚科信息技术有限公司 | 网络请求的处理方法和装置 |
CN109981737A (zh) * | 2019-02-22 | 2019-07-05 | 香港乐蜜有限公司 | 一种网络请求的处理方法、装置、终端及存储介质 |
CN110247740A (zh) * | 2019-05-17 | 2019-09-17 | 五邑大学 | 一种数据传输方法、装置、设备和存储介质 |
CN111327691A (zh) * | 2020-01-23 | 2020-06-23 | 联想(北京)有限公司 | 业务处理方法、装置及电子设备 |
CN111752971A (zh) * | 2017-12-20 | 2020-10-09 | 第四范式(北京)技术有限公司 | 基于任务并行处理数据流的方法、装置、设备及存储介质 |
CN112799732A (zh) * | 2020-12-30 | 2021-05-14 | 深圳市捷顺科技实业股份有限公司 | 一种基于插件化的显示屏显示方法及相关装置 |
CN113157404A (zh) * | 2020-01-07 | 2021-07-23 | 北京沃东天骏信息技术有限公司 | 任务处理方法和装置 |
-
2009
- 2009-11-20 CN CN200910230297A patent/CN101719929A/zh active Pending
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088398B (zh) * | 2009-12-08 | 2013-03-20 | 华为技术有限公司 | Web并发事件处理方法及装置 |
CN102025650A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理***和消息处理方法 |
CN102158847A (zh) * | 2010-12-01 | 2011-08-17 | 北京迅捷英翔网络科技有限公司 | 手机与服务器之间的通讯方法及*** |
CN102088485A (zh) * | 2010-12-30 | 2011-06-08 | 用友软件股份有限公司 | 数据获取方法和装置 |
CN102685159A (zh) * | 2011-03-10 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 文件传输方法及装置 |
CN103392179A (zh) * | 2011-05-12 | 2013-11-13 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置、浏览器及移动终端 |
CN103685326A (zh) * | 2012-08-31 | 2014-03-26 | 盐城睿泰数字科技有限公司 | 一种web并发数据传输方法及web应用*** |
CN102981901A (zh) * | 2012-11-19 | 2013-03-20 | 北京思特奇信息技术股份有限公司 | 一种处理连接请求的方法及装置 |
CN104202399A (zh) * | 2014-09-05 | 2014-12-10 | 国家电网公司 | 一种基于请求缓冲池的数据服务调度方法 |
CN105610965A (zh) * | 2016-01-21 | 2016-05-25 | 广东电网有限责任公司 | 基于osb接口规范的跨***批量数据传输方法 |
CN105592163B (zh) * | 2016-01-25 | 2018-07-17 | 上海斐讯数据通信技术有限公司 | 一种通信方法及*** |
CN105592163A (zh) * | 2016-01-25 | 2016-05-18 | 上海斐讯数据通信技术有限公司 | 一种通信方法及*** |
CN107229623B (zh) * | 2016-03-23 | 2020-11-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN107229623A (zh) * | 2016-03-23 | 2017-10-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN107273216A (zh) * | 2016-04-08 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及*** |
CN107273216B (zh) * | 2016-04-08 | 2020-10-13 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及*** |
US11303728B2 (en) | 2016-05-26 | 2022-04-12 | Pepsico, Inc. | Systems and methods for parallel and scalable processing of telemetry data from connected dispensing machines |
CN109155795A (zh) * | 2016-05-26 | 2019-01-04 | 百事可乐公司 | 对来自联网型分配机的遥测数据进行并行和可伸缩处理的***及方法 |
CN109155795B (zh) * | 2016-05-26 | 2022-04-12 | 百事可乐公司 | 对来自联网型分配机的遥测数据进行并行和可伸缩处理的***及方法 |
CN109842646A (zh) * | 2017-11-27 | 2019-06-04 | 北京京东尚科信息技术有限公司 | 网络请求的处理方法和装置 |
CN111752971A (zh) * | 2017-12-20 | 2020-10-09 | 第四范式(北京)技术有限公司 | 基于任务并行处理数据流的方法、装置、设备及存储介质 |
CN109981737A (zh) * | 2019-02-22 | 2019-07-05 | 香港乐蜜有限公司 | 一种网络请求的处理方法、装置、终端及存储介质 |
CN110247740A (zh) * | 2019-05-17 | 2019-09-17 | 五邑大学 | 一种数据传输方法、装置、设备和存储介质 |
CN110247740B (zh) * | 2019-05-17 | 2022-03-08 | 五邑大学 | 一种数据传输方法、装置、设备和存储介质 |
CN113157404A (zh) * | 2020-01-07 | 2021-07-23 | 北京沃东天骏信息技术有限公司 | 任务处理方法和装置 |
CN113157404B (zh) * | 2020-01-07 | 2024-04-16 | 北京沃东天骏信息技术有限公司 | 任务处理方法和装置 |
CN111327691B (zh) * | 2020-01-23 | 2022-03-25 | 联想(北京)有限公司 | 业务处理方法、装置及电子设备 |
CN111327691A (zh) * | 2020-01-23 | 2020-06-23 | 联想(北京)有限公司 | 业务处理方法、装置及电子设备 |
CN112799732A (zh) * | 2020-12-30 | 2021-05-14 | 深圳市捷顺科技实业股份有限公司 | 一种基于插件化的显示屏显示方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719929A (zh) | 一种实现Web Service下实时数据传输的方法 | |
US9471392B2 (en) | Use of metrics to control throttling and swapping in a message processing | |
CN101645022B (zh) | 用于多个集群的作业调度管理***及方法 | |
CN105978968A (zh) | 一种海量数据的实时传输处理方法、服务器及处理*** | |
CN103685309B (zh) | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 | |
EP2913767A1 (en) | Page processing method, apparatus and system | |
US20180349178A1 (en) | A method and system for scalable job processing | |
CN101127632A (zh) | 一种服务器流量控制方法、***以及重定向器 | |
EP1564635A2 (en) | Scalable print spooler | |
CN1523844A (zh) | 用于在计算网格中创建服务实例的方法和*** | |
CN102694847B (zh) | 抓取第三方开放平台中用户动态的方法和装置 | |
CN108234149B (zh) | 一种网络请求的管理方法和装置 | |
CN108881485A (zh) | 保障大数据包下的高并发***响应时间的方法 | |
CN103297395A (zh) | 一种互联网业务的实现方法、***以及装置 | |
WO2019047441A1 (zh) | 一种通信优化方法及*** | |
US20160072909A1 (en) | Systems and methods for remote access to ims databases | |
WO2012116513A1 (zh) | 并发优化的bpmn组合服务执行引擎及方法 | |
CN111064771B (zh) | 一种网络请求处理方法及*** | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
EP2011029B1 (en) | Managing network response buffering behavior | |
US20150188981A1 (en) | Page processing method, apparatus, and system | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN113515363B (zh) | 面向异型任务高并发的多层次数据处理***动态调度平台 | |
CN105144099B (zh) | 通信*** | |
CN106302125B (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 |
Application publication date: 20100602 |