集成企业搜索系统与自定义访问控制应用程序编程接口转让专利

申请号 : CN200880001938.8

文献号 : CN101583952B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·C·卡帕迪亚J·S·伯克

申请人 : 微软公司

摘要 :

此处提供了用于集成企业搜索系统与专用后端内容存储访问控制API的方法和计算机可读介质。利用声明性元数据模型来创建并存储定义后端内容存储所展示的、用于检索其中所存储的文档的访问权限的自定义API的数据。还展示了用于获得对文档的访问权限的规范化API。在对规范化API进行调用时,所存储的数据被用来将该对规范化API的调用变换成对自定义API的调用。

权利要求 :

1.一种用于集成企业搜索与自定义文档访问控制应用程序编程接口API的方法,所述方法包括:存储(202)定义用于获得文档的一个或多个访问权限的自定义API的数据,定义所述自定义API的数据包括标识所述自定义API所展示的方法的一个或多个参数的数据和指示所述参数的每一个是输入参数还是输出参数的数据、所述参数的默认值,以及将所述参数的一个标识为对应于对其请求访问权限的文档的标识符的数据;

展示用于获得文档的访问权限的规范化API;

接收(304)对所述规范化API所展示的、请求指定文档的访问权限的方法的调用,其中所述规范化API所展示的方法接收标识对其请求访问权限的文档的参数;

响应于接收到对所述规范化API所展示的方法的调用,将对所述规范化API所展示的方法的调用变换成(310)对所述自定义API所展示的、用于获得所述指定文档的访问权限的方法的调用,包括:使用所述参数的默认值来实例化对所述自定义API所展示的方法的调用;

用随对所述规范化API的调用接收的标识对其请求访问权限的文档的参数来替换对应于对其请求访问权限的文档的标识符的参数的默认值;以及执行对所述自定义API所展示的方法的调用;

响应于对所述自定义API所展示的方法的调用来接收(314)所述访问权限;以及响应于对所述规范化API所展示的方法的调用来返回(316)所请求的访问权限。

2.如权利要求1所述的方法,其特征在于,定义所述自定义API的数据还包括将所述参数中的一个标识为对应于一系统提供的值的数据,并且其中所述规范化API所展示的方法接收标识当前用户的参数。

3.如权利要求2所述的方法,其特征在于,将对所述规范化API所展示的方法的调用变换成对所述自定义API所展示的、用于所述指定文档的访问权限的方法的调用还包括:用标识当前用户的参数替换所述对应于系统提供的值的参数的默认值。

4.如权利要求1所述的方法,其特征在于,对所述规范化API所展示的方法的调用是由搜索爬行器程序生成的。

5.如权利要求1所述的方法,其特征在于,对所述规范化API所展示的方法的调用是由搜索查询处理器生成的。

6.一种用于集成企业搜索与自定义文档访问控制应用程序编程接口API的方法,所述方法包括:展示用于获得文档的一个或多个访问权限的规范化应用程序编程接口API;

接收(302)对所述规范化API所展示的、用于检索文档的访问权限的方法的调用,所述调用包括文档的文档标识符和用户标识符;

响应于对所述规范化API所展示的方法的调用,构造(310)对自定义API所展示的、用于获得文档的访问权限的方法的调用,所述调用是使用所存储的定义所述自定义API所展示的方法的一个或多个参数的数据、所述文档标识符和所述用户标识符来构造的;

执行(312)对所述自定义API所展示的方法的调用;

响应于对所述自定义API所展示的方法的调用来接收(316)所述文档的访问权限;以及响应于对所述规范化API所展示的方法的调用来返回(318)所述文档的访问权限。

7.如权利要求6所述的方法,其特征在于,定义所述自定义API所展示的方法的一个或多个参数的数据还包括所述一个或多个参数的默认值。

8.如权利要求7所述的方法,其特征在于,定义所述自定义API所展示的方法的一个或多个参数的数据还包括将所述参数中的一个标识为对应于所述文档标识符的数据和将所述参数中的一个标识为对应于所述用户标识符的数据。

9.如权利要求8所述的方法,其特征在于,所述规范化API所展示的方法包括用于检索多个文档的访问权限的方法,其中所述自定义API所展示的方法包括用于检索单个文档的访问权限的方法,并且所述方法还包括构造对于对所述规范化API所展示的方法的调用中所标识的所述多个文档的每一个的、对所述自定义API所展示的方法的分开调用。

10.如权利要求8所述的方法,其特征在于,对所述规范化API所展示的方法的调用是从搜索爬行器程序接收到的。

11.如权利要求8所述的方法,其特征在于,对所述规范化API所展示的方法的调用是从搜索查询处理器接收到的。

12.一种用于集成企业搜索与自定义文档访问控制应用程序编程接口API的方法,所述方法包括:存储(202)定义自定义文档访问控制API所展示的一个或多个方法的数据,所述数据包括所述方法使用的一个或多个参数的默认值、标识对应于文档标识符的参数的数据和标识对应于用户标识符的参数的数据;

展示用于获得文档的一个或多个访问权限的规范化API,所述访问权限被存储在后端计算系统(112)中并且使用所述自定义文档访问控制API所展示的方法中的一个来访问;

接收(302)对所述规范化API所展示的方法的调用,所述调用包括对应于应获得其访问权限的文档的文档标识符和当前用户的用户标识符;

响应于对所述规范化API所展示的方法的调用,使用所述默认值、所述文档标识符和所述用户标识符来将对所述规范化API所展示的方法的调用转换成(310)对所述自定义文档访问控制API所展示的方法的调用;

响应于对所述自定义文档访问控制API所展示的方法的调用,接收(316)所述文档的一个或多个的访问权限;以及响应于对所述规范化API所展示的方法的调用来返回(318)所述文档的访问权限。

13.如权利要求12所述的方法,其特征在于,对所述规范化API所展示的方法的调用是由搜索爬行器程序生成的。

14.如权利要求13所述的方法,其特征在于,所述规范化API所展示的方法可用于检索一个或多个用户对于单个文档的访问权限。

15.如权利要求12所述的方法,其特征在于,对所述规范化API所展示的方法的调用是由搜索查询处理器生成的。

16.如权利要求14所述的方法,其特征在于,所述规范化API所展示的方法可用于检索所述搜索查询处理器的当前用户对于一个或多个文档的访问权限。

说明书 :

集成企业搜索系统与自定义访问控制应用程序编程接口

[0001] 背景
[0002] 企业搜索系统允许索引、搜索并向组织中的授权用户显示存储在该组织中的内容。为提供该功能,企业搜索系统通常必须索引和查询由多个独立的第三方企业软件应用程序和系统所存储的结构化和非结构化数据和文档。例如,在许多情况下,企业搜索系统必须索引并查询存储在内联网、文档和内容管理系统、文件服务器、企业桌面、诸如顾客关系管理和商业智能应用程序等商业应用程序、以及其它类型的内容存储中的数据。
[0003] 与搜索公开可用数据并允许实际上任何用户执行对数据的查询的公共搜索引擎(如万维网(“web”)搜索引擎)相反,企业搜索系统通常索引对其的访问可能受到限制的数据。例如,企业搜索系统所索引的文档可具有相关联的包括标识用户所具有的对该文档的访问权限的一个或多个访问控制条目(“ACE”)的访问控制列表(“ACL”)。结果,在企业搜索系统执行查询时,其必须确保执行查询的用户具有足够的访问权限来查看响应于该查询所返回的搜索结果。
[0004] 为确定用户是否具有足够的访问权限来查看搜索结果,企业搜索系统可以在将文档添加到搜索索引时检索并存储该文档的访问权限。在查询时,企业搜索系统可以利用先前存储的访问权限来确定执行该查询的用户是否具有足够的权限来查看搜索结果。另选地,在执行查询时,企业搜索系统可以在其中存储一组搜索结果中的每一个文档的后端系统中查询用户对该文档的访问权限。还可以使用这些方法的组合来最小化每一方法中存在的缺点。
[0005] 不管在向搜索索引添加文档时或在查询时是否检索到访问权限,企业搜索系统必须与其中存储经索引的文档的后端计算机系统进行接口以检索访问权限。然而,每一第三方后端计算机系统的安全子系统通常利用不同的、秘密的、专有的应用程序编程接口(“API”)。结果,在每次向企业搜索系统添加新类型的后端内容存储时,可能都有必要创建自定义程序代码来与每一后端安全子系统API进行接口。这通常使得企业搜索系统和第三方数据存储系统之间的集成很困难、很昂贵并且很耗时。
[0006] 此处所做出的本发明正是对于这些和其它考虑事项而提供的。
[0007] 概述
[0008] 此处提供了用于将企业搜索系统与后端内容存储所展示的用于获得访问权限数据的自定义API相集成的方法和计算机可读介质。根据此处所呈现的各方面,利用声明性元数据模型来创建并存储定义后端内容存储所展示的、用于检索其中所存储的文档的访问权限的自定义API的数据。还展示了用于获得文档的访问权限的规范化API。在对规范化API进行调用时,所存储的数据被用来将该对规范化API的调用变换成对自定义API的调用。以此方式,可访问专用后端计算系统所存储的访问权限而不用编写任何程序代码。
[0009] 根据此处所呈现的一个方面,创建并存储定义后端计算系统所展示的、用于获得文档的访问权限的自定义API的数据。所存储的数据可包括例如标识用于获得访问权限的自定义API所展示的方法的参数的信息和指示这些参数的每一个是输入参数还是输出参数的数据。这些参数中的一个还可被标记来指示该参数对应于对其请求访问权限的文档的标识符。这些参数中的另一个可被标记来指示其对应于一系统提供的值,如当前用户的用户标识符。也可以为这些参数中的每一个指定并存储默认值。
[0010] 根据其它方面,可以向在企业搜索系统中执行的应用程序展示用于获得文档的访问权限的规范化API。规范化API所呈现的接口是在企业搜索系统中执行的各应用程序可用来获得文档的访问权限的一致接口,而不管该文档所驻留的后端内容存储。例如,搜索爬行器程序和查询处理器程序两者都可以利用规范化API所展示的方法来获得文档的访问权限。规范化API所展示的方法接收标识对其请求访问权限的文档的参数,并可任选地出于认证目的来接收用户标识符。
[0011] 在接收到对规范化API所展示的用于检索指定文档的访问权限的方法的调用时,对规范化API的调用使用所存储的数据来动态地变换成对适当的自定义API的调用。例如,所存储的数据可被用来使用自定义API所展示的方法的参数的默认值来实例化对该方法的调用。随该对规范化API的调用接收到的标识对其请求访问权限的文档的参数随后可以替换自定义API中的、被标记为对应于文档标识符的参数的默认值。
[0012] 根据各个实现,当前用户的用户标识符也可以替换被标记为对应于系统提供的值的参数的默认值。一旦指定了这些参数,则执行对自定义API的调用。自定义API随后响应于该调用来返回所请求的访问权限。随后响应于对规范化API的原始调用来返回从自定义API所返回的访问权限。
[0013] 上述主题也可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读以下详细描述和查阅相关联的附图,这些和各个其它特征将是显而易见的。
[0014] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。
[0015] 附图简述
[0016] 图1是示出用于此处所描述的各过程和计算机系统以及此处所描述的计算机系统所利用的若干软件组件的说明性操作环境的网络和软件体系结构图;
[0017] 图2是示出此处所描述的一个实施例中所提供的API变换器程序的各方面的软件体系结构图;
[0018] 图3和图4是示出此处所提供的根据各实施例的分别用于在向搜索索引添加文档时获得该文档的访问权限和在搜索时获得文档的访问权限的过程的流程图;以及[0019] 图5是示出适用于实现此处所描述的各个计算机系统的计算机体系结构的计算机体系结构图。
[0020] 详细描述
[0021] 以下详细描述针对用于集成企业搜索系统与自定义后端内容存储访问控制API的系统、方法和计算机可读介质。尽管此处所述的主题是在结合操作系统和应用程序在计算系统上的执行而执行的程序模块的一般上下文中提供的,但本领域技术人员可以认识到,可结合其它类型的程序模块来执行其它实现。
[0022] 一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域的技术人员可以理解,此处所述的本主题可以使用其它计算机系统配置来实践,这些其它计算机系统配置包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。
[0023] 此处所述的本主题也可被描述为在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践,在这种环境中程序模块可位于本地和远程存储器存储设备两者中。然而,应当理解,此处所述的实现也可结合单机计算机系统和其它类型的计算设备来利用。也应理解,此处所呈现的各实施例可与任一类型的局域网(“LAN”)或广域网(“WAN”)一起利用。
[0024] 在以下详细描述中,对构成其一部分并作为说明示出了各具体实施例或示例的附图进行了参考。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于集成企业搜索系统与自定义后端内容存储访问控制API的计算系统和方法的各方面。具体地,图1是示出用于此处所描述的主题的一个操作环境100的计算机软件体系结构和网络图,该操作环境包括客户机计算机102、网络122和一个或多个web服务器计算机
104A-104B。
[0025] 如图1所示,客户机计算机102与web服务器计算机104A-104B通过各自到网络122的连接来彼此通信地耦合。根据一个实现,网络122包括因特网。然而,应当理解,网络
122可包括LAN、WAN或适用于连接客户机计算机102与web服务器计算机104A-104B的其它类型的网络。web服务器计算机104A-104B还耦合到后端系统112。后端系统112是能够将文档存储在内容存储114中的计算系统。如此处所使用的,术语文档意味着任何可索引的数据单元。以下提供关于后端系统112的操作的附加细节。
[0026] 图1还示出供客户机计算机102和web服务器计算机104A-104B利用的多个软件组件。具体地,web服务器计算机104A-104B分别可用于执行搜索爬行器(crawler)106A-106B。搜索爬行器106A-106B是被设计成从各个源收集诸如存储在后端系统112的内容存储114中的文档等文档的应用程序。后端系统112可包括被用来存储内容的任何类型的计算系统,如内联网服务器、文档或内容管理系统、文件服务器、企业桌面、诸如顾客关系管理应用程序或商业智能应用程序等商业应用程序、或任何其它类型的内容存储。
[0027] 为执行该文档标识和索引过程,最初向搜索爬行器106A-106B提供关于内容存储的信息。搜索爬行器106A-106B随后从内容存储中检索文档,索引这些文档、并将经索引的内容和任何相关联的元数据存储在被称为搜索索引108的数据库中。搜索爬行器106A-106B还可以标识每一文档中包含的到其它文档的链接并跟随这些链接来获得并索引附加文档。该过程被称为“爬行”。
[0028] 在爬行过程期间,搜索爬行器106A-106B还可以获得被索引的每一文档的访问权限。例如,搜索爬行器106A-106B可以获得每一文档的授权用户的列表。根据一个实现,访问权限通过利用适当的API变换器110A-110B来在后端系统112中查询授权用户的列表来获得。关于API变换器110A-110B的使用和操作的附加细节在以下提供。
[0029] 根据一个实现,客户机计算机102包括web浏览器程序(此处被称为“浏览器”)116。浏览器116可用于从服务器计算机104A-104B请求、接收并显示诸如网页等信息页面。具体地,浏览器116可用于与在服务器计算机104A-104B上执行的web服务器应用程序118A-118B中的一个建立连接。通过该连接,浏览器116可以请求用于执行对搜索索引108的查询的网页。这一查询请求由在web服务器计算机104A-104B上执行的实施该查询请求的查询处理器120A-120B处理。
[0030] 查询处理器120A-120B通过标识搜索索引108中的包含用户查询中的关键词的文档来向用户查询作出响应。查询处理器120A-120B还基于执行查询的用户是否具有足够的访问权限来查看每一文档来评估每一文档是否应作为搜索结果来返回。如将在以下详细描述的,每一查询处理器120A-120B可以动态地在后端系统112中查询指示执行该查询的用户是否具有许可来查看搜索结果中的每一文档的访问权限。该查询通过适当的API变换器110A-110B来调用。
[0031] 如此处将更详细地讨论的,API变换器110A-110B展示用于获得文档的访问权限的规范化API。例如,在一个实现中,API变换器110A-110B展示供搜索爬行器106A-106B使用来检索在爬行过程期间所发现的文档的访问权限的方法。响应于对这一方法的调用,API变换器110A-110B将从搜索爬行器接收到的规范化调用转换成后端系统112所展示的专用自定义访问权限API。从后端系统返回的访问权限随后被返回给调用的搜索爬行器。
[0032] 根据其它方面,API变换器110A-110B所展示的规范化API还可在查询时由查询处理器120A-120B用来检索查询搜索结果中所标识的文档的访问权限。在这种情况下,查询处理器120A-120B可以调用相应的API变换器110A-110B所展示的规范化API。响应于这一调用,API变换器110A-110B将从搜索爬行器接收到的规范化调用转换成对后端系统112所展示的专用自定义访问权限API的调用。从后端系统112返回的访问权限随后被返回给调用的查询处理器。关于API变换器110A-110B的使用和操作的附加细节在以下提供。应当理解,虽然图1中只示出了两个web服务器计算机104A-104B,一个后端系统112和一个客户机计算机102,但可以存在任何数量的这些计算设备。
[0033] 现转向图2,将描述示出用于企业搜索系统的包括API变换器110的说明性软件体系结构200的各方面的软件体系结构图。具体地,如图2所示,API变换器110展示用于检索文档的访问权限的规范化API。规范化API所呈现的规范化接口是在企业搜索系统中执行的各应用程序可用来在不管该文档所驻留的后端内容存储的情况下获得文档的访问权限的一致接口。例如,搜索爬行器106和查询处理器120两者都可以利用规范化API所展示的方法来获得文档的访问权限。如将在此处更详细地描述的,规范化API所展示的方法接收标识对其请求访问权限的文档的参数,并可任选地接收用于认证目的的用户标识符。
[0034] 在一个实现中,API变换器所展示的规范化API包括可为单个用户检索对于一组文档的访问权限的CHECKACCESS(检查访问)方法。在一个实现中,CHECKACCESS方法将一文档标识符数组作为参数并返回指示当前用户是否有权访问所引用的文档的每一个的长值。CHECKACCESS方法通常由查询处理器120用来确定当前用户是否具有查看搜索结果的集合的访问权限。
[0035] API变换器110所展示的规范化API还可包括可检索所有用户对于文档集合的访问权限的PERMITTEDUSERS(许可的用户)方法。该方法将一文档标识符数组作为输入,并返回指示所有用户对该数组中所标识的每一文档的访问权限的串。PERMITTEDUSERS方法通常由搜索爬行器106用来检索所有用户查看在爬行期间所检索的文档的访问权限。如以下更详细地描述的,API变换器110可用于将对规范化API的调用动态地变换成与后端系统112A-112B所展示的自定义API相兼容的调用。
[0036] 如上所述,后端系统112A-112B可以展示用于检索对于内容存储114A-114B中所存储的文档的访问权限数据的自定义API。例如,在一个实现中,利用来自SAP AG的软件的系统可以展示用于检索用户对于一个或多个顾客的访问权限的GETDISPLAYABLECUSTOMERS(获取可显示顾客)方法。该方法将最终用户身份和顾客号作为输入,并返回指示该最终用户是否具有查看该顾客的权限的布尔值。SAP系统还可以展示可以检索对于特定顾客的所有访问权限的GETAUTHORIZEDUSERSFORCUSTOMER(获取对顾客的授权用户)方法。该方法将顾客号作为输入,并返回指示对于所引用的顾客的访问权限的串列表。
[0037] 在一个实现中,如果API变换器110接收到对CHECKACCESS方法的调用,则其将该调用动态地变换成与GETDISPLAYABLECUSTOMERS方法相兼容的调用。例如,如果所接收到的调用是PERMITTEDUSERS(BDC://HOST/123/456?ID=34)(其中后端系统112A由号码123标识),则API变换器110将该调用动态地变换成GETDISPLAYABLECUSTOMERS(34)。该调用随后在后端系统112A处执行。API变换器110将生成对GETDISPLAYABLECUSTOMERS方法的多个调用,因为该API得到单个顾客文档的结果而CHECKACCESS方法通常批量地请求授权检查。API变换器110还将操作系统线程中所包含的最终用户的隐含身份转换成后端系统利用的串身份值。
[0038] 如果API变换器110接收到诸如CHECKACCESS(BDC://HOST/333/456?ID=36)等对CHECKACCESS方法的调用(其中后端系统112B是由号码333所标识的),则API变换器110将该调用动态地变换成定向到后端系统112B的GETAUTHORIZEDUSERSFORCUSTOMER(36)形式的调用。应当理解,这些后端API仅仅是说明性的,并且此处所呈现的各实施例可以与用于检索文档的访问权限的任何自定义API一起使用。
[0039] 为执行该处理,API变换器110利用存储在元数据存储202中的元数据来将对规范化API的调用变换成对后端系统112A-112B所展示的自定义API的调用。使用元数据存储202来存储描述后端系统112A-112B所展示的实际API和与后端系统112A-112B的每一个进行通信所需要的连接的类型的数据。例如,在一个实现中,熟悉后端系统112A的用户可以在可扩展标记语言(“XML”)文件中创建该系统所展示的实际API和连接信息的描述。该XML文件被上传到企业搜索系统并存储在元数据存储202中。一旦上传了XML文件,则到后端系统112A所提供的访问权限API的连接立即可用。通过允许用户声明性地定义从后端系统检索访问权限的接口,并以此处所描述的方式处理元数据,不需要编码来与新类型的后端内容存储系统进行接口。
[0040] 在一个实现中,存储在元数据存储202中的每一后端系统112的数据包括标识后端系统所展示的API中的每一参数的数据。例如,这些参数可以通过使用表示被定义为诸如串或整型等原子类型的聚集的具体API的参数的复杂类型来定义。集合可被定义为各组复杂类型。存储在元数据存储202中的数据还可以包括指示每一参数是输入参数还是输出参数和这些参数的一些或全部的默认值的数据。
[0041] 根据各个实现,存储在元数据存储202中的每一后端系统112的数据还可以包括后端系统112所提供的每一数据类型和哪些字段唯一标识该数据类型的实例的定义。例如,可以存储指示该数据类型是SIEBEL后端系统中的顾客或SAP系统中的订单的数据。被称为标签的连接也可以存储在用于自定义API中的原语类型和该API中对应于该数据类型的实例的参数的元数据存储202中。例如,API中的被用来唯一地标识文档的参数可以如此标记。在搜索爬行器106或查询处理器120提供请求其访问权限的文档的标识符时,API变换器110可以将该文档标识符插入到对后端系统112所提供的API的调用中的适当的位置。关于该过程的附加细节在以下提供。
[0042] 根据各个实现,后端API的对应于系统提供的值的参数也可以在元数据存储202中如此标记。例如,根据一个实现,系统提供的值是标识当前用户的参数。以此方式,查询处理器120可向API变换器110提供当前用户的身份。API变换器110随后可以用当前用户的身份替换对后端系统112的调用中的适当的参数。关于该过程的附加细节在以下提供。
[0043] 根据其它方面,存储在元数据存储202中的关于每一后端系统112的数据还可包括关于第三方数据存储系统的连接信息,以便可以连接到该系统以执行访问检查。该数据还可以包括执行该后端API所必需的协议的类型。例如,在各实现中,可利用远程过程调用(“RPC”)或web服务来执行对后端API的调用。
[0044] 在一个实现中,存储在元数据存储202中的数据被组织成一系列数据表。例如,一个表可被用来存储标识各后端系统的数据,而另一个表可被用来存储标识每一内容存储中所存储的数据类型的信息。又一个表可被用来存储标识每一内容存储通过数据类型所展示的安全方法的数据。例如,对后端系统中的销售订单的访问可以利用与用于访问顾客的API不同的API。某一表还可被用来存储标识自定义后端API的参数的每一个的数据,而其它表可被用来存储定义每一参数所使用的原子数据类型的信息。应当理解,元数据存储202可以用各种其它方式来组织。
[0045] 如图2还示出的,API变换器110利用一个或多个填补204A-204N来执行对后端系统112A所展示的自定义API的协议专用调用。例如,可以提供web服务填补204A来进行web服务调用,可以提供RPC填补204B来进行远程过程调用,并可以提供数据库填补204C来与数据库进行接口。还可以使用其它填补204N。如上简述,定义用于每一后端系统112A或数据类型的特定填补204A-204N的数据可被存储在元数据存储202中。例如,可以存储指示web服务填补204A应被用于存储在后端系统112A的内容存储114A中的特定类型的文档的数据。还可以在元数据存储202中存储指示数据库填补204C应被用于检索对于存储在后端系统112B的内容存储114B中的文档的访问权限的数据。
[0046] 现在参考图3,将提供关于此处所呈现的用于集成企业搜索系统与自定义后端内容存储访问控制API的各实施例的附加细节。具体地,图3是示出包括用于在爬行时获得文档的访问权限的API变换器110的企业搜索系统的操作的流程图。应理解,此处所述的逻辑操作被实现为(1)一系列计算机实现动作或运行于计算系统上的程序模块,和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于计算机系统的性能要求的选择的问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及任何组合来实现。
[0047] 例程300在操作302处开始,其中搜索爬行器106从后端系统112A-112B中的一个请求文档。例程300随后继续至操作302,其中搜索爬行器106用所检索到的文档的统一资源(“URL”)来调用API变换器110。例程300随后继续至操作306,其中API变换器110从所接收的URL提取后端系统引用、文档的数据类型、和文档的文档标识符。例如,如果所接收到的URL是bdc://hostname/123/456?id=34,则后端系统引用是123,数据类型是456,且文档标识符是34。随后可以参考元数据存储202中的数据来确定后端系统是SAP系统,数据类型是SAP中的顾客,且文档标识符指的是具有顾客号34的顾客。
[0048] 一旦提取了后端系统引用、数据类型、和文档标识符,则例程300继续至操作308。在操作308处,API变换器110实例化对适当的后端系统方法的调用。在一个实现中,该调用是使用元数据存储202中存储的每一个参数的默认值来实例化的。例程300随后继续至操作310,其中API变换器110使用随对规范化API的调用接收的文档标识符来替换对后端系统API的实例化的调用的适当的参数。API变换器110利用元数据存储202中所存储的数据来标识文档标识符参数的正确位置。在一实施例中,随对规范化API的调用接收的用户标识符也可被插入到对后端系统API的调用中的适当的位置。
[0049] 一旦对后端系统所提供的自定义API的调用被实例化并设置了所有参数,则例程300继续至操作312,其中API变换器110对适当的后端系统112执行调用。如上所述,可利用适当的填补204A-204N来实际上执行远程方法调用。响应于方法的执行,在操作314处后端系统返回所请求的访问权限。
[0050] API变换器110随后响应于对API变换器110所展示的规范化API的原始调用来向搜索爬行器106提供所返回的访问权限。这在操作316处发生。在操作318处,搜索爬行器106将所返回的访问权限存储在搜索索引108中或其它适当的数据存储中。查询处理器120可以利用该信息来在查询时整理搜索结果,而不要求与提供访问权限的后端系统通信。从操作318,例程300继续到操作320,其在此结束。
[0051] 现在参考图4,将描述用于在包括API变换器110的企业搜索系统中搜索时获得文档的访问权限的说明性例程400。具体地,例程400在操作402处开始,其中客户机计算机102在查询处理器120处执行搜索查询。响应于执行搜索查询,例程400从操作402继续至操作404,其中查询处理器120从搜索索引108中检索与指定搜索项相匹配的文档的URL。
查询处理器120随后用所标识的URL调用API变换器110所展示的规范化API。这在操作
406处发生。
[0052] 从操作406,例程400继续至操作408,其中API变换器110从所接收的URL中提取后端系统引用、文档的数据类型、和文档的文档标识符。例如,如果所接收到的URL是bdc://hostname/123/456?id=34,则后端系统引用是123,数据类型是456,且文档标识符是34。随后可以参考元数据存储202中的数据来确定后端系统是SAP系统,数据类型是SAP中的顾客,且文档标识符指的是具有顾客号34的顾客。
[0053] 一旦提取了后端系统引用、数据类型、和文档标识符,则例程400继续至操作410。在操作410处,API变换器110实例化对适当的后端系统方法的调用。在一个实现中,该调用是使用元数据存储202中存储的每一个参数的默认值来实例化的。例程400随后继续至操作412,其中API变换器110将随对规范化API的调用接收到的文档标识符和用户标识符插入到对后端系统API的调用中的适当的位置。
[0054] 一旦对后端系统所提供的自定义API的调用被实例化并设置了所有参数,则例程400继续至操作414,其中API变换器110对适当的后端系统112执行调用。如上所述,可以利用适当的填补204A-204N来执行远程方法调用。响应于方法的执行,在操作416处后端系统返回所请求的访问权限。API变换器110随后响应于对API变换器110所展示的规范化API的原始调用来向查询处理器120提供所返回的访问权限。在操作418处,查询处理器120基于所返回的访问权限整理搜索结果。例如,当前用户不具有读许可的结果将不被显示,而当前用户确实具有读许可的结果将被显示。从操作418,例程400继续到操作420,其在此结束。
[0055] 现参考图5,将讨论在此处所给出的各实施例中利用的计算机500的说明性计算机体系结构。图5所示的计算机体系结构示出了常规台式计算机、膝上型计算机或服务器计算机。图5所示的计算机体系结构包括中央处理单元502(“CPU”)、包括随机存取存储器514(“RAM”)和只读存储器(“ROM”)516的系统存储器508、以及将存储器耦合至CPU502的系统总线504。基本输入/输出系统存储在ROM 516中,它包含帮助诸如在启动期间在计算机500内元件之间传递信息的基本例程。计算机500还包括用于存储操作系统518、应用程序和其它程序模块等的大容量存储设备510,这将在以下更为详尽地描述。
[0056] 大容量存储设备510通过连接至总线504的大容量存储控制器(未示出)连接到CPU 502。大容量存储设备510及其相关联的计算机可读介质为计算机500提供非易失性存储。尽管此处所包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,但本领域的技术人员应理解,计算机可读介质可以是可由计算机500访问的任何可用介质。
[0057] 作为示例而非限制,计算机可读介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机500访问的任何其它介质。
[0058] 根据各实施例,计算机500可以使用通过诸如因特网等网络122与远程计算机的逻辑连接在联网环境中操作。计算机500可以通过连接至总线504的网络接口单元506来连接到网络122。应理解,网络接口单元506也可用于连接至其它类型的网络和远程计算机系统。计算机500还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器512,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器可以提供至显示屏、打印机或其它类型的输出设备(也未在图5中示出)的输出。
[0059] 如前简述,多个程序模块和数据文件可以存储在计算机500的大容量存储设备510和RAM 514内,包括适于控制联网的台式或服务器计算机的操作的操作系统518,如华盛顿州雷蒙德市的微软公司的WINDOWS XP或WINDOWS VISTA操作系统。可以利用诸如LINUX操作系统或来自苹果计算机有限公司的OSX操作系统等其它操作系统。应当理解,尽管此处所给出的各实施例是在台式或膝上型客户机计算机102与远程服务器计算机104的上下文中描述的,但可利用许多其它类型的计算设备或系统来具体化此处所给出的各方面。
[0060] 大容量存储设备510和RAM 514还可以存储一个或多个程序模块。具体而言,大容量存储设备510和RAM 514可存储web浏览器116、web服务器应用程序118以及以上参考图1和图2描述的其它程序模块。其它程序模块也可被存储在大容量存储设备510中并供计算机500利用。
[0061] 基于上文,应当理解,此处提供了用于集成企业搜索系统与自定义后端内容存储访问控制API的系统、方法和计算机可读介质。尽管用对计算机结构特征、方法动作和计算机可读介质专用的语言描述了此处呈现的本主题,但可以理解,所附权利要求书中定义的本发明不必限于此处所述的具体特征、动作或介质。相反,具体特征、动作和介质是作为实现权利要求的示例形式公开的。
[0062] 上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。