一种实现WebService下实时数据传输的方法

文档序号:7719420阅读:503来源:国知局
专利名称:一种实现Web Service下实时数据传输的方法
技术领域
本发明涉及一种实现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.扩展数据传输的应用范围 配置并发工作线程的数目,可以有效支持规模较大的数据,扩展了数据传输的应
4用范围。


图1是本发明实施例的流程图。
具体实施例方式
下面以非限定性的实施方式对本发明做进一步解释、说明。
—种实现Web Service下实时数据传输的方法,如图1所示,包括如下步骤
第1步客户端向服务端请求数据信息,即传送块的大小和起始位置。
第2步服务端响应并处理请求。 第3步查询缓存中是否存在该数据的副本,若存在,则从缓存中取出该数据直接返回给客户端,否则,利用多线程进行数据传输并将结果集的对象保存在缓存中;如果缓存已满,则利用最近最少使用原则,清楚缓存中的一部分数据对象;通过缓存机制有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度。
第4步请求合并,对于Web Service来讲,很多用户仍然将其作为传统的RCP来进行调用。每次都调用Web Service Provider所提供的函数,造成了效率的极大浪费。可以在本地进行一次性的设置,将一组关联小请求合并为一个或几个大的请求,再把生成的XML打包后发送给服务端。通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载。本步中缓存的大小通过属性文件进行设置。 第5步加入任务队列。本步有两种实现方式假设把客户端发送给服务器端的xml打包成100份,然后把这些信息(开始位置、结束位置等)投递到任务队列中。 一种是由管理线程直接把任务投递到线程的任务队列,这样每个线程都有自己的任务队列;另一种是有一个公用的任务队列,管理线程有任务就往里面放,工作线程一空闲就到里面取。
第6步启动工作线程组,通过配置参数决定启动工作线程的数目,按照数据的规模大小以及运行服务器的处理能力调整;线程组的各个线程启动后,处于空闲等待任务状态。 第7步从队列中取出任务,线程启动后,或每次处理任务完成后、都在队列上等待新任务;有任务时,取出任务进行处理,无任务时,空闲等待;每个任务只能被一个线程取出并处理。
第8步缓存管理,每个线程处理任务完成后将数据保存在缓存队列中。 第9步数据传送完毕后,合并所有的线程文件,判断数据是否传输完毕的标志
是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务;数据传送完毕后,合并
所有的线程文件,并返回给客户端。多线程与队列机制使得程序可以在保证重要数据首先
送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高系统的反应速度,
改善用户体验。
权利要求
一种实现Web Service下实时数据传输的方法,包括如下步骤第1步客户端向服务端请求数据信息,即传送块的大小和起始位置;第2步服务端响应并处理请求;其特征在于还包括第3步查询缓存中是否存在该数据的副本,若存在,则从缓存中取出该数据直接返回给客户端,否则,利用多线程进行数据传输,并将结果集的对象保存在缓存中;如果缓存已满,则利用最近最少使用原则,清楚缓存中的一部分数据对象;第4步请求合并,在本地进行一次性设置,将一组关联小请求合并为一个或几个大的请求,再把生成的XML打包后发送给服务端;第5步加入任务队列;第6步启动工作线程组,通过配置参数决定启动工作线程的数目,按照数据的规模大小以及运行服务器的处理能力调整;线程组的各个线程启动后,处于空闲等待任务状态;第7步从队列中取出任务,线程启动后,或每次处理任务完成后,都在队列上等待新任务;有任务时,取出任务进行处理,无任务时,空闲等待;每个任务只能被一个线程取出并处理;第8步缓存管理,每个线程处理任务完成后将数据保存在缓存队列中;第9步数据传送完毕后,合并所有的线程文件,判断数据是否传输完毕的标志是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务;数据传送完毕后,合并所有的线程文件,并返回给客户端。
2. 根据权利要求l所述的实现Web Service下实时数据传输的方法,其特征在于所 述第3步中缓存的大小通过属性文件进行设置。
3. 根据权利要求l所述的实现Web Service下实时数据传输的方法其特征在于所述 第5步有两种实现方式一种是由管理线程直接把任务投递到线程的任务队列,这样每个 线程都有自己的任务队列;另一种是有一个公用的任务队列,管理线程有任务就往里面放, 工作线程一空闲就到里面取。
全文摘要
一种实现Web Service下实时数据传输的方法,通过缓存机制、请求合并、多线程及队列机制等技术,解决Web Service普遍存在的效率问题,提高客户及服务程序的运行速度,实现实时数据传输,进而提供高速的用户体验,增加用户满意度。通过缓存机制可以有效地避免客户端的重复请求、服务端的重复生成,减少请求次数,降低网络负载,提高运行速度;通过将一组关联小请求合并为一个大的请求,可以有效提高网络传输数据中有效信息的含量,进一步降低网络负载;多线程与队列机制使得程序可以在保证重要数据首先送达的同时,充分的利用网络网络带宽资源,实现数据的高度传送,提高系统的反应速度,改善用户体验。
文档编号H04L29/08GK101719929SQ20091023029
公开日2010年6月2日 申请日期2009年11月20日 优先权日2009年11月20日
发明者段文良, 陈妍妍, 韩敏 申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1