CN103744888A - 反垃圾邮件网关查询数据库的方法和系统 - Google Patents

反垃圾邮件网关查询数据库的方法和系统 Download PDF

Info

Publication number
CN103744888A
CN103744888A CN201310717887.1A CN201310717887A CN103744888A CN 103744888 A CN103744888 A CN 103744888A CN 201310717887 A CN201310717887 A CN 201310717887A CN 103744888 A CN103744888 A CN 103744888A
Authority
CN
China
Prior art keywords
inquiry
key word
parameter
data base
response message
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
Application number
CN201310717887.1A
Other languages
English (en)
Inventor
陈华英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN201310717887.1A priority Critical patent/CN103744888A/zh
Publication of CN103744888A publication Critical patent/CN103744888A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/308Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information retaining data, e.g. retaining successful, unsuccessful communication attempts, internet access, or e-mail, internet telephony, intercept related information or call content

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种反垃圾邮件网关查询数据库的方法和系统,所述方法包括:查询代理服务器解析出反垃圾邮件网关发送的数据库查询请求中的查询关键字参数及其参数值后,调用数据库服务器提供的与查询关键字参数对应的数据库访问API,将查询关键字参数的参数值传入其中;数据库访问API根据传入的查询关键字参数的参数值查询数据库后返回查询结果;查询代理服务器根据数据库访问API返回的查询结果确定出数据库查询请求的查询结果后,查找协议子集表中记录的查询关键字参数的响应信息,将查找到的响应信息中与数据库查询请求的查询结果相匹配的响应信息向反垃圾邮件网关返回。从而使得数据维护成本较低,数据库结构受局限较小。

Description

反垃圾邮件网关查询数据库的方法和系统
技术领域
本发明涉及互联网领域,尤其涉及一种反垃圾邮件网关查询数据库的方法和系统。
背景技术
电子邮件(electronic mail)是一种用电子手段传送信息的通信方式,具有传播速度速、成本低廉、方便快捷等特点,是Internet(互联网)应用非常广泛的服务。
在实际应用中,通常在电子邮件系统的前端设置反垃圾邮件网关,当一封电子邮件被发送到反垃圾邮件网关后,反垃圾邮件网关可以查询本地数据库中的用户数据,判断该电子邮件的收件人是否为本地用户;若为本地用户,则将该电子邮件发送到电子邮件系统;若不为本地用户,则将该电子邮件视为垃圾邮件,并对该电子邮件进行退信或丢弃等操作。反垃圾邮件网关进行用户数据的查询时,通常使用LDAP(Lightweight Directory Access Protocol,轻量目录访问协议),而存储用户数据的数据库往往是基于MySql的数据库,这样反垃圾邮件网关和数据库所使用的协议不兼容,不能直接进行数据交互。
为实现反垃圾邮件网关与数据库进行数据交互,现有的一种方法是:使用MySql数据库中的数据构造LDAP目录,并根据反垃圾邮件网关所需数据构建LDAP服务,反垃圾邮件网关直接通过LDAP服务查询LDAP目录即可。然而,该方法需要维护数据库中的数据与反垃圾邮件网关所需数据的一致性,数据维护成本较高。
现有的另一种方法是将反垃圾邮件网关发送的LDAP查询请求映射为SQL(Structured Query Language,结构化查询语言)语句后,通过SQL语句查询数据库。然而,由于将LDAP查询请求完全映射为SQL语句需要考虑到数据库结构(数据库以及数据库中的数据表的结构),也就是,建立LDAP查询请求到SQL语句的映射关系后,数据库结构受局限较大,不可随意更改,使得该方法不能很好地适用于已存在的一些其它结构的数据库。
综上所述,现有的实现反垃圾邮件网关与数据库进行数据交互的方法,也就是反垃圾邮件网关查询数据库的方法,或者数据维护成本较高,或者数据库结构受局限较大。
发明内容
针对上述现有技术存在的缺陷,本发明提供了一种反垃圾邮件网关查询数据库的方法和系统,使得数据维护成本较低,且数据库结构受局限较小。
根据本发明的一个方面,提供了一种反垃圾邮件网关查询数据库的方法,包括:
查询代理服务器接收到反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值;
所述查询代理服务器调用数据库服务器提供的与所述查询关键字参数对应的数据库访问应用程序接口API,并将所述查询关键字参数的参数值传入对应的数据库访问API中;所述数据库访问API根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并返回查询结果;
所述查询代理服务器根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,并将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
较佳地,所述数据库查询请求中的查询关键字参数为多个;以及
所述查询代理服务器调用数据库服务器提供的与所述查询关键字参数对应的数据库访问API,并将所述查询关键字参数的参数值传入对应的数据库访问API中,具体包括:
所述查询代理服务器对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中。
较佳地,所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
在所述解析出其中的查询关键字参数及其参数值后,还包括:
所述查询代理服务器根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;以及
所述根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果,具体包括:
所述查询代理服务器根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述数据库访问API返回的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果;以及
所述查找协议子集表中记录的所述查询关键字参数的响应信息,具体为:
所述查询代理服务器查找所述协议子集表中记录的所述主查询关键字参数的响应信息。
较佳地,所述数据库查询请求的查询结果具体包括:找到和未找到的查询结果;以及
所述查询关键字参数的响应信息具体包括:内容为找到的响应信息和内容为未找到的响应信息;以及
所述将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回,具体包括:
若所述数据库查询请求的查询结果为找到的查询结果,则将查找到的响应信息中内容为找到的响应信息向所述反垃圾邮件网关返回;
若所述数据库查询请求的查询结果为未找到的查询结果,则将查找到的响应信息中内容为未找到的响应信息向所述反垃圾邮件网关返回。
较佳地,所述接收到反垃圾邮件网关发送的数据库查询请求之前,还包括:
所述查询代理服务器接收到所述反垃圾邮件网关发送的连接请求,并解析出其中的连接关键字参数后,若确定本服务器运行正常,则建立与所述反垃圾邮件网关的连接,并确定出连接结果为成功;之后,查找出所述协议子集表中记录的所述连接关键字参数的响应信息,将其中与成功的连接结果相匹配的响应信息向所述反垃圾邮件网关返回。
其中,所述数据库访问API是以库形式提供的;或者,
所述数据库访问API是基于超文本传输协议HTTP或内存缓存Memcached协议提供的。
根据本发明的另一个方面,还提供了一种反垃圾邮件网关查询数据库的系统,包括:反垃圾邮件网关;其特征在于,还包括:查询代理服务器和数据库服务器;其中,
所述查询代理服务器用于接收到所述反垃圾邮件网关发送的数据库查询请求,解析出其中的查询关键字参数及其参数值后,调用所述数据库服务器提供的与所述查询关键字参数对应的数据库访问应用程序接口API,将所述查询关键字参数的参数值传入对应的数据库访问API中;并根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回;所述数据库访问API用于根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并向所述查询代理服务器返回查询结果。
较佳地,所述数据库查询请求中的查询关键字参数为多个,且所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
所述查询代理服务器具体用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值,并根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中;并根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述数据库访问API返回的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果后,查找所述协议子集表中记录的所述主查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
根据本发明的另一个方面,还提供了一种查询代理服务器,包括:
请求解析模块,用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值;
应用程序接口API调用模块,用于调用数据库服务器提供的与所述查询关键字参数对应的数据库访问API,并将所述查询关键字参数的参数值传入所述数据库访问API中;所述数据库访问API用于根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并返回查询结果;
请求响应模块,用于根据所述API调用模块接收到的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,并将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
较佳地,所述数据库查询请求中的查询关键字参数为多个,且所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
所述请求解析模块具体用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值,并根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;以及
所述API调用模块具体用于对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中;以及
所述请求响应模块具体用于根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述API调用模块接收到的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果后,查找所述协议子集表中记录的所述主查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
本发明的技术方案中,在查询代理服务器接收到反垃圾邮件网关的数据库查询请求后,根据数据库查询请求(即LDAP查询请求)中的查询关键字参数,调用数据库服务器提供的数据库访问API,通过数据库访问API来查询数据库服务器中的数据库。之后,查询代理服务器接收到数据库访问API返回的查询结果后,确定出数据库查询请求的查询结果,并根据预先存储的协议子集表来确定出向反垃圾邮件网关返回的响应信息。由此,基于数据库服务器提供的数据库访问API以及预先存储的协议子集表,本发明实现了反垃圾邮件网关对数据库的查询,实现方式灵活,无需构建LDAP目录,数据维护成本较低,且无需将LDAP查询请求转换为SQL语句,实现了LDAP查询与后端数据库的解耦,避免了数据库构建困难的问题,使得数据库结构受局限较小。
附图说明
图1为本发明实施例的反垃圾邮件网关查询数据库的系统的架构图;
图2为本发明实施例的建立反垃圾邮件网关与查询代理服务器之间的连接的方法的流程图;
图3为本发明实施例的反垃圾邮件网关查询数据库的方法的流程图;
图4为本发明实施例的断开反垃圾邮件网关与查询代理服务器之间的连接的方法的流程图;
图5为本发明实施例的查询代理服务器的内部结构框图。
具体实施方式
以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的发明人考虑到,可以基于数据库服务器(Data Server)以库形式或基于HTTP(Hypertext transfer protocol,超文本传输协议)、Memcached协议等提供的各类数据库访问API(Application Programming Interface,应用程序接口),预先提取反垃圾邮件网关发送的LDAP查询请求中的查询关键字参数,建立这些查询关键字参数与数据库服务器提供的数据库访问API的对应关系,这样,可通过调用数据库访问API对数据库进行查询;而且,还可以预先在协议子集表中存储LDAP查询请求中的查询关键字参数的响应信息与查询结果的关系。
基于此,本发明技术方案部署的查询代理服务器接收到反垃圾邮件网关的数据库查询请求(即LDAP查询请求)后,解析出其中的查询关键字参数,并调用与解析出的查询关键字参数对应的数据库访问API;这样,数据库访问API根据传入的查询关键字参数的参数值查询数据库,并返回查询结果;查询代理服务器根据数据库访问API返回的查询结果确定出数据库查询请求的查询结果,查找出协议子集表中相应的响应信息向反垃圾邮件网关返回,从而实现反垃圾邮件网关对数据库的查询,且这样无需考虑数据库的结构,也无需维护数据库的数据与反垃圾邮件网关所需数据的一致性,使得数据维护成本较低,且数据库结构受局限较小。
下面结合附图详细说明本发明的技术方案。本发明实施例提供的一种反垃圾邮件网关查询系统的架构图,如图1所示,包括:反垃圾邮件网关101、查询代理服务器102、数据库服务器103。
其中,反垃圾邮件网关101接收到电子邮件后,通过查询代理服务器102查询数据库服务器103中的数据库,确定接收到的电子邮件的收件人是否为本地用户;若是,则将接收的电子邮件发送到电子邮件系统104中;否则,对接收的电子邮件进行退信或删除操作。
事实上,反垃圾邮件网关101在查询数据库服务器103中的数据库之前,可以预先向查询代理服务器102发送连接请求,建立与查询代理服务器102的连接,具体方法的流程如图2所示,包括如下步骤:
S201:反垃圾邮件网关101向查询代理服务器102发送连接请求。
具体地,反垃圾邮件网关101向查询代理服务器102发送基于LDAP协议的连接请求。
S202:查询代理服务器102接收到连接请求后,解析出其中的连接关键字参数,并确定本服务器是否运行正常;若是,则执行步骤S203;否则,执行步骤S204。
具体地,查询代理服务器102接收到连接请求后,解析出其中的连接关键字参数;之后,检查本服务器的内存占用、CPU(中央处理器)占用、IO(Input/Output,输入/输出)占用、网络负载等服务器参数,根据针对各服务器参数预先设置的阈值确定本服务器是否运行正常。例如,若每个服务器参数的参数值均未超过为其设置的阈值,则查询代理服务器102确定本服务器运行正常;若其中一个服务器参数超过为其设置的阈值,则确定本服务器运行异常。
S203:查询代理服务器102建立与反垃圾邮件网关101的连接后,查找协议子集表中记录的连接关键字参数的响应信息,将查找到的响应信息中与成功的连接结果相匹配的响应信息向反垃圾邮件网关101返回。
具体地,若查询代理服务器102确定本服务器运行正常,则建立与反垃圾邮件网关101的连接,并确定连接结果为成功。之后,查询代理服务器102查找协议子集表(如表1)中记录的连接关键字参数(Bind)的响应信息,将查找到的响应信息中与成功的连接结果相匹配的响应信息,即内容为连接成功的响应信息Res1,向反垃圾邮件网关101返回。
表1
Figure BDA0000444431210000071
其中,协议子集表中的Res i(i∈{1,2,3,...,n},n为自然数)为各关键字的响应信息。
S204:查询代理服务器102查找协议子集表中记录的连接关键字参数的响应信息,将查找到的响应信息中与失败的连接结果相匹配的响应信息向反垃圾邮件网关101返回。
具体地,若查询代理服务器102确定本服务器运行异常,则确定连接结果为失败,并查询协议子集表中记录的连接关键字参数(Bind)的响应信息,将查找到的响应信息中与失败的连接结果相匹配的响应信息,即内容为连接失败的响应信息Res2,向反垃圾邮件网关101返回。
在建立反垃圾邮件网关101与查询代理服务器102之间的连接后,若反垃圾邮件网关101接收到电子邮件,则向查询代理服务器102发送数据库查询请求,以确定接收的电子邮件的收件人是否为本地用户。其中,数据库查询请求中可以携带一个或多个查询关键字参数。
具体地,本发明实施例提供的反垃圾邮件网关查询数据库的方法的流程,如图3所示,包括:
S301:查询代理服务器102接收到反垃圾邮件网关101发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值。
具体地,对于数据库查询请求中的查询关键字参数为一个的情况,查询代理服务器102接收到数据库查询请求后,从中解析出查询关键字参数及其参数值,例如,解析出的查询关键字参数为Domain,其参数值为Domainname1。
对于数据库查询请求中的查询关键字参数为多个的情况,查询代理服务器102还可根据预先定义的规则确定出各查询关键字参数中的主查询关键字参数。其中,预先定义的规则可由本领域技术人员根据业务需求来确定,例如,默认主查询关键字参数为用户域参数(Domain),或者随机选取各查询关键字参数中的一个为主查询关键字参数。
其中,查询关键字参数(Search)具体可以是Username(用户名)、Domain(用户域)、AliasDomain(别名域)、Mail(邮箱)、Tag(标签)、DefaultDomain(默认域),或Key m(关键字参数m)等。而且,协议子集表中的查询关键字参数可以根据实际情况进行扩展。
S302:查询代理服务器102调用数据库服务器103提供的与解析出的查询关键字参数对应的数据库访问API,并将解析出的查询关键字参数的参数值传入对应的数据库访问API中。
具体地,查询代理服务器102对于解析出的每个查询关键字参数,调用数据库服务器103提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中。数据库访问API根据传入的查询关键字参数的参数值查询数据库服务器103中的数据库,并向查询代理服务器102返回查询结果。其中,数据库访问API可以是数据库服务器103以库形式提供的,或者数据库访问API是基于HTTP或Memcached协议的。
例如,若查询代理服务器102解析出的查询关键字参数为Domain,则查询代理服务器102可调用与Domain对应的用户域访问API(如数据库服务器提供的C库中的API:get_domaininfo(domain,&domaininfo))。
S303:查询代理服务器102接收到数据库访问API返回的查询结果后,根据数据库访问API返回的查询结果确定出数据库查询请求的查询结果。
具体地,若数据库查询请求中的查询关键字参数为一个,数据库访问API返回的查询结果也就是该查询关键字参数的查询结果。这样,可根据该查询关键字参数的查询结果确定出数据库查询请求的查询结果,包括找到和未找到的查询结果。例如,查询关键字参数为Domain,其参数值为Domainname1,若数据库中没有记录Domainname1,则用户域访问API返回空记录,即该查询关键字参数Domain的查询结果为未找到,进而确定出数据库查询请求的查询结果为未找到;否则,用户域访问API返回记录有Domainname1的记录,即该查询关键字参数的查询结果为找到,进而确定出数据库查询请求的查询结果为找到。
若数据库查询请求中的查询关键字参数为多个,查询代理服务器102可以根据数据库查询请求中各查询关键字参数之间的逻辑关系,对数据库访问API返回的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为数据库查询请求的查询结果。例如,数据库查询请求中的查询关键字参数为Domain和AliasDomain,且Domain和AliasDomain的逻辑关系为:与(&),若数据库访问API返回的Domain的查询结果为找到,AliasDomain的查询结果也为找到,则确定数据库查询请求的查询结果为找到;否则,确定数据库查询请求的查询结果为未找到。
此外,若查询代理服务器102在设定时间段内未接收到数据库访问API返回的查询结果,则确认该查询关键字参数的查询结果为查询失败,进而确定出数据库查询请求的查询结果为查询失败。
S304:查询代理服务器102根据解析出的查询关键字参数,查找协议子集表中记录的该查询关键字参数的响应信息,并将查找到的响应信息中与确定出的数据库查询请求的查询结果相匹配的响应信息,向反垃圾邮件网关101返回。
例如,对于数据库查询请求中的查询关键字参数为一个,即Domain的情况,若确定出的数据库查询请求的查询结果为未找到,则查询代理服务器102查找到表1中记录的查询关键字参数Domain的响应信息,并将与未找到的查询结果相匹配的响应信息,即内容为未找到的响应信息Res9,向反垃圾邮件网关101返回。若确定出的数据库查询请求的查询结果为找到,则查找到表1中记录的查询关键字参数Domain的响应信息,并将与找到的查询结果相匹配的响应信息,即内容为找到的响应信息Res8,向反垃圾邮件网关101返回。此外,若确定出的数据库查询请求的查询结果为查询失败,则查找到表1中记录的查询关键字参数Domain的响应信息,并将与查询失败的查询结果相匹配的响应信息,即内容为查询失败的响应信息Res10,向反垃圾邮件网关101返回。
若数据库查询请求中的查询关键字参数为多个,比如,数据库查询请求中的查询关键字参数包括Domain和AliasDomain的情况,查询代理服务器102确定出的主查询关键字参数为Domian,则查询代理服务器102确定出数据库查询请求的查询结果后,查找到协议子集表中记录的主查询关键字参数(即Domain)的响应信息,并将查找到的响应信息中与数据库查询请求的查询结果相匹配的响应信息向反垃圾邮件网关101返回。
之后,在反垃圾邮件网关101查询数据库结束后,可通过向查询代理服务器102发送断开连接请求,断开与查询代理服务器102的连接,具体方法的流程,如图4所示,包括:
S401:反垃圾邮件网关101向查询代理服务器102发送断开连接请求。
具体地,反垃圾邮件网关101向查询代理服务器102发送基于LDAP协议的断开连接请求。
S402:查询代理服务器102接收到断开连接请求后,解析出其中的断开连接关键字参数,并确定反垃圾邮件网关101发送的数据库查询请求是否处理完毕;若是,则执行步骤S403;否则,执行步骤S404。
S403:查询代理服务器102断开与反垃圾邮件网关101的连接,查找协议子集表中记录的断开连接关键字参数的响应信息,将查找到的响应信息中与成功的断开连接结果相匹配的响应信息向反垃圾邮件网关101返回。
具体地,若查询代理服务器102确定反垃圾邮件网关101发送的数据库查询请求处理完毕,则断开与反垃圾邮件网关101的连接,并确定断开连接结果为成功。之后,查询代理服务器102查找协议子集表中记录的断开连接关键字参数(Unbind)的响应信息,将查找到的响应信息中与成功的断开连接结果相匹配的响应信息,即内容为断开连接成功的响应信息Res3,向反垃圾邮件网关101返回,并释放与相关资源。
S404:查询代理服务器102查找协议子集表中记录的断开连接关键字参数的响应信息,将查找到的响应信息中与失败的断开连接结果相匹配的响应信息向反垃圾邮件网关101返回。
具体地,若查询代理服务器102确定反垃圾邮件网关101发送的数据库查询请求未处理完毕,则确定断开连接结果为失败,并查询协议子集表中记录的断开连接关键字参数(Unind)的响应信息,将查找到的响应信息中与失败的断开连接结果相匹配的响应信息,即内容为断开连接失败的响应信息Res4,向反垃圾邮件网关101返回。
上述的查询代理服务器102的内部结构框图如图5所示,具体包括:请求解析模块501、API调用模块502和请求响应模块503。
请求解析模块501用于接收到反垃圾邮件网关101发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值。具体地,对于数据库查询请求中的查询关键字参数为多个的情况,请求解析模块501在解析出各查询关键字参数及其参数值后,解析出各查询关键字参数之间的逻辑关系,并根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数。
API调用模块502用于调用数据库服务器103提供的、与请求解析模块501解析出的查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入数据库访问API中;数据库访问API用于根据传入的查询关键字参数的参数值查询数据库服务器103中的数据库,并返回查询结果。具体地,API调用模块502对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中。
请求响应模块503用于根据API调用模块502接收的查询结果确定出数据库查询请求的查询结果后,查找到协议子集表中记录的、请求解析模块501解析出的查询关键字参数的响应信息,并将查找到的响应信息中与确定出的数据库查询请求的查询结果相匹配的响应信息向反垃圾邮件网关101返回。具体地,对于请求解析模块501解析出多个查询关键字参数的情况,请求响应模块503根据数据库查询请求中各查询关键字参数之间的逻辑关系,对API调用模块接收到的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为数据库查询请求的查询结果后,查找到协议子集表中记录的主查询关键字参数的响应信息,将查找到的响应信息中与数据库查询请求的查询结果相匹配的响应信息向反垃圾邮件网关101返回。
本发明的技术方案中,在查询代理服务器接收到反垃圾邮件网关的数据库查询请求后,根据数据库查询请求(即LDAP查询请求)中的查询关键字参数,调用数据库服务器提供的数据库访问API,通过数据库访问API来查询数据库服务器中的数据库。之后,查询代理服务器接收到数据库访问API返回的查询结果后,确定出数据库查询请求的查询结果,并根据预先存储的协议子集表来确定出向反垃圾邮件网关返回的响应信息。由此,基于数据库服务器提供的数据库访问API以及预先存储的协议子集表,本发明实现了反垃圾邮件网关对数据库的查询,实现方式灵活,无需构建LDAP目录,数据维护成本较低,且无需将LDAP查询请求转换为SQL语句,实现了LDAP查询与后端数据库的解耦,避免了数据库构建困难的问题,使得数据库结构受局限较小。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种反垃圾邮件网关查询数据库的方法,其特征在于,包括:
查询代理服务器接收到反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值;
所述查询代理服务器调用数据库服务器提供的与所述查询关键字参数对应的数据库访问应用程序接口API,并将所述查询关键字参数的参数值传入对应的数据库访问API中;所述数据库访问API根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并返回查询结果;
所述查询代理服务器根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,并将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
2.如权利要求1所述的方法,其特征在于,所述数据库查询请求中的查询关键字参数为多个;以及
所述查询代理服务器调用数据库服务器提供的与所述查询关键字参数对应的数据库访问API,并将所述查询关键字参数的参数值传入对应的数据库访问API中,具体包括:
所述查询代理服务器对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中。
3.如权利要求2所述的方法,其特征在于,所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
在所述解析出其中的查询关键字参数及其参数值后,还包括:
所述查询代理服务器根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;以及
所述根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果,具体包括:
所述查询代理服务器根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述数据库访问API返回的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果;以及
所述查找协议子集表中记录的所述查询关键字参数的响应信息,具体为:
所述查询代理服务器查找所述协议子集表中记录的所述主查询关键字参数的响应信息。
4.如权利要求1-3任一所述的方法,其特征在于,所述数据库查询请求的查询结果具体包括:找到和未找到的查询结果;以及
所述查询关键字参数的响应信息具体包括:内容为找到的响应信息和内容为未找到的响应信息;以及
所述将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回,具体包括:
若所述数据库查询请求的查询结果为找到的查询结果,则将查找到的响应信息中内容为找到的响应信息向所述反垃圾邮件网关返回;
若所述数据库查询请求的查询结果为未找到的查询结果,则将查找到的响应信息中内容为未找到的响应信息向所述反垃圾邮件网关返回。
5.如权利要求4所述的方法,其特征在于,所述接收到反垃圾邮件网关发送的数据库查询请求之前,还包括:
所述查询代理服务器接收到所述反垃圾邮件网关发送的连接请求,并解析出其中的连接关键字参数后,若确定本服务器运行正常,则建立与所述反垃圾邮件网关的连接,并确定出连接结果为成功;之后,查找出所述协议子集表中记录的所述连接关键字参数的响应信息,将其中与成功的连接结果相匹配的响应信息向所述反垃圾邮件网关返回。
6.如权利要求1-3任一所述的方法,其特征在于,所述数据库访问API是以库形式提供的;或者,
所述数据库访问API是基于超文本传输协议HTTP或内存缓存Memcached协议提供的。
7.一种反垃圾邮件网关查询数据库的系统,包括:反垃圾邮件网关;其特征在于,还包括:查询代理服务器和数据库服务器;其中,
所述查询代理服务器用于接收到所述反垃圾邮件网关发送的数据库查询请求,解析出其中的查询关键字参数及其参数值后,调用所述数据库服务器提供的与所述查询关键字参数对应的数据库访问应用程序接口API,将所述查询关键字参数的参数值传入对应的数据库访问API中;并根据所述数据库访问API返回的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回;所述数据库访问API用于根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并向所述查询代理服务器返回查询结果。
8.如权利要求7所述的系统,其特征在于,所述数据库查询请求中的查询关键字参数为多个,且所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
所述查询代理服务器具体用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值,并根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中;并根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述数据库访问API返回的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果后,查找所述协议子集表中记录的所述主查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
9.一种查询代理服务器,其特征在于,包括:
请求解析模块,用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值;
应用程序接口API调用模块,用于调用数据库服务器提供的与所述查询关键字参数对应的数据库访问API,并将所述查询关键字参数的参数值传入所述数据库访问API中;所述数据库访问API用于根据传入的查询关键字参数的参数值查询所述数据库服务器中的数据库,并返回查询结果;
请求响应模块,用于根据所述API调用模块接收到的查询结果确定出所述数据库查询请求的查询结果后,查找协议子集表中记录的所述查询关键字参数的响应信息,并将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
10.如权利要求9所述的服务器,其特征在于,所述数据库查询请求中的查询关键字参数为多个,且所述数据库查询请求中还包括各查询关键字参数之间的逻辑关系;以及
所述请求解析模块具体用于接收到所述反垃圾邮件网关发送的数据库查询请求后,解析出其中的查询关键字参数及其参数值,并根据预先定义的规则确定出解析出的各查询关键字参数中的主查询关键字参数;以及
所述API调用模块具体用于对于解析出的每个查询关键字参数,调用所述数据库服务器提供的与该查询关键字参数对应的数据库访问API,并将该查询关键字参数的参数值传入对应的数据库访问API中;以及
所述请求响应模块具体用于根据所述数据库查询请求中各查询关键字参数之间的逻辑关系,对所述API调用模块接收到的各查询关键字参数的查询结果进行逻辑运算,将运算后的结果确定为所述数据库查询请求的查询结果后,查找所述协议子集表中记录的所述主查询关键字参数的响应信息,将查找到的响应信息中与所述数据库查询请求的查询结果相匹配的响应信息向所述反垃圾邮件网关返回。
CN201310717887.1A 2013-12-23 2013-12-23 反垃圾邮件网关查询数据库的方法和系统 Pending CN103744888A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310717887.1A CN103744888A (zh) 2013-12-23 2013-12-23 反垃圾邮件网关查询数据库的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310717887.1A CN103744888A (zh) 2013-12-23 2013-12-23 反垃圾邮件网关查询数据库的方法和系统

Publications (1)

Publication Number Publication Date
CN103744888A true CN103744888A (zh) 2014-04-23

Family

ID=50501906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310717887.1A Pending CN103744888A (zh) 2013-12-23 2013-12-23 反垃圾邮件网关查询数据库的方法和系统

Country Status (1)

Country Link
CN (1) CN103744888A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145606A (zh) * 2017-06-09 2017-09-08 郑州云海信息技术有限公司 一种数据管理方法及装置
CN107566392A (zh) * 2017-09-22 2018-01-09 北京知道创宇信息技术有限公司 一种报错型sql注入的检测方法和代理服务器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356892B1 (en) * 1998-09-24 2002-03-12 International Business Machines Corporation Efficient implementation of lightweight directory access protocol (LDAP) search queries with structured query language (SQL)
CN1399748A (zh) * 1999-11-26 2003-02-26 计算机联合思想公司 操作数据库的方法和装置
CN1786950A (zh) * 2004-12-06 2006-06-14 国际商业机器公司 处理抽象查询的方法和系统
CN1940929A (zh) * 2005-09-26 2007-04-04 捷讯研究有限公司 Ldap到sql的数据库代理系统和方法
CN1953425A (zh) * 2006-11-09 2007-04-25 华为技术有限公司 一种邮件筛选方法、装置及系统
CN102073644A (zh) * 2009-11-19 2011-05-25 华为技术有限公司 一种查询数据库的方法、服务器及系统
CN102377690A (zh) * 2011-10-10 2012-03-14 网易(杭州)网络有限公司 反垃圾邮件网关系统及方法
US20120084313A1 (en) * 2010-09-30 2012-04-05 Bullhorn, Inc. Remote access to tracking system contact information

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356892B1 (en) * 1998-09-24 2002-03-12 International Business Machines Corporation Efficient implementation of lightweight directory access protocol (LDAP) search queries with structured query language (SQL)
CN1399748A (zh) * 1999-11-26 2003-02-26 计算机联合思想公司 操作数据库的方法和装置
CN1786950A (zh) * 2004-12-06 2006-06-14 国际商业机器公司 处理抽象查询的方法和系统
CN1940929A (zh) * 2005-09-26 2007-04-04 捷讯研究有限公司 Ldap到sql的数据库代理系统和方法
CN1953425A (zh) * 2006-11-09 2007-04-25 华为技术有限公司 一种邮件筛选方法、装置及系统
CN102073644A (zh) * 2009-11-19 2011-05-25 华为技术有限公司 一种查询数据库的方法、服务器及系统
US20120084313A1 (en) * 2010-09-30 2012-04-05 Bullhorn, Inc. Remote access to tracking system contact information
CN102377690A (zh) * 2011-10-10 2012-03-14 网易(杭州)网络有限公司 反垃圾邮件网关系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
戴少锋: "基于多层架构的邮件过滤系统研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
郑晟: "邮件网关过滤与监控系统研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145606A (zh) * 2017-06-09 2017-09-08 郑州云海信息技术有限公司 一种数据管理方法及装置
CN107566392A (zh) * 2017-09-22 2018-01-09 北京知道创宇信息技术有限公司 一种报错型sql注入的检测方法和代理服务器

Similar Documents

Publication Publication Date Title
CN101969468B (zh) 查询服务器集群系统及查询方法
CN104125208B (zh) 数据传输方法及装置
US8886750B1 (en) Alias resource record sets
US20080244718A1 (en) Systems and Methods for User Login
US9258377B2 (en) Publish information on website
CN103973461A (zh) 一种通知消息的推送方法及消息服务器
US20180324259A1 (en) Client connection method and system
JP2013522736A (ja) ユニバーサルリソースロケータを含むメッセージを提供するための方法およびシステム
CN102984287A (zh) 微博应用服务器及其微博平台中链接地址的分享方法
US20160323238A1 (en) Ip management method, client and server
CN111885216B (zh) Dns查询方法、装置、设备和存储介质
JP6213755B2 (ja) コンテンツ共有方法およびソーシャル同期装置
CN110049503B (zh) 一种获取数据的方法和设备
CN101925020A (zh) 一种电子邮箱地址与移动电话号码绑定应用的方法和系统
CN115080272A (zh) 一种业务数据处理方法、电子设备及存储介质
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
US20120303601A1 (en) Mobile search method and system thereof
CN113067803B (zh) 一种资源隔离系统、请求处理方法及请求处理装置
CN103744888A (zh) 反垃圾邮件网关查询数据库的方法和系统
US20090234858A1 (en) Use Of A Single Service Application Instance For Multiple Data Center Subscribers
CN104468862A (zh) 一种ip地址绑定的方法、装置及系统
JP2002368781A (ja) ユーザ位置管理ドメインネーム変換システム
CN101753561B (zh) 业务的集群处理方法及集群系统
CN103064899B (zh) 一种分发信息数据库系统
US20100332604A1 (en) Message selector-chaining

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140423

RJ01 Rejection of invention patent application after publication