一种高准确率的互联网应用系统的关联方法与流程

文档序号:17126070发布日期:2019-03-16 00:27阅读:151来源:国知局
本发明涉及信息检索;及其数据库结构的
技术领域
:,特别涉及一种能高效、准确关联互联网应用系统的三层数据并存储数据库服务器的所有访问信息的高准确率的互联网应用系统的关联方法。
背景技术
::互联网技术迅速发展,随之也伴生许多安全隐患,近年来信息泄密事件频发不止,屡屡给人们敲响数据安全警钟,经过这些安全事件,人们更为重视数据的安全性,然而,虽然泄密事件从数量上相对减少,数据泄密的方式和影响范围却仍然不断升级,如果没有使用加密技术或安全防护技术对互联网应用系统的数据库服务器中存储的数据进行保护,将给数据窃取者开出后门,最终将损害服务提供商及用户的利益。目前,互联网应用系统基本都采用三层结构,即表示层、业务层、数据层,想要保护存储数据的数据层,需要明确知道访问数据层的要点,包括“谁、什么时间、通过什么手段、干了什么、结果如何”的相关信息,这需要将三层结构中的访问者路径清晰记录才能做到。专利“一种提高三层关联精准度的方法”,专利号为cn201510757700.x公开了一种提高互联网应用系统的三层结构的关联性的方法,客户端和数据库都收集信息并带上当前线程的id,然后分别发送给审计设备,审计设备根据线程id,关联客户端和数据库端信息。本发明虽然可以关联互联网应用系统的三层结构,但是相对来说效率低,且系统消耗大。而在现有技术中,基本也是通过流量分析关联出前端访问者与数据访问者的关联,当应用提供商的服务器压力过大时,关联准确度会大大降低,同时分析流量对系统开销也较大,并不适宜大规模开展。技术实现要素:为了解决现有技术中存在的问题,本发明提供一种优化的高准确率的互联网应用系统的关联方法,能高效、准确关联三层数据,并存储数据库服务器的所有访问信息,能够有效解决高并发量访问应用服务器时三层关联准确率低的问题。本发明所采用的技术方案是,一种高准确率的互联网应用系统的关联方法,所述互联网应用系统包括客户端、应用服务器和数据库服务器,所述关联方法包括以下步骤:步骤1:客户端向应用服务器发起连接请求;步骤2:应用服务器基于连接请求创建响应线程,应用服务器在本地新建一用于记录响应线程处理连接请求的基础信息的本地线程变量;步骤3:响应线程连接数据库服务器,传送基础信息;步骤4:数据库服务器接收步骤3的基础信息、执行数据库操作后,将执行结果返回给应用服务器;本地线程变量记录数据库服务器的操作开始时间;步骤5:应用服务器接收数据库服务器返回的结果;本地线程变量记录数据库服务器的操作结束时间及操作结果;步骤6:应用服务器将数据库服务器返回的结果返回至客户端,结束请求并释放响应线程;本地线程变量记录请求结束时间;步骤7:应用服务器将本地线程变量记录的全部信息发送至审计设备。优选地,所述步骤1中,连接请求的信息包括客户端ip、服务器ip、端口和操作命令参数。优选地,所述步骤2中,本地线程变量的基础信息包括线程id、客户端ip、服务端ip、http访问开始时间和操作命令参数。优选地,所述步骤3中,响应线程连接数据库服务器后传送的信息包括线程id和操作命令参数。优选地,所述步骤7中,发送的全部信息包括客户端ip、服务端ip、端口、操作命令参数、线程id、请求开始时间、数据库服务器的操作开始时间、数据库服务器的操作结束时间、操作结果和请求结束时间。本发明提供了一种优化的高准确率的互联网应用系统的关联方法,通过在客户端向应用服务器发起连接请求时,应用服务器为其创建响应线程,并同时在本地新建一用于记录响应线程处理连接请求的基础信息的本地线程变量,其后在响应线程连接数据库服务器传送信息、数据库服务器返回结果并最终返回至客户端的过程中,本地线程变量持续记录产生的信息,最终发送至审计设备。本发明利用应用服务器创建本地线程变量,将访问数据库服务器的信息封装进本地线程变量中,为每一个线程提供一个独立的变量副本,可以高效、准确关联三层数据,并存储数据库服务器的所有访问信息,三层关联准确率高,系统消耗小,开销小。本发明有别于专利“一种提高三层关联精准度的方法”,专利号为cn201510757700.x公开的一种提高互联网应用系统的三层结构的关联性的方法,免除审计设备进行关联的工作而导致的效率相对低、系统消耗大,而是运用同一个线程的原理,审计设备不需要自己根据获取到的信息做关联的工作,而是将结果关联好了再发送给审计设备,减少了关联的工作,提高了三层关联的效率,减少系统的消耗,准确率高。附图说明图1为本发明的流程图。具体实施方式下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。本发明涉及一种高准确率的互联网应用系统的关联方法,所述互联网应用系统包括客户端、应用服务器和数据库服务器,所述关联方法包括以下步骤。步骤1:客户端向应用服务器发起连接请求。所述步骤1中,连接请求的信息包括客户端ip、服务器ip、端口和操作命令参数本实施例中,请求信息包括客户端ip为192.168.3.2,服务端ip为192.168.33.8,端口80,操作命令参数为cmd1。步骤2:应用服务器基于连接请求创建响应线程,应用服务器在本地新建一用于记录响应线程处理连接请求的基础信息的本地线程变量。所述步骤2中,本地线程变量的基础信息包括线程id、客户端ip、服务端ip、http访问开始时间和操作命令参数。本实施例中,令本地线程变量为threadlocaltl1,threadlocaltl1记录响应线程的基础信息,基础信息包括但不限于以下内容:线程id为201803067872,客户端ip为192.168.3.2,服务端ip为192.168.33.8,端口80,http访问开始时间为20180306143730,操作命令参数为cmd1=select*fromtable1。本发明中,本地线程变量是每个线程的副本,只有本线程才可以访问,其他线程无法访问,可用于数据隔离。创建本地线程变量本身没有什么限制,但是在高并发的场景下,还是基于线程池的大小,若线程池不够大且并发非常大的情况下,就无法分配出足够的线程,就也无法创建出本地线程变量,而在这种情况下,本身的web应用也将会有问题,无法正常使用。因此,本领域技术人员应当根据实际需求,创建合适量的本地线程变量和并合理确认并发数,保证本发明的方法可以落实,web应用正常。步骤3:响应线程连接数据库服务器,传送基础信息。所述步骤3中,响应线程连接数据库服务器后传送的信息包括线程id和操作命令参数。本实施例中,事实上,响应线程传送至数据库服务器的信息并非所有基础信息,主要为线程id201803067872和操作命令参数为cmd1=select*fromtable1。步骤4:数据库服务器接收步骤3的基础信息、执行数据库操作后,将执行结果返回给应用服务器;本地线程变量记录数据库服务器的操作开始时间。本实施例中,本地线程变量threadlocaltl1追加记录数据库服务器的操作开始时间20180306144530。步骤5:应用服务器接收数据库服务器返回的结果;本地线程变量记录数据库服务器的操作结束时间及操作结果。本实施例中,本地线程变量threadlocaltl1追加记录数据库服务器的操作结束时间20180306144531以及操作结果rs1:返回表table1的所有记录。步骤6:应用服务器将数据库服务器返回的结果返回至客户端,结束请求并释放响应线程;本地线程变量记录请求结束时间。本实施例中,本地线程变量threadlocaltl1追加记录请求结束时间20180306145031。步骤7:应用服务器将本地线程变量记录的全部信息发送至审计设备。所述步骤7中,发送的全部信息包括客户端ip、服务端ip、端口、操作命令参数、线程id、请求开始时间、数据库服务器的操作开始时间、数据库服务器的操作结束时间、操作结果和请求结束时间。本实施例中,应用服务器通过代理服务将threadlocaltl1记录所有的变量信息发送给审计设备,发送的信息包括但不限于以下内容:客户端ip为192.168.3.2,服务端ip为192.168.33.8,端口80、操作命令参数select*fromtable1,线程id为201803067872,http访问开始时间20180306143730,数据库服务器的操作开始时间20180306144530,数据库服务器的操作结束时间20180306144531,操作结果为返回表table1的所有记录,请求结束时间20180306145031。本发明中,在所有配置的性能足够好并对应并发的情况下,全部信息被实时发送至审计设备,即每一个请求触发以后,就会将收集到的信息发送出去;而当服务器或web整体性能不够好时,会将数据储存在队列中,按先进先出的方法发送。本发明通过在客户端向应用服务器发起连接请求时,应用服务器为其创建响应线程,并同时在本地新建一用于记录响应线程处理连接请求的基础信息的本地线程变量,其后在响应线程连接数据库服务器传送信息、数据库服务器返回结果并最终返回至客户端的过程中,本地线程变量持续记录产生的信息,最终发送至审计设备。本发明中利用应用服务器创建本地线程变量,将访问数据库服务器的信息封装进本地线程变量中,为每一个线程提供一个独立的变量副本,可以高效、准确关联三层数据,并存储数据库服务器的所有访问信息,三层关联准确率高,系统消耗小,开销小。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1