序列式数据发送系统及方法

文档序号:7668435阅读:198来源:国知局
专利名称:序列式数据发送系统及方法
技术领域
本发明涉及一种序列式数据发送系统及方法。
背景技术
在数据库应用开发中,连接的管理是一个难点,它是决定数据库应用性能的一个重要因 素。随着电脑中应用程序的不断增加,同一台电脑在同一时间可能产生很多的数据库连接请 求,但数据库的连接数目有其上限,同一时间只能满足一定数量的数据库连接,无法同时负 荷大量的数据库连接。
尤其是在生产现场,同一时间可能会有上百台电脑向数据库发送连接请求,将资料存储 到数据库中,这样更加重了数据库的负荷,严重时还会造成数据库死机,影响正常的生产。

发明内容
鉴于以上内容,有必要提供一种序列式数据发送系统,其可减少同一时间数据库连接的 数目。
鉴于以上内容,还有必要提供一种序列式数据发送方法,其可减少同一时间数据库连接 的数目。
一种序列式数据发送系统,包括用户端电脑和应用服务器,所述用户端电脑通过网络和 应用服务器相连,所述应用服务器连接有数据库,所述用户端电脑包括序列式数据发送管理 单元,所述序列式数据发送管理单元包括
请求接收模块,用于接收线程向应用服务器发出的数据存储请求;
插入模块,用于将所述数据存储请求插入到一个序列式数据发送管理队列的尾部;
判断模块,用于判断所述数据存储请求是否是序列式数据发送管理队列中的第一个元素
请求发送模块,用于当所述数据存储请求是序列式数据发送管理队列中的第一个元素时 ,将第一个元素对应的数据存储请求发送给应用服务器;
当所述数据存储请求不是序列式数据发送管理队列中的第一个元素时,所述请求发送模 块找到序列式数据发送管理队列中的第一个元素,将第一个元素对应的数据存储请求发送给 应用服务器;
所述应用服务器将所述序列式数据发送管理队列中第一个元素对应的数据存储在数据库中;及
所述请求发送模块还用于在将所述第一个元素对应的数据存储请求发送给应用服务器后 ,删除序列式数据发送管理队列中的第一个元素,同时将序列式数据发送管理队列中其它元 素依次往前移动一个存储位置。
一种序列式数据发送方法,包括如下步骤
接收线程向应用服务器发出的数据存储请求;
将所述数据存储请求插入到一个序列式数据发送管理队列的尾部;
将所述序列式数据发送管理队列中的第一个元素对应的数据存储请求发送给应用服务器 ,并删除该序列式数据发送管理队列中的第一个元素,将序列式数据发送管理队列中其它元 素依次往前移动一个存储位置;及
应用服务器将所述序列式数据发送管理队列中第一个元素对应的数据存储在数据库中。
相较于现有技术,所述的序列式数据发送系统及方法,通过将用户端电脑中的数据库连 接请求存储在一个队列中,最先进入队列的数据库连接请求将会最先被处理,最后进入队列 的数据库连接请求将会最后被处理,同一时间只有队列中的第一元素才会被处理,保证了同 一时间用户端电脑中只有一个数据库连接请求被处理,减少了同一时间数据库连接的数目。


图l是本发明序列式数据发送系统较佳实施例的硬件架构图。 图2是图1中所示用户端电脑的功能模块图。 图3是本发明序列式数据发送方法较佳实施例的流程图。
具体实施例方式
如图1所示,是本发明序列式数据发送系统较佳实施例的硬件架构图。该系统主要包括 应用服务器IO、数据库50及多个用户端电脑20,其中,所述的应用服务器10与所述用户端电 脑20通过网络30相连接,用于接收用户端电脑20发出的数据库连接请求(即数据存储请求) 。所述用户端电脑20提供一个互动式人机界面给用户进行相关操作,例如,用户通过用户端 电脑20将生产线上的测试数据发送给应用服务器10,保存在数据库50。网络30可以是一局域 网(Intranet),也可以是互联网(Internet)或其它类型通讯网络。
所述的应用服务器10通过连接40与所述的数据库50相连接,该连接40是一种数据库连接 ,如开放式数据库连接(Open Database Connectivity, ODBC),或者Java数据库连接( Java Database Connectivity, JDBC)。所述的数据库50用于储存各类数据,包括用户端电 脑20发送过来的测试数据等,该数据库50可独立于应用服务器10,也可位于应用服务器10内,比如应用服务器硬盘或者闪存盘等。
每台用户端电脑20中同时运行有多个线程(Thread 1、 Thread 2、 Thread 3及Thread n等),每个线程21代表一个任务,如用户输入、文件读写和网络收发数据等。当用户端电 脑20中的一个线程21向应用服务器10发出数据存储请求(即数据库连接请求)时,该请求将 被插入到一个请求队列中。在同一时间,每台用户端电脑20中只有请求队列的第一个元素( 即最先进入请求队列中的数据库连接请求)可以发送给应用服务器IO,保证同一时间数据库 50的连接数量不会超过用户端电脑20的数量。
如图2所示,是图1中所示用户端电脑20的功能模块图。所述用户端电脑20包括一个序列 式数据发送管理单元200,该序列式数据发送管理单元200包括请求接收模块201、插入模块 202、判断模块203、请求发送模块204和序列式数据发送管理队列205,该序列式数据发送管 理队列205即是图1中所示的请求队列。本发明所称的模块是完成一特定功能的计算机程序段 ,比程序更适合于描述软件在计算机中的执行过程,因此在本发明以下对软件描述中都以模 块描述。
所述请求接收模块201用于接收线程21向应用服务器10发出的数据存储请求(即数据库 连接请求)。
所述插入模块202用于将数据存储请求插入到所述序列式数据发送管理队列205的尾部。 所述判断模块203用于判断所述数据存储请求是否是序列式数据发送管理队列205中的第 一个元素,即判断该数据存储请求是否是最先进入序列式数据发送管理队列205中的请求。 所述序列式数据发送管理队列205中的每一个元素代表一个数据存储请求。
所述请求发送模块204用于当所述数据存储请求是序列式数据发送管理队列205中的第一 个元素时,将所述数据存储请求发送给应用服务器10;当所述数据存储请求不是序列式数据 发送管理队列205中的第一个元素时,所述请求发送模块204找到序列式数据发送管理队列中
的第一个元素,将第一个元素对应的数据存储请求发送给应用服务器io。
然后,请求发送模块204建立所述用户端电脑20和应用服务器10的连接,同时删除序列 式数据发送管理队列205中的第一个元素,序列式数据发送管理队列205中其它元素依次往前 移动一个存储位置。
具体而言,序列式数据发送管理队列205中原来第二个元素移到第一个元素的存储位置 ,原来第三个元素移到第二个元素的存储位置……依此类推,按照队列先进先出的原则,最 先进入队列的数据存储请求将会最先被处理,最后进入队列的数据存储请求将会最后被处理 ,保证了同一时间每台用户端电脑20只有一个数据库连接请求被处理,减少了应用服务器10和数据库50的负荷。
如图3所示,是本发明序列式数据发送方法较佳实施例的流程图。首先,步骤S401,所 述请求接收模块201接收线程21向应用服务器10发出的数据存储请求(即数据库连接请求)
步骤S402,所述插入模块202将数据存储请求插入到所述序列式数据发送管理队列205的 尾部。所述序列式数据发送管理队列205中的每一个元素代表一个数据存储请求。
步骤S403,所述判断模块203判断所述数据存储请求是否是序列式数据发送管理队列 205中的第一个元素,即判断该数据存储请求是否是最先进入序列式数据发送管理队列205中 的请求。如果所述数据存储请求不是序列式数据发送管理队列205中的第一个元素,则流程 进入步骤S404。如果所述数据存储请求是序列式数据发送管理队列205中的第一个元素,则 流程直接进入步骤S405。
步骤S404,所述请求发送模块204找到序列式数据发送管理队列205中的第一个元素,然 后流程进入步骤S405。
步骤S405,所述请求发送模块204将所述序列式数据发送管理队列205中第一个元素对应 的数据存储请求发送给应用服务器IO,建立所述用户端电脑20和应用服务器10的连接,同时 删除序列式数据发送管理队列205中的第一个元素,序列式数据发送管理队列205中其它元素 依次往前移动一个存储位置。
具体而言,序列式数据发送管理队列205中原来第二个元素移到第一个元素的存储位置 ,原来第三个元素移到第二个元素的存储位置……依此类推,按照队列先进先出的原则,最 先进入队列的数据存储请求将会最先被处理,最后进入队列的数据存储请求将会最后被处理 ,保证了同一时间每台用户端电脑20只有一个数据库连接请求被处理,减少了应用服务器 10和数据库50的负荷。
步骤S406,应用服务器10接收用户端电脑20发送过来的数据存储请求后,将所述序列式 数据发送管理队列205中第一个元素对应的数据存储到数据库50中。
权利要求
权利要求1一种序列式数据发送系统,包括用户端电脑和应用服务器,所述用户端电脑通过网络和应用服务器相连,所述应用服务器连接有数据库,其特征在于,所述用户端电脑包括序列式数据发送管理单元,所述序列式数据发送管理单元包括请求接收模块,用于接收线程向应用服务器发出的数据存储请求;插入模块,用于将所述数据存储请求插入到一个序列式数据发送管理队列的尾部;判断模块,用于判断所述数据存储请求是否是序列式数据发送管理队列中的第一个元素;请求发送模块,用于当所述数据存储请求是序列式数据发送管理队列中的第一个元素时,将第一个元素对应的数据存储请求发送给应用服务器;当所述数据存储请求不是序列式数据发送管理队列中的第一个元素时,所述请求发送模块找到序列式数据发送管理队列中的第一个元素,将第一个元素对应的数据存储请求发送给应用服务器;所述应用服务器将所述序列式数据发送管理队列中第一个元素对应的数据存储在数据库中;及所述请求发送模块还用于在将所述第一个元素对应的数据存储请求发送给应用服务器后,删除该序列式数据发送管理队列中的第一个元素,同时将序列式数据发送管理队列中其它元素依次往前移动一个存储位置。
2.如权利要求l所述的序列式数据发送系统,其特征在于,所述线程 是指用户端电脑中执行的应用程序。
3.如权利要求l所述的序列式数据发送系统,其特征在于,所述序列 式数据发送管理队列中的每一个元素代表一个数据存储请求。
4.一种序列式数据发送方法,其特征在于,该方法包括如下步骤 接收线程向应用服务器发出的数据存储请求;将所述数据存储请求插入到一个序列式数据发送管理队列的尾部;将所述序列式数据发送管理队列中的第一个元素对应的数据存储请求发送给应用服务 器,并删除该序列式数据发送管理队列中的第一个元素,将序列式数据发送管理队列中其它 元素依次往前移动一个存储位置;及应用服务器将所述序列式数据发送管理队列中第一个元素对应的数据存储在数据库中
5 如权利要求4所述的序列式数据发送方法,其特征在于,所述线程 是指一种应用程序。
6 如权利要求4所述的序列式数据发送方法,其特征在于,所述序列 式数据发送管理队列中的每一个元素代表一个数据存储请求。
全文摘要
一种序列式数据发送系统及方法,该方法包括如下步骤接收线程向应用服务器发出的数据存储请求;将所述数据存储请求插入到一个序列式数据发送管理队列的尾部;将所述序列式数据发送管理队列中的第一个元素对应的数据存储请求发送给应用服务器,并删除该序列式数据发送管理队列中的第一个元素,将序列式数据发送管理队列中其它元素依次往前移动一个存储位置;应用服务器将所述序列式数据发送管理队列中第一个元素对应的数据存储在数据库中。利用本发明可以减少同一时间数据库连接的数目。
文档编号H04L29/06GK101442458SQ20071020264
公开日2009年5月27日 申请日期2007年11月23日 优先权日2007年11月23日
发明者邱志宏 申请人:深圳富泰宏精密工业有限公司;奇美通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1