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 | 腾讯科技(深圳)有限公司 | 文件传输方法及装置 |
CN102981901A (zh) * | 2012-11-19 | 2013-03-20 | 北京思特奇信息技术股份有限公司 | 一种处理连接请求的方法及装置 |
CN102088398B (zh) * | 2009-12-08 | 2013-03-20 | 华为技术有限公司 | Web并发事件处理方法及装置 |
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下实时数据传输的方法 | |
CN100484119C (zh) | 用于在计算网格中创建服务实例的方法、系统和装置 | |
CN101645022B (zh) | 用于多个集群的作业调度管理系统及方法 | |
CN105978968A (zh) | 一种海量数据的实时传输处理方法、服务器及处理系统 | |
US20180349178A1 (en) | A method and system for scalable job processing | |
CN101127632A (zh) | 一种服务器流量控制方法、系统以及重定向器 | |
EP1564635A2 (en) | Scalable print spooler | |
EP2913767A1 (en) | Page processing method, apparatus and system | |
CN108881485A (zh) | 保障大数据包下的高并发系统响应时间的方法 | |
CN108234149B (zh) | 一种网络请求的管理方法和装置 | |
CN103297395A (zh) | 一种互联网业务的实现方法、系统以及装置 | |
US20160072909A1 (en) | Systems and methods for remote access to ims databases | |
CN111064771B (zh) | 一种网络请求处理方法及系统 | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
CN102694847A (zh) | 抓取第三方开放平台中用户动态的方法和装置 | |
CN103095785B (zh) | 远程过程调用方法和系统、客户端及服务器 | |
US20150188981A1 (en) | Page processing method, apparatus, and system | |
CN104408110A (zh) | 数据请求的方法、装置及系统 | |
US20070244993A1 (en) | Managing network response buffering behavior | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN113515363B (zh) | 面向异型任务高并发的多层次数据处理系统动态调度平台 | |
CN105144099B (zh) | 通信系统 | |
CN106302125B (zh) | 一种对请求信息进行响应的方法、装置及系统 | |
US20110246553A1 (en) | Validation of internal data in batch applications |
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 |