Source: http://www.patentsencyclopedia.com/app/20130238590
Timestamp: 2018-01-17 17:44:21
Document Index: 316849455

Matched Legal Cases: ['Application No. 61', 'Application No. 61', 'Application No. 61', 'Application No. 61', 'Application No. 61', 'Application No. 61']

SYSTEM AND METHOD FOR SUPPORTING HETEROGENEOUS SOLUTIONS AND MANAGEMENT WITH AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK - Patent application
Patent application title: SYSTEM AND METHOD FOR SUPPORTING HETEROGENEOUS SOLUTIONS AND MANAGEMENT WITH AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK
Inventors: Tulasi Kodali (Plainfield, NJ, US) Dj Vasant Ursal (Austin, TX, US)
Patent application number: 20130238590
Systems and methods for providing an enterprise crawl and search framework, including features such as use with middleware and enterprise application environments, pluggable security, search development tools, user interfaces, and governance. In accordance with an embodiment, the system includes an enterprise crawl and search framework which abstracts an underlying search engine, provides a common set of application programming interfaces for developing search functionalities, and allows the framework to serve as an integration layer between one or more enterprise search engine and one or more enterprise application. A computing environment can be used to display an administration interface for use in administering the framework.
1. A system including an enterprise crawl and search framework (ECSF) which includes support for heterogeneous solutions and management, comprising: an ECSF framework which abstracts an underlying search engine, provides a common set of application programming interfaces (APIs) for developing search functionalities, and allows the framework to serve as an integration layer between one or more enterprise search engine and one or more enterprise application; and a computing environment which can be used to display an administration interface for use in administering the ECSF framework.
2. The system of claim 1, wherein the administration interface can be used to configure that searchable objects be bound to search categories.
3. The system of claim 1, wherein the administration interface can be used to manage searchable object lifecycles.
4. The system of claim 1, wherein the administration interface can be used to configure other parameters associated with the ECSF framework and search engine instances, such as external search categories, index schedules, and other parameters.
6. A method for use with an enterprise crawl and search framework (ECSF), for providing support for heterogeneous solutions and management, comprising the steps of: providing an ECSF framework which abstracts an underlying search engine, provides a common set of application programming interfaces (APIs) for developing search functionalities, and allows the framework to serve as an integration layer between one or more enterprise search engine and one or more enterprise application; and providing a computing environment which can be used to display an administration interface for use in administering the ECSF framework.
7. The method of claim 6, wherein the administration interface can be used to configure that searchable objects be bound to search categories.
8. The method of claim 6, wherein the administration interface can be used to manage searchable object lifecycles.
9. The method of claim 6, wherein the administration interface can be used to configure other parameters associated with the ECSF framework and search engine instances, such as external search categories, index schedules, and other parameters.
[0001] This application claims the benefit of priority to U.S. Provisional Patent Application No. 61/609,644, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK", filed Mar. 12, 2012; U.S. Provisional Patent Application No. 61/609,684, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK", filed Mar. 12, 2012; U.S. Provisional Patent Application No. 61/609,698, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK", filed Mar. 12, 2012; U.S. Provisional Patent Application No. 61/621,405, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK", filed Apr. 6, 2012; U.S. Provisional Patent Application No. 61/ 659,843, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK USER INTERFACE", filed Jun. 14, 2012; and U.S. Provisional Patent Application No. 61/ 659,877, titled "SYSTEM AND METHOD FOR PROVIDING AN ENTERPRISE CRAWL AND SEARCH FRAMEWORK SECURITY", filed Jun. 14, 2012; each of which above applications are herein incorporated by reference.
[0008] As described herein, in accordance with an embodiment, the system includes an enterprise crawl and search framework which abstracts an underlying search engine, provides a common set of application programming interfaces for developing search functionalities, and allows the framework to serve as an integration layer between one or more enterprise search engine and one or more enterprise application. A computing environment can be used to display an administration interface for use in administering the framework.
[0011] FIG. 3 illustrates an administration tool, for use in supporting heterogeneous solutions and management in an enterprise crawl and search framework, in accordance with an embodiment.
[0012] FIG. 4 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment.
[0013] FIG. 5 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment.
[0014] FIG. 6 illustrates another example of an administration for use in managing an enterprise crawl and search framework, in accordance with an embodiment.
[0015] FIG. 7 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment.
[0016] FIG. 8 illustrates a method of providing an administration tool, for use in supporting heterogeneous solutions and management in an enterprise crawl and search framework, in accordance with an embodiment.
[0017] As described above, organizations have become increasingly interested in greater integration of their business content with their business processes, including the use of transaction processing systems or application servers, to deliver a higher quality of service in today's increasingly complex business environment.
[0018] In particular, today's enterprise search specialists are looking to several important aspects of enterprise searching for use with their systems, including:
[0019] Visibility into the search engine process, which requires that the search engine not only log search activity, but also provide on-board reporting of user interaction.
[0020] Greater control of the search process, which enables information technology and business analysts to control and bias the search algorithm when necessary, including the use of relevance weightings for particular classes of content, and determining how host repositories should be indexed.
[0021] Improved delivery of search solutions to end-users, including the use of flexible templates for quickly building and rebuilding search experiences, and management dashboards that enable administrators to write and test business rules, relevance weighting profiles, and the indexing process.
[0022] Scalability in the search engine architecture, including the ability to scale the architecture using low-cost hardware.
[0023] Search engine security, including the ability to perform security checks in the search engine at runtime (when a set of results is queried), at index time (while the indexer crawls the data source), and/or upon a user's search query at execution time, to ensure the user see only that to which they are entitled.
[0024] To address this, in accordance with an embodiment, described herein are systems and methods for providing an enterprise crawl and search framework (ECSF), including features such as use with middleware and enterprise application environments, pluggable security, search development tools, user interfaces, and governance.
[0025] In accordance with an embodiment, the enterprise crawl and search framework can be used with environments such as Oracle Fusion Applications and/or Oracle WebLogic application server, or other enterprise application and computing environments, to consolidate business content information, and enable transactional search in a business context.
[0026] In accordance with an embodiment, the enterprise crawl and search framework includes an open architecture that supports different types of search engine in a plug-and-play manner, e.g., the use of Oracle Secure Enterprise Search (SES) or another open source or proprietary search engine. An administrator can add, define, configure and change search engines; define repositories to be supported; and administer external repositories, such as defining their location, defining and configuring connectors, indexing external data, and defining parameters related to federated search.
[0027] In accordance with an embodiment, the enterprise crawl and search framework can support features such as searching across different objects that have 1:1,1:M, M:1 or M:M relationships with each other, as defined by the organization's business process; and the use of searchable objects, which allow users to control which objects can be exposed and made searchable.
[0028] In accordance with an embodiment which uses Fusion Applications, the enterprise crawl and search framework can be provided as part of an integrated environment that includes the framework itself; one or more search engines that provides the fundamental search capability that includes indexing, querying, and security; and a source system, such as a relational database, which stores searchable business content or other information.
[0029] In accordance with various embodiments described herein, some of the features and advantages of the enterprise crawl and search framework include:
[0030] Transparent integration of enterprise applications (e.g., Fusion Applications) with search engines, which minimizes development time and maximizes the user experience with search.
[0031] Code reuse, through the use of a well designed set of abstract classes, to reduce long design cycles.
[0032] Basic platform for developing search, which helps developers to grasp the conceptual flow of work easily.
[0033] Centralized process and control mechanism, which enhances search functionality.
[0034] Basic search functionality, which allows querying based on keyword and search categories.
[0035] Advanced search functionality, which allows querying based on keyword, search category, and attribute filters.
[0036] Faceted navigation, which allows filtering of search results based on attributes of business objects. For example, users can navigate a search result set based on a set of predefined facets, or dimensions; the system returns a list of facets and their associated set of available values with the search result; users can select a value for each facet, which is then submitted with the search query in order to narrow down the result set.
[0037] Actionable results, which are search results with action links associated with the searchable objects. From the search results, users can either go straight to the page displaying the record they selected, or they can invoke a specific task on a search result.
[0038] Saved searches, which allows saved search criteria for later use. Users can create new saved search entries, edit and delete existing saved search entries, and retrieve user-specified or public saved search entries.
[0039] File attachments, which allow the crawling of attachments associated with transactional objects or records, such as Fusion Applications transactional objects or records.
[0040] Crawling of searchable objects that contain appropriate tags.
[0041] Crawling of tree structures, which supports search functionality on those source systems which contain data organized in a tree structure (e.g., Oracle Business Intelligence).
[0042] Search support for external data sources, which allows querying against search groups that contain non-framework data sources, such as wiki pages and blogs, and which can be directly crawled by the search engine.
[0043] FIG. 1 illustrates an enterprise search environment 100 including an enterprise crawl and search framework 102, in accordance with an embodiment. As shown in FIG. 1, in accordance with an embodiment, the framework abstracts an underlying search engine, and provides a common set of application programming interfaces (APIs) for developing search functionalities, which allows the framework to serve as an integration layer between one or more enterprise search engines 120 (e.g., SES), and one or more enterprise applications 130 (e.g., Fusion Applications).
[0044] In accordance with an embodiment, the enterprise crawl and search framework includes a searchable object manager component 104, a search designer component 106, a runtime (e.g., managed bean, Mbean) component 108, a semantic engine component 110, a command line administration utility component 111, and one or more security service 112, data service 114, and query service 116. Each of the above components are described in further detail below.
[0045] In accordance with an embodiment, the enterprise crawl and search framework integrates with an enterprise search engine (e.g., SES), which provides capabilities for crawling and indexing metadata and objects exposed by the framework. In accordance with an embodiment, the enterprise search engine can include one or more security plugin component 122, crawler plugin component 124, and search federation component 126. Each of the above components are also described in further detail below.
[0046] In accordance with an embodiment, each enterprise application can include a search user interface (UI) 132, and an application repository 134.
[0047] In accordance with an embodiment, the enterprise search environment including the enterprise crawl and search framework can be accessed by a developer or another user using an application development framework 150 (e.g., Oracle JDeveloper); and by an administrator or another user using an administration system 152 (e.g., Oracle Fusion Applications Control, or Oracle Enterprise Manager).
[0048] In accordance with an embodiment, the searchable object manager component serves as a metadata manager, manages searchable objects, and provides the runtime interface for accessing these objects. At runtime, the searchable object manager loads searchable objects from persistent storage, validates the searchable object definitions, and provides the searchable objects to a crawlable factory component of the data service. In accordance with an embodiment, the searchable object manager is also responsible for the lifecycle management of the searchable objects, which allows administrators to deploy, customize, and enable or disable searchable objects via the command line administration utility component, or the administration system.
[0049] In accordance with an embodiment, the search designer component can be provided, e.g., as a page in JDeveloper, including an interface for defining metadata that describes the business objects to be indexed. A developer or another user can use this design interface to specify the security mechanism to be used to protect the data, and to define the searchable object search characteristics, which include advanced search, faceted navigation, and actionable results.
[0050] In accordance with an embodiment, the semantic engine component leverages the semantic information of searchable object definitions to create context around the search, by interpreting searchable object definitions with relation to the runtime user information during both crawl and query time.
[0051] In accordance with an embodiment, the administration system can be provided, e.g., as an Enterprise Manager extension that provides a user interface for registering searchable objects in the framework schema of, e.g., the Fusion Applications database, as well as for administering the runtime parameters of the framework, the target search engine, and the configuration of parameters.
[0052] In accordance with an embodiment, the command line administration utility component is a standalone command line interface that provides a user interface for registering searchable objects in the framework schema of, e.g., the Fusion Applications database. A developer, administrator, or other user can also use the command line administration utility to configure and administer the framework without external dependencies on the administration system.
[0053] In accordance with an embodiment, the security service component is responsible for providing security information to the search engine. During query time, the security service retrieves the security keys of the user performing the search, and passes those keys to the search engine, where they are used to filter the query results.
[0054] In accordance with an embodiment, the security service server component is also invoked during crawl time, to add security information (access control lists, ACL) to data before inserting or creating indexes on the search engine. An ACL identifies the users who can access an associated object, and specifies the user's access rights to that object. The ACL values generated by the security service during crawl time should match the corresponding keys generated during query time.
[0055] In accordance with an embodiment, the security service component is implemented as a security engine with a plug-in interface. The security plug-in determines the format of the ACL keys. For custom security models, a new/custom security plug-in can be implemented. In accordance with an embodiment, the security service can use, e.g., Oracle Platform Security for Java, to authenticate users and call the security plug-in to retrieve security values for a given searchable object.
[0056] In accordance with an embodiment, the data service component is the primary data interface between the enterprise crawl and search framework and the search engine. In accordance with an embodiment, the data service can use a proprietary Really Simple Syndication (RSS) feed format. In addition to supporting the flow of metadata between the framework and the search engine, the data service can support attachments, batching, and error handling.
[0057] In accordance with an embodiment, the data service authenticates each search engine crawl request by using, e.g., Platform Security for Java, to validate the user credentials and permissions for crawling the data source. A crawlable factory component, which is part of the data service, determines how searchable objects are broken down, and manages the construction of RSS feeds to the search engine.
[0058] In accordance with an embodiment, the query service component provides a search interface for the enterprise application's search user interface (UI), and handles all search requests. In accordance with an embodiment, the query service performs query rewrite, parameter substitution, and other preprocessing operations, before invoking the underlying configured search engine. Search results are also serviced via this service. Hooks can be provided to preprocess and postprocess data, which facilitates the capability to filter search results.
[0059] In accordance with an embodiment, the search engine component (e.g., SES) enables a secure, uniform search across multiple enterprise repositories. The enterprise crawl and search framework integrates with the search engine to provide full-text search functionality in enterprise applications (e.g., Fusion Applications).
[0060] Some search engines, such as SES, provide an API for writing security plug-ins or connectors, e.g., in Java, which allows a developer to provide a security plug-in to meet their requirements. In accordance with an embodiment, the enterprise crawl and search framework can interface with this security plug-in. The security plug-in invokes the security service to retrieve keys, to which the user has access, for filtering the results that are delivered to the query service. In accordance with an embodiment, a proxy user must be set up on the search engine in order to invoke the security service, and must have security privileges for the enterprise applications (e.g., Fusion Applications).
[0061] In accordance with an embodiment, the crawler plug-in component is a search engine module that implements the modified RSS feed format between the enterprise crawl and search framework and the search engine. In accordance with an embodiment, the crawler plug-in component deserializes data communicated by the framework, via the data service component, and interfaces with the search engine components that create the indexes.
[0062] In accordance with an embodiment, the search federation component provides support for the user of federated search engine instances.
[0063] FIG. 2 illustrates an enterprise resource planning or enterprise application environment which includes an enterprise crawl and search framework, in accordance with an embodiment. It will be evident that the environment illustrated in FIG. 2 is provided merely as an illustrative example of the type of environment that can utilize various embodiments of the invention, and that, in accordance with other embodiments, different environments can be used.
[0064] As shown in FIG. 2, in accordance with an embodiment, a business intelligence (BI) server environment 160, such as an Oracle Business Intelligence environment using WebLogic application server, can include a BI server 166, and a web services component 167, that provides access to a BI web catalog of business content, data, or other information 172.
[0065] In accordance with an embodiment, one or more BI applications 170 can include an enterprise crawl and search framework API 171, which allows a developer or other user 162 using an application development framework and/or administration system, to configure the BI application(s) to take advantage of the enterprise crawl and search framework, including leveraging the enterprise search engine 172, search instances 174, and search engine database 176, to provide full-text search functionality across the applications.
Support for Heterogeneous Solutions and Management
[0066] In accordance with an embodiment, a system including the enterprise crawl and search framework can include support for heterogeneous solutions and management.
[0067] FIGS. 3 -7 illustrate an administration tool, for use in supporting heterogeneous solutions and management in an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 3, in accordance with an embodiment, a computing environment 380 (e.g., a computer with a display and an administration tool, such as a Fusion Applications Control or an Enterprise Manager interface), can be used to display an administration interface 382.
[0068] In accordance with an embodiment, the administration interface can be used for configuring and administering the ECSF runtime server, managing the searchable object lifecycle, and synchronizing with the enterprise search engine (e.g., SES). ECSF also provides support for a command line administration option. The ECSF Command Line Administration Utility offers a command line interface, and has no external dependencies on products such as Enterprise Manager. An administrator can administer search by managing data sources and schedules and modifying data sources. In accordance with an embodiment, a developer, administrator or other user 370 can perform the following procedures to administer search:
[0069] Some enterprise applications (e.g., Oracle Fusion Customer Relationship Management, Oracle Fusion Human Capital Management, and Oracle Fusion Supply Chain Management product families) each has their own set of seeded searchable objects that are packaged into its corresponding search application. For example, the seeded searchable objects for Fusion Customer Relationship Management are packaged in the Fusion Customer Relationship Management search application.
[0070] Manage Index Schedules: An administrator or other user can perform the following tasks to manage index schedules:
[0071] Associate the Searchable Objects with Index Schedules: Associating searchable objects with an index schedule adds the objects to that index schedule. An administrator or other user can associate each searchable object with one index schedule.
[0072] Deploy the Index Schedules: Deploying index schedules pushes them to the enterprise search engine (e.g., SES) instance.
[0073] Start the Index Schedules: Starting an index schedule initiates the crawling and indexing of data.
[0074] Stop Index Schedules: Stopping an index schedule that has been started aborts the index process.
[0075] Disassociate Searchable Objects from Index Schedules: Disassociating a searchable object from an index schedule removes it from that index schedule and makes it available to be added to another index schedule.
[0076] Start Full Indexing: Full indexing is the process by which the search engine creates indexes from all crawled and indexable documents for a particular data source. In contrast, incremental indexing builds indexes on top of existing indexes.
[0077] Undeploy Index Schedules: Undeploying an index schedule removes it from the search engine instance. Only deployed index schedules can be undeployed.
[0078] Delete Index Schedules: Deleting an index schedule disassociates it from the search engine instance and removes its corresponding record, e.g., from the ECSF_INDEX_SCHEDULE table in the Fusion Applications database
[0079] Change the Association of Searchable Objects with Search Categories: Changing the association of searchable objects with a search category disassociates the searchable objects from the search category and or associates additional searchable objects with the search category.
[0080] Rename Search Categories: Renaming a search category changes the name of the search category.
[0081] Delete Search Categories: Deleting a search category disassociates it from the search engine instance and removes its corresponding record, e.g., from the ECSF_SEARCH_INDEX_GROUP table in the Fusion Applications database.
[0082] Make External Search Categories Available for Federated Search: External search categories are the registered search engine data source groups that contain external data sources (that is, data sources created using, e.g. SES administration). External data sources are not registered in the ECSF_SEARCH_INDEX_OBJECT table. They include data sources such as Intranet, mail, database, and federated data sources
[0083] Delete External Search Categories: An administrator or other user can delete individual external categories once they are imported, e.g., into the Fusion Applications database. Deleting an external search category removes its corresponding record, and will make it unavailable for querying.
[0084] Modify the Display Name of Deployed Searchable Objects: An administrator or other user can change a deployed searchable object's display name and application ID without first having to deactivate and undeploy the searchable object
[0085] Undeploy Searchable Objects: Undeploying searchable objects from the search engine instance makes the objects unavailable for the search engine instance to crawl. While undeployed, the searchable object is still associated with the search engine instance record and can be redeployed to the physical engine. When a searchable object is undeployed, any association to a search category or index schedule is removed.
[0086] Unregister Searchable Objects: Unregistering searchable objects removes the searchable object records, e.g., from the Fusion Applications database. Using Fusion Applications Control, an administrator or other user can remove records of searchable objects from the Fusion Applications database.
[0087] Modify Search Application Service Component Instance Parameters: An administrator or other user can modify the Search Application Service Component instance parameters to edit the query web service reference name and activate or deactivate the search application.
[0088] Modify the Title, Body, Keyword, and Action Title of Searchable Objects: An administrator or other user can customize searchable objects by changing the title, body, keywords, and search result action title using Fusion Applications Control.
[0089] Make New Searchable Objects Available for Search: New searchable objects are objects in addition to the set of transactional objects that are available out of the box.
[0090] The above-described examples of administrative procedures are provided for purposes of illustration. In accordance with other embodiments, other types of administrative procedures can also be provided.
[0091] FIG. 4 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 4, in accordance with an embodiment, the administration interface 385 can be used to configure parameters associated with search engine instances 386.
[0092] FIG. 5 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 5, in accordance with an embodiment, the administration interface 387 can be used to configure 388 search categories 390 associated with an enterprise applications database 389.
[0093] FIG. 6 illustrates another example of an administration for use in managing an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 6, in accordance with an embodiment, the administration interface 391 can be used to configure 392 that searchable objects 394 be bound 393 to search categories 390.
[0094] FIG. 7 illustrates another example of an administration tool for use in managing an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 7, in accordance with an embodiment, the administration interface 395 can be used to configure other parameters associated with the ECSF and search engine instances, such as external search categories 396, index schedules 397, and other parameters 398.
[0095] FIG. 8 illustrates a method of providing an administration tool, for use in supporting heterogeneous solutions and management in an enterprise crawl and search framework, in accordance with an embodiment. As shown in FIG. 8, at step 402, an enterprise crawl and search framework (ECSF) is provided for use with one or more enterprise applications and enterprise search engines.
[0096] At step 404, a computing environment (e.g., a computer with a display and an administration tool, such as a Fusion Applications Control or an Enterprise Manager interface), is provided which can be used to display an administration interface.
[0097] At step 405, the system receives an instruction from developer, administrator or other user, to perform one of a plurality of administrative procedures to administer search.
[0098] At step 406, the user communicates administrative procedures to the enterprise crawl and search framework (ECSF).
[0099] The present invention may be conveniently implemented using one or more conventional general purpose or specialized digital computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
[0100] In some embodiments, the present invention includes a computer program product which is a non-transitory storage medium or computer readable medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
[0101] The foregoing description of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art.
[0102] In particular, it will be evident that, although many of the examples described above illustrate the use of an enterprise crawl and search framework within an environment that includes an Oracle Fusion Applications enterprise application, and an Oracle Secure Enterprise Search enterprise search engine, in accordance with various embodiments, the enterprise crawl and search framework, and features and methods described can be used with other types of enterprise application, and other types of enterprise search engine.
[0103] The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
2012-01-19 System and method for partially deferred index maintenance