The invention generally relates to business intelligence reporting on computing devices.
Business Intelligence (BI) generally refers to a category of software systems and applications used to improve business enterprise decision-making and governance. These software tools provide techniques for analyzing and leveraging enterprise applications and data. These tools are commonly applied to financial, human resource, marketing, sales, service provision, customer and supplier analyses. More specifically, these tools can include: reporting and analysis tools to analyze, forecast and present information, content delivery infrastructure systems for delivery, storage and management of reports and analytics, data warehousing systems for cleansing and consolidating information from disparate sources, and integration tools to analyze and generate workflows based on enterprise systems. BI tools work with data management systems, such as relational databases or On Line Analytic Processing (OLAP) systems used to collect, store, and manage raw data and transactional enterprise systems that generate data.
Reporting tools and other business intelligence applications allow a user to explore business data by consolidating raw data from disparate sources, performing calculations on the data (e.g., aggregate, subtract, etc.) and specifying various views of the underlying data (e.g., specifying various dimensions and measures along which they would like to dissect data). In addition to having wide control over how to manipulate raw data to view the exact dimensions and measures of interest, business users want to be able to display reports whose underlying data can change based on contextual information.
Contextual information can take many different forms. It could be geographic (e.g., user location, location of an object of interest), some information descriptive of natural conditions (e.g., temperature in a warehouse) load or capacity utilization of a resource (e.g., number of persons in a convention hall, number of workers in a factory) and the like. Change in such contextual information can influence what data a user is interested in seeing, and in what form, on a BI application. However, interjecting such contextual information into reports today requires a manual intervention by the user. Thus, there is a need to automatically integrate the contextual information into BI reports.
Disclosed are methods and systems to generate a BI report for displaying it on a client computing device according to contextual information. A context update message is received from a context acquisition module through one or more software interfaces. The context update message includes a contextual type for identifying the contextual entity at least in part in a business object, which defines the BI report and a change in the contextual information for updating the BI report. The BI report is updated by updating the contextual entity based on the change in contextual information provided by the context update message. The updated BI report is transmitted to a display of the client computing device.
In an embodiment, when a user loads a BI report or demands a BI report refresh, based on the contextual information received from the contextual acquisition module, the contextual entity is identified for calculating the BI report data. The BI report is generated based on the change in the contextual information.
Additional features and advantages will be made apparent from the following detailed description of illustrated embodiments, which proceeds with reference to the accompanying drawings.
A better understanding of embodiments of the invention are illustrated by examples and not by way of limitation, the embodiments can be obtained from the following detailed description in conjunction with the following drawings, in which:
Semantic layer is an abstraction layer that allows access to data without knowing the underlying source. A universe is a specific form of a semantic layer that is a partial or total representation of the database, designed for a particular application or group of users. A universe contains a set of business objects composing a representation of data for a group of users sharing the same vocabulary. A business object is a user based representation of data.
The universe contains a number of business objects, each business object generally includes references to entities of the underlying semantic layer and may also contain formulas for report calculations. The business objects are used by BI applications. BI generally refers to software tools used to improve business enterprise decision-making. These tools are commonly applied to financial, human resource, marketing, sales, customer and supplier analyses. More specifically, these tools can include reporting and analysis tools to present information, content delivery infrastructure systems for delivery and management of reports and analytics, data warehousing systems for cleansing and consolidating information from disparate sources, and data management systems to collect, store, and manage raw data.
Common computational operations in a BI system are querying and filtering operations. Queries are used to create, modify, retrieve and manipulate data in a data source, such as, a database, a data warehouse, a plurality of reports, and the like. A filter is a condition used to limit information retrieved from a data source to a subset of the whole result of an unfiltered query. Filters are usually expressed in the form of a logical expression that states the condition. Often, users of BI tools are interested in limited subsets of records in a data source, so filtering operations are common. Filtering transforms the data into a small set of information making it suitable for analysis.
A report refers to information retrieved from a data source (e.g., a database, a data warehouse, and the like), based at least on raw data returned as part queries. Reports may be generated by applying data analytics operations to manipulate the raw data and the visualization of analytical data according to report schemas. Business objects can be used to specify the queries including the filters and the report schema thus enabling structuring of such reports using simple terms. In fact, there are BI applications that allow business objects to be dragged and dropped into the applications to create reports. One factor that could affect the data represented in the reports could be contextual information.
The contextual information that can affect a report can be in many different forms depending on the type of data represented in the report. For instance, a Global Positioning System (GPS) enabled sensor on a mobile device could supply location coordinates as contextual information to influence a report that relies on geography as one of its filter conditions. Similarly, radio frequency (RF) enabled temperature sensors could transmit temperature data as contextual information to a report influenced by temperature data. In one embodiment, the contextual information can be modeled as an entity of the semantic layer comprising details about the parameters of a context of user's interest. A business object may be defined by using a column or a field of the contextual entity, such kind of business object is known as contextual business object. For instance, the contextual business object can be used as a filter object to specify filtering criteria in a query. The contextual entity column or field could also be used to create a measure or a dimension type business object.
The business objects can be used as a filter. When business objects are partial or total representation of a contextual entity field or column, a contextual filter is applied to filter the BI report based on the contextual information provided by a context acquisition module. Filters are applied to the data set via queries (e.g., Structured Query Language (SQL) queries and Multidimensional Expressions (MDX) queries) based on the user's context. The business objects can also be measures. When business objects that are partial or total representation of a contextual entity field or column defined as measures are applied to the BI report, a report calculation has to be performed. The contextual business objects can also be dimensions. When business objects that are partial or total representation of a contextual entity field or column defined as a dimension are applied to the BI report, the cube sides, categories, columns or data sets are specified using the contextual data. In one aspect, the BI report is displayed to a user based on the contextual data provided by the contextual business objects. Disclosed herein are methods and systems to display a BI report according to the contextual information of the user, without manual intervention of the user in identifying the contextual information influencing a BI report.
The semantic layer 205 defines the data entities and their relations using a schema based on the data source metadata. The semantic layer 205 exposes business objects that can be used by a business user. The business objects are defined using tables metadata and can contain calculations. The semantic layer 205 also includes tables defining attributes, metadata based on an entity relationship model, dimension, measure, detail, stream adapter metadata, event driven universe metadata. The semantic layer 205 also includes contextual entities, which are used for creating contextual business objects.
A user can define a query in the query technique engine 210 based on business objects. When the user defines a query, business objects having measures and dimensions associated with the user-defined query are retrieved from the semantic layer 205. The business objects allow a user to create queries based on a representation of semantic layer 205 designed by an administrator. In an embodiment, an ordinary business user defines a business query. The defined query is transmitted to the report engine 215. As discussed above, contextual data can be supplied to the query technique engine 210 and the report engine 215, for instance, to create and generate a contextualized BI report 225. The contextual data, in one embodiment, could come from context acquisition module 120 such as a sensor, sensing contextual information such as temperature in a warehouse, GPS location and so on. In one embodiment, the client computing device 115 could be a mobile device and the mobile device itself could also house the context acquisition module 120 for sensing the contextual information, which may be related to the surroundings or the current location of the mobile device. In another embodiment, the user enters the contextual information manually.
In one embodiment, client computing device 115 comprises software interfaces operable for communicating with the report engine 215 to supply the contextual information. The contextual information may be added as a contextual entity into an existing semantic layer 205. The contextual identifier (ID) and the contextual value form the contextual metadata that can be used to define the contextual entity in the semantic layer 205. For instance, the contextual information obtained through a context update message could comprise a contextual type that can be used to identify which of the business objects are corresponding to the contextual entity. The contextual business object could be used to filter a BI report 225 in order to change the report data based on new contextual information provided by the context acquisition module 120 without any user intervention. The contextual business object could also be used as measures in report calculations and thus, any changes in the contextual information would be reflected in the BI report data as well. The query technique engine 210 acquires the contextual information parameters related to the query from the semantic layer 205. The query technique engine 210 receives the contextual IDs and contextual values as parameters. At the report engine 215, contextual data corresponding to the contextual IDs and contextual values is determined by matching the contextual type with the contextual business objects that are used in the query. In response to the execution of the query, a result data stored in the data warehouse 220 relevant to the query is retrieved. The result data stored in the data warehouse 220 may be the name of a recipient, an address of delivery, contact details of the recipient and so on. At the report engine 215, the result data is retrieved from the data warehouse 220 and is used to generate the BI report. The contextual data used in execution of the query will be based on the contextual information obtained in the most recent context update message. The report engine 215 transmits the result data to the BI report 225. The BI report 225 is updated with the result data. The updated BI report is displayed on the display 230 of the client computing device 115. Thus, the contextual business object automatically fills in report prompts or report parameters without any user intervention.
In an embodiment, the query defined in the query technique engine 210 includes specifying a filtering condition as a part of the query to filter the data of the BI report. For example, if the business user intends to filter the query by geographical location, the filter would be specified in the query using the contextual business object. When the context acquisition module 120 acquires contextual information like the geographical location, the client computing device sends the geographical location along with the contextual ID to the report engine 215. The query technique engine 210 will generate a query containing contextual ID, contextual value and filtering condition based on a geographical location and transmits the query to the report engine 215. The query is executed at the report engine 215. In response to the executed query, the data warehouse 220 looks up for the data associated with the query. The result data filtered based on the geographical location is obtained from the execution of the query. This result data is used to update the BI report 225. The BI report 225 is transmitted to the client computing device 115. The BI report 225 is displayed to the business user.
In another embodiment, the query defined in the query technique engine 210 includes report calculations. For example, if the business user intends to calculate deviation in the temperature, the calculation would be specified in the query itself. The contextual business object applies other business objects meant for report calculations. The report engine 215 executes the query with contextual ID, contextual value and parameters related to calculate the temperature deviation at the report engine. A result data is generated at the report engine 215. The BI report 225 is updated with the result data and is displayed on the display 230 of the client computing device 115.Those of ordinary skill in the art will recognize that the functionality on the server computing device may be spilt across a plurality of server computing devices.
Referring to
In an embodiment, the contextual information is automatically identified. For automatic identification of the contextual information, a contextual information type is provided by a contextual provider application, and specified within the semantic layer 205. This links the contextual business object and any other business objects that are based on the contextual entities. The contextual entities can be identified using query technique algorithms, at the design time level (e.g., during an entity addition to an existing semantic layer definition) and runtime level (e.g., when replacing the contextual entities fields with the effective contextual data). A contextual ID field or column may also be used to relate the contextual IDs and contextual values to the data transmitted from the data warehouse 220 by the query technique at the runtime level.
Consider another business scenario, which explains filtering geographical location using a contextual business object. Consider a bus driver who needs to pickup passengers from a defined list of hotels situated in different locations of the city. Assuming that not all hotels in the list have passengers waiting to be picked up, the bus driver can optimize his trips if he knew the next location of the hotel in the list where he needs to pickup passengers. The contextual information is of high priority in such business scenarios. The global positioning system (GPS) on the mobile device carried by the driver returns contextual values relating to the locations of the hotels. The BI report on the display device which contains the list of the hotels is filtered to show the list of the hotels where the passengers need to be picked up.
In an embodiment, an alert relating to the temperature deviation at the meat-packing warehouse is transmitted to the business user in form of a short text message. In another embodiment, the temperature obtained for the temperature is used as a group break key. For instance, a group break key may be used to group food in the meat-packing warehouse into three categories. The categories being: food to be kept at higher temperature, food to be kept at current temperature and food to be kept at lower temperature. In another embodiment, the group break key is used along with the geographical location of the user.
Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable program code, which causes a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Embodiments of the present invention may also be provided as a tangible machine-readable medium for storing the machine-executable instructions. The tangible CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or any other type of machine-readable media suitable for tangibly storing electronic instructions. The machine-readable medium can provide the instructions stored therein to a computer system comprising a processor capable of reading and executing the instructions to implement the method steps described herein.
It should be appreciated that reference throughout this specification to one embodiment or an embodiment means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. These references are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention.
Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. The detailed description as set forth above includes descriptions of method steps. However, one skilled in the art will understand that the order of the steps set forth above is meant for the purposes of illustration only and the claimed invention is not meant to be limited only to the specific order in which the steps are set forth. Accordingly, the scope and spirit of the invention should be judged in terms of the claims, which follow.