非同步数据查询方法与系统以及执行该方法的电脑程序的储存媒体的制作方法

文档序号:6638276阅读:85来源:国知局

专利名称::非同步数据查询方法与系统以及执行该方法的电脑程序的储存媒体的制作方法
技术领域
:本发明有关一种适用于企业信息领域或一般信息提供业者网站的数据查询方法与系统,且特别是关于一种非同步(asynchronous)的数据查询方法与系统。
背景技术
:在现代的企业中,经常使用报表查询网页(reportquerywebpage)来查询企业中的各种信息。图1绘示使用者在先前技术的系统查询数据的过程。使用者会用浏览器(browser)101,通过网络102连结伺服器(server)103提供的报表查询网页。报表查询网页会向数据库(database)104查询数据,然后通过网络102将结果回传给使用者的浏览器101。在这一类网页当中,有些信息是所有使用者都会重复查询的,例如出现在下拉选单的选择项目。随着企业规模扩大,数据量不断增加,有些重复出现的信息必须经过庞大而复杂的数据库查询才能取得。例如大型企业的每一个据点都会有上百万笔数据,整个企业就会有上千万笔数据。而传统的数据查询都是同步(synchronous)处理,也就是说,报表查询网页收到使用者的请求(request)之后才会对数据库发出查询指令,使用者必须等到庞大而复杂的查询指令执行完毕才会看到结果。于是,在图1的过程中,瓶颈会出现在伺服器103以及数据库104之间的数据查询。如果经常有多位使用者重复查询相同的数据,会让瓶颈现象更加严重,不但加重数据库的负担,也会大幅延长使用者的等待时间。
发明内容本发明的目的是提供一种非同步数据查询方法,以减少数据库查询次数,降低数据库的负担。本发明的另一目的是提供一种电脑可读取的储存媒体,储存执行非同步数据查询方法的电脑程序,以降低数据库使用量,加速取得数据时间。本发明的又一目的是提供一种非同步数据查询系统,以减少伺服器的存储器负担,并且缩短使用者的等待时间。为达成上述及其他目的,本发明提出一种非同步数据查询方法,包括下列步骤(a)根据预设规则定时执行下列两个步骤(a1)查询数据库,取得查询结果;以及(a2)利用查询结果更新变数。然后(b)提供上述变数至用户端。上述的非同步数据查询方法,在一实施例中,上述预设规则为依照预设周期执行步骤(a1)与(a2)。上述的非同步数据查询方法,在一实施例中,步骤(a1)还包括连结数据库,以及对数据库下达结构查询语言(structurequerylanguage,简称为SQL)指令,取得查询结果。上述的非同步数据查询方法,在一实施例中,若用户端的登入识别码没有读取变数的权限,则拒绝提供上述变数。上述的非同步数据查询方法,在一实施例中还包括至少加密上述变数的名称与内容的其中之一。从另一观点来看,本发明另提出一种电脑可读取的储存媒体,储存可执行上述的非同步数据查询方法的电脑程序。再从另一观点来看,本发明另提出一种非同步数据查询系统,包括数据库、伺服器、以及查询程序。其中,伺服器提供变数至用户端。查询程序则根据预设规则定时查询数据库,取得查询结果,并且利用上述查询结果更新上述变数。依照本发明的较佳实施例所述,本发明是以非同步方式定时查询数据库以更新伺服器的变数,然后在用户端查询时,伺服器可立即提供变数至用户端,所以能缩短使用者的等待时间。因为本发明是将来自众多使用者的重复查询集中简化为定时查询,所以能减少数据库查询次数,降低数据库的负担,并且减少伺服器的存储器使用。为让本发明的上述和其他目的、特点和优点能更明显易懂,下文特举本发明的较佳实施例并配合附图进行详细说明。图1为先前技术的数据查询方法示意图。图2为根据于本发明一实施例的非同步数据查询系统示意图。图3与图4为根据于本发明一实施例的非同步数据查询方法流程图。图5为图2的查询程序的架构示意图。具体实施例方式以下参照图2至图4说明本发明的一个实施例。首先,图2绘示根据于本实施例的非同步数据查询系统203。非同步数据查询系统203包括伺服器204、查询程序205、以及数据库206。其中,数据库206负责储存数据并回应查询。伺服器204负责通过网络202提供变数至用户端201。以上的变数内容是预先查询过的数据,可供用户端201直接使用,细节后述。在本实施例中,伺服器204为安装微软公司(Microsoft)的网际网络信息服务(InternetInformationService,简称为IIS)的个人电脑。网络202可以是区域网络(localareanetwork)或网际网络。而用户端201可以是浏览器的网页或独立的应用程序。在本实施例中,查询程序205是以电脑可读取的储存媒体形式,例如储存于存储器、硬盘、或光盘中,而存在于伺服器204或另一台独立的电脑(未绘示于图2中)。本发明的非同步数据查询主要是由查询程序205执行。所谓的非同步是指从用户端201到伺服器204的查询以及从伺服器204到数据库206的查询是分别独立作业,而不是像图1有一定的先后顺序。简单的说,查询程序205会根据预设规则定时查询数据库206,取得查询结果,然后利用查询结果更新伺服器204的变数,这样一来使用者能够在伺服204内查询到最新的数据。查询程序205的查询,是原本用户端201就会重复发出的查询。将结果储存在伺服器204的变数中,以后用户端201连结伺服器204就能直接取得结果,所以本发明能大幅缩短使用者的等待时间。另一方面,因为查询程序205将原本由众多使用者重复发出的查询,集中简化为单一程序的定时查询,所以本发明能大幅降低数据库的负担。在本实施例中,上述的预设规则是依照预设周期查询数据库206,例如每隔三分钟或五分钟查询一次,当然也可以用更复杂的定时规则。查询程序205每秒钟都会检查是否要执行查询作业。在本实施例中,查询程序205会向数据库206下达SQL指令以取得查询结果。至于查询结果,可以是单一文字、单一数字、阵列(array)、数据集合(dataset)、数据表(datatable)、数据视集(dataview)、或可扩充标记语言(extensiblemarkuplanguage,简称为XML)。为了数据安全起见,在更新伺服器204的变数时,查询程序205可以替变数名称或变数内容加密(encryption),或两者同时加密。在用户端201连结伺服器204时,若用户端201的登入识别码没有读取变数的权限,查询程序205会拒绝提供变数。此外查询程序205也包含事件记录(eventlog)的功能。如果顺利更新变数,查询程序205会写入正常状态至事件记录。反之,如果从查询数据库206到更新变数的过程中发生例外事件(exception),查询程序205会写入异常状态至事件记录。接下来,图3与图4为本实施例中,查询程序205所执行的非同步数据查询方法的详细流程图。图3为定时更新变数的流程。首先,在步骤310读取设定文件。这个设定文件包含查询程序205会用到的所有信息,例如预设的定时规则、定时规则是否执行、连结哪一个数据库、连结数据库所需的帐号与密码、对数据库下达的SQL指令、查询结果的种类等。当然,在本发明的范围中,可以用其他方式取得上述信息,不限于设定文件。例如可以从网络上的数据库、网络上的另一台电脑、或内建于程序中的常数或变数,取得上述信息的全部或其中一部分。读取设定文件之后,流程进入步骤320,根据预设的定时规则,检查是否要执行查询作业。如果不是,流程至此结束。如果是,流程会进入步骤325取得查询用的SQL指令,在步骤330连结数据库206,然后进入步骤340,对数据库206下达SQL指令,取得查询结果。接着流程进入步骤350,利用前面的查询结果更新变数。在更新变数时,可以顺便为变数名称或变数内容加密,或两者都加密。最后,流程会进入步骤360,写入正常状态至事件记录。另一方面,如果从步骤310到350的过程中发生例外事件,流程会进入步骤370,写入异常状态至事件记录。接下来,图4为用户端201查询数据时,查询程序205所执行的流程。首先,在步骤410,用户端201会连结伺服器204,登入报表查询网页。接着在步骤420,查询程序205会检查用户端201的登入识别码是否有读取变数的权限。如果有,查询程序205会在步骤430提供变数给用户端201,否则查询程序205会在步骤440拒绝提供变数。图5为本实施例的查询程序205的架构示意图。查询程序205包括六个模块排程模块(schedulemodule)501、条件数据收集模块(conditionaldatacollectionmodule)502、数据库连结模块(databaseconnectionmodule)503、查询模块(querymodule)504、事件记录模块(logmodule)505、以及安全模块(securitymodule)506。排程模块501负责定时检查预设规则,判断是否该进行查询作业,也就是执行图3的步骤302。条件数据收集模块502负责取得查询所需的SQL指令,也就是执行图3的步骤325。数据库连结模块503负责连结数据库,也就是执行图3的步骤330。查询模块504负责下达SQL指令,取得查询结果,也就是执行图3的步骤340。事件记录模块505负责记录整个查询作业中的异常状态以及顺利结束后的正常状态,也就是执行图3的步骤360与370。最后,安全模块506负责在用户端201欲取得伺服器204的变数时确保数据安全性,也就是执行图4的步骤420、430、以及440。在本发明的范围中,并未限定查询程序采用上述的模块架构,重点是只要查询程序能定时查询数据库,更新伺服器的变数,并且将变数提供给用户端,即可达成本发明的功效。综上所述,本发明是以非同步方式定时查询数据库以更新伺服器的变数,然后在用户端查询时,伺服器可立即提供变数至用户端,所以能缩短使用者的等待时间。因为本发明是将来自众多使用者的重复查询,集中简化为单一程序的定时查询,所以能减少数据库查询次数,降低数据库的负担,并且减少伺服器的存储器使用。虽然本发明已以较佳实施例揭示如上,然而其并非用以限定本发明,任何熟悉本技术的人员,在不脱离本发明的精神和范围内,当可作出种种的等效的变化或替换,因此本发明的保护范围当视后附的本申请权利要求范围所界定的为准。权利要求1.一种非同步数据查询方法,包括(a)根据一预设规则定时执行下列两个步骤(a1)查询一数据库,取得一查询结果;(a2)利用该查询结果更新一变数;以及(b)提供该变数至一用户端。2.如权利要求1所述的非同步数据查询方法,其特征在于该预设规则为依照一预设周期执行步骤(a1)与(a2)。3.如权利要求1所述的非同步数据查询方法,其特征在于步骤(a1)还包括连结该数据库;以及对该数据库下达一结构查询语言指令,取得该查询结果。4.如权利要求1所述的非同步数据查询方法,其特征在于该查询结果为下列其中之一单一文字、单一数字、阵列、数据集合、数据表、数据视集、以及可扩充标记语言。5.如权利要求1所述的非同步数据查询方法,其特征在于还包括若步骤(a1)与(a2)顺利结束,则写入正常状态至一事件记录。6.如权利要求1所述的非同步数据查询方法,其特征在于还包括若执行步骤(a1)或(a2)时发生例外事件,则写入异常状态至一事件记录。7.如权利要求1所述的非同步数据查询方法,其特征在于还包括若该用户端的登入识别码没有读取该变数的权限,则拒绝提供该变数。8.如权利要求7所述的非同步数据查询方法,其特征在于还包括至少加密该变数名称与该变数内容的其中之一。9.如权利要求1所述的非同步数据查询方法,其特征在于该用户端为网页与应用程序其中之一。10.一种电脑可读取的储存媒体,储存一电脑程序,该电脑程序可执行如权利要求1所述的非同步数据查询方法。11.一种非同步数据查询系统,包括一数据库;一伺服器,提供一变数至一用户端;以及一查询程序,根据一预设规则定时查询该数据库,取得一查询结果,并且利用该查询结果更新该变数。12.如权利要求11所述的非同步数据查询系统,其特征在于该预设规则为依照一预设周期查询该数据库。13.如权利要求11所述的非同步数据查询系统,其特征在于该查询结果是借助一结构查询语言指令自该数据库取得。14.如权利要求11所述的非同步数据查询系统,其特征在于该查询结果为下列其中之一单一文字、单一数字、阵列、数据集合、数据表、数据视集、以及可扩充标记语言。15.如权利要求11所述的非同步数据查询系统,其特征在于该查询程序的作用还包括若顺利更新该变数,则写入正常状态至一事件记录。16.如权利要求11所述的非同步数据查询系统,其特征在于该查询程序的作用还包括若自查询该数据库至更新该变数的过程中发生例外事件,则写入异常状态至一事件记录。17.如权利要求11所述的非同步数据查询系统,其特征在于该查询程序的作用还包括若该用户端的登入识别码没有读取该变数的权限,则拒绝提供该变数。18.如权利要求17所述的非同步数据查询系统,其特征在于该查询程序的作用还包括至少加密该变数名称与该变数内容的其中之一。19.如权利要求11所述的非同步数据查询系统,其特征在于该用户端为网页与应用程序其中之一。全文摘要一种非同步数据查询方法与系统,以及执行该方法的电脑程序的储存媒体,适用于网络化的企业信息系统或一般网际网络信息提供业者所建置的网站,以解决众多使用者重复查询相同数据所造成的等待与效能瓶颈。该方法的主要步骤如下。首先,根据预设规则定时查询数据库,取得查询结果,利用查询结果更新伺服器的变数。然后提供上述变数至用户端。文档编号G06F17/30GK1916892SQ20051009273公开日2007年2月21日申请日期2005年8月19日优先权日2005年8月19日发明者梁维国申请人:纬创资通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1