CN104539581B - 信息搜索实现方法、装置和网络端设备 - Google Patents
信息搜索实现方法、装置和网络端设备 Download PDFInfo
- Publication number
- CN104539581B CN104539581B CN201410720667.9A CN201410720667A CN104539581B CN 104539581 B CN104539581 B CN 104539581B CN 201410720667 A CN201410720667 A CN 201410720667A CN 104539581 B CN104539581 B CN 104539581B
- Authority
- CN
- China
- Prior art keywords
- retrieval result
- word length
- socket
- module
- connection
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了信息搜索实现方法、装置和网络端设备,其中的方法包括:建立与认证系统之间的套接字连接;接收搜索引擎传输来的检索结果认证请求;将所述检索结果认证请求封装为通用网关接口数据包,并通过所述套接字连接向认证系统发送所述通用网关接口数据包;接收认证系统传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除所述检索结果认证响应的通用网关接口封装;向搜索引擎发送去除封装的检索结果认证响应。本发明提供的上述技术方案能够对检索结果进行实时认证,且尽可能的减小了检索结果实时认证过程对检索结果下发延时所产生的影响,有利于保证搜索引擎针对搜索引擎客户端而言具有较高的实时响应速度。
Description
技术领域
本发明涉及互联网技术领域,尤其是涉及一种信息搜索实现方法、装置和网络端设备。
背景技术
搜索引擎客户端是众多互联网用户经常使用的一项互联网工具。
利用搜索引擎客户端实现信息搜索的过程通常为:互联网用户在搜索引擎客户端的搜索框中输入搜索需求信息,搜索引擎(如搜索引擎的检索模块)在接收到搜索引擎客户端传输来的搜索需求信息后,根据一定的策略在互联网中进行信息检索,搜索引擎在对检索到的信息进行组织和处理后,向搜索引擎客户端下发检索结果。
发明人在实现本发明过程中发现,有鉴于为互联网用户提供更安全更准确更可靠的检索结果等因素,对搜索引擎的检索结果进行认证这一概念已经被提出。在信息搜索过程增加了检索结果认证的情况下,如何高效的实现检索结果认证,以尽量减小检索结果认证过程对检索结果下发延时的影响,是一个需要解决的问题。
发明内容
本发明解决的技术问题之一是有利于检索结果认证的实时快速实现,从而尽可能的减小检索结果实时认证过程对检索结果下发延时所产生的影响,以有利于搜索引擎针对搜索引擎客户端而言具有较高的实时响应速度。
根据本发明一方面的一个实施例,提供了一种信息搜索实现方法,该方法包括:
建立与认证系统之间的套接字连接;
接收搜索引擎传输来的检索结果认证请求;
将所述检索结果认证请求封装为通用网关接口数据包,并通过所述与认证系统之间的套接字连接向认证系统发送所述通用网关接口数据包;
接收认证系统通过所述套接字连接传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除所述检索结果认证响应的通用网关接口封装;
向搜索引擎发送去除封装的检索结果认证响应。
可选地,所述建立与认证系统之间的套接字连接包括:
建立与认证系统中的至少一个认证模块之间的套接字长连接。
可选地,所述建立与认证系统中的至少一个认证模块之间的套接字长连接包括:
从套接字长连接池中选择套接字长连接,并利用选择的套接字长连接建立与认证系统中的一个认证模块之间的套接字长连接。
其中所述从套接字长连接池中选择套接字长连接包括:
基于均衡选择算法从套接字长连接池中选择套接字长连接。
所述信息搜索实现方法还包括:
通过发送心跳报文的方式检测所述与认证系统中的至少一个认证模块之间的套接字长连接;
针对检测出的连接异常的套接字长连接,重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
所述接收搜索引擎传输来的检索结果认证请求包括:
通过与搜索引擎中的至少一个检索模块之间的套接字长连接接收检索模块传输来的检索结果认证请求;
且所述向搜索引擎发送去除封装的检索结果认证响应包括:
向所述检索结果认证请求对应的检索模块发送去除封装的检索结果认证响应。
其中所述接收搜索引擎传输来的检索结果认证请求包括:
根据负载均衡算法选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行所述将所述检索结果认证请求封装为通用网关接口数据包的操作。
所述检索结果认证请求中包含有针对搜索引擎客户端传输来的搜索需求信息进行检索而获得的至少一个检索结果的通用资源定位符URL。
所述检索结果认证请求为基于私有协议的二进制数据包。
根据本发明另一方面的一个实施例,提供了一种信息搜索实现装置,该装置包括:
连接管理模块,适于建立与认证系统之间的套接字连接;
网络通信模块,适于接收搜索引擎传输来的检索结果认证请求;
协议转换模块,适于将所述检索结果认证请求封装为通用网关接口数据包,并通过所述与认证系统之间的套接字连接向认证系统发送所述通用网关接口数据包,接收认证系统通过所述套接字连接传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除所述检索结果认证响应的通用网关接口封装;
所述网络通信模块还适于向搜索引擎发送去除封装的检索结果认证响应。
可选地,所述连接管理模块具体适于:
建立与认证系统中的至少一个认证模块之间的套接字长连接。
可选地,所述连接管理模块具体适于:
从套接字长连接池中选择套接字长连接,并利用选择的套接字长连接建立与认证系统中的一个认证模块之间的套接字长连接。
可选地,所述从套接字长连接池中选择套接字长连接包括:
所述连接管理模块基于均衡选择算法从套接字长连接池中选择套接字长连接。
本发明的信息搜索实现装置还包括:
心跳检查模块,适于通过发送心跳报文的方式检测所述与认证系统中的至少一个认证模块之间的套接字长连接;
针对检测出的连接异常的套接字长连接,所述连接管理模块重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
所述网络通信模块具体适于:
通过与搜索引擎中的至少一个检索模块之间的套接字长连接接收检索模块传输来的检索结果认证请求;
且所述网络通信模块还具体适于:
向所述检索结果认证请求对应的检索模块发送去除封装的检索结果认证响应。
所述网络通信模块具体适于:
根据负载均衡算法选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行所述将所述检索结果认证请求封装为通用网关接口数据包的操作。
其中所述检索结果认证请求中包含有针对搜索引擎客户端传输来的搜索需求信息进行检索而获得的至少一个检索结果的通用资源定位符URL。
可选地,所述检索结果认证请求为基于私有协议的二进制数据包。
根据本发明的另一方面的一个实施例,还提供了一种网络端设备,包括前述信息搜索实现装置。
由于本发明在接收到搜索引擎实时传输来的检索结果认证请求时,会将检索结果认证请求封装为通用网关接口数据包,并通过与认证系统之间的套接字连接向认证系统发送该通用网关接口数据包,使与认证系统异构的搜索引擎所产生的检索结果认证请求可以实时高效的传输给认证系统;本发明在接收到认证系统通过套接字连接传输来的被封装为通用网关接口数据包的检索结果认证响应时,通过去除该检索结果认证响应的通用网关接口封装,并向搜索引擎发送去除封装的检索结果认证响应,使与搜索引擎异构的认证系统所产生的检索结果认证响应可以实时高效的传输给搜索引擎;从而本发明提供的技术方案能够对检索结果进行实时认证,且尽可能的减小了检索结果实时认证过程对检索结果下发延时所产生的影响,有利于搜索引擎针对搜索引擎客户端而言具有较高的实时响应速度。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例以及附图进行,但本发明并不仅限于这些实施例。而是,本发明的范围是广泛的,且意在仅通过后附的权利要求限定本发明的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明一个实施例的信息搜索实现方法的流程图;
图2是根据本发明另一个实施例的信息搜索实现装置示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
实施例一、信息搜索实现方法。
图1是根据本发明实施例一的信息搜索实现方法的流程图。本实施例的方法主要通过网络端设备中的操作系统或处理控制器来完成。将操作系统或处理控制器称为信息搜索实现装置。该网络端设备包括但不限于以下中的至少一个:单台计算机、多台计算机组成的计算机组、单个网络服务器、多个网络服务器组成的服务器组以及基于云计算的由大量计算机或网络服务器构成的云;其中,云计算是分布式计算的一种,是由一群松散耦合的计算机集组成的一个超级虚拟计算机。
图1中,S100、建立与认证系统之间的套接字连接。
具体的,本实施例可以建立与认证系统之间的一条或者多条套接字连接。在认证系统包含有多个认证模块的情况下,本实施例中的与认证系统之间的套接字连接可以为与认证系统中的一个认证模块之间的套接字连接,也可以为与认证系统中的多个认证模块之间的套接字连接。
在实际应用中,本实施例中的与认证系统之间的套接字连接通常为与认证系统之间的套接字长连接,且在通常情况下,与认证系统之间存在多条套接字长连接,如针对认证系统中的多个认证模块,分别建立套接字长连接,从而使与认证系统之间存在多条套接字长连接。当然,本实施例中的与认证系统之间的套接字连接为与认证系统之间的套接字短连接也是可行的,只是在通常情况下,采用与认证系统之间的套接字长连接在向认证系统传输信息的效率等方面优于采用与认证系统之间的套接字短连接。
在下述描述中,以套接字长连接为例对本实施例进行说明,参考下述基于套接字长连接的技术方案的描述,可以相应获知基于套接字短连接的具体实现方案。
本实施例可以在采用套接字长连接池技术的基础上建立与认证系统之间的套接字长连接,例如,预先设置包含有多条套接字长连接的套接字长连接池,在需要建立与认证系统中的认证模块之间的套接字长连接的情况下,从套接字长连接池中选择一条套接字长连接,然后,利用选择的该条套接字长连接建立与认证系统中对应的认证模块之间的套接字长连接。
需要特别说明的是,本实施例中的一条套接字长连接只能对应一个认证模块,而一个认证模块通常对应一条套接字长连接,一个认证模块对应多条套接字长连接也是一种可行的技术方案。
本实施例预先设置于套接字长连接池中的套接字长连接的数量可以为认证系统所包含的认证模块的数量,当然,预先设置于套接字长连接池中的套接字长连接的数量也可以略大于或者略小于认证系统所包含的认证模块的数量。
本实施例中的套接字长连接所处的状态通常包括两种状态,一种状态为连接状态,另一种状态为非连接状态。位于套接字长连接池中的套接字长连接通常处于非连接状态,而在套接字长连接池中的套接字长连接被选择而用于建立与认证系统之间的套接字长连接的情况下,该套接字长连接由非连接状态转换为连接状态。在一个实际应用场景中,套接字长连接池中的所有套接字长连接由于被选择而均处于与认证系统的连接状态,此时套接字长连接池为空,也就是说,不能够再从套接字长连接池中选择一条套接字长连接来建立与认证系统之间的套接字长连接。在另一个实际应用场景中,套接字长连接池中的一部分套接字长连接由于被选择而处于与认证系统的连接状态,另一部分套接字长连接由于未被选择而处于与认证系统的非接连状态,套接字长连接池为非空,也就是说,还能够再从套接字长连接池中选择一条套接字长连接来建立与认证系统之间的套接字长连接。
本实施例在从套接字长连接池中选择套接字长连接以建立与认证系统之间的套接字长连接的过程中,可以采用预定策略进行套接字长连接的选择,例如,本实施例可以基于均衡选择算法从套接字长连接池中选择套接字长连接,以保证套接字长连接池中的所有套接字长连接都具有基本上均等的被选择的机会。当然,本实施例也可以采用其他选择算法从套接字长连接池中选择套接字长连接,例如,根据套接字长连接的优先级进行套接字长连接的选择,而该优先级可以与认证系统中的认证模块的处理性能以及套接字长连接的数据传输性能等相关。本实施例不限制从套接字长连接池中选择套接字长连接的具体实现方式。
较佳的,本实施例应对已成功建立的与认证系统之间的套接字长连接进行维护,以保证与认证系统之间的套接字长连接为畅通的数据传输通路。
本实施例可以采用心跳检测方式来对与认证系统之间的套接字长连接进行维护,即通过发送心跳报文的方式来检测与认证系统之间的套接字长连接是否出现连接异常,如根据预先设定的时间间隔定时的通过与认证系统之间的所有套接字长连接向各认证模块发送心跳报文,并等待各认证模块的响应信息,如果在预定时长内通过套接字长连接接收到认证模块的响应信息,则确定该套接字长连接处于连接正常状态,如果在预定时间内没有通过套接字长连接接收到认证模块的响应信息,则确定该套接字长连接处于连接异常状态。针对检测出的连接异常的套接字长连接,可以重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
本实施例可以采用与认证系统之间传输建立请求和建立响应的方式来建立与认证系统中的认证模块之间的套接字长连接,本实施例不限制为建立与认证系统中的认证模块之间的套接字长连接而传输的信息的具体表现形式。
在与认证系统之间的一条套接字长连接被释放时,该套接字长连接被回收至套接字长连接池中。本实施例可以根据预定策略来释放与认证系统之间的套接字长连接,例如,在检测到与认证系统之间的数据传输量低于预定值时,可以在保证与认证系统之间存在一定数量的套接字长连接的情况下,释放部分与认证系统之间的套接字长连接。
S110、接收搜索引擎传输来的检索结果认证请求。
具体的,本步骤虽然是位于S100之后描述的,但是,这并不表示本步骤必须在S100之后执行,在实际应用中,S100与S110之间并不存在执行先后顺序的限定,也就是说,S100可以在S110之前执行,S100也可以在S110之后执行,还有,S100和S110也可以同时执行。
本实施例可以通过与搜索引擎之间的套接字连接来接收搜索引擎传输来的检索结果认证请求。在搜索引擎包含有多个检索模块的情况下,本实施例可以与搜索引擎中的一个检索模块之间存在套接字连接,也可以与搜索引擎中的多个检索模块之间存在套接字连接(即与搜索引擎之间存在多条套接字连接)。
在实际应用中,本实施例中的与搜索引擎之间的套接字连接通常为与搜索引擎之间的套接字长连接,且在通常情况下,与搜索引擎之间存在多条套接字长连接,如针对搜索引擎中的多个检索模块,分别建立套接字长连接,从而使与搜索引擎之间存在多条套接字长连接。当然,本实施例中的与搜索引擎之间的套接字连接为与搜索引擎之间的套接字短连接也是可行的,只是在通常情况下,采用与搜索引擎之间的套接字长连接优于采用与搜索引擎之间的套接字短连接。
在本实施例中包含有多个协议转换模块的情况下,在接收到搜索引擎传输来的检索结果认证请求之后,可以根据预先设定的策略选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行后续的将检索结果认证请求封装为通用网关接口数据包的操作;例如,根据预定负载均衡算法选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行后续的将检索结果认证请求封装为通用网关接口数据包的操作,从而可以保证所有协议转换模块都具有基本上均等的执行封装操作的机会。当然,本实施例也可以采用其他选择算法选择协议转换模块,例如,根据协议转换模块的优先级进行协议转换模块的选择,而该优先级可以与协议转换模块的处理性能等因素相关。本实施例不限制选择协议转换模块的具体实现方式。
接收到的检索结果认证请求中应包含有需要认证的信息,例如,检索结果认证请求中包含有一个或多个URL(Uniform Resource Locator,通用资源定位符),认证系统可以对检索结果认证请求中承载的所有URL执行相应的认证操作。检索结果认证请求中携带的URL为搜索引擎在接收到搜索引擎客户端传输来的搜索需求信息后,针对该搜索需求信息进行检索而获得的部分或者所有检索结果的URL,通常情况下,一个URL对应一个检索结果。
由于搜索引擎中的检索模块通常采用私有协议(百度公司内部设备所采用的私有协议)进行信息通信,因此,本实施例中接收到的检索结果认证请求通常为基于私有协议的二进制数据包。这里的私有协议可以根据搜索引擎运营方的具体设定而有所不同,本实施例不限制私有协议的具体表现形式。
本实施例在接收到检索结果认证请求后,应记录该检索结果认证请求与发送该请求的检索模块之间的对应关系,以便于后续可以将针对该检索结果认证请求的检索结果认证响应返回给该检索模块。
S120、将接收到的检索结果认证请求封装为CGI(Common Gateway Interface,通用网关接口)数据包,并通过套接字连接向认证系统发送该CGI数据包。
具体的,本实施例中的CGI数据包是指基于PHP(Hypertext Preprocessor,超文本预处理器)的CGI数据包。本实施例在将接收到的检索结果认证请求封装为CGI数据包的过程中,并不关注检索结果认证请求的消息体中所承载的信息的具体内容,而只是对检索结果认证请求进行CGI协议封装处理,例如,为检索结果认证请求增加CGI协议头,检索结果认证请求则承载于CGI协议体中。
CGI协议头通常会包含数据包目的地址(即认证模块的地址)以及CGI协议头大小等信息,本实施例不限制CGI协议头所包含的具体内容。
本步骤的协议转换操作可以由协议转换模块来执行,在本实施例中存在多个协议转换模块的情况下,搜索引擎传输来的检索结果认证请求会基于预先设定的策略而被调度到相应的协议转换模块处,每个协议转换模块只对其接收到的检索结果认证请求执行CGI封装操作即可。
S130、接收认证系统通传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除检索结果认证响应的通用网关接口封装。
具体的,认证系统中的认证模块在针对其接收到的检索结果认证请求执行相应的认证操作后,会产生检索结果认证响应,该检索结果认证相应通常为基于私有协议的二进制数据包,该检索结果认证响应被封装为CGI数据包(即基于PHP的CGI数据包)的形式,之后,该CGI数据包通过与协议转换模块之间的套接字长连接返回至发送该检索结果认证响应对应的检索结果认证请求的协议转换模块;例如,认证系统中的认证模块在接收到CGI数据包后,去除该CGI数据包的封装,以获取检索结果认证请求,由于认证系统与搜索引擎通常属于同一运营方,因此,认证模块可以对采用私有协议的检索结果认证请求进行有效的识别,认证模块针对检索结果认证请求中承载的所有URL进行认证,并产生相应的认证结果信息,认证模块基于该认证结果信息产生检索结果认证响应,该检索结果认证响应为基于私有协议的二进制数据包;之后,将检索结果认证响应封装为CGI数据包,之后,认证模块通过与协议转换模块之间的套接字长连接向协议转换模块返回该CGI数据包。
协议转换模块在接收到认证模块传输来的被封装为CGI数据包的检索结果认证响应后,执行解封装处理操作,以得到去除CGI封装后的检索结果认证响应;之后,协议转换模块可以对该检索结果认证响应进行重打包处理,如协议转换模块根据前述记录的检索结果认证请求与发送该请求的检索模块之间的对应关系修改检索结果认证响应中的目的地址等。
S140、向搜索引擎发送去除封装的检索结果认证响应。
具体的,在发送去除CGI封装的检索结果认证响应(如重新打包的检索结果认证响应)时,应从检索结果认证响应中获取目的地址,以便于可以向搜索引擎中的相应的检索模块发送该检索结果认证响应。
本实施例提供的技术方案起到了基于SOCKET(套接字)长连接的PHPCGI协议代理的作用,使异构的搜索引擎和认证系统可以方便快捷的进行数据交互,从而实现了异构的搜索引擎与认证系统之间的检索结果认证请求和检索结果认证响应的高效传输。
实施例二、信息搜索实现装置,该装置也可以称为认证系统客户端。该装置的结构如图2所示。
图2中,信息搜索实现装置主要包括:连接管理模块200、网络通信模块210以及协议转换模块220,且该装置还可以包括:心跳检查模块230。
连接管理模块200主要用于建立与认证系统之间的套接字连接。
具体的,连接管理模块200可以建立本装置与认证系统之间的一条或者多条套接字连接。在认证系统包含有多个认证模块的情况下,连接管理模块200建立的本装置与认证系统之间的套接字连接可以为本装置与认证系统中的一个认证模块之间的套接字连接,也可以为本装置与认证系统中的多个认证模块之间的套接字连接。
在实际应用中,连接管理模块200建立的本装置与认证系统之间的套接字连接通常为本装置与认证系统之间的套接字长连接,且在通常情况下,本装置与认证系统之间存在多条套接字长连接,如针对认证系统中的多个认证模块,连接管理模块200分别建立套接字长连接,从而使本装置与认证系统之间存在多条套接字长连接。当然,连接管理模块200建立的本装置与认证系统之间的套接字连接为本装置与认证系统之间的套接字短连接也是可行的。
在下述描述中,以套接字长连接为例对本实施例进行说明,参考下述基于套接字长连接的技术方案的描述,可以相应获知基于套接字短连接的具体实现方案。
连接管理模块200可以在采用套接字长连接池技术的基础上建立本装置与认证系统之间的套接字长连接,例如,连接管理模块200中预先设置有包含多条套接字长连接的套接字长连接池,在需要建立与认证系统中的认证模块之间的套接字长连接的情况下,连接管理模块200从套接字长连接池中选择一条套接字长连接,然后,连接管理模块200利用选择的该条套接字长连接建立本装置与认证系统中对应的认证模块之间的套接字长连接。
连接管理模块200中预先设置于套接字长连接池中的套接字长连接的数量可以为认证系统所包含的认证模块的数量,当然,预先设置于套接字长连接池中的套接字长连接的数量也可以略大于或者略小于认证系统所包含的认证模块的数量。
连接管理模块200在从套接字长连接池中选择套接字长连接以建立本装置与认证系统之间的套接字长连接的过程中,可以采用预定策略进行套接字长连接的选择,例如,连接管理模块200可以基于均衡选择算法从套接字长连接池中选择套接字长连接,以保证套接字长连接池中的所有套接字长连接都具有基本上均等的被选择的机会。当然,连接管理模块200也可以采用其他选择算法从套接字长连接池中选择套接字长连接,例如,连接管理模块200根据套接字长连接的优先级进行套接字长连接的选择,而该优先级可以与认证系统中的认证模块的处理性能以及套接字长连接的数据传输性能等相关。本实施例不限制连接管理模块200从套接字长连接池中选择套接字长连接的具体实现方式。
连接管理模块200可以采用与认证系统之间传输建立请求和建立响应的方式来建立本装置与认证系统中的认证模块之间的套接字长连接,本实施例不限制连接管理模块200为建立本装置与认证系统中的认证模块之间的套接字长连接而传输的信息的具体表现形式。
在本装置与认证系统之间的一条套接字长连接被释放时,连接管理模块200将该套接字长连接回收至套接字长连接池中。连接管理模块200可以根据预定策略来释放本装置与认证系统之间的套接字长连接,例如,连接管理模块200在检测到本装置与认证系统之间的数据传输量低于预定值时,可以在保证与认证系统之间存在一定数量的套接字长连接的情况下,释放部分与认证系统之间的套接字长连接。
网络通信模块210主要用于接收搜索引擎传输来的检索结果认证请求,网络通信模块220还主要用于向搜索引擎发送去除封装的检索结果认证响应。
具体的,网络通信模块210可以通过与搜索引擎之间的套接字连接来接收搜索引擎传输来的检索结果认证请求。在搜索引擎包含有多个检索模块的情况下,本装置可以与搜索引擎中的一个检索模块之间存在套接字连接,也可以与搜索引擎中的多个检索模块之间存在套接字连接(即本装置与搜索引擎之间存在多条套接字连接)。本装置与搜索引擎中的检索模块之间的套接字连接可以由搜索引擎建立。
在实际应用中,本装置与搜索引擎之间的套接字连接通常为与搜索引擎之间的套接字长连接,且在通常情况下,本装置与搜索引擎之间存在多条套接字长连接,如针对搜索引擎中的多个检索模块,分别建立有套接字长连接,从而使本装置与搜索引擎之间存在多条套接字长连接。当然,本装置与搜索引擎之间的套接字连接为与搜索引擎之间的套接字短连接也是可行的,只是在通常情况下,采用本装置与搜索引擎之间的套接字长连接优于采用本装置与搜索引擎之间的套接字短连接。
在本装置中包含有多个协议转换模块220的情况下,网络通信模块210在接收到搜索引擎传输来的检索结果认证请求之后,可以根据预先设定的策略选择一个协议转换模块220,网络通信模块210将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块220,以由该选择的协议转换模块220执行后续的将检索结果认证请求封装为通用网关接口数据包的操作;例如,网络通信模块210根据预定负载均衡算法选择一个协议转换模块220,网络通信模块210将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块220,以由该选择的协议转换模块220执行后续的将检索结果认证请求封装为通用网关接口数据包的操作,从而可以保证所有协议转换模块220都具有基本上均等的执行封装操作的机会。当然,网络通信模块210也可以采用其他选择算法选择协议转换模块220,例如,网络通信模块210根据协议转换模块220的优先级进行协议转换模块220的选择,而该优先级可以与协议转换模块220的处理性能等因素相关。本实施例不限制网络通信模块210选择协议转换模块220的具体实现方式。
网络通信模块210接收到的检索结果认证请求中应包含有需要认证的信息,例如,检索结果认证请求中包含有一个或多个URL,认证系统可以对检索结果认证请求中承载的所有URL执行相应的认证操作。检索结果认证请求中携带的URL为搜索引擎在接收到搜索引擎客户端传输来的搜索需求信息后,针对该搜索需求信息进行检索而获得的部分或者所有检索结果的URL,通常情况下,一个URL对应一个检索结果。
网络通信模块210接收到的检索结果认证请求通常为基于私有协议的二进制数据包。这里的私有协议可以根据搜索引擎运营方的具体设定而有所不同,本实施例不限制私有协议的具体表现形式。
网络通信模块210在接收到检索结果认证请求后,应记录该检索结果认证请求与发送该请求的检索模块之间的对应关系,以便于后续网络通信模块210可以将针对该检索结果认证请求的检索结果认证响应返回给该检索模块。
协议转换模块220主要用于将网络通信模块210接收到的检索结果认证请求封装为CGI数据包,并通过与认证系统之间的套接字连接向认证系统发送该CGI数据包;协议转换模块220还主要用于接收认证系统通过套接字连接传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除检索结果认证响应的通用网关接口封装。该去除封装的检索结果认证响应由网络通信模块210传输给搜索引擎。
具体的,协议转换模块220在将网络通信模块210接收到的检索结果认证请求封装为CGI数据包的过程中,并不关注检索结果认证请求的消息体中所承载的信息的具体内容,而只是对检索结果认证请求进行CGI协议封装处理,例如,协议转换模块220为检索结果认证请求增加CGI协议头,协议转换模块220将检索结果认证请求承载于CGI协议体中。
CGI协议头通常会包含数据包目的地址(即认证模块的地址)以及CGI协议头大小等信息,本实施例不限制CGI协议头所包含的具体内容。
认证系统中的认证模块在针对其接收到的检索结果认证请求执行相应的认证操作后,会产生检索结果认证响应,该检索结果认证响应被封装为CGI数据包的形式,该CGI数据包通过与协议转换模块220之间的套接字长连接返回至协议转换模块220;例如,认证系统中的认证模块在接收到CGI数据包后,去除该CGI数据包的CGI封装,以获取检索结果认证请求,由于认证系统与搜索引擎通常属于同一运营方,因此,认证模块可以对采用私有协议的检索结果认证请求进行有效的识别,认证模块针对检索结果认证请求中承载的所有URL进行认证,并产生相应的认证结果信息,认证模块基于该认证结果信息产生检索结果认证响应,该检索结果认证响应为基于私有协议的二进制数据包;认证模块将检索结果认证响应封装为CGI数据包,之后,认证模块通过与协议转换模块220之间的套接字长连接向协议转换模块返回该CGI数据包。
协议转换模块220在接收到认证模块传输来的被封装为CGI数据包的检索结果认证响应后,执行解封装处理操作,以得到去除CGI封装后的检索结果认证响应。协议转换模块220对该检索结果认证响应进行重打包处理,如协议转换模块220根据网络通信模块210记录的检索结果认证请求与发送该请求的检索模块之间的对应关系修改检索结果认证响应中的目的地址等。
网络通信模块210在发送协议转换模块220重打包的检索结果认证响应时,应从重打包的检索结果认证响应中获取目的地址,以便于可以向搜索引擎中的相应的检索模块发送该检索结果认证响应。
心跳检查模块230主要用于通过发送心跳报文的方式检测与认证系统中的至少一个认证模块之间的套接字长连接是否存在连接异常,针对心跳检查模块230检测出的连接异常的套接字长连接,连接管理模块200应重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。通过心跳检查模块230对已成功建立的与认证系统之间的套接字长连接进行维护,可以保证本装置与认证系统之间的套接字长连接为畅通的数据传输通路。
具体的,心跳检查模块230通过发送心跳报文的方式来检测本装置与认证系统之间的套接字长连接是否出现连接异常,如心跳检查模块230根据预先设定的时间间隔定时的通过与认证系统之间的所有套接字长连接向各认证模块发送心跳报文,并等待各认证模块的响应信息,如果在预定时长内通过套接字长连接接收到认证模块的响应信息,则心跳检查模块230确定该套接字长连接处于连接正常状态,如果在预定时间内没有通过套接字长连接接收到认证模块的响应信息,则心跳检查模块230确定该套接字长连接处于连接异常状态。心跳检查模块230可以将检测出的连接异常的套接字长连接的相关信息提供给连接管理模块200,以使连接管理模块200可以重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
本实施例的装置起到了基于SOCKET长连接的PHPCGI协议代理的作用,使异构的搜索引擎和认证系统可以方便快捷的进行数据交互,从而实现了异构的搜索引擎与认证系统之间的检索结果认证请求和检索结果认证响应的高效传输。
实施例三、网络端设备。
该网络端设备可以为单台计算机、多台计算机组成的计算机组、单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量计算机/网络服务器构成的云。本实施例的网络端设备包括上述实施例二中描述的信息搜索实现装置,在此不再详细说明。
所属技术领域的技术人员知道,本发明可以实现为设备、装置、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件,也可以是完全的软件,还可以是硬件和软件结合的形式。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (17)
1.一种信息搜索实现方法,包括:
建立与认证系统之间的套接字连接;
接收搜索引擎传输来的检索结果认证请求,包括:根据负载均衡算法选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行将所述检索结果认证请求封装为通用网关接口数据包的操作;
将所述检索结果认证请求封装为通用网关接口数据包,并通过所述套接字连接向认证系统发送所述通用网关接口数据包;
接收认证系统传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除所述检索结果认证响应的通用网关接口封装;
向搜索引擎发送去除封装的检索结果认证响应。
2.根据权利要求1所述的方法,其中所述建立与认证系统之间的套接字连接包括:
建立与认证系统中的至少一个认证模块之间的套接字长连接。
3.根据权利要求2所述的方法,其中所述建立与认证系统中的至少一个认证模块之间的套接字长连接包括:
从套接字长连接池中选择套接字长连接,并利用选择的套接字长连接建立与认证系统中的一个认证模块之间的套接字长连接。
4.根据权利要求3所述的方法,其中所述从套接字长连接池中选择套接字长连接包括:
基于均衡选择算法从套接字长连接池中选择套接字长连接。
5.根据权利要求2或3或4所述的方法,其中所述方法还包括:
通过发送心跳报文的方式检测所述与认证系统中的至少一个认证模块之间的套接字长连接;
针对检测出的连接异常的套接字长连接,重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
6.根据权利要求1所述的方法,其中所述接收搜索引擎传输来的检索结果认证请求包括:
通过与搜索引擎中的至少一个检索模块之间的套接字长连接接收检索模块传输来的检索结果认证请求;
且所述向搜索引擎发送去除封装的检索结果认证响应包括:
向所述检索结果认证请求对应的检索模块发送去除封装的检索结果认证响应。
7.根据权利要求1所述的方法,其中所述检索结果认证请求中包含有针对搜索引擎客户端传输来的搜索需求信息进行检索而获得的至少一个检索结果的通用资源定位符URL。
8.根据权利要求1所述的方法,其中所述检索结果认证请求为基于私有协议的二进制数据包。
9.一种信息搜索实现装置,包括:
连接管理模块,适于建立与认证系统之间的套接字连接;
网络通信模块,适于接收搜索引擎传输来的检索结果认证请求,具体适于:根据负载均衡算法选择一个协议转换模块,将接收到的搜索引擎传输来的检索结果认证请求提供给该选择的协议转换模块,以由该选择的协议转换模块执行将所述检索结果认证请求封装为通用网关接口数据包的操作;
协议转换模块,适于将所述检索结果认证请求封装为通用网关接口数据包,并通过所述套接字连接向认证系统发送所述通用网关接口数据包,接收认证系统传输来的被封装为通用网关接口数据包的检索结果认证响应,并去除所述检索结果认证响应的通用网关接口封装;
所述网络通信模块还适于向搜索引擎发送去除封装的检索结果认证响应。
10.根据权利要求9所述的装置,其中所述连接管理模块具体适于:
建立与认证系统中的至少一个认证模块之间的套接字长连接。
11.根据权利要求10所述的装置,其中所述连接管理模块具体适于:
从套接字长连接池中选择套接字长连接,并利用选择的套接字长连接建立与认证系统中的一个认证模块之间的套接字长连接。
12.根据权利要求11所述的装置,其中所述从套接字长连接池中选择套接字长连接包括:
所述连接管理模块基于均衡选择算法从套接字长连接池中选择套接字长连接。
13.根据权利要求10或11或12所述的装置,其中所述装置还包括:
心跳检查模块,适于通过发送心跳报文的方式检测所述与认证系统中的至少一个认证模块之间的套接字长连接;
针对检测出的连接异常的套接字长连接,所述连接管理模块重新建立与连接异常的套接字长连接所对应的认证模块之间的套接字长连接。
14.根据权利要求9所述的装置,其中所述网络通信模块具体适于:
通过与搜索引擎中的至少一个检索模块之间的套接字长连接接收检索模块传输来的检索结果认证请求;
且所述网络通信模块还具体适于:
向所述检索结果认证请求对应的检索模块发送去除封装的检索结果认证响应。
15.根据权利要求9所述的装置,其中所述检索结果认证请求中包含有针对搜索引擎客户端传输来的搜索需求信息进行检索而获得的至少一个检索结果的通用资源定位符URL。
16.根据权利要求9所述的装置,其中所述检索结果认证请求为基于私有协议的二进制数据包。
17.一种网络端设备,包括根据权利要求9-16中任一个信息搜索实现装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720667.9A CN104539581B (zh) | 2014-12-01 | 2014-12-01 | 信息搜索实现方法、装置和网络端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720667.9A CN104539581B (zh) | 2014-12-01 | 2014-12-01 | 信息搜索实现方法、装置和网络端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104539581A CN104539581A (zh) | 2015-04-22 |
CN104539581B true CN104539581B (zh) | 2017-12-26 |
Family
ID=52855050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720667.9A Active CN104539581B (zh) | 2014-12-01 | 2014-12-01 | 信息搜索实现方法、装置和网络端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104539581B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105610888A (zh) * | 2015-09-08 | 2016-05-25 | 华南师范大学 | 基于安卓的利用socket推送消息的方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043522A (zh) * | 2006-03-22 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种基于Web服务器的通信方法及系统 |
CN101593211A (zh) * | 2008-05-30 | 2009-12-02 | 富士通株式会社 | 网页数据提供系统、网页数据提供方法和计算机可读介质 |
CN102917049A (zh) * | 2012-10-17 | 2013-02-06 | 北京奇虎科技有限公司 | 呈现访问网站的信息的方法、浏览器和系统 |
CN103412940A (zh) * | 2013-08-22 | 2013-11-27 | 清华大学 | 检测欺诈电话的方法 |
CN103425696A (zh) * | 2012-05-24 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 网络搜索行为识别方法及其系统 |
CN103607405A (zh) * | 2013-11-27 | 2014-02-26 | 东北大学 | 一种面向云存储的密文搜索认证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004287802A (ja) * | 2003-03-20 | 2004-10-14 | Fujitsu Ltd | 横断検索方法及び横断検索プログラム |
-
2014
- 2014-12-01 CN CN201410720667.9A patent/CN104539581B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043522A (zh) * | 2006-03-22 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种基于Web服务器的通信方法及系统 |
CN101593211A (zh) * | 2008-05-30 | 2009-12-02 | 富士通株式会社 | 网页数据提供系统、网页数据提供方法和计算机可读介质 |
CN103425696A (zh) * | 2012-05-24 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 网络搜索行为识别方法及其系统 |
CN102917049A (zh) * | 2012-10-17 | 2013-02-06 | 北京奇虎科技有限公司 | 呈现访问网站的信息的方法、浏览器和系统 |
CN103412940A (zh) * | 2013-08-22 | 2013-11-27 | 清华大学 | 检测欺诈电话的方法 |
CN103607405A (zh) * | 2013-11-27 | 2014-02-26 | 东北大学 | 一种面向云存储的密文搜索认证方法 |
Non-Patent Citations (1)
Title |
---|
可扩展桌面搜索系统的设计与实现;张剑明;《中国优秀硕士学位论文全文数据库》;20121015(第10期);第I138-3180页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104539581A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107347205B (zh) | 一种网络切片选择方法、装置及系统 | |
US9031692B2 (en) | Cloud robot system and method of integrating the same | |
CN105162626B (zh) | 基于众核处理器的网络流量深度识别系统及识别方法 | |
CN103067218B (zh) | 一种高速网络数据包内容分析装置 | |
CN109271793A (zh) | 物联网云平台设备类别识别方法及系统 | |
CN109561054A (zh) | 一种数据传输方法、控制器及接入设备 | |
CN109818997A (zh) | 一种负载均衡方法、系统及存储介质 | |
CN108289125A (zh) | 基于流式处理的tcp会话重组与统计数据提取方法 | |
CN106101264A (zh) | 内容分发网络日志推送方法、装置和系统 | |
CN107241305A (zh) | 一种基于多核处理器的网络协议分析系统及其分析方法 | |
CN105308904A (zh) | 一种oam报文处理方法、网络设备和网络系统 | |
JP2010218185A (ja) | システム分析方法、装置及びプログラム | |
CN103595712B (zh) | 一种Web认证方法、装置及系统 | |
CN107332857A (zh) | 一种网络数据传输方法、装置、系统和存储介质 | |
CN106292518A (zh) | 远程plc监控和调试系统及方法 | |
CN105321121A (zh) | 基于电力云平台的用电信息采集系统 | |
CN104539581B (zh) | 信息搜索实现方法、装置和网络端设备 | |
CN107979627A (zh) | 一种网络请求的处理方法及装置 | |
CN109451095A (zh) | 遥控器的检测方法及装置、存储介质、终端 | |
CN106506265B (zh) | 检测fpga芯片挂死的方法及装置 | |
CN103580951B (zh) | 多个信息系统的输出比较方法、测试迁移辅助方法及系统 | |
TW201312369A (zh) | 網頁內容過濾方法以及具網頁內容過濾功能之網路設備 | |
CN208999999U (zh) | 数据处理装置 | |
CN106656656A (zh) | 一种网络设备抓包方法及装置 | |
CN108460044A (zh) | 数据的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |