CN101454779B - 基于搜索的应用开发框架 - Google Patents

基于搜索的应用开发框架 Download PDF

Info

Publication number
CN101454779B
CN101454779B CN200780019575.6A CN200780019575A CN101454779B CN 101454779 B CN101454779 B CN 101454779B CN 200780019575 A CN200780019575 A CN 200780019575A CN 101454779 B CN101454779 B CN 101454779B
Authority
CN
China
Prior art keywords
search
application
transactional applications
index
result
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
Application number
CN200780019575.6A
Other languages
English (en)
Other versions
CN101454779A (zh
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.)
Oracle International Corp
Oracle America Inc
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN101454779A publication Critical patent/CN101454779A/zh
Application granted granted Critical
Publication of CN101454779B publication Critical patent/CN101454779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

公开了用于创建如下搜索框架的方法,所述搜索框架提供用于搜索事务应用的语义接口。根据本发明的一个方面,用于使至少一个事务应用能够被搜索的方法包括创建与该事务应用相关联的规范对象以及索引与该事务应用相关联的数据。所述方法还包括使用与所述规范对象相关联的信息来创建索引存储器。该索引存储器与被索引的数据相关联。最好,语义引擎与所述索引存储器相接口连接。

Description

基于搜索的应用开发框架
技术领域
本发明一般地涉及允许应用被搜索。更具体地,本发明涉及允许用户搜索企业应用并使用搜索结果执行动作的框架。
背景技术
随着网络使用的扩大,企业应用(enterprise application)的使用变得越来越流行。企业应用一般是寄宿在服务器上的软件应用,所述服务器具有同时向网络上的大量用户提供业务的能力。通常,企业应用适合于执行与商业有关的功能。与商业有关的功能可包括但不限于跟踪客户信息、计费和产品规划。
通常,希望搜索诸如可能存储在企业应用或以其他方式与企业应用相关联的信息之类的信息。举例来说,企业应用中可包含关于特定银行的账目经理姓名的信息,所述银行如澳大利亚的XYZ银行。为了回答诸如“谁是澳大利亚的XYZ银行的账目经理”之类的问题或查询,一般有三种可能获得答案的方式。图1是可以对与企业应用相关联的信息做出的查询的图形化表示。当客户118或查询者想得到有关可能包含在企业应用110中的信息114的查询的答案时,客户118可制定自然语言查询130。自然语言查询130可对可能对信息114有访问权限的实体122(如人类)进行。实体122可在企业应用110内部对信息114有访问权限,或者实体122可经由其他途径对信息114有访问权限。虽然自然语言查询130可能相对容易制定,但是实体122可能不一定对信息114有访问权限。因此,自然语言查询130的答案可能不一定容易从实体122获得。客户118在得到答案之前可能需要查询不止一个实体。因此,经由有访问权限的诸如人类之类的实体122的查询常常效率低下且成本高昂。
因为企业应用110存储诸如信息114之类的数据,客户118可制定访问企业应用110中的信息114的基于SQL或表格的查询134。一般地,企业应用110内的信息114只有在企业应用110的开发者使信息114对客户118或其他用户可用的情况下才能被访问。制定基于SQL或表格的查询134以访问可用信息114较困难,因为信息114可能存储在企业应用110内的低层。企业应用110的内部结构可能很复杂,并且常常是私有的。多数情况下,在客户118能够成功制定基于SQL或表格的查询134之前,客户118可能需要修习有关企业应用110的培训课程。指定基于SQL或表格的查询134可能要求大量开发工作。因此,虽然信息114很可能通过基于SQL或表格的查询134被成功获得,但是与创建基于SQL或表格的查询134相关的步骤可能很复杂和耗时。
基于关键字的查询138可由客户118输入到搜索引擎126中来定位信息114。若信息114是澳大利亚的XYZ银行的账目经理的姓名,则基于关键字的查询138可包括单词“账目”、“经理”、“XYZ”和“澳大利亚”。若信息114可访问,则搜索引擎126的使用可能相对快速而有效。然而,若信息114被证明对搜索引擎126不可用,即,若信息114不包含在搜索引擎126可访问的文档、文件或应用程序中,则客户118将得不到基于关键字的查询138的满意结果。若信息114存储在事务表格,即包含用于查看但未被索引以供搜索的描述性字段的表格中,则信息114也可能是不可用的。搜索引擎126实质上仅能展示可被客户118读取的搜索结果。换言之,当基于关键字的查询138的结果被展示给客户118时,该结果的展示使得客户118可读取结果但不经过大量开发工作一般不能对结果采取动作。
虽然自然语言查询130和基于关键字的查询138在使客户118能够获得信息114方面有效,但是自然语言查询130可能效率低下,并且自然语言查询130和基于关键字的查询138不总能为客户118提供信息114,例如当信息114对实体122和搜索引擎126不可用时即是如此。另外,信息114可能不精确,若它实质上不是直接从使用信息114的企业应用110获得的。一般地,客户118可经由企业应用110成功获得对精确的信息114的访问权限。这种信息114至少像企业应用110一样精确。然而,如上所述,形成基于SQL或表格的查询134通常很复杂。
因此,需要使存储在企业应用中的信息能够容易地被搜索的方法和设备。即,需要允许用户以结构化方式搜索企业应用以获得精确信息的系统。
发明内容
本发明涉及提供用于搜索事务应用的语义接口的搜索框架。根据本发明的一个方面,用于使至少一个事务应用能够被搜索的方法包括创建与该事务应用相关联的规范(canonical)对象以及索引与该事务应用相关联的数据。所述方法还包括使用与所述规范对象相关联的信息来创建索引存储器。该索引存储器与被索引的数据相关联。最好,语义引擎与所述索引存储器相接口连接。
在一个实施例中,查询以第一格式被提供给语义引擎。在该实施例中,在使用搜索引擎访问索引存储器之前,语义引擎将查询从第一格式转化成与搜索引擎相关联的第二格式。
基于搜索的应用的开发框架允许与所述应用相关联的数据能被相对高效地获得,所述开发框架使语义或其他信息能够被用于搜索应用。因为这种开发框架实质上可采用任何搜索引擎,所以搜索引擎的性能可能起着杠杆作用(leveraged)。一般地,开发框架包括使搜索引擎能够访问应用内存储的信息的接口,并向随后可直接对该信息执行动作的终端用户提供该信息。通过提供如下工具包,开发者可通过相对少的开发工作来创建允许应用被搜索的总体系统,所述工具包包括所述接口和用于将查询从基于自然语言的串转化成可用于搜索应用的串的语义引擎。
根据本发明的另一方面,用于使至少一个应用能够被搜索的框架包括接口、可插拔搜索引擎和运行时管理器。所述接口将查询从第一格式转化成第二格式,并与和所述应用有关的规范商业对象相关联。所述搜索引擎响应于所述查询而搜索所述应用,所述运行时管理器将所述搜索引擎与所述应用相接口连接并令查询结果被显示。在一个实施例中,所述应用是企业应用、事务应用或事务企业应用。
在另一实施例中,开发者可使用设计器来创建包括规范对象、对象类别和用于对象的语义定义的元数据。所述接口可包括用户界面呈递器(renderer)、动作控制器和语义引擎。在该实施例中,所述运行时管理器可与所述搜索引擎交互以执行爬取(crawling)、索引和监控。
根据本发明的又一方面,用于处理请求与应用相关联的信息的查询的方法包括选择与所述应用相关联的规范商业对象以及使用与所述查询相关联的信息来执行搜索。所述搜索与所述规范商业对象相关联。执行所述搜索包括利用包含与所述应用相关联的信息的索引存储器。该方法还包括从所述索引存储器获得所述搜索的结果。在一个实施例中,所述结果是允许对所述应用的直接访问的网络链接。
结合附图阅读以下说明书后,本发明的这些和其他特征及优点将变得明显,所述附图中,相同或相似的结构用相同的参考标号来指代。
附图说明
图1是对与企业应用相关联的信息做出的查询的图形化表示;
图2是根据本发明的实施例的、其中搜索引擎和应用之间的接口允许所述应用被搜索的系统的框图表示;
图3是根据本发明的实施例的、允许客户搜索多个应用的框架的框图表示;
图4是根据本发明的实施例的、使动作能被执行的、含有搜索查询区域和结果区域的显示窗口的图形化表示;
图5A是根据本发明的实施例的、允许应用被搜索的基本软件架构的框图表示;
图5B是根据本发明的实施例的、通过软件架构中还可包含的扩展来示出的软件架构即图5A的软件架构500的框图表示;
图6是根据本发明的实施例的、与事务应用相接口连接的基于搜索的应用的图形化表示;
图7是根据本发明的实施例的、例示了一种将应用与框架相集成的方法的处理流程图;
图8是根据本发明的实施例的、例示了一种处理查询的方法的处理流程图;
图9是根据本发明的实施例的、指示如下动作的流程的框图表示,当可搜索的应用被接口连接到框架中并对搜索可用时,所述动作发生;
图10是数据库管理系统架构的框图表示;
图11是可与本发明的实施例关联使用的计算系统的框图表示。
具体实施方式
在以下说明书中,将参考在用于诸如数据库应用之类的软件应用的平台上测试子系统的实施例来描述本发明。然而,本发明的实施例不限于任何特定架构、环境、应用或实现方式。例如,虽然实施例是参考网络数据库应用来描述的,但是本发明可以有利地应用到任何软件应用。因此,以下实施例的描述是为了例示的目的而非限制的目的。
对与企业应用相关联的非结构化的或损坏(demoralized)的数据的搜索对终端用户而言一般并不容易得到。虽然某些搜索应用可以得到,但是在特定的企业应用可以被搜索之前,这些搜索应用一般要求终端用户一方的大量开发工作。
扩充现有搜索引擎并创建结合了现有搜索引擎的框架以便事务应用可以被提供自然语言查询的终端用户搜索,这将允许终端用户相对高效地搜索企业应用。在一个实施例中,可以为开发者提供这样的工具包,所述工具包可用来开发将特定企业应用与结合了现有搜索引擎的框架相接口连接所需的软件模块。该工具包可用来开发可用于搜索企业应用或事务应用的基于搜索的应用。这种工具包的使用在实质上不要求开发者一方的大量开发工作的前提下允许充分利用(leverage)高性能搜索引擎的功能来搜索任意数目的企业或事务应用。
创建搜索引擎和企业应用之间的接合点允许终端用户可以作用的信息被获取。另外,可以实现对多种不同类型的信息的搜索。举例来说,对事务记录、工作项目、编程缺陷和其他与商业有关的元素的搜索可以精确地执行。
图2是根据本发明的实施例的、其中搜索引擎和应用之间的接口允许所述应用被搜索的系统的框图表示。实质上可以是任何适合搜索引擎的搜索引擎204可用来通过接口208搜索应用212。虽然应该理解应用212可以多种多样,但应用212可以是企业应用,如事务应用即利用事务的应用。在一个实施例中,搜索引擎204可以是SQL搜索引擎、诸如ApacheLucene之类的基于开放源的搜索引擎或可从加州Redwood shores的Oracle公司获得的Oracle Text搜索引擎。
接口208被布置成使得经由搜索引擎204做出的查询能够搜索应用212以获得有效地匹配该查询的结果。即,接口208有效地充当搜索引擎204和应用212之间的接合点以便搜索引擎204可以搜索与应用212相关(例如,包含在应用212中)的信息。举例来说,应用212可包括其中客户信息被存储到相关的数据库中的应用。接口208可使该应用能够通过搜索引擎204和诸如“谁是加州的XYZ银行中John Doe的账目的账目经理?”之类的查询被搜索以获得客户信息。
一般地,包括相互合作以允许应用被搜索的搜索引擎和接口的总体框架可被布置成接受查询并对查询提供响应。图3是根据本发明的实施例的、允许客户搜索多个应用的框架的框图表示。框架310一般包括客户302一将查询输入到框架310中就使应用312能被搜索所需要的功能。应用312可以是事务应用,而输入到框架310中的查询可以在与框架310相关的语义引擎(未示出)中实现。框架310一般可将查询例如从自然语言转化成框架310中包含的搜索引擎(未示出)所理解的查询,然后基于经转化的查询来搜索应用312。经转化的查询的任何结果可以使用框架310被展示给客户302。
当查询结果被展示时,该结果可以在与客户302相关的计算系统的显示屏上显示。在一个实施例中,显示屏可包括查询被输入其中并显示的搜索区域以及在基于查询执行了搜索之后显示结果的结果区域。参考图4,将根据本发明的实施例来描述一个提供用于输入查询的用户界面和与被显示的结果相关的用户界面的显示窗。可以是用于基于网络的应用的浏览器窗口的显示窗400包括查询区域402和结果区域406。查询区域402包括例如用户使用键盘输入可以向其中输入搜索串的字段410。应该理解,虽然被示为适合于接受文本输入,但是字段410还可以使用其他方法填充。其他方法包括但不限于使用下拉或弹出菜单提供输入。
搜索串一旦被输入到字段410中,输入按钮412就可以被按压或点击以开始搜索。按压输入按钮412一般开始有效地激活诸如图3的框架310之类的框架的过程,以搜索至少一个应用来获得与该搜索串相关的答案。当搜索完成时,结果414a-c可以显示在结果区域406中。虽然示出了三个结果414a-c,但是应该理解,查询结果414a-c的数目可以多种多样。
结果414a-c可来自任何被搜索的应用。如图所示,结果414a和结果414b与应用‘A’相关,而结果414c与应用‘B’相关。在所描述的实施例中,结果414a-c是可以被选择的链接,它们被选择时可以打开用于与链接相关的应用的显示窗。举例来说,若结果414a被选择,则与应用‘A’相关并显示位于应用‘A’中的查询结果的显示窗将打开。
结果414a-c可分别具有相关的动作按钮416a-c。然而应该理解,不是所有结果414a-c一般都具有相关的动作按钮416a-c。通过选择动作按钮416a-c,可针对相应的结果414a-c采取动作。在一个实施例中,选择动作按钮416a-c可导致用户从与显示窗400相关的语义应用被重定向到事务应用。例如,若输入到字段410中的搜索串是用于有关职位描述的搜索的,则结果414a-c可包括匹配该职位描述的职位空缺。这种情况下,动作按钮416a-c可以是当被选择时导致用户使用相关的事务应用来申请该职位空缺的按钮,例如,点击动作按钮416a可以导致用户申请与结果414a相关的职位空缺。
字段410可接受与不同搜索类别相关的搜索串。在一个实施例中,搜索类别可包括人员搜索类别、工作表搜索类别和集成储存库(integrationrepository)搜索类别。人员搜索类别可允许客户或用户在商业应用中搜索诸如客户或账目经理之类的人员,所述商业应用中客户或账目经理信息被存储在贸易社区模型(trading community model)的数据库中。对于人员搜索,结果414a-c可包括账目经理姓名。工作表搜索类别可允许客户或用户搜索作为商业过程的结果在组织内被指派的个人动作项。对于工作表搜索,结果414a-c可包括用于该用户的工作或动作项的列表。集成储存库搜索类别可允许客户或用户定位可用来集成各种第三方程序或应用的应用编程接口(API)。对于集成储存库搜索,结果414a-c可以是第三方集成器可用的API列表。
为了提供诸如图3的框架310之类的框架,实质上标准的搜索引擎可以被结合。可以提供开发者用来集成应用与框架的工具包。在该工具包内,可以提供用于管理搜索类别的用户接口,以及开发者用来开发定制模块的API。这种工具包还可提供允许搜索引擎与框架相接口连接的运行时管理器。开发者一般可使用该工具包来定义搜索类别。图5A是根据本发明的实施例的、与基于搜索的应用架构相关的部件的框图表示。可被视为总体搜索工具包的架构500采用搜索引擎504。架构500被布置成使类别搜索能被执行。搜索引擎504是可插拔的,并且实质上可以是含有API的任何搜索引擎。一般地,搜索引擎504的可插拔性在于搜索引擎504允许诸如爬取器506、索引引擎508、查询引擎510和评分器512相接于其中。
爬取器506被布置成爬取源,如本领域技术人员所理解的那样。在一个实施例中,爬取器506提供实质上爬取所有的应用554的功能,例如将被搜索的企业应用和/或事务应用。用于规范商业对象定义的可搜索文档的构造以及运行时应用数据的构造通过使用爬取器出现。Java数据库连通性(JDBC)API是爬取器506可基于的标准SQL数据库访问接口。
索引引擎508一般索引由爬取器506构造的可搜索文档,并被布置成将索引存储器558暴露给查询引擎510。索引存储器558是存储索引的场所。诸如与索引存储器558相关的安全设置之类的设置可由运行时管理器516管理。运行时管理器516还被布置成允许搜索被在运行时管理,以便例如可以安排爬取并可以建立索引存储器558。
可被视为查询构建器的查询引擎510是在架构500内使用以在经预爬取的索引存储器558中执行搜索的软件模块。查询引擎510使用经由元数据管理器520从元数据储存库524获得的元数据来有效地将用户输入的查询从搜索引擎504理解的查询转换成索引引擎558理解的查询。元数据储存库524实质上存储所有元数据,并且还存储对象类别和语义定义。元数据管理器520管理元数据,并提供用于创建、修改和删除搜索类别的用户接口。在一个实施例中,商业对象可被存储在元数据储存库524中,而搜索类别由元数据管理器520存储。
评分器512提供评级功能。虽然搜索引擎504一般具有评分功能,但是评分器512可用来扩充或改变搜索引擎504中包含的评分功能。一般地,每个评分器512可与特定的搜索类别相关联,并可提供关于特定结果与查询有多匹配的信息。
与搜索引擎504通信的接口部件528包括语义引擎530、用户界面呈递器532和动作控制器534。语义引擎530是被布置成将用户查询转化成搜索引擎504理解的查询的查询构建器。即,语义引擎530可基于元数据储存库524中存储的元数据来转换查询。在一个实施例中,语义引擎530将基于自然语言的查询转化成特定于搜索引擎的查询。举例来说,“谁向Jane Doe汇报”的用户查询可基于指派给适当字段的语义信息被转化成诸如“mgrFirstname:Jane,mgrLastname:Doe”之类的特定于搜索引擎的查询。
用户界面呈递器532被布置成使查询结果或搜索被显示。即,用户界面呈递器532允许特定搜索类别的用户界面表示被产生并呈递给用户。一个用户界面呈递器532可被布置成以表格形式显示结果。一般地,用户界面呈递器532可被指派给定类型的规范商业对象。
动作控制器534被布置成将结果页面上显示的用户接口事件转化成在服务接口中定义的商业动作,在一个实施例中,所述服务接口可以是服务组件(beans)542。即,动作控制器534是通过调用服务组件542来执行与搜索有关的商业逻辑的事件管理器。服务接口542是有效地存储商业逻辑的一个或多个部件。服务接口542可针对搜索类别来注册。在一个实施例中,服务接口542包括三种类型的服务,即列表服务、实体服务和动作服务。这些服务可被视为工具包。列表服务可以在由搜索类别定义的实体的列表上执行,并可由主键列表来标识。实体服务可在商业对象的特定实体上执行。例如,查询结果可以作为各由主键标识的结果的列表来展示给用户。可在这些结果上执行的商业动作或动作服务可包括但不限于:保存结果,若这些结果是工作机会则申请特定工作,以及基于特定属性来对结果排序。在一个实施例中,动作服务是可链接到用户接口动作的服务。
用户界面模板538是使服务组件542能被动作控制器534调用的代码段(snippet),例如超文本标记语言(HTML)代码段。举例来说,模板538可用于在实质上不改变与用户界面呈递器532相关的代码的前提下定制用户界面。如下面将参考图5B来描述的那样,可采用用户界面模板538来呈递用于搜索结果或动作形式的动态HTML(DHTML)用户界面。
架构500还可与应用安全模块546和国际化模块550相关联。应用安全模块546与例如服务接口或服务组件542的工具包交互,以有效地强制执行与架构500相关的安全要求。应用安全模块546可基于搜索类别来定义安全策略,并可被架构500的部件使用,所述部件包括但不限于索引引擎508和查询引擎510。国际化模块550可用来允许以多种语言获得搜索。
各种外部部件可以与架构500相接口连接。如图5B所示,总体架构500可包括监视器或者使用运行时管理器516来在运行时管理搜索的管理员。设计者或开发者588可定义在元数据储存库524中存储的搜索类别。搜索类别可封装搜索引擎504可用来执行搜索的工件(artifacts),并可包括但不限于诸如客户和任务之类的类别。DHTML用户界面580为用户界面呈递器532提供用户输入。可从加州Redwood shores的Oracle公司获得的诸如JDeveloper之类的工具584提供用于构建面向服务的应用的集成开发环境。即,工具584允许用户界面模板538和服务接口542被创建和修改。
如前所述,允许终端用户输入自然语言搜索串来搜索应用的能力增加了基于搜索的应用框架的可用性。作为允许搜索引擎与企业应用结合使用的总体接口的一部分,语义引擎和语义应用的使用为总体架构提供功能。再参考图6,将根据本发明的实施例来描述基于搜索的应用和企业应用之间的接口。框架600包括在一个实施例中可以是事务应用的企业应用634。应用634与存储应用634所使用的信息的数据库630相关联。诸如服务组件638之类的服务接口包含商业逻辑,并使应用634能被包括语义应用602和搜索引擎626的基于搜索的应用访问。
语义应用602使用上面参考图5A描述的呈递引擎614、元数据存储器610和语义引擎606来有效地调用搜索引擎626以搜索应用634。例如订购单的规范对象一般是与未绑定到特定实现方式的规范商业对象类别622相关的商业对象。通常,可将某些类型的分类应用于规范对象以形成规范商业对象类别622。被索引以供搜索并包含结构化数据的语义应用602可被视为实质上与应用634并列行动。在一个实施例中,语义应用602有效地包装(wrap)并描述应用634。
可以是丰富网络(rich web)用户界面618的用户界面618允许对基于搜索串的应用进行诸如搜索串之类的输入。丰富网络用户界面618允许商业动作容易与查询结果相关联。应用634与基于表格或HTML的用户界面642相关联,所述基于表格或HTML的用户界面642允许显示查询结果并按照查询结果行动。
可以是可从加州Redwood shores的Oracle公司获得的FusionMiddleware的中间件(Middleware)650有效地将管理能力和部署平台汇聚到技术平台中。一般地,中间件650实质上使任何开发工具(未示出)、任何企业应用634和任何搜索引擎626能被集成到框架600中。即,中间件650允许框架600的部件能够容易地被替换。应该理解,虽然中间件650可以是Fusion Middleware,但是实质上可以使用允许不同工具、应用或搜索引擎被结合到框架600中的任何中间件。换言之,可以使用提供用于设计和运行企业软件的平台的任何中间件650来代替FusionMiddleware。
应用基础646被布置成使应用能被构建。即,应用基础646提供这样的基础和应用背景(context),基于所述基础可以构建诸如事务应用之类的应用,在所述应用背景内可以运行应用。在一个实施例中,应用基础646提供可包括但不限于应用安全、登录和差错处理的普通服务。一般地,语义应用602可被部署于应用基础646之上并可以共享应用基础646中提供的应用背景。
图7是根据本发明的实施例的、例示了一种将应用与框架相集成的方法的处理流程图。将诸如企业应用之类的应用与使搜索能在该应用上执行的框架相集成的处理700开始于步骤704,其中框架与企业应用相接口连接。一旦框架与企业应用相接口连接,就在步骤708中创建适合于企业应用的服务接口或服务组件。服务组件允许动作被定义以便可以使用框架来访问企业应用。
创建了适当的服务接口或组件后,在步骤712中创建规范商业对象。规范商业对象被布置成定义数据,并可被存储在数据库或诸如元数据储存库之类的储存库中。在步骤716中,数据库中或Java类中存储的对象属性被映射到步骤712中创建的规范商业对象上。将对规范商业对象采取的动作在步骤720中被指派。指派动作可包括将搜索引擎指派给规范商业对象。
处理流程从步骤720移动到对规范商业对象进行语义描述的步骤724。然后,在步骤728中,可使用搜索引擎的爬取器来索引规范商业对象。索引规范商业对象可包括从企业应用中提取数据。规范索引对象被索引后,在步骤732中可以使用搜索引擎来搜索索引存储器。规范商业对象的语义描述被搜索引擎用来构建查询。一旦索引存储器被搜索,将企业应用与框架相集成的处理便完成。
参考图8,将描述由用户提供的搜索串的处理。图8是根据本发明的实施例的、例示了一种处理用户提供的查询的方法的处理流程图。处理用户提供的查询的过程800开始于步骤804,其中搜索列表被识别。换言之,存储于元数据储存库中的规范商业对象被选择以便在搜索中使用。规范商业对象被选择之后,在步骤808中输入搜索串。在一个实施例中,语义引擎可基于搜索串与给定类别有关这样的语义定义来确定。因此,语义引擎可将特定搜索串与特定规范对象相关联。举例来说,包含串“谁雇佣了John Doe?”的搜索串可由语义引擎关联到作为雇员的规范对象。
在步骤808中输入的搜索串通常由用户输入。一旦搜索串被输入,就在步骤812中使用搜索串来执行搜索。执行搜索包括有效地将搜索串转化成搜索引擎所理解的格式,然后将该格式转化成被从中获得结果的索引存储器理解的另一格式。
在步骤816中从索引存储器获得搜索结果。应该理解,索引存储器中的结果通常从被搜索的应用中获得。随后在步骤820中一个结果被点击或以另外的方式被选择以向用户提供对与该结果相关的应用的访问。应用被用户输入后,处理用户提供的查询的过程完成。
再参考图9,将根据本发明的实施例来描述建立和使用允许事务应用被搜索的基于搜索的应用框架的处理。当设计者924或开发者检查例如事务应用的应用928时,实现基于搜索的应用框架的处理开始。应用928可以被检查以确定应用928中什么样的信息对搜索可用。设计者924在检查应用928之后创建或注释对搜索可用的规范商业对象类别916。创建规范商业对象类别916一般需要创建规范商业对象。
一旦规范商业对象被创建,可以是可插拔搜索引擎的一部分的爬取器920便索引应用928以使应用928能被搜索。该爬取处理使爬取器920能使用规范商业对象的搜索工件来创建用于给定的规范商业对象类别916的索引。这些索引随后被爬取器920存储在索引存储器912中。
当用户希望搜索应用928时,用户可使用框架900的用户接口904来输入查询,例如自然语言查询。语义引擎908使用规范商业对象类别916搜索索引存储器912。在一个实施例中,语义引擎908可以有效地通过搜索引擎(未示出)间接地搜索索引存储器912。当使用索引存储器912发现适当的索引时,语义引擎908可将查询重定向到应用928。应该理解,在查询被重定向到应用928之前,查询通常首先被转换成搜索引擎所理解的格式然后被转换成应用928所理解的格式。
基于搜索的应用开发框架一般可针对数据库管理系统来实现。一个合适的数据库管理系统架构是图10所示的三层架构。处于数据库管理系统的核心的是存储数据库963或储存库的中央存储装置961。数据库963通常存储于一个或更多个硬盘驱动器上,并且通常是更大的计算机系统的一部分。信息可以以各种格式存储于数据库963中,关系数据库管理系统严重依赖于表格来存储该信息。数据库服务器965是与数据库963交互的程序的实例。除了其他特征以外,数据库965的每个实例可以独立地查询数据库963并在其中存储信息。
在某些实例中,数据库服务器965可不包括用户友好界面,如图形化用户界面。因此,至少一个应用服务器967可向数据库服务器965提供用户界面。举例来说,应用服务器967可以是因特网或任何其他网络上的网络应用服务器。应用服务器967可提供用于通过数据库服务器965来访问数据库963的用户友好机制。可以采用网络浏览器969来访问应用服务器967。
图11示出可实现本发明的实施例的计算系统中可能出现部件的框图。计算机系统971包括运行来自计算机程序的指令(包括操作系统)的处理器973。可以采用处理器973以允许例如语义引擎运行。虽然处理器973通常具有内存缓冲,但是处理器973可采用可存储指令或计算机代码和数据的存储器975。
固定存储装置977可存储计算机程序和数据。固定存储装置977通常是永久的,并且与内存975相比提供更多的存储装置。虽然应该理解固定存储装置977可以是任何适当部件,但是用于数据库的常见固定存储装置977是多硬盘驱动器。可移除存储装置979为其中存储的计算机程序和/或数据提供移动性。可移除存储装置979可包括但不限于软盘、磁带、CD/ROM、DVD、闪存设备等。
存储器975、固定存储装置977和可移除存储装置979提供可用来存储和检索计算机程序、本发明使用的数据等的计算机可读存储介质的示例,所述计算机程序结合了实施本发明的计算机代码或代码设备。另外,例如包括因特网在内的网络中的载波包含的数据信号也可以是计算机可读存储介质。输入设备981允许用户与计算机系统971相接口连接。输入设备981可以是键盘、鼠标、按钮、拨号盘或任何其他适当输入机制。输出设备983一般允许系统971向用户提供输出。输出设备983可包括但不限于诸如监视器、显示屏、LED、打印机或实质上任何其他输出机制之类的设备。
网络接口985通常允许系统971与它连接到的网络相接口连接。计算机系统971的系统总线架构由箭头987表示。图11所示的部件可以在很多计算机系统中找到。然而,在不脱离本发明的精神或范围的前提下,可以添加、删除或合并这些部件。例如,固定存储装置977可以是通过网络连接来访问的文件服务器。因此,图11用于例示目的而非限制目的。
虽然只描述了本发明的若干实施例,但是应该理解,在不脱离本发明的精神或范围的前提下,本发明可以通过许多其他具体形式来体现。举例来说,搜索引擎已被描述为关于本发明的架构可插拔。然而,作为替代,搜索引擎可以是该架构的固定或集成部分。
虽然作为事务应用的企业应用一般已被描述为适合于使用基于搜索的应用框架来搜索,但是被搜索的应用不限于事务企业应用。例如,非事务应用的企业应用或非企业应用的事务应用可以被搜索。
框架中可包含过滤器来使响应于搜索或查询而获得的更多结果被进一步搜索。例如,若搜索空闲职位的初始查询位于数据库开发的字段中,则可应用过滤器来去除与特定公司相关的所有职位或指定特定的底薪。
框架的部件一般已被描述为软件模块或使用计算机代码设备创建的模块。在不脱离本发明的精神或范围的前提下,在一个实施例中,框架的部件可以被实现为硬件模块或软件模块的组合,甚至实质上仅是硬件模块。
诸如服务组件之类的服务接口一般已被描述为包含在支持基于搜索的应用框架的架构中。如上所述,服务组件表示应用于对象上的动作。定义和提供服务的其他机制可以代替服务组件来实现。或者,应该理解,对于不希望使用从中获得搜索结果的应用的动作的实施例,服务组件不一定包含在基于搜索的应用框架中。
搜索可以被保存,以便一旦用户使用基于搜索的应用来执行搜索,为执行搜索而输入的文本便被保存用于今后的访问。类似地,搜索结果可以被保存,以使用户能够容易地访问搜索结果而无需执行另一次搜索。
一般地,与本发明的方法相关的步骤可以多种多样。在不脱离本发明的精神或范围的前提下,可以添加、移除、改变、合并或重排这些步骤。举例来说,虽然点击结果来进入被搜索的应用已被描述为获得查询响应时可能出现的动作,但是对一组响应采取的动作可以多种多样。在一个实施例中,客户动作被指派给相应的规范商业对象。客户动作可包括但不限于用于语义应用或者向语义应用所绑定的事务应用的转化的动作。因此,这些示例应被视为示意性而非限制性的,并且本发明不限于这里给出的细节,但可以在所附权利要求的范围内修改。

Claims (10)

1.一种使至少一个事务应用能被搜索的方法,所述方法包括:
创建定义与第一事务应用相关联的第一数据的第一规范对象;
创建定义与第二事务应用相关联的第二数据的第二规范对象;
使用所述第一规范对象的搜索工件来索引所述第一事务应用中包含的或为所述第一事务应用存储的第一数据以使所述第一事务应用能被搜索,其中所述第一数据来自所述第一事务应用;
使用所述第二规范对象的搜索工件来索引所述第二事务应用中包含的或为所述第二事务应用存储的第二数据以使所述第二事务应用能被搜索,其中所述第二数据来自所述第二事务应用;
使用与所述第一和第二规范对象相关联的信息来创建索引存储器,其中所述索引存储器存储所述被索引的第一和第二数据的索引;
将语义引擎与所述索引存储器相接口连接;
向所述语义引擎提供查询,所述查询具有第一格式,其中所述语义引擎被布置成将所述查询从所述第一格式转化成第二格式,所述第二格式与搜索引擎相关联;
使用所述搜索引擎来访问所述索引存储器;
确定与所述具有第二格式的查询相关联的结果是否在所述索引存储器中被指示;以及
显示与所述查询相关联的结果。
2.如权利要求1所述的方法,还包括将所述第一规范对象存储在元数据存储器中。
3.如权利要求1所述的方法,其中索引所述数据包括利用爬取器来爬取所述第一和第二事务应用以获得所述第一和第二数据。
4.如权利要求1所述的方法,还包括将搜索引擎与所述语义引擎和所述第一事务应用相接口连接。
5.如权利要求4所述的方法,其中所述将搜索引擎与语义引擎和第一事务应用相接口连接包括向所述搜索引擎提供评分器、爬取器、索引引擎和查询引擎。
6.一种用于处理查询的方法,所述查询被布置为请求与事务应用相关的信息,所述方法包括:
选择规范商业对象,所述规范商业对象定义与所述事务应用相关联的数据;
使用与所述查询相关的信息执行搜索,其中执行所述搜索包括利用被选择的规范商业对象以及存储所述事务应用中包含的或为所述事务应用存储的数据的索引的索引存储器,其中事先通过使用所述规范商业对象的搜索工件来索引所述事务应用中包含的或为所述事务应用存储的数据并且将索引存储在索引存储器中;
从所述索引存储器获得所述搜索的结果;以及
显示所述搜索的结果,
其中显示所述搜索的结果包括显示与所述搜索的结果相关联的链接,其中当用户选择所述链接时所述链接调用所述事务应用。
7.如权利要求6所述的方法,其中来自所述索引存储器的所述搜索的结果被显示而不调用所述事务应用。
8.如权利要求6所述的方法,还包括:
使用搜索的结果访问事务应用。
9.如权利要求8所述的方法,其中使用搜索的结果访问事务应用包括使用所述被显示的结果来访问所述事务应用。
10.如权利要求6所述的方法,还包括:
将所述信息输入到用户界面显示,其中所述从索引存储器获得搜索的结果包括在所述用户界面显示中显示所述结果。
CN200780019575.6A 2006-03-27 2007-03-27 基于搜索的应用开发框架 Active CN101454779B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/277,585 2006-03-27
US11/277,585 US7689580B2 (en) 2006-03-27 2006-03-27 Search based application development framework
PCT/US2007/065005 WO2007121050A1 (en) 2006-03-27 2007-03-27 Search-based application development framework

Publications (2)

Publication Number Publication Date
CN101454779A CN101454779A (zh) 2009-06-10
CN101454779B true CN101454779B (zh) 2014-06-11

Family

ID=38335739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780019575.6A Active CN101454779B (zh) 2006-03-27 2007-03-27 基于搜索的应用开发框架

Country Status (7)

Country Link
US (1) US7689580B2 (zh)
EP (1) EP1999660A1 (zh)
JP (1) JP5129804B2 (zh)
CN (1) CN101454779B (zh)
AU (1) AU2007238453A1 (zh)
CA (1) CA2647584C (zh)
WO (1) WO2007121050A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024235B2 (en) * 2006-06-21 2011-09-20 Microsoft Corporation Automatic search functionality within business applications
US7752207B2 (en) * 2007-05-01 2010-07-06 Oracle International Corporation Crawlable applications
US8504555B2 (en) 2008-06-25 2013-08-06 Microsoft Corporation Search techniques for rich internet applications
US8219572B2 (en) 2008-08-29 2012-07-10 Oracle International Corporation System and method for searching enterprise application data
US8296317B2 (en) * 2008-09-15 2012-10-23 Oracle International Corporation Searchable object network
US8335778B2 (en) * 2008-09-17 2012-12-18 Oracle International Corporation System and method for semantic search in an enterprise application
US8140556B2 (en) * 2009-01-20 2012-03-20 Oracle International Corporation Techniques for automated generation of queries for querying ontologies
US8214401B2 (en) * 2009-02-26 2012-07-03 Oracle International Corporation Techniques for automated generation of ontologies for enterprise applications
US20110191332A1 (en) * 2010-02-04 2011-08-04 Veveo, Inc. Method of and System for Updating Locally Cached Content Descriptor Information
US9665647B2 (en) * 2010-06-11 2017-05-30 Doat Media Ltd. System and method for indexing mobile applications
US10713312B2 (en) 2010-06-11 2020-07-14 Doat Media Ltd. System and method for context-launching of applications
WO2012034537A1 (zh) 2010-09-17 2012-03-22 百度在线网络技术(北京)有限公司 一种在线应用系统及其实现方法
WO2012054712A1 (en) * 2010-10-21 2012-04-26 Hewlett-Packard Development Company, L.P. Searching multiple data sources using a mobile computing device
US20120239381A1 (en) 2011-03-17 2012-09-20 Sap Ag Semantic phrase suggestion engine
US8527451B2 (en) 2011-03-17 2013-09-03 Sap Ag Business semantic network build
US8725760B2 (en) 2011-05-31 2014-05-13 Sap Ag Semantic terminology importer
US8825630B2 (en) * 2011-08-09 2014-09-02 Sap Ag Method and system for generic enterprise search adapter queries
US8935230B2 (en) 2011-08-25 2015-01-13 Sap Se Self-learning semantic search engine
US8745021B2 (en) 2011-10-18 2014-06-03 International Business Machines Corporation Transformation of complex data source result sets to normalized sets for manipulation and presentation
US9405780B2 (en) * 2012-03-12 2016-08-02 Oracle International Corporation System and method for providing a global universal search box for the use with an enterprise crawl and search framework
US9600530B2 (en) * 2012-04-27 2017-03-21 Quixey, Inc. Updating a search index used to facilitate application searches
US9201938B2 (en) * 2012-05-21 2015-12-01 Sap Se Parameter driven data format conversion in client/server architectures
US9552414B2 (en) 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
US9372884B2 (en) * 2012-06-14 2016-06-21 Microsoft Technology Licensing, Llc Extensible data query scenario definition and consumption
US9268462B2 (en) * 2012-08-14 2016-02-23 Google Inc. External action suggestions in search results
US9600351B2 (en) 2012-12-14 2017-03-21 Microsoft Technology Licensing, Llc Inversion-of-control component service models for virtual environments
JP6420311B2 (ja) * 2013-03-15 2018-11-07 ベウラワークス,エルエルシー. データ取り込みおよび該データへのユーザアクセス促進システムおよび方法
US9300986B2 (en) * 2013-03-15 2016-03-29 Apple Inc. Media system with canonical architecture for integrating media productions from different content providers
US9495444B2 (en) 2014-02-07 2016-11-15 Quixey, Inc. Rules-based generation of search results
US10395295B2 (en) * 2014-03-27 2019-08-27 GroupBy Inc. Incremental partial text searching in ecommerce
US20160034542A1 (en) * 2014-07-30 2016-02-04 Microsoft Corporation Integrating various search and relevance providers in transactional search
US9208200B1 (en) * 2014-11-01 2015-12-08 Veeva Systems Inc. System and method for reporting multiple objects in enterprise content management
US11210352B2 (en) 2019-04-16 2021-12-28 International Business Machines Corporation Automatic check of search configuration changes
US11436214B2 (en) 2019-04-16 2022-09-06 International Business Machines Corporation Preventing search fraud
US11403356B2 (en) 2019-04-16 2022-08-02 International Business Machines Corporation Personalizing a search of a search service
US11176134B2 (en) 2019-04-16 2021-11-16 International Business Machines Corporation Navigation paths between content items
US11403354B2 (en) 2019-04-16 2022-08-02 International Business Machines Corporation Managing search queries of a search service
US11244007B2 (en) 2019-04-16 2022-02-08 International Business Machines Corporation Automatic adaption of a search configuration
US10956430B2 (en) 2019-04-16 2021-03-23 International Business Machines Corporation User-driven adaptation of rankings of navigation elements
CN113641761A (zh) * 2021-08-20 2021-11-12 北京达佳互联信息技术有限公司 数据同步方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393423B1 (en) * 1999-04-08 2002-05-21 James Francis Goedken Apparatus and methods for electronic information exchange
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094649A (en) * 1997-12-22 2000-07-25 Partnet, Inc. Keyword searches of structured databases
US6968332B1 (en) * 2000-05-25 2005-11-22 Microsoft Corporation Facility for highlighting documents accessed through search or browsing
CN1802643A (zh) * 2004-04-02 2006-07-12 微软公司 用于行业应用程序集成的适配器框架
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393423B1 (en) * 1999-04-08 2002-05-21 James Francis Goedken Apparatus and methods for electronic information exchange
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system

Also Published As

Publication number Publication date
CA2647584A1 (en) 2007-10-25
CA2647584C (en) 2014-12-09
WO2007121050A1 (en) 2007-10-25
CN101454779A (zh) 2009-06-10
JP2009531791A (ja) 2009-09-03
US7689580B2 (en) 2010-03-30
US20070226242A1 (en) 2007-09-27
JP5129804B2 (ja) 2013-01-30
AU2007238453A1 (en) 2007-10-25
EP1999660A1 (en) 2008-12-10

Similar Documents

Publication Publication Date Title
CN101454779B (zh) 基于搜索的应用开发框架
KR101665152B1 (ko) 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체
US9128996B2 (en) Uniform data model and API for representation and processing of semantic data
US8296311B2 (en) Solution search for software support
US7673282B2 (en) Enterprise information unification
US8489474B2 (en) Systems and/or methods for managing transformations in enterprise application integration and/or business processing management environments
Frischmuth et al. Ontowiki–an authoring, publication and visualization interface for the data web
US8495510B2 (en) System and method for managing browser extensions
US20090077531A1 (en) Systems and Methods to Generate a Software Framework Based on Semantic Modeling and Business Rules
US9684699B2 (en) System to convert semantic layer metadata to support database conversion
US8260813B2 (en) Flexible data archival using a model-driven approach
JP2006012146A (ja) 影響分析のためのシステムおよび方法
US20080263142A1 (en) Meta Data Driven User Interface System and Method
US20090187552A1 (en) System and Methods for Generating Data Analysis Queries from Modeling Constructs
Roussopoulos et al. Conceptual modeling: Past, present and the continuum of the future
US20080263018A1 (en) Method and System for Mapping Business Objects to Relational Database Tables
Schmidt et al. Linguistic and architectural requirements for personalized digital libraries
Angelis et al. Generating and exploiting semantically enriched, integrated, linked and open museum data
Parsian JDBC metadata, MySQL, and Oracle recipes: a problem-solution approach
US20240095214A1 (en) Process & system for managing metadata in a hypergraph
US20240119045A1 (en) Systems and Methods for Intelligent Database Report Generation
Fisher et al. Linked lifecycle data–connecting distributed engineering data and harvesting its inherent value
Chen et al. Building 360-degree information applications
Thirifays et al. E‐ARK Dissemination Information Package (DIP) Final Specification
Carey et al. AL $ MONY: Exploring Semantically-Assisted Matching in an XQuery-Based Data Mapping Tool

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant