System, method, and computer program for tagging application data with enrichment information for interpretation and analysis by an analytics system

A system, method, and computer program product are provided for tagging application data with enrichment information for interpretation and analysis by an analytics system. In operation, a tagging system receives data from an application. The tagging system examines the data to identify characteristics associated with the data. Additionally, the tagging system tags the data with enrichment information based on the identified characteristics associated with the data and criteria including application specific context and logic, such that the data is capable of being interpreted and analyzed by an analytics system.

FIELD OF THE INVENTION

The present invention relates to data analysis, and more particularly to tagging application data with enrichment information for interpretation and analysis by an analytics system.

BACKGROUND

Big Data Systems are being used across the world, in order to interpret data transported over networks to profile user experience, improve adoption, and predict issues, etc. However, all applications, include legacy applications that are still in use, have not been designed in a way such that the data they transfer over the network can be smartly assimilated by analytics systems. The manner in which data passed over the network can be interpreted is tightly coupled to the application logic and the services it provides.

Dropping raw data on a network, mixing a variety of information, such as real usage data, system logs and other data, without being able to categorize such data, leads to application usage that cannot be interpreted accurately and thus fails to allow for the use of Big Data analytics in such cases.

SUMMARY

A system, method, and computer program product are provided for tagging application data with enrichment information for interpretation and analysis by an analytics system. In operation, a tagging system receives data from an application. The tagging system examines the data to identify characteristics associated with the data. Additionally, the tagging system tags the data with enrichment information based on the identified characteristics associated with the data and criteria including application specific context and logic, such that the data is capable of being interpreted and analyzed by an analytics system.

DETAILED DESCRIPTION

FIG. 1illustrates a method100for tagging application data with enrichment information for interpretation and analysis by an analytics system, in accordance with one embodiment.

In operation, a tagging system receives data from an application. See operation102. The application may include any type of software application. The data may include any data that can be analyzed.

The tagging system examines the data to identify characteristics associated with the data. See operation104. The characteristics associated with the data may include any data characteristics capable of being utilized to categorize the data and/or identify any aspect of the data. For example, in one embodiment, identified characteristics may include at least one of a keyword or a data pattern.

Additionally, the tagging system tags the data with enrichment information based on the identified characteristics associated with the data and criteria including application specific context and logic, such that the data is capable of being interpreted and analyzed by an analytics system. See operation106. The enrichment information may include any information capable of providing additional context to the data. For example, in one embodiment, the enrichment information may include data categorization information.

The criteria including the application specific context and the logic may include any rules and/or information for which to look for in the data. For example, the application specific context may include the characteristics for which the tagging system should look for in the data. In one embodiment, the criteria may include patterns and keywords and corresponding rules for determining a proper categorization for the data based on the patterns and the keywords present in the data.

Further, in one embodiment, the enrichment information and the criteria including the application specific context and the logic may be represented as an application specific data model. In this case, the application specific data model may be provided to the tagging system by a server that maintains a plurality of application specific data models associated with a plurality of applications. In one embodiment, the tagging system may periodically query the server for an up-to-date application specific data model for the application.

It should be noted that the method100may be implemented utilizing various systems, hardware, software, applications, user interfaces, etc., as dictated by the implementer. For example, the tagging system implementing the method100may include one or more processors, databases, etc., as well as implement various logic, computer code, applications, and/or user interfaces, etc.

FIG. 2shows a system200for tagging application data with enrichment information for interpretation and analysis by an analytics system, in accordance with one embodiment. As an option, the system200may be implemented in the context of the details of the previous figure and/or any subsequent figure(s). Of course, however, the system200may be implemented in the context of any desired environment. Further, the aforementioned definitions may equally apply to the description below.

As shown, the system200includes a tagging system204, which may implement a variety of applications or software, etc. The tagging system204may be capable of communicating with a plurality of systems206, either directly or over one or more networks202, for obtaining up-to-date tagging information and/or for communicating tagged data. The tagging system204may also be in communication with one or more repositories/databases208.

Big Data Systems are being used across the world, in order to interpret data transported over networks to profile user experience, improve adoption, and predict issues, etc. However, all applications, include legacy applications that are still in use, have not been designed in a way such that the data they transfer over the network can be smartly assimilated by analytics systems. The manner in which data passed over the network can be interpreted is tightly coupled to the application logic and the services it provides.

Dropping raw data on a network, mixing a variety of information, such as real usage data, system logs and other data, without being able to categorize such data, leads to application usage that cannot be interpreted accurately and thus fails to allow for the use of Big Data analytics in such cases.FIG. 3shows a simplified diagram300illustrating complexities associated with transferring application data to analytics systems.

To address these issues, among others, the tagging system204includes a client application with an embedded tagging module acting as a proxy/probe that analyzes data on the way to be transferred over a network in order to categorize it. Based on specific criteria (e.g. patterns, keywords, etc.), output data can be enriched by the tagging system204with a tag or “tattoo” that will contribute to drive how such data can be interpreted server-side by analytics systems.

Such criteria may be defined specifically tuned for an application, which is the place where the data can be smartly categorized at runtime, as the application owns and knows the logic of its services, compared to analytics systems, which are generic (although configurable) solutions.

As the tagging module is plugged into existing applications, it is applicable to use such module for any application, including legacy applications.

FIG. 4shows a simplified system diagram400for tagging application data with enrichment information for interpretation and analysis by an analytics system, in accordance with one embodiment. As an option, the system diagram400may be implemented in the context of the details of the previous figures and/or any subsequent figure(s). Of course, however, the system diagram400may be implemented in the context of any desired environment. Further, the aforementioned definitions may equally apply to the description below.

The diagram400illustrates a tagging system to enrich output data from any application with a proper categorization (e.g. a tattoo, tag, marker, etc.), based on application specific context and logic, so this data can be interpreted and suitably analyzed for various purposes (e.g. usage tracking, user profiling, debugging, etc.).

This tagging system allows for data enrichment with very limited integration effort in both new and existing applications.

As shown in the diagram400, the tagging system implements a software component, an embedded tagging module represented as the “Data Tattooer”, which can be integrated/packaged inside an existing application. The tagging system can utilize this embedded tagging module to intercept/proxy all output data. The tagging system may download up-to-date tattooing criteria from a centralized service (e.g. receiving an updated policy with periodicity that is configurable, etc.).

The tagging system may utilize the embedded tagging module to enrich/tattoo/tag data with a proper category (e.g. a tag, marker, etc.). In one embodiment, a descriptor such as a “Data Tattoo Model”, may be utilized to specify criteria (e.g. patterns, keywords, etc.) specific to the application to ingest inside the proxy/probe software component (i.e. the embedded tagging module). The Data Tattoo Model maybe utilized to configure how to tattoo/tag each output data, with the proper category. The centralized server may automatically provide up-to-date versions of such criteria, which may be refined at any time, without requiring the re-distribution of the application itself (i.e. a new version does not need to be published).

FIG. 5shows a system flow diagram500for tagging application data with enrichment information for interpretation and analysis by an analytics system, in accordance with one embodiment. As an option, the system flow diagram500may be implemented in the context of the details of the previous figures and/or any subsequent figure(s). Of course, however, the system flow diagram500may be implemented in the context of any desired environment. Further, the aforementioned definitions may equally apply to the description below.

As shown, a tagging system queries a tagging model server for an up-to-date data model (e.g. periodically, upon request, etc.). If there is an up-to-date data model, the tagging model server sends the model to the tagging system.

When an application posts data, the tagging system enriches the data with a data tattoo (i.e. a tag with enrichment information). The tagging system posts the enriched tattooed data for a data collector system to access. An analytics system may then retrieve the data, examine the tattoo, and exploit the information stored in the tattoo for analysis.

FIG. 6illustrates a network architecture600, in accordance with one possible embodiment. As shown, at least one network602is provided. In the context of the present network architecture600, the network602may take any form including, but not limited to a telecommunications network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc. While only one network is shown, it should be understood that two or more similar or different networks602may be provided.

Coupled to the network602is a plurality of devices. For example, a server computer604and an end user computer606may be coupled to the network602for communication purposes. Such end user computer606may include a desktop computer, lap-top computer, and/or any other type of logic. Still yet, various other devices may be coupled to the network602including a personal digital assistant (PDA) device608, a mobile phone device610, a television612, etc.

FIG. 7illustrates an exemplary system700, in accordance with one embodiment. As an option, the system700may be implemented in the context of any of the devices of the network architecture600ofFIG. 6. Of course, the system700may be implemented in any desired environment.

As shown, a system700is provided including at least one central processor701which is connected to a communication bus702. The system700also includes main memory704[e.g. random access memory (RAM), etc.]. The system700also includes a graphics processor706and a display708.

The system700may also include a secondary storage710. The secondary storage710includes, for example, a hard disk drive and/or a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, etc. The removable storage drive reads from and/or writes to a removable storage unit in a well-known manner.

Computer programs, or computer control logic algorithms, may be stored in the main memory704, the secondary storage710, and/or any other memory, for that matter. Such computer programs, when executed, enable the system700to perform various functions (as set forth above, for example). Memory704, storage710and/or any other storage are possible examples of non-transitory computer-readable media.

The system700may also include one or more communication modules712. The communication module712may be operable to facilitate communication between the system700and one or more networks, and/or with one or more devices through a variety of possible standard or proprietary communication protocols (e.g. via Bluetooth, Near Field Communication (NFC), Cellular communication, etc.).