This disclosure relates generally to methods, software, and systems for browsing and accessing query search results using updateable graphical representations of search result files.
Users can perform searches and queries for information by entering search strings into a computer or other client device. Search queries may be received by a server type device or web application that processes the search string and carries out the search for results. Results may then be returned to the user on his or her computer or device.
In some embodiments, a computerized method for graphically displaying search results may be performed by a processor and comprise receiving a search for one or more files in the form of a search term from a client device. The search may be executed based on the search term by searching one or more databases corresponding to applications associated with the client device. In embodiments, one or more search results that satisfy the search term may be identified, and the metadata associated with the identified files may be processed to generate a thumbnail image of the search result based at least in part on the metadata for each of the one or more identified files. The thumbnails of at least a subset of the identified files may be provided to and displayed on the client device.
In some embodiments, a system for graphically displaying query search results may include a memory and at least one processor. The at least one processor may be operable to execute instructions to receive, at a server, a search query for one or more files in the form of a search term from a client device. The processor may execute a search based on the search term by searching one or more databases corresponding to applications associated with the client device. One or more files that satisfy the search term may be identified. In embodiments, the processor may process metadata associated with the identified files and generate a thumbnail image of the file based on the metadata for each of the one or more identified files. The thumbnails of each of at least a subset of the identified files may be provided to and displayed on the client device.
In some embodiments, a computer program product for graphically displaying query search results, which includes computer readable instructions embodied on tangible, non-transient media, is operable when executed to receive at a server a search query for one or more files in the form of a search term from a client device. The computer program product is operable when executed to parse and process the search term using a processor. A search based on the search term may be executed by searching one or more databases corresponding to applications associated with the client device. The computer program product may identify one or more files that satisfy the search term and process metadata associated with the identified files. A thumbnail image of the file may be generated based on the metadata for each of the one or more identified files, and the thumbnails of each of at least a subset of the identified files may be provided to and displayed on the client device.
In certain instances of the embodiments, the search results include one or more reports satisfying the search term, and the thumbnail image of the one or more identified results includes a representation of the one or more reports satisfying the search term.
In certain instances of the embodiments, the thumbnail images displayed on the client device may be updated by processing the metadata associated with the file and generating a new thumbnail. Upon a request from the client device, the new thumbnail may be displayed.
In certain instances of the embodiments, a request for access to a selected file may be received from a client device. Access rights associated with the client device may be processed to determine whether the client device has permission to access the selected file. In certain instances, if the client device has permission to access the selected file, the file is displayed on the client device.
In certain instances of the embodiments, the client device includes an application that is compatible with the file type associated with the selected file, and the file may be communicated to the client device. The application may be launched, and the file may be opened with the application. The file may be displayed on the client device using the application.
In certain instances of the embodiments, a browser plug-in that is compatible with the file type may be identified. In some instances, if the browser includes the browser plug-in, the browser may be launched on the client device and data associated with the selected file may be communicated to the client device. The selected file may be displayed to the client device on the browser.
In certain instances, if the client device does not include an application that is compatible with the file type associated with the selected file, a browser plug-in that is compatible with the file type may be identified. Whether the client device includes a browser with the plug-in may be determined. In some instances, if the browser includes the browser plug-in, the browser may be launched on the client device, data associated with the selected file may be communicated to the client device, and the selected file may be displayed on the client device on the browser. If the browser does not include the plug-in, a private network between the server and the client device may be established. A run-time emulation program may be communicated to the client device. A remote application on the server may be launched, the remote application compatible with the file type associated with the selected file. The file may be displayed on the client device.
In certain instances of the embodiments, a modified file may be received from the client device, the modified file including a modification to a selected file. The modified file may be stored, and the metadata associated with the selected file may be updated with information corresponding to the modification. In certain instances, the modification may be objective or subjective ratings or annotations to the file. In some instances, the modification may be modifications to the metadata based on statistical information concerning the ratings and/or relevancy of a file or file type based on the search query.
In certain instances of the embodiments, a touch-gesture indication may be received from the client device. The touch gesture may be processed by determining the operations associated with the touch gesture, and the operations may be executed. In some embodiments, the touch gesture may be a single touch gesture, or may be a multi-touch gesture.
In certain instances of the embodiments, the thumbnail image of the one or more identified files may display information contained in the one or more files satisfying the search term when displayed on the client device.
While generally described as computer implemented software that processes and transforms the respective data, some or all of the aspects may be computer implemented methods or further included in respective systems or other devices for performing this described functionality. The details of these and other aspects and embodiments of the present disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
This disclosure generally relates to displaying, on a display of a client device, one or more dynamically updateable or near real-time, interactive images representing the results of a search query. A user operating a device having a graphical display may enter a query for, as an example, reports that the user is interested in viewing and/or accessing for manipulation. The query, which may be a search string, is processed by evaluating documents and other file types within one or more repositories accessible by the user. The client device is provided thumbnail screen shot images of the documents or other files, which the user may select or click on to open, and view, and manipulate the document. The thumbnail screen shot may display or contain information about the file in graphical form for the user to view. This allows the user to see whether the file is of the type he or she is searching for, and may also provide sufficient information for the user to identify the precise document responsive to the user's query.
The images displayed on the client device may be live or up-to-date thumbnail images of the document or file that may represent the document or may represent the specific part of the document germane to the search query. The client display may show multiple of such thumbnails if more than one document or set of documents satisfies the query. The client device would continuously request updated information based on the query and the query results to update the thumbnail images displayed on the client device. For example, if the user were searching for a report, the system would search for reports across all accessible applications (i.e., the entire application space) matching the search criteria. Metadata associated with each report may be processed to derive information needed to display a thumbnail representative of the an image associated with, for example, a report or other application-specific file type. The thumbnail image of the report is displayed to the user. A user may then click on the thumbnail through the user interface (i.e., keyboard, mouse, touch-screen, etc.) to access the report. A single report may have more than one representative images, as indicated by the metadata. As such, reports having multiple options for thumbnail representations may be displayed as a stack of thumbnails, each stack being browsable by the user, and each thumbnail in each stack providing the user access to the corresponding section of the report. The reports may include annotations, which may be displayed to the user. For example, each thumbnail or stack may include a star rating. The star rating may indicate objective or subjective information about the report or stack to the user. In addition, annotations may represent the likelihood of relevance based on a comparison (i.e., statistical, historical) of the search query to the number of times a document is opened for that query or class of query.
Turning to the example implementation of
In general, the server 102 is any server that stores one or more hosted applications 114, where at least a portion of the hosted applications 114 are executed via requests and responses sent to users or clients within and communicably coupled to the illustrated environment 100 of
In the present implementation, and as shown in
Generally, the network 132 facilitates wireless or wireline communications between the components of the environment 100 (i.e., between the server 102 and the clients 135), as well as with any other local or remote computer, such as additional clients, servers, or other devices communicably coupled to network 132 (inclusive of elements not illustrated in
As illustrated in
At a high level, each of the one or more hosted applications 114 is any application, program, module, process, or other software that may execute, change, delete, generate, or otherwise manage information according to the present disclosure, particularly in response to and in connection with one or more requests received from the illustrated clients 135 and their associated client applications 144. In certain cases, only one hosted application 114 may be located at a particular server 102. In others, a plurality of related and/or unrelated hosted applications 114 may be stored at a single server 102, or located across a plurality of other servers 102, as well. In certain cases, environment 100 may implement a composite hosted application 114. For example, portions of the composite application may be implemented as Enterprise Java Beans (EJBs) or design-time components may have the ability to generate run-time implementations into different platforms, such as J2EE (Java 2 Platform, Enterprise Edition), ABAP (Advanced Business Application Programming) objects, or Microsoft's .NET, among others. Additionally, the hosted applications 114 may represent web-based applications accessed and executed by remote clients 135 or client applications 144 via the network 132 (e.g., through the Internet). Further, while illustrated as internal to server 102, one or more processes associated with a particular hosted application 114 may be stored, referenced, or executed remotely. For example, a portion of a particular hosted application 114 may be a web service associated with the application that is remotely called, while another portion of the hosted application 114 may be an interface object or agent bundled for processing at a remote client 135. Moreover, any or all of the hosted applications 114 may be a child or sub-module of another software module or enterprise application (not illustrated) without departing from the scope of this disclosure. Still further, portions of the hosted application 114 may be executed by a user working directly at server 102, as well as remotely at client 135.
The server 102 also includes memory 117. Memory 117 may include any memory or database module and may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable local or remote memory component. Memory 117 may store various objects or data, including classes, frameworks, applications, backup data, business objects, jobs, web pages, web page templates, database tables, repositories storing business and/or dynamic information, and any other appropriate information including any parameters, variables, algorithms, instructions, rules, constraints, or references thereto associated with the purposes of the server 102 and its one or more hosted applications 114. For example, memory 117 may store reports 118. Additionally, memory 117 may include any other appropriate data, such as VPN applications, firmware logs and policies, firewall policies, a security or access log, print or other reporting files, as well as others.
The illustrated environment of
Client device 101 may include a network interface 108. The interface 108 is used by the client device 101 for communicating with other systems in a client-server or other distributed environment (including within environment 100) connected to the network 132 (e.g., client 135, as well as other systems communicably coupled to the network 132, such as server 102 and server 102a). Generally, the interface 108 comprises logic encoded in software and/or hardware in a suitable combination and operable to communicate with the network 132. More specifically, the interface 108 may comprise software supporting one or more communication protocols associated with communications such that the network 132 or interface's hardware is operable to communicate physical signals within and outside of the illustrated environment 100.
Further, the illustrated client device 101 includes a user interface (UI) that, in embodiments, includes a graphical user interface 138 (GUI) operable to interface with at least a portion of environment 100 for any suitable purpose, including generating a visual representation of the client application 144 (in some instances, the client's web browser) and the interactions with the hosted application 114, including the responses received from the hosted application 114 received in response to the requests sent by the client application 144. In embodiments, host application(s) 114 or 114a-c may be graphically displayed on client device 101 through a web application or other emulation program. Generally, through the GUI 138, the user is provided with an efficient and user-friendly presentation of data provided by or communicated within the system. The term “graphical user interface,” or GUI, may be used in the singular or the plural to describe one or more graphical user interfaces and each of the displays of a particular graphical user interface. Therefore, the GUI 138 can represent any graphical user interface, including but not limited to, a web browser, touch screen, or command line interface (CLI) that processes information in environment 100 and efficiently presents the information results to the user. In general, the GUI 138 may include a plurality of user interface (UI) elements, some or all associated with the client application 144, such as interactive fields, pull-down lists, and buttons operable by the user at client 135. These and other UI elements may be related to or represent the functions of the client application 144, as well as other software applications executing at the client 135. In particular, the GUI 138 may be used to present the client-based perspective of the hosted application 114, and may be used (as a web browser or using the client application 144 as a web browser) to view and navigate the hosted application 114, as well as various web pages located both internal and external to the server, some of which may be associated with the hosted application 114. For purposes of the present location, the GUI 138 may be a part of or the entirety of the client application 144, while also merely a tool for displaying the visual representation of the client and hosted applications' 114 actions and interactions. In some instances, the GUI 138 and the client application 144 may be used interchangeably, particularly when the client application 144 represents a web browser associated with the hosted application 114.
In the implementation illustrated in
Returning to the client device 202, a set of soft keys and/or a software-based keyboard 235 may also be presented on the GUI 221a. These software-based inputs allow for application- and/or operation-specific buttons and inputs to be presented in a particular application or operation context. For instance, an interactive form may include a “finish” button that is only provided when the application is in process or is completed. The soft keys and software-based keyboard 235 can be located in a particular position on the GUI 221a, or may be moveable around the GUI 221a through touch gestures. Furthermore, some applications and software may have buttons embedded or included within the application window 144a, which can be activated through a touch gesture in the appropriate location on the touch screen 221. In one example, a software-based keyboard 235 may be hidden during web browsing until a text box or other text-based input is needed or requested.
Touch device 202 may run query search applications that permit the user to enter search strings into, for example, input search bar 230. Processor 204 may process the search string or may transmit the search string over network 132 to server 102 for processing in processor 104 (shown in
Upon completion of a search, touch device 202 may display thumbnails 250 or stacks of thumbnails 252 on GUI 221a, as illustrated in
For example, if a user enters a search string “financial reports for 1991,” the system may search through the entire application space associated with the user and return on the display graphical representations (thumbnails) of the file types it finds. If a user opens a particular file type, the system may associate the search string with that file type, the file data, and/or the file metadata. The system may then annotate the file to generate relevancy percentage ratings based on an aggregation of statistical data for that file type. In embodiments, the system may count the number of times a particular file is opened and associate that file with the search string resulting in its display. The system may return the same file type based on multiple search strings. Thus, a relevancy percentage may permit the user to refine the search to more accurately locate particular file types. In embodiments, the system may also be a semantic system. A particular file type may be returned with a higher relevancy based on the frequency a user enters a particular search string. Or the system may decline to return a particular file based on the user failing to open the file type and re-entering a different search string. Permutations of this semantic architecture are contemplated by this disclosure and would be readily apparent to those of skill in the art.
In embodiments, touch or multi-touch gestures may be used to browse through stacks of thumbnails 252 or to zoom in onto a region of interest in the results screen to view multiple thumbnails in closer perspective to see more detail. Displaying interactive and updatable thumbnails representing search results permits a user to preview, browse, and/or access particular files and file types without having to open files, resulting in more efficient searching. In addition, thumbnails 250 may be representative of reports generated based on data resulting from the search query.
The thumbnails 250 are generated by the application server corresponding to the file or by the processor that accesses and/or displays the thumbnail to the user. The thumbnail is generated by processing metadata of the file. The metadata permits the thumbnail to represent the file graphically while also providing the user with the actual data that is presented in the file. For example, a report that presents a pie chart to the user would include metadata providing information about the pie chart that would allow the processor to reproduce that data in thumbnail form. Other information may be reproduced in a similar manner or by any manner known to those of skill in the art. For example, text, such as headings or titles, images, graphs, spreadsheets, or any other data or information that is available and displayed visually to a user may be reproduced in the thumbnail. Likewise, the thumbnails 250 may display the user interface (i.e., graphical user interface) for the resulting file type. For example, if the user is browsing for a form or set of forms, the thumbnail may show the user the user interface for the form or for the form type he or she is searching for.
Further, the system may update the thumbnail by reprocessing the metadata or other data and adjust the thumbnail according to any changes to the visual representation of the file. For example, if another user changes the title of the document, the system would update the thumbnail to show such a change. The refresh rate for the thumbnail images (not to be confused with any refresh rates for the display itself) may be at a predetermined interval. Such an interval may be determined by the user or by an administrator or by other means. Refresh rates may be unique to each server and/or file type displayed. For example, refresh rates may be based on statistical data indicated by the frequency of use for a particular file or file type.
Thumbnails 250 are updated and display up-to-date information to the user. Opening the file also displays up-to-date information. After running a search and displaying one or more thumbnails 250, the client device may continuously request updates for the files displayed on the display of device 202. As such, the thumbnails are refreshed based on the timing of changes to the file. Such changes may include deletions, additions, color changes, analytical or statistical updates, or any other alterations to the data associated with the file type.
Returning to the block diagram of the environment 100 in
While
The following paragraphs provide an example of how the system, methods, and software of the present disclosure may perform searches across an application space, which was described in SAP Patent Application 2007/0027876 filed Jul. 29, 2005, incorporated by reference herein. A business information system can improve an organization's ability to monitor and manage data in a complex business environment. A business information system, such as the SAP Business Intelligence (“BI”) systems offered by SAP AG of Walldorf, Germany, provides components and tools that allow users to retrieve, view and manipulate data from a number of different sources. Some items of data may be from internal sources (e.g., such as a company's internal database), while others may be from external or third-party sources. As used herein, a company's “internal data” is data that is stored and maintained as part of the company's overall business intelligence solution. Some of the data, for example, may be associated with a “data warehouse” (generally referred to herein as a “business warehouse” or “BW”). The BW may be a combination of business information stored in a variety of ways, including in a relational database, in memory databases, in data storage areas remote from the enterprise application systems and in virtual data sources (such as ad hoc data generated from business coding in the BW). As used herein, “external data” is data that is not processed or maintained by the analytical engine of the business information system.
A BW may include preconfigured data formats and conventions. As a result, it is relatively straightforward to query, view, and manipulate “internal data”. It can be more difficult, however, for a business information system to process requests, queries, or other interactions with external data or data from external data sources or other applications. For example, external data is typically formatted or configured differently from the internal data. One example of a type of transaction which is made more difficult by the need to access both internal and external data is the execution of a query to retrieve specified data. Business information systems typically provide some capability for users of the system to submit a query to retrieve and view data.
A “query view” is a definition of desired data, including a definition of what data to look for and how to arrange and format the data. The query view represents all of the settings an end user client application requires to provide the data to the end user. For example, a query view typically includes restrictions (or filters) that are applied to the data to be accessed. Specific illustrative examples are: product lines, company names, customer groups, fiscal year, distribution regions, product costs, product quantities, revenues, dates, etc. Data filters may be applied to further limit the result data. For example, result data can be filtered to identify illustrative features such as: the customers having revenue greater than 1 million dollars, the top 10 customers according to revenue, the customers having actual derivation to plan of greater than 5%, etc. Query views may further include visualization settings to more efficiently display and format retrieved data. For example, visualization settings may include traffic light reporting or calculations based on the retrieved data (such as ranking calculations), or the like. By providing such settings, the retrieval of data becomes more efficient and focused to a user's particular needs.
In existing systems, a query is generally executed by a query application (the “called application”) which is called by another application (the “calling application”) that will analyze the retrieved query data and add client applications on top of the retrieved query data. The query view is generally defined in a format native to the calling application rather than to the called application. As such, the calling application must include a translator to convert the query view into a format native to the called application. Such an approach, however, can become cumbersome, particularly when there are several different applications in a business information system that include query views, since each application has to have its own translator. In this case, a developer must know how to translate query views from each application's format to the format of the called application and then create all the translators. This is costly and time-consuming.
Some systems use Microsoft XMLA for data retrieval. However XMLA/MDX only describes the data retrieval part in a structured query language (SQL)-like manner. Therefore, calling applications typically have their own model on top of it and generate XMLA/MDX for data access based on their model. The generation of XMLA/MDX may be complicated, because XMLA/MDX is generic and geared toward academia and many business questions result in very complex MDX code (where MDX is the query language of XMLA/ODBO). Concepts such as traffic light reporting, currency translation, complex currency and unit handling, or inactive parts of the definition are missing completely. These features have to be enhanced (if possible) by the calling application.
In embodiments, an information provider model and architecture are provided that allow different information sources to easily interface with and supply information to a business information system. In embodiments, the details about different information providers, including details about the information provider's data formats and content, are hidden from a user of the system. In embodiments, information providers are not forced to comply with the business information system's format, features or terminology. Instead, embodiments allow information providers to simply notify the system of the provider's data model and capabilities. A consumer services layer associated with the system operates to enrich or enhance the provider data to provide additional features such as exception reporting, list calculation, or the like.
For convenience and ease of exposition, a number of terms are used herein to illustrate features of embodiments of the present invention. For example, the term “metadata” is used to refer to data used to describe the contents of a data warehouse or other data source. In general, as used herein, the term metadata refers to data that is not changed by a query or view of the data and is defined by the data source. For example, “metadata” can include business objects such as customers, products, and sales events, or business events (sales orders, purchase orders) or status information (stock values, head counts). Metadata provided by a data source may include information defining the specific characteristics or attributes the metadata item supports.
The metadata of the business information system which will be used to illustrate features of the present invention describes a model of data objects (the “internal data”) that includes: InfoProviders, Queries, InfoObjects (typically characteristics or their display attributes or hierarchy node types) and their members, hierarchies, levels, etc. “External data” providers map their internal metadata to the same metadata model without much (or any) loss of information, because the metadata model is very powerful.
“Characteristics” are types of “InfoObjects” that are used to describe the objects dealt with in business processes. A characteristic can be anything from company codes, products, customer groups, fiscal year, period, or region and provide classification possibilities for a dataset. An InfoProvider generally consists of a set of characteristics. The master data (or info object members) includes the permitted members for a characteristic, referred to as a “characteristic member.” Characteristic members are discrete objects with a unique name (within the info object). As an illustrative example, the characteristic “region” can have the following members: “north,” “south,” “central,” etc.
The description of a characteristic may include “hierarchies.” For example, a characteristic may have a presentation hierarchy assigned to it which is used to structure the members of a characteristic in a hierarchical way. A hierarchy usually has more than one level and the structuring nodes may be info object members of the characteristic itself (bookable nodes), info object members of another info object (to reuse the master data), or may be simple text nodes (special info object in case of BW as a data source). A hierarchy may not be necessarily balanced (where all branches end at the same level) or leveled (where all members on a certain level are derived from the same info object). It is even possible to have no unique nodes that are used multiple times in the hierarchy. Even so, the hierarchy may not be leveled, as the levels may have assigned a language-dependent text.
The “nodes” (including the leaves) of a hierarchy are associated with a node type. The node type provides the reference to the info object to which the node belongs and provides means to describe what presentation type that node should be used with and what attributes are needed (e.g., for presentation in a pivot table or in a chart or for formatted reports).
Pursuant to some embodiments, a consumer services layer is provided to provide access to external and internal data in a more client-oriented manner. Embodiments allow client-oriented features, such as exception reporting (e.g., traffic light reporting) and calculations on a display list, at the consumer services level. Other features such as currency conversion and special types of hierarchies can be described with embodiments disclosed herein.
The back-end application 420 may have access to internal data, or, as shown, business warehouse data 430. The application 420 may also have access to external data, or, as shown, data from one or more information providers 440a, 440b. Pursuant to some embodiments, the back-end application 420 retrieves data from information providers 440a, 440b through the use of consumer services in communication with provider services associated with each of the information providers. These services are not shown in
The system 400 also includes a front-end application 410 that may be accessed by a user. Note that the front-end application 410 may be remote from the back-end application 420 (e.g., the two applications 410, 420 may communicate via a communication network such as the Internet).
The front-end application 410 might be, for example, a spreadsheet application such as the Microsoft Excel spreadsheet program, or a Web server based application for Web clients or any other technology that needs to access BI data for client-like operations. A user may access the front-end application 410 to request particular information, in a particular format, from the back-end application 420. For example, the user might generate a request or “query” asking for weekly inventory information from a number of different regions over the last year. After the data is retrieved by the back-end application 420, it may be formatted as a report and displayed to the user via the front-end application 410.
As one example embodiment, the front-end application 410 is the SAP BI Business Explorer available from SAP AG. The Business Explorer provides a user interface allowing a user to define and submit desired queries and reports using a Web HTML client or a Microsoft Windows client.
The system 500 also includes a back-end 550 which may store, access and process business information. The back-end 550 might include, for example, one or more consumer services (e.g., consumer query views) 560 to import business data into the system 500 (e.g., external data from one or more information providers). The consumer services 560 allow the tools from the front-end 502 to work with data from information providers and access the data in a unified way for different information providers or sources of data. As will be discussed further below, the consumer services 560 provide client/application-like access to the provider data. Further, the consumer services 560 provide enhanced services, allowing detailed exception reporting, list calculation, document integration, and other services typically unavailable when retrieving data from external or foreign data sources. The consumer services 560 expose an application programming interface (API) that describes the data in each request and provides easy access to the data in the result set. For example, the consumer services 560 may be implemented as a Java. API, although those skilled in the art will appreciate that other languages or conventions may be used.
The consumer services 560 provide queries to and receive result sets from one or more provider services 564a-n. Pursuant to some embodiments, each information provider is associated with a provider service 564. Each provider service includes a provider API that a provider has implemented in order to interface with the consumer services 560. Pursuant to some embodiments, the provider services 564 may be implemented as a Java. API, although those skilled in the art will appreciate that other languages or conventions may be used.
The back-end 550 might also include one or more storage services 554 that store and archive business information. For example, the storage services 554 might provide access to different data targets available in the system 500, archive dormant data, and/or manage relational or multi-dimensional databases. One or more analysis and access services 556 might also be provided in the back-end 550. Such a service 556 might, for example, facilitate an analysis of structured and/or unstructured information stored in the system 500 and may include a data-mining engine. In addition, the back-end 550 may include one or more presentation services 558 to provide different ways of presenting information to an end user. According to some embodiments, the presentation service 558 might include a query design engine, a formatting engine, and/or an Extensible Mark-up Language (XML) interface (e.g., to provide data via a Web portal).
In embodiments, one or more “metadata” services 552 are also provided at the back-end 550. In general, as discussed above, meta-data may refer to, for example, information about business data that is distributed across a landscape of a system's architectural components (e.g., describing what data resides where). The meta-data service 552 might, for example, store meta-data and handle requests to retrieve, add, change, or delete the meta-data. Furthermore the meta-data service 552 might provide uniform information (that can be customized system wide by the user) on how special values, such as division by zero or undefined currency/unit aggregation, should be prepared for presentation in order to guarantee homogeneous presentation of all sources.
The process of
Processing continues at 604 where the system identifies an information provider associated with the data request. That is, the data request or query view may require the retrieval of data from one or more external information providers. Processing at 604 includes identifying this situation and identifying the relevant information provider. Processing continues at 606 where the system passes the data request to the information provider via a consumer services interface using a selection object and a query view object. The use of these objects will be described further below. In general, however, the selection object and query view object are used to obtain access to the different kinds of data made available by different information providers and to extend the basic selection information with additional data features such as key figures, axes, conditions, and exceptions that are needed for data access.
Processing continues at 608 where the system receives a result set from the information provider and provides the result set to the front-end portion of the system (e.g., for display to the user). When a provider receives the selection and query view information via its provider API, it performs any OLAP processing needed to generate the result set and passes the result set back to the consumer services interface via the provider API. The consumer services interface then enhances the result set with consumer methods and attributes and performs client functions such as list calculation, exception reporting, and document integration, on top of the provider result set. The enhanced provider result set is then presented to the front-end as a consumer result set for use by the user. Pursuant to some embodiments, the result set is closely linked to the query view and generally cannot be interpreted without the query view. To ensure this linkage is maintained during a query, a state of the query view must be in synch with a state of the result set. If a state change occurs in the query view (e.g., the user attempts to perform some navigation within the results), the result set is automatically invalidated.
If the system determines that the user has permission to access the file, the client device may display the selected file based on the compatibility of the applications stored on the client device with the selected file type. In embodiments, the system may determine whether the client device applications are compatible with the file type selected [806]. If the client device can execute a compatible application [808], then the system provides the file to the client device and executes the application [810-812]. If the client device does not have a compatible application, the system may check whether the client device includes a browser with a compatible plug-in to view the selected file [816]. If the client device has a browser with a plug-in or similar software application, the selected file may be displayed to the user on the client device's browser. If the browser does not have a plug-in, the system may indicate such and indicate to the user that a plug-in is available. In embodiments, a private network or virtual private network may be established between the client device and the server. The server may launch an application on the server side to open the program and communicate the file information over a virtual network [814]. The file may then be viewed on the client device either through the browser or over the virtual network [818].
Although this disclosure has been described in terms of certain implementation and generally associated methods, alterations and permutations of these implementations and methods will be apparent to those skilled in the art. For example, the actions described herein can be performed in a different order than as described and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous. Other variations are within the scope of the following claims.
This application claims the benefit of U.S. Provisional Application No. 61/334,924 filed May 14, 2010, the entirety of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61334924 | May 2010 | US |