WO2015027954A1 - Management of operational data from multiple data sources - Google Patents

Management of operational data from multiple data sources Download PDF

Info

Publication number
WO2015027954A1
WO2015027954A1 PCT/CN2014/085676 CN2014085676W WO2015027954A1 WO 2015027954 A1 WO2015027954 A1 WO 2015027954A1 CN 2014085676 W CN2014085676 W CN 2014085676W WO 2015027954 A1 WO2015027954 A1 WO 2015027954A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data items
fields
software applications
operational
Prior art date
Application number
PCT/CN2014/085676
Other languages
French (fr)
Inventor
Jinchi PAN
Zhibo CAI
Original Assignee
Tencent Technology (Shenzhen) Company Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology (Shenzhen) Company Limited filed Critical Tencent Technology (Shenzhen) Company Limited
Publication of WO2015027954A1 publication Critical patent/WO2015027954A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Definitions

  • Software maintenance is indispensable when a software application operates during its regular life cycle, and thus, is a function that has to last for a relatively long period of time compared with many other software functions. Specifically, once a software application is developed and sold to its customers, it enters an operation and maintenance phase in which operational data and user feedback associated with the software application are closely monitored by software developers. Such operational data and user feedback could thereby be used to improve the software application and provide the customers with better service.
  • Various operational data of a software application can be collected via different data channels and by different means.
  • the operational data are collected according to their respective data types.
  • a data report is generated to track both functions used by the user and performance data of the software application. This data report is optionally generated in response to a user action or during an automatic test.
  • software engineers at the server side analyze the operational data included in the data report, and determine user habits concerning the software application. As such, functions of the software application may be adjusted and optimized according to the operational data and the determined user habits.
  • the operational data that are received by and then stored in the data server are organized as part of a database.
  • the database does not always present the operational data in a straight-forward and user-friendly format to the software engineers who maintain the software application based on the operational data.
  • the software engineers may prefer that the operational data be visualized in a chart or graph, such that they may easily observe trends, distributions or outliners of the operational data, and generate daily, weekly and monthly reports based on the operational data.
  • the software engineers may also need to share the reports based on the operational data via email messages to interested parties. In particular, the software engineers need to be alerted, when some sensitive operational data exceed a predetermined threshold.
  • a software application or its corresponding operational data are associated with unique data analysis settings (e.g., whether a threshold value is predetermined and whether a trend or distribution chart having a specific format is needed) .
  • unique data analysis settings e.g., whether a threshold value is predetermined and whether a trend or distribution chart having a specific format is needed.
  • the operational data that oftentimes have different formats in different software applications and data sources
  • this compatibility problem makes an automatic report email function unavailable for many software applications, although such a function is needed for maintaining operation and maintain status of the software applications.
  • the application is implemented in a server that has one or more processors, memory and one or more modules, programs or sets of instructions stored in the memory for performing multiple functions. Instructions for performing these functions may be included in a computer program software application configured for execution by one or more processors.
  • the method includes determining a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications.
  • the plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices.
  • the method further includes receiving a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device.
  • the method further includes, for each of the plurality of second data items, identifying one of the plurality of data fields in the operational data store and storing the respective second data item in the identified data field in the operational data store.
  • the method further includes analyzing the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources.
  • FIG. 2 illustrates a flow diagram representing a method for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • FIG. 11 illustrates a flow chart of an exemplary data management method for analyzing data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • the present application provides a data management system for collecting and analyzing operation and maintenance data that are generated during the course of operating software applications.
  • Data items are optionally associated with one or more software applications and originate from one or more computational devices (i.e., client devices) that are constructed based on different platforms (i.e., operating systems) .
  • These data items are standardized according to data fields of an operational data store, and stored therein for other analysis and reporting functions associated with the corresponding operation and maintenance data.
  • Such a data management system offers an efficient solution to manage the software performance independently of software applications and platform types.
  • FIG. 1A illustrates an exemplary data management system 1000 that manages data items associated with a specific software application (e.g., App 1) installed on a plurality of data sources 4 in accordance with some embodiments of the application.
  • FIG. 1B illustrates another exemplary data management system 1000 that manages data items associated with two or more software applications (e.g., App 1, App 2 and App 3) installed on a plurality of data sources in accordance with some embodiments of the application.
  • Data management system 1000 includes a data management server 2 that manages the data items collected from data sources 4 in a centralized manner.
  • Data sources 4 further include one or more types of client devices, and examples of data sources 4 includes, but are not limited to, mobile phones 4A and 4B, a tablet computer 4C, and a desktop computer 4D as shown in FIGS 1A and 1B.
  • two or more software applications are installed on different data sources 4 each also having a respective operating system corresponding to the type of the respective data source. Operational data are generated to track operation and maintenance status of each software application installed on each data source 4.
  • the one or more parameters of the data items in the operational data vary not only with the types of data sources 4, but also with the types of the software applications.
  • the two or more software applications e.g., Skype and Viber
  • the variable parameters of their data items in the operational data could be substantially distinct for these two or more software applications.
  • Data management server 2 collects the operational data, including the data items, from different data sources 4. Although the variable parameters of the data items vary according to the data source type and the software type, data management server 2 modifies the data items, stores them in an operational data store, and analyzes them to determine performance of the corresponding software applications. In one specific example, the operational data are collected from two or more software applications (e.g., Skype and Viber) that implement substantially similar functions (e.g., internet call and messaging) . The data items of the operational data are modified, selectively stored in the operational data store and/or used to compare the performance of these software applications.
  • software applications e.g., Skype and Viber
  • substantially similar functions e.g., internet call and messaging
  • FIG. 2 illustrates a flow diagram representing a method for managing data items provided by a plurality of data sources 4 in accordance with some embodiments of the application.
  • Method 8 is, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of a server (e.g., server 2) .
  • Each of the operations shown in FIG. 2 may correspond to instructions stored in a computer memory or non-transitory computer readable storage medium.
  • the computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices.
  • the instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors.
  • the server determines (8A) a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications.
  • the plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices.
  • each of the plurality of data fields is determined based on a respective statistical data field model established according to the plurality of first data items and at least one characteristic of the one or more software applications.
  • at least one of the plurality of data fields is defined based on a user input entered by a user of the one or more software applications. For example, the user manually links data items having a “00: 00: 00” format with a data field of “timestamp” via the user input.
  • the operational data store is associated with internet games played at the plurality of client devices controlled by their respective users. Data fields in such an operational data store are created to store time stamps, IP addresses, user identifications, game points, game levels, group identifications. Data fields in the operational data store also stores other information related to the users’accounts, the client devices and corresponding status of the internet games.
  • the operational data store is associated with one or more instant messaging voice-over-Internet Protocol (VOIP) applications, and keeps track of a plurality of VOIP calls placed via the instant messaging VOIP applications. Data fields are configured to represent characteristics of the instant messaging VOIP applications, such that the data fields include, but are not limited to, start times, end times, caller identifications, receiver identifications, and software platforms.
  • VOIP instant messaging voice-over-Internet Protocol
  • the server After determining the data fields for the operational data store, the server receives (8B) a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device.
  • the server For each of the plurality of second data items, the server identifies (8C) one of the plurality of data fields in the operational data store and stores the respective second data item in the identified data field in the operational data store. However, under some circumstances, some data items are not associated with any determined data fields of the operational data store. As such, the server receives a plurality of third data items associated with the one or more software applications from the plurality of data sources. In accordance with a determination that each of the plurality of third data items is not associated with any data field in the operational data store, the server merely discards the plurality of third data items, and does not store them in the operational data store. As such, the server selectively stores some data items, particularly for the purposes of comparing some software applications.
  • the operational data store includes a database that further includes a plurality of tables, and the determined data fields are associated with one of the plurality of tables.
  • the second data items are stored in the same one of the plurality of tables in the operational data store.
  • each table of the operational data store is associated with a respective data sheet including the determined data fields.
  • data items are stored in the respective table of the operational data store, they are associated with the data fields (sometimes shortened as fields) as specified in the corresponding data sheet.
  • the server After storing the second data items in the corresponding data fields in the operational data store, the server analyzes (8D) the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources. In some embodiments, after analyzing the second data items, the server regularly generates a report to report to an administrator the corresponding analysis result associated with the plurality of second data items.
  • the server analyzes the second data items by comparing each of the second data items with a respective threshold value; in accordance with a determination that a specific second data item exceeds its corresponding threshold value, identifying the specific second data item as an outliner data item of the plurality of second data items; and generating an alert message to indicate that the outliner data item is identified.
  • a subset of second data items that fall out of a desired range are identified, and the server sends out warning messages to acknowledge the existence of such outliner second data items.
  • the server renders visualization of the plurality of second data items according to their respective data fields in the operational data store.
  • the server generates a plot according to the second data fields that are associated with two data fields of the operational data store.
  • the second data items include a subset of second data items
  • the server modifies each of the subset of second data items according to a respective predetermined data precision.
  • the server analyzes the plurality of second data items by combining a subset of second data items according to their respective data fields, data sources and a predetermined combination rule. For example, the second data items associated with two related data fields are averaged. Further, in some embodiments, the combined second data items are associated with and stored in another data field distinct from the respective data fields of the subset of second data items.
  • the plurality of second data items are associated with a specific software application that is used on the client devices associated with the plurality of data sources, and each client device has an operational system selected from Microsoft Windows, iOS, Android, Linux and the like.
  • the plurality of second data items are associated with two or more software applications that implement similar functions on the client devices associated with the plurality of data sources.
  • the two or more software applications are distinct instant messaging applications (e.g., WeChat and WhatsApp, or Skype and Viber) .
  • data management method 8 optionally includes at least one of the following operations:
  • FIG. 3 illustrates a block diagram of a server 2 that manages data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • the server at least includes one or more processors 310 (e.g., central processing modules) and a memory 320 for storing data, programs and instructions for execution by one or more processors 310.
  • the server further includes one or more communication interfaces 330, an input/output (I/O) interface 340, and one or more communication buses 350 that interconnect these components.
  • processors 310 e.g., central processing modules
  • the server further includes one or more communication interfaces 330, an input/output (I/O) interface 340, and one or more communication buses 350 that interconnect these components.
  • I/O input/output
  • I/O interface 340 includes an input module 342 and a display module 344.
  • input module 342 include a keyboard, a mouse, a touch pad, a game controller, a function key, a trackball, a joystick, a microphone, a camera and the like.
  • display module 344 displays information that is inputted by the user or provided to the user for review. Examples of display module 344 include, but are not limited to, a liquid crystal display (LCD) and an organic light-emitting diode (OLED) display.
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • input module 342 and display module 344 are integrated on a touch-sensitive display that displays a graphical user interface (GUI) .
  • GUI graphical user interface
  • communication buses 350 include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
  • communication interfaces 330 further include a receiver 332 and a transmitter 334.
  • memory 320 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.
  • memory 320 includes one or more storage devices remotely located from the one or more processors 310.
  • memory 320, or alternatively the non-volatile memory device (s) within memory 320 includes a non-transitory computer readable storage medium.
  • memory 320 or alternatively the non-transitory computer readable storage medium of memory 320 stores the following programs, modules and data structures, instructions, or a subset thereof:
  • ⁇ operating System 321 that includes procedures for handling various basic system services and for performing hardware dependent tasks
  • I/O interface module 322 that includes procedures for handling various basic input and output functions through one or more input and output devices, wherein I/O interface module 302 further includes an interface display module that controls displaying of a graphical user interface;
  • ⁇ communication module 323 that is configured to connect the server to other servers (e.g. , servers and client devices) , via one or more network communication interfaces 350 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
  • servers e.g. , servers and client devices
  • network communication interfaces 350 wireless or wireless
  • communication networks such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
  • ⁇ data management module 324 that is configured to determine data fields for an operational data store 325, receive data items, store the received data items to the determined data fields, and analyzes the stored data items to determine performance of corresponding software applications at data sources that generate the data items;
  • data management module 324 further includes a data analysis module 326 (sometimes called “statistical module 50” in the following figures) that analyzes the data items provided by the data sources.
  • a data analysis module 326 (sometimes called “statistical module 50” in the following figures) that analyzes the data items provided by the data sources.
  • FIGS. 4-10 illustrate block diagrams of seven exemplary data management modules for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • FIG. 4 is a block diagram of an exemplary data management module 324A according to a first embodiment of the present application.
  • Data management module 324A further includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50.
  • Acquisition module 10 is configured to acquire operation and maintenance data (e.g., first data) and a data sheet of a software application (e.g., Tencent QQ, QQ music) .
  • the operation and maintenance data need to be analyzed, and the corresponding data fields associated with these data need to be identified.
  • the operation and maintenance data may be data related to software performance such as Tencent QQ login time, the number of login failures, login frequency, or other relevant information (e.g., genres of QQ music played and times of a certain genre of music) .
  • the data sheet is associated with a table in an operational data store (sometimes called a database) , and contains a specific number of data fields.
  • the data sheet optionally includes a set of data fields corresponding to a specific software application, a set of data fields corresponding to more than one software applications, or other data fields for use in maintenance and analysis of software performance.
  • the operation and maintenance data and the data sheet are analyzed to identify software users’ usage patterns, update or remove software functions, and thereby improve software performance.
  • Prompt module 20 is configured to prompt the user to define data fields of the data sheet based on the operation and maintenance data (e.g., first data) .
  • the data fields of the data sheet are defined based on the corresponding data fields of the operation and maintenance data.
  • prompt module 20 requests a user to enter a user input for the purpose of defining the data fields of the data sheet according to the need for software application analysis.
  • Definition module 30 is configured to define one or more data fields of the data sheet according to the user input entered by the user.
  • the user input names three data fields (e.g., field_1, field_2 and field_3) as “data 1, ” “data 2” and “data 3, ” respectively.
  • Storage module 40 is configured to store the operation and maintenance data in the data sheet that includes the data fields.
  • the operation and maintenance data stored in the data sheet are associated with characteristics of the software applications.
  • the data sheet include data representing different characteristics of the software applications, and thereby is customized to represent a subset of characteristics of the software applications.
  • the data sheet includes data fields that are named differently, and stores operation and maintenance data that need further analysis.
  • Statistical module 50 is configured to analyze the operation and maintenance data stored in the data sheet. Statistical module 50 optionally filters and sorts all or part of the data, reports and graphically displays all or part of the data, and/or performs a secondary data operation (e.g., data formatting, threshold alert generation and automatic report generation) . Analysis performed on the operation and maintenance data may be selected from the foregoing analysis and statistical functions, and selection of the foregoing functions is made according to the actual demands of the operation and maintenance data.
  • a secondary data operation e.g., data formatting, threshold alert generation and automatic report generation
  • the secondary data operation is one of simple arithmetical operations, e.g., calculation of the sum, difference, or ratio of data stored in two data fields of the data sheet.
  • a field is named “the percentage of the data 3, ” and corresponding data in this field are calculated from two other data ( “data 3” and “data 1” ) based on an equation of “data 3/(data 3 + data 1) ⁇ 100. ”
  • Data “data 3” and “data 1” are stored in two other data fields, field_3 and field_1, and extracted therefrom for calculating data “the percentage of the data 3. ”
  • a separate data format is set for each data field, and two data fields of the data sheet may have distinct data formats. It is very convenient to include a sub-module in statistical module 50 for unifying the data formats of the data stored in the data sheet.
  • data in a data field is modified by incorporating a prefix or a suffix, and the precision of the data is modified as well. For instance, data “the percentage of data 3” are modified to keep two decimal places, and include a symbol “%” to represent a percentage value.
  • a threshold may be set for a data field. When data in the data field exceed or are less than the threshold, an alert will be given to the user or a person in charge of the configuration. In the previous example, the alert is generated when “the percentage of data 3” exceeds 50%so as to inform the person in charge to check the data and identify a cause for the alert.
  • the user may select data in one or more data fields to generate a graph and represent the selected data graphically.
  • a graph representing “data 3” is generated to represent the trend of “data 3” in a recent period of time, and it may be determined from the graph whether there is a steep increase or drop.
  • a pie diagram is generated to represent the relationship between “data 3” and “data 1. ” Such a diagram could be used to show the respective values and percentages of data “data 3” and “data 1” on a specific day or within a period of time.
  • the user request to receive data of one or more data fields, and statistical module 50 generates a data table including the requested data and represents the requested data to the user according to a predetermined presentation format.
  • the requested data are optionally visualized in a graph, and sent in an email message regularly (e.g., every day, every week or every month) .
  • the requested data are accompanied with an average or a sum calculated based on the requested data.
  • Data management system 324A optionally archives the email in a historical log to allow the user to review the requested data in the email conveniently.
  • the function of performing data statistics for different software applications or data fields can be realized, and the requirement for characterization and good experience to data statistics can be satisfied.
  • data management module 324 does not have to include the prompt module 20.
  • definition module 30 defines data fields of the data sheet directly according to one or more user inputs entered by the user.
  • FIG. 5 is a block diagram of an exemplary data management module 324B according to a second embodiment of the present application.
  • Data management module 324B includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50, wherein acquisition module 10 further includes a determination module 101, an acquisition module 102 and a creation module 103. More details on prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4.
  • determination module 101 is configured to determine whether there is a data sheet in data server 2.
  • the data sheet optionally contains field names, field types, and operation and maintenance data that already exist in the data sheet.
  • the data server may be configured to store in the data sheet (a) data directly reported from client devices 4 installed with the software applications and/or (b) summary data generated from data regularly received from client devices 4.
  • Acquisition module 102 is configured to acquire the data sheet in the data server according to the user's selection after determining the existence of the desired data sheet in the data server. After the data sheet is determined to exist in the data server, the data sheet in the data server is acquired according to a type of the operation and maintenance data or the data sheet selected by the user. In some implementations, the data sheet acquired may be used to analyze the performance of a QQ music software, the user's habit of using the QQ music software, or other data that can be used to evaluate the user usage or software application performance.
  • Creation module 103 is configured to, in accordance with a determination that there is no data sheet pre-existing in a data server (e.g., server 2) , receive a data sheet creation request and user inputs to define a data sheet. Creation module 103 is configured to create the data sheet in the data server according to the user inputs that define the data sheet. In some embodiments, in the data sheet created, a sheet name and data fields are created according to the format required by the user, and the data sheet created is stored on the data server. Then, when server 2 obtains the operation and maintenance data from other client devices 4, data management module 324 of server 2 automatically stores the data in the created data sheet.
  • a data server e.g., server 2
  • data management module 324 of server 2 automatically stores the data in the created data sheet.
  • FIG. 6 is a block diagram of a data management module 324C according to a third embodiment of the present application.
  • data management module 324C includes an acquisition module 10 (further including a determination module 101, an acquisition module 102 and a creation module 103) , aprompt module 20, a definition module 30, a storage module 40, and a statistical module 50. More details on prompt module 20, definition module 30 and storage module 40 are explained above with reference to FIG. 4, and more details on determination module 101, acquisition module 102 and creation module 103 are explained above with reference to FIG. 5.
  • data management module 324C further includes a summarization module 60.
  • Summarization module 60 is configured to obtain the data sheet, summarize the operation and maintenance data, and forward the summarized data to the data server.
  • the operation and maintenance data corresponding to the same data field are stored in the same data sheet.
  • the operation and maintenance data corresponding to the same data field are associated with the same data storage model.
  • a corresponding data storage model of the operation and maintenance data corresponding to a “login time” field of QQ includes information concerning both a login time and a login place.
  • the operation and maintenance data are summarized and forwarded directly based on the data provided by the client devices, while in some implementations, the operation and maintenance data are summarized and forwarded after they are processed manually or using a program.
  • the data could be rendered for display according to a standardized graphical format (e.g., based on a specific trend or distribution graph) , or reported in a standardized report, facilitating subsequent analysis and review of the operation and maintenance data.
  • a standardized graphical format e.g., based on a specific trend or distribution graph
  • statistical module 50 is configured to analyze the operation and maintenance data stored by receiving the user's input and determining the data sheet selected by the user, coupling the operation and maintenance data corresponding to the data sheet stored in the data server and selected by the user to the data platform, and performing data statistics on the operation and maintenance data coupled to the data platform.
  • operation and maintenance data are reported for the purposes of monitoring security and stability of the software application, and usage of the user and the like.
  • Such operation and maintenance data are collected, processed and presented on a standard data platform (e.g., a web platform) .
  • a standard data platform e.g., a web platform
  • an intuitive understanding of the trend and distribution of the operation and maintenance data is achieved by presenting the data in tables and graphs, thereby providing a basis for improving the software application.
  • statistical module 50 receives user inputs entered by the user, selects the data sheet according to the user inputs and couples the data sheet selected from the data server to the user data platform.
  • An operation of coupling the data to the user data platform optionally includes filling the data into the user data platform, enabling the user data platform to be in one-to-one correspondence with the data, or other operations that can associate the data with the user data platform.
  • the data platform displays all or part of the data, filters and sorts the data, and performs a secondary data operation (e.g., data format setting, threshold alarming and automatic reporting) .
  • analysis performed on the operation and maintenance data includes perform one or more of the aforementioned functions on the data platform, and the one or more functions are selected according to the actual demands of the user.
  • data platform recited here is intended to facilitate the understanding of the technical scheme of an embodiment of the application and is only illustrative, rather than exhaustive.
  • the data platform can realize other functions such as the function used for analyzing the user's use habit or the software application performance based on a user request.
  • FIG. 7 is a block diagram of a data management module 324D according to a fourth embodiment of the present application.
  • Data management module 324D includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4.
  • statistical module 50 further includes a calculation module 501 and a statistical module 502
  • Calculation module 501 is configured to perform secondary data calculation on the operation and maintenance data stored.
  • the secondary data operation conducted on the operation and maintenance data stored may be simple arithmetical operations (e.g., the calculation of the total, difference, percentage, ratio and the like) on selected data fields.
  • the value of a field “the percentage of the data 3” is defined to according to an expression of “data 3/ (data 3 + data 1) ⁇ 100. ”
  • the value associated with data field “the percentage of the data 3” is optionally calculated in the background.
  • Statistical module 502 is configured to perform data statistics on the data after secondary calculation.
  • Performing data statistics on the data after secondary calculation may be performing statistics on the result of secondary calculation, for example, the total, the difference, the percentage and the like of “data 1” to “data 3. ”
  • data statistics may also be performed on the total, so as to generate a graph, give an alarm or report by email, etc.
  • FIG. 8 is a block diagram of a data management module 324E according to a fifth embodiment of the present application.
  • Data management module 324E includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4.
  • statistical module 50 further includes a data acquisition module 11, a format setting module 21 and a first display module 31
  • Data acquisition module 11 is configured to acquire the statistical data after data statistics is performed based on the operation and maintenance data stored.
  • the statistical data acquired is selected from the total, the difference, the percentage calculated from the operation and maintenance data.
  • Format setting module 21 is configured to receive the format of the statistical data set by the user.
  • a separate data format is set for data of each data field.
  • the data is modified to incorporate a prefix or a suffix according to a predetermined data format.
  • a module is used to set a precision level for the data, and unify the data for subsequent display. For example, data in the data field of “the percentage of data 3” are set to keep two decimal bits followed by the symbol “%” to represent percentage values.
  • First display module 31 is configured to display the statistical data according to the predetermined data format as explained above. Specifically, in one example, the data in the data field of “the percentage of data 3” are set to keep two decimal bits followed by the symbol “%” to represent percentage values, and this two decimal bit precision is also used to present the sum or the difference.
  • FIG. 9 is a block diagram of a data management module 324F according to a sixth embodiment of the present application.
  • Data management module 324F includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4.
  • statistical module further includes a receiving module 12, an association module 22 and a second display module 32.
  • Receiving module 12 is configured to acquire fields set by the user and needing to be displayed after data statistics is performed based on the operation and maintenance data stored.
  • the fields that need to be displayed optionally include all or part of the fields of the operation and maintenance data.
  • Receiving module 12 receives the fields that have been set by the user and need to be displayed.
  • the operation and maintenance data includes Tencent QQ login frequency and login time and the like, and if the field set by the user and needing to be displayed is the login frequency of Tencent QQ, then the field received by the receiving module 12 is “login frequency. ”
  • Association module 22 is configured to associate the fields set by the user and needing to be displayed with the data sheet defined. After receiving the fields that need to be displayed, the receiving module 12 associates the fields that need to be displayed with the data sheet defined. For example, the field needing to be displayed is “login frequency, ” if it is associated with “data 1” in the data sheet defined, the data in “data 1” in the data sheet defined is “login frequency” of the operation and maintenance data.
  • the fields that need to be displayed with the data sheet defined are associated by making an one-to-one correspondence between the fields that need to be displayed and the fields of the data sheet defined, filling the content of the fields that need to be displayed into the data sheet defined, or any other manners that can associate the fields that need to be displayed with the data sheet defined.
  • Second display module 32 is configured to display the operation and maintenance data in the associated data sheet.
  • the operation and maintenance data in the associated data sheet are displayed by displaying the data in the operation and maintenance data that is associated with the data sheet, and by displaying the data field data in a tabular form according to the fields that have been set.
  • FIG. 10 is a block diagram of a data management module 324G according to a seventh embodiment of the present application.
  • Data management module 324G includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50.
  • statistical module 50 includes a receiving module 12, an association module 22, and a second display module 32. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4. More details on receiving module 12, association module 22 and second display module 32 are explained above with reference to FIG. 9.
  • association module 22 includes a threshold module 42, a determination module 52 and an alarm module 62.
  • Threshold module 42 is configured to receive a threshold setting for associated fields after the fields that are set by the user and need to be displayed are associated with the data sheet defined.
  • the user's setting of threshold for associated fields may be setting thresholds for all associated fields or part of the associated fields.
  • the threshold settings for the percentage, total, and difference fields are predetermined as 50%, 500, and 100, respectively.
  • Threshold module 42 may receive the threshold setting for the associated fields, i.e. receive such threshold information, for example, the percentage of 50%.
  • the threshold of associated fields is optionally defined manually, obtained through calculation based on a specific program. As such, the defined threshold is used for identifying abnormal data.
  • Determination module 52 is configured to determine whether the operation and maintenance data stored in the data sheet and the corresponding threshold settings satisfy a preset alarm condition.
  • the preset alarm condition is satisfied when the operation and maintenance data are greater than or equal to the corresponding threshold settings.
  • the preset alarm condition is not satisfied when the operation and maintenance data are less than the corresponding threshold settings.
  • the preset alarm condition optionally varies based on the data fields and/or the software applications. However, the thresholds of different data fields are optionally independent from or related to each other.
  • Alarm module 62 is configured to give an alarm after determining the operation and maintenance data stored in the data fields of the data sheet and the threshold satisfy the preset alarm condition. After the operation and maintenance data and the threshold satisfy the preset alarm condition, an alarm will be given to the user or a person to indicate existence of some critical data. In one example, the alarm is triggered when “the percentage of data 3” exceeds 50%, and thus, informs an administrator to check the operation and maintenance data.
  • An embodiment of the application further provides a data management method which is run on a computer processing device and is used to analyze the operation and maintenance data of a software application. It should be noted that the data management method of an embodiment of the application may be carried out by one of the aforementioned data management modules each provided by an embodiment of the application, and the data management module of an embodiment of the application may also be used to carry out the data management method provided by an embodiment of the application.
  • FIG. 11 illustrates a flow chart of an exemplary data management method 100 for analyzing data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • Data management method 100 includes the following steps:
  • Step 101 acquiring the operation and maintenance data and the data sheet of a software application.
  • the software application is optionally Tencent QQ, QQ music or any other software application that need data field collection and statistics.
  • the operation and maintenance data acquired may be data related to software performances such as Tencent QQ login time, the number of login failures and login frequency and the like, or information such as kinds of QQ music played or playing times of a certain kind, etc.
  • the data sheet may contain any number of fields, may contain a plurality of data fields of a software application, or a plurality of data fields of a plurality of software applications, or any other data fields that may be used to perform maintenance and analysis to the software applications.
  • analysis may be performed on the operation and maintenance data and the data sheet to conduct a research on usage and habit of the user, improve or remove software application functions or optimize software performances, etc.
  • Step 102 prompting the user to define fields of the data sheet based on the operation and maintenance data.
  • Defining fields of the data sheet based on the operation and maintenance data optionally includes defining fields of the data sheet based on any one or a plurality of data fields of the operation and maintenance data and prompt the user to define fields of the data sheet according to the need for software application analysis.
  • Step 103 defining the fields of the data sheet according to definition information input by the user.
  • Defining fields of the data sheet optionally includes defining any one or a plurality of fields of the data sheet, or naming fields of the data sheet, for example, naming three fields field_1, field_2 and field_3 of the data sheet as “data 1, ” “data 2” and “data 3” respectively.
  • Step 104 storing the operation and maintenance data in the data sheet defined.
  • the operation and maintenance data stored in the data sheet defined optionally include corresponding data of any one or a plurality of software application data fields, and the data sheet defined may be a data sheet customized with respect to any one or a plurality of data fields of any software application.
  • the data sheet may contain field names or data that need data analysis or statistics.
  • Step 105 performing data statistics based on the operation and maintenance data stored.
  • the data statistics may include filtering and sorting all or part of the data of the software application data fields, reporting and graphically displaying all or part of the data, as well as performing secondary data operation, data format setting, threshold alarming and automatic reporting and the like.
  • the statistics performed on the operation and maintenance data may be data statistics performed on any one or a plurality of the foregoing functions, and selection may be made according to the actual demands of the operation and maintenance data.
  • the secondary data operation is one of simple arithmetical operations, e.g., calculation of the sum, difference, or ratio of data stored in two data fields of the data sheet.
  • a field is named “the percentage of the data 3, ” and corresponding data in this field are calculated from two other data ( “data 3” and “data 1” ) based on an equation of “data 3/(data 3 + data 1) ⁇ 100. ”
  • Data “data 3” and “data 1” are stored in two other data fields, field_3 and field_1, and extracted therefrom for calculating data “the percentage of the data 3. ”
  • a separate data format is set for each data field, and two data fields of the data sheet may have distinct data formats. It is very convenient to include a sub-module in statistical module 50 for unifying the data formats of the data stored in the data sheet.
  • data in a data field is modified by incorporating a prefix or a suffix, and the precision of the data is modified as well. For instance, data “the percentage of data 3” are modified to keep two decimal places, and include a symbol “%” to represent a percentage value.
  • a threshold may be set for a data field. When data in the data field exceed or are less than the threshold, an alert will be given to the user or a person in charge of the configuration. In the previous example, the alert is generated when “the percentage of data 3” exceeds 50% so as to inform the person in charge to check the data and identify a cause for the alert.
  • the user may select data in one or more data fields to generate a graph and represent the selected data graphically.
  • a graph representing “data 3” is generated to represent the trend of “data 3” in a recent period of time, and it may be determined from the graph whether there is a steep increase or drop.
  • a pie diagram is generated to represent the relationship between “data 3” and “data 1. ” Such a diagram could be used to show the respective values and percentages of data “data 3” and “data 1” on a specific day or within a period of time.
  • Automatic report means that the user may define and receive data of a certain data field or a plurality of data fields, the platform may summarize the received data for representation in a table and graphical display.
  • the table or graphical display is included in a report generated on a daily, monthly or annual basis, and the report is sent to the user via email.
  • the table or graphic display in the report presents the total and average value to the user.
  • the platform may also archive the email to allow the user to query for historical report record conveniently.
  • different statistics may be performed on different data, and the requirement for characterization and good experience to the data statistics can be satisfied.
  • data management method 100 does not include operation S102. Therefore, after the operation and maintenance data and data sheet of the software application are acquired, the fields of the data sheet may be defined directly according to the definition information input entered by the user.
  • FIG. 12 illustrates a flow chart of a method 101 for acquiring a data sheet in accordance with some embodiments of the application.
  • the data sheet of FIG. 11 may be acquired by the method for acquire a data sheet of an embodiment of the application.
  • the operation and maintenance data of the software application is stored in the data sheet of the data server after being acquired, then the data sheet is acquired.
  • method 101 for acquiring the data sheet includes Step 1011 to 1013 described as follows.
  • Step 1011 determining whether there is a data sheet in the data server.
  • the data sheet may be a data sheet contains any field name and any field type, and any type of operation and maintenance data exists in the data sheet.
  • One data sheet stores one type of operation and maintenance data.
  • the existence of the data sheet in the data server is determined by determining whether there is a data sheet that can be used by the user for data analysis, for example a data sheet that can be used to analyze the number of Tencent QQ login failures.
  • the data server may be used to store data directly reported from a software application source end or summarized data filed regularly after manual or programmed preprocessing, and the data server may also store the data sheet.
  • the data management method further includes summarizing and forwarding the operation and maintenance data to the data server, wherein corresponding data storage models of the operation and maintenance data corresponding to the same data field are the same, and the operation and maintenance data corresponding to the same data field are stored in the same data sheet.
  • the data statistics performed based on the operation and maintenance data stored includes: receiving the user input and determining the data sheet selected by the user; coupling the operation and maintenance data stored in the data server and corresponding to the data sheet selected by the user to the user platform; and performing data statistics on the operation and maintenance data coupled to the data platform.
  • corresponding data storage models of the operation and maintenance data corresponding to the same data field are the same.
  • the corresponding data storage model of the operation and maintenance data corresponding to the login time of QQ includes “login time” and “login place, ” then all the corresponding data storage models of the operation and maintenance data corresponding to the login time of QQ are the same, including the “login time” and “login place. ”
  • the operation and maintenance data corresponding to the same data field are stored in the same data sheet. For example, all the operation and maintenance data corresponding to the login time of QQ are stored in the same data sheet.
  • the format of data display performed and the trend graph or distribution graph plotted with respect to the same data field based on this model is the same, and the report format may be uniformed, which is convenient for analysis and viewing.
  • the statistical module may receive the data input by the user, select the data sheet according to the data input by the user and couple the data sheet selected from the data server to the user data platform. Coupling the data to the user data platform may be filling the data into the user data platform, or enabling the user data platform to be in one-to-one correspondence with the data, or other methods that can associate the data with the user data platform.
  • the data platform may display all or part of the data, may filter and sort the data, and may perform secondary data operation, data format setting, threshold alarming and automatic reporting, etc.
  • the statistics performed on the operation and maintenance data can realize any one or a plurality of the foregoing functions through the data platform, and selection may be made according to the actual demands of the user.
  • the data platform recited here is intended to facilitate the understanding of the technical scheme of an embodiment of the application and is only illustrative, rather than exhaustive.
  • the data platform can realize other functions such as the function used for analyzing the user's use habit or the software application performance according to the user's demand.
  • Step 1012 acquiring the data sheet in the data server according to the user's selection if the determination is yes.
  • the data sheet in the data server is acquired according to any type of operation and maintenance data or data sheet selected by the user.
  • the data sheet acquired may be used to analyze, for example, the performance of a QQ music software or the user's habit of using the QQ music software, or other data that can be used to measure the user usage or software application performance.
  • Step 1013 receiving data sheet request information and definition information input by the user and creating a data sheet in the data server if the determination is no.
  • the data sheet request information and definition information input by the user may be received and a data sheet may be created in the data server according to the definition information after determining that there is no data sheet existing in the data server.
  • the sheet name and field may be created according to the format required by the user, and the data sheet created is stored on the data server. When there is software data to be accessed, the data will be added into the data sheet directly.
  • the data statistics performed based on the operation and maintenance data stored includes performing secondary data calculation to the operation and maintenance data stored and performing data statistics on the data after secondary calculation.
  • the secondary data operation conducted on the operation and maintenance data stored may be simple arithmetical operations such as the calculation of the total, balance, percentage and the like to associated fields. For example, the value of a field “the percentage of the data 3” is “data 3/ (data 3 + data 1) *100, ” and after the value of field_3 and field_1 is extracted, the value of field_3/ (field_1+ field3) *100 will be calculated in the background.
  • Performing data statistics on the data after secondary calculation may be performing statistics on the result of secondary calculation, for example, the total, the difference, the percentage and the like of “data 1” to “data 3. ” And data statistics can also be performed on the total, so as to generate a graph, give an alarm or report by email, etc.
  • FIGS. 13-15 illustrate flow charts of another three exemplary data management methods for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
  • FIG. 13 is a flow chart of a data management method 200 according to a second embodiment of the present application.
  • Data management method 200 is one of several preferred implementations of data management method 100 shown in FIG. 11. After operation S105, the generated statistical data are set and displayed. As shown in FIG. 13, the data management method includes Step 201 to 208 described as follows.
  • Steps 201-205 shown in FIG. 13 are the same as steps 101-105 shown in FIG. 11, respectively. For brevity, the details of steps 101-105 are not repeated here.
  • Displaying the statistical data may be a display with two decimal places followed by the symbol % for the percentage, or a display, for example, with two decimal places reserved for the sum or the difference.
  • FIG. 14 is a flow chart of a data management method 300 according to a third embodiment of the present application.
  • Data management method 300 is one of several preferred implementations of data management method 100 shown in FIG. 11. After operation S105, the fields that need to be displayed and the data sheet defined are associated and displayed. As shown in FIG. 14,data management method 300 includes S301 to S308 described as follows.
  • Steps 301-305 shown in FIG. 14 are the same as steps 101-105 shown in FIG. 11, respectively. For brevity, the details of steps 101-105 are not repeated here.
  • Step 306 receiving the fields set by the user and needing to be displayed.
  • the fields that need to be displayed may be all or part of the fields of the operation and maintenance data.
  • the receiving module 12 receives the fields that have been set by user and needing to be displayed.
  • the operation and maintenance data includes Tencent QQ login frequency and login time and the like, and if the field set by the user and needing to be displayed is the login frequency of Tencent QQ, then the field received by the receiving module 12 is “login frequency. ”
  • Step 308 displaying the operation and maintenance data in the associated data sheet.
  • Displaying the operation and maintenance data in the associated data sheet may be displaying the data in the operation and maintenance data that is associated with the data sheet.
  • FIG. 15 is a flow chart of a data management method 400 according to a fourth embodiment of the present application.
  • Data management method 400 is one of several preferred implementations of data management method 100 shown in FIG. 11. Here, the fields that are set by the user and need to be displayed are further associated with the defined data sheet. As shown in FIG. 15, data management method 400 includes S401 to S411 described as follows.
  • Steps 401-407 shown in FIG. 14 are the same as steps 101-107 shown in FIG. 11, respectively. For brevity, the details of steps 101-107 are not repeated here.
  • Step 409 receiving the threshold setting for the associated fields.
  • the user's setting of threshold for associated fields may be setting thresholds for all associated fields or part of the associated fields.
  • the threshold setting for the associated fields may be the percentage of 50%, or the total of 500, or the difference of 100.
  • the threshold module 42 may receive the threshold setting for the associated fields, i.e. receive such threshold information as, for example, the percentage is 50%.
  • the threshold of associated fields may be set manually, or is obtained through calculating and processing according to a program, or is a threshold used for detection of data exception.
  • Step 410 determining whether the value of fields of logged operation and maintenance data and the threshold satisfy a preset alarm condition if the logged operation and maintenance data is received.
  • the answer may be yes when the value of fields of the logged operation and maintenance data is greater than or equal to the threshold, or the answer may be yes when the value of fields of the logged operation and maintenance data is less than the threshold.
  • Whether the preset alarm condition is satisfied may be set according to different data fields of different software applications, and the thresholds of different data fields may be independent from each other, or the thresholds of different data fields are associated.
  • An embodiment of the application further provides a computer storage medium which stores programs used for performing all or part of the steps of the above-mentioned data management method.
  • Methods 100, 200, 300 and 400 are, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of a server (e.g., server 2) .
  • a server e.g., server 2
  • Each of the operations shown in FIGS. 11-15 may correspond to instructions stored in a computer memory or non-transitory computer readable storage medium.
  • the computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices.
  • the instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors. Some operations in method 8 may be combined and/or the order of some operations may be changed.
  • FIGS. 11-15 have been described are merely exemplary and are not intended to indicate that the described order is the only order in which the operations could be performed.
  • One of ordinary skill in the art would recognize various ways to cache and distribute specific data as described herein. Additionally, it should be noted that details of other processes described below with respect to method 8 (e.g., FIG. 2) are also applicable in an analogous manner to methods 100, 200, 300 and 400 described above with respect to FIGS. 11-15. For brevity, these details are not repeated here.

Abstract

A computer-implemented method for managing data items collected from multiple data sources. A server determines data fields for an operational data store based on first data items associated with one or more software applications. The data fields represent characteristics of the software applications, and the operational data store tracks operation and maintenance status of these software applications. The server then receives second data items associated with the one or more software applications from different data sources. At least one data field in the operational data store is identified for each of the second data items, and the respective second data item is stored in the identified data field of the operational data store. The server further analyzes the second data items received from the data sources and stored in the operational data store to determine performance of the software applications at these data sources.

Description

MANAGEMENT OF OPERATIONAL DATA FROM MULTIPLE DATA SOURCES
RELATED APPLICATION
This application claims priority to Chinese Patent Application No. 201310393372.0, entitled “Method and Apparatus for Data Statistics” filed on September 2, 2013, which is incorporated by reference in its entirety.
TECHNICAL FIELD
The disclosed implementations relate generally to a data processing system, and in particular, to systems and methods for generating statistical data concerning software applications that are installed and implemented on multiple client devices.
BACKGROUND
Software maintenance is indispensable when a software application operates during its regular life cycle, and thus, is a function that has to last for a relatively long period of time compared with many other software functions. Specifically, once a software application is developed and sold to its customers, it enters an operation and maintenance phase in which operational data and user feedback associated with the software application are closely monitored by software developers. Such operational data and user feedback could thereby be used to improve the software application and provide the customers with better service.
Various operational data of a software application can be collected via different data channels and by different means. In one example, the operational data are collected according to their respective data types. Specifically, when a user uses the software application installed on an electronic device, a data report is generated to track both functions used by the user and performance data of the software application. This data report is optionally generated in response to a user action or during an automatic test. When the data report is sent to a data server, software engineers at the server side analyze the operational data included in the data report, and determine user habits concerning the software application. As such, functions of the software application may be adjusted and optimized according to the operational data and the determined user habits.
The operational data that are received by and then stored in the data server are organized as part of a database. However, the database does not always present the operational data in a straight-forward and user-friendly format to the software engineers who maintain the software application based on the operational data. The software engineers may prefer that the operational  data be visualized in a chart or graph, such that they may easily observe trends, distributions or outliners of the operational data, and generate daily, weekly and monthly reports based on the operational data. The software engineers may also need to share the reports based on the operational data via email messages to interested parties. In particular, the software engineers need to be alerted, when some sensitive operational data exceed a predetermined threshold. Given the large amount of the operational data collected from multiple data sources, such data analysis and reporting jobs could become highly-repetitive, time-consuming, and susceptible to human errors. Thus, different data analysis platforms have been developed for processing the operational data and presenting data reports, and the operational data are visualized, analyzed and reported efficiently on these data analysis platforms.
However, the existing data analysis platforms are oftentimes incompatible with each other and require operational data in different formats. Nearly every software application is associated with a unique data analysis platform, and sometimes a software application is associated with more than one data analysis platforms each reserved for and maintained by a specific business organization. Such a compatibility problem occurs mainly because there are many types of soft applications, and each soft application could also be associated with many types of operational data as determined by corresponding operating systems of data sources that are installed with the respective software application. Specifically, the operational data provided by a specific data source may include a distinct number of data items that are labeled with a distinct data item name. As such, data visualization and analysis methods associated with the specific data source are not necessarily applicable for processing the operational data provided by another data source.
Further, a software application or its corresponding operational data are associated with unique data analysis settings (e.g., whether a threshold value is predetermined and whether a trend or distribution chart having a specific format is needed) . Given different data analysis settings, the operational data (that oftentimes have different formats in different software applications and data sources) cannot be processed using a single data analysis platform. Moreover, this compatibility problem makes an automatic report email function unavailable for many software applications, although such a function is needed for maintaining operation and maintain status of the software applications.
As such, whenever a new software application and its operational data are involved, software engineers are required to improve data analysis platforms concerning its visualization, alarming, and messaging functions. In particular, as more software applications are developed and more functions are introduced to each software application, the amount of operational data would increase significantly, and custom improvement on the data analysis platforms for each software  application is not practical any more. Therefore, there is a need to improve the data analysis platforms to overcome the existing compatibility problems.
SUMMARY
The above deficiencies and other problems associated with the conventional approaches of tracking data items associated with the operation and maintenance of software applications are reduced or eliminated by the application disclosed below. In some embodiments, the application is implemented in a server that has one or more processors, memory and one or more modules, programs or sets of instructions stored in the memory for performing multiple functions. Instructions for performing these functions may be included in a computer program software application configured for execution by one or more processors.
One aspect of the application is a computer-implemented method for managing data items. The method includes determining a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications. The plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices. The method further includes receiving a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device. The method further includes, for each of the plurality of second data items, identifying one of the plurality of data fields in the operational data store and storing the respective second data item in the identified data field in the operational data store. The method further includes analyzing the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources.
Another aspect of the application is a server system that includes one or more processors and memory having at least one program (including instructions) stored thereon, which when executed by the one or more processors cause the processors to perform operations in the method described above.
Another aspect of the application is a non-transitory computer readable storage medium that stores at least one program configured for execution by at least one processor of a server system. The at least one program includes instructions for causing the server system to perform the operations in the method described above.
Other embodiments and advantages may be apparent to those skilled in the art in light of the descriptions and drawings in this specification.
BRIEF DESCRIPTION OF DRAWINGS
The aforementioned implementation of the invention as well as additional implementations will be more clearly understood as a result of the following detailed description of the various aspects of the invention when taken in conjunction with the drawings. Like reference numerals refer to corresponding parts throughout the several views of the drawings.
The drawings constituting a part of this application serve to provide a further understanding of the present application. The illustrative embodiments of the present application and the explanation thereof are intended to illustrate the present application, and should not be constructed as unduly limiting the present application in any way. In the drawings:
FIG. 1A illustrates an exemplary data management system that manages data items associated with a software application installed on a plurality of data sources in accordance with some embodiments of the application.
FIG. 1B illustrates an exemplary data management system that manages data items associated with two or more software applications installed on a plurality of data sources in accordance with some embodiments of the application.
FIG. 2 illustrates a flow diagram representing a method for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
FIG. 3 illustrates a block diagram of a server that manages data items provided by a plurality of data sources in accordance with some embodiments of the application.
FIGS. 4-10 illustrate block diagrams of seven exemplary data management modules for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
FIG. 11 illustrates a flow chart of an exemplary data management method for analyzing data items provided by a plurality of data sources in accordance with some embodiments of the application.
FIG. 12 illustrates a flow chart of a method for acquiring a data sheet in accordance with some embodiments of the application.
FIGS. 13-15 illustrates a flow chart of another three exemplary data management methods for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
DETAILED DESCRIPTION
It should be noted that, in case of no conflict, embodiments of this application and features of the embodiments can be combined with each other. The present application will be explained in detail below with reference to drawings and in connection with embodiments.
The technical scheme of an embodiment of the application will be described clearly and completely with reference to the drawings in order to allow the skilled in the prior art to have a better understanding of the schemes of the present application. Obviously, the embodiments described are only part of the present application, not all the embodiments. Based on the embodiments of the present application, all other embodiments obtained by the ordinary skilled in the art without innovative faculty are all within the protective scope of the present invention.
It should be noted that the terms “first, ” “second” and the like in the description and claims of the present application as well as in the drawings are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the present application described herein are, for example, capable of operation in sequences other than those illustrated or otherwise described herein. Furthermore, the terms “comprise, ” “have” or any other variation thereof are intended to cover a non-exclusive inclusion, such that, for example, a process, method, system, article or device that includes a list of steps or modules does not only include those steps or modules but also may include other steps or modules not expressly listed or inherent to such process, method, article or device.
The present application provides a data management system for collecting and analyzing operation and maintenance data that are generated during the course of operating software applications. Data items are optionally associated with one or more software applications and originate from one or more computational devices (i.e., client devices) that are constructed based on different platforms (i.e., operating systems) . These data items are standardized according to data fields of an operational data store, and stored therein for other analysis and reporting functions associated with the corresponding operation and maintenance data. Such a data management system offers an efficient solution to manage the software performance independently of software applications and platform types.
FIG. 1A illustrates an exemplary data management system 1000 that manages data items associated with a specific software application (e.g., App 1) installed on a plurality of data sources 4 in accordance with some embodiments of the application. FIG. 1B illustrates another exemplary data management system 1000 that manages data items associated with two or more software applications (e.g., App 1, App 2 and App 3) installed on a plurality of data sources in accordance with some embodiments of the application. Data management system 1000 includes a data management server 2 that manages the data items collected from data sources 4 in a centralized manner. Data sources 4 further include one or more types of client devices, and examples of data  sources 4 includes, but are not limited to,  mobile phones  4A and 4B, a tablet computer 4C, and a desktop computer 4D as shown in FIGS 1A and 1B.
In accordance with various embodiments of the present application, server 2 communicates with data sources 4, and data sources 4 communicate with each other using one or more communication networks 6. Communication network (s) 6 can be one or more networks having one or more type of topologies, including but not limited to the Internet, intranets, local area networks (LANs) , cellular networks, Ethernet, Storage Area Networks (SANs) , telephone networks, Bluetooth personal area networks (PAN) and the like. In some embodiments, a subset of server 2 and data sources 4 are communicatively coupled to each other in a sub-network, and particularly coupled to each other via wired connection (s) .
As shown in FIG. 1A, in some embodiments, a specific software application (e.g. , App 1) is installed on different data sources 4 each having a respective operating system corresponding to the type of the respective data source. For example, the operating system is optionally Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows, Windows Phone, and IBM z/OS. The specific software application is modified to be compatible with the respective operating system implemented on each data source 4. When the specific software application operates on the respective operating system, operational data are generated to track operation and maintenance status of the software application on corresponding data source 4. Such operational data vary according to the respective operating system associated with each data source 4. Specifically, the operational data optionally includes a sequence of data items, and one or more parameters of these data items vary with the type of corresponding data source 4. The variable parameters of these data items include, but are not limited to, the number of data items in the data item sequence, the precision of each data item, the order of these data items in the data item sequence, and the name of each data item.
Further, as shown in FIG. 1B, in some embodiments, two or more software applications (e.g., App 1-App 3) are installed on different data sources 4 each also having a respective operating system corresponding to the type of the respective data source. Operational data are generated to track operation and maintenance status of each software application installed on each data source 4. In this case, the one or more parameters of the data items in the operational data vary not only with the types of data sources 4, but also with the types of the software applications. In some implementations, the two or more software applications (e.g., Skype and Viber) implement functions that are substantially similar, and therefore, their data items indicate similar software performance data. However, the variable parameters of their data items in the operational data could be substantially distinct for these two or more software applications.
Data management server 2 collects the operational data, including the data items, from different data sources 4. Although the variable parameters of the data items vary according to the data source type and the software type, data management server 2 modifies the data items, stores them in an operational data store, and analyzes them to determine performance of the corresponding software applications. In one specific example, the operational data are collected from two or more software applications (e.g., Skype and Viber) that implement substantially similar functions (e.g., internet call and messaging) . The data items of the operational data are modified, selectively stored in the operational data store and/or used to compare the performance of these software applications.
FIG. 2 illustrates a flow diagram representing a method for managing data items provided by a plurality of data sources 4 in accordance with some embodiments of the application. Method 8 is, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of a server (e.g., server 2) . Each of the operations shown in FIG. 2 may correspond to instructions stored in a computer memory or non-transitory computer readable storage medium. The computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices. The instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors. Some operations in method 8 may be combined and/or the order of some operations may be changed.
The server determines (8A) a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications. The plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices. In some embodiments, each of the plurality of data fields is determined based on a respective statistical data field model established according to the plurality of first data items and at least one characteristic of the one or more software applications. In some embodiments, at least one of the plurality of data fields is defined based on a user input entered by a user of the one or more software applications. For example, the user manually links data items having a “00: 00: 00” format with a data field of “timestamp” via the user input.
In a specific example, the operational data store is associated with internet games played at the plurality of client devices controlled by their respective users. Data fields in such an operational data store are created to store time stamps, IP addresses, user identifications, game points, game levels, group identifications. Data fields in the operational data store also stores other information related to the users’accounts, the client devices and corresponding status of the internet  games. In another example, the operational data store is associated with one or more instant messaging voice-over-Internet Protocol (VOIP) applications, and keeps track of a plurality of VOIP calls placed via the instant messaging VOIP applications. Data fields are configured to represent characteristics of the instant messaging VOIP applications, such that the data fields include, but are not limited to, start times, end times, caller identifications, receiver identifications, and software platforms.
After determining the data fields for the operational data store, the server receives (8B) a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device.
For each of the plurality of second data items, the server identifies (8C) one of the plurality of data fields in the operational data store and stores the respective second data item in the identified data field in the operational data store. However, under some circumstances, some data items are not associated with any determined data fields of the operational data store. As such, the server receives a plurality of third data items associated with the one or more software applications from the plurality of data sources. In accordance with a determination that each of the plurality of third data items is not associated with any data field in the operational data store, the server merely discards the plurality of third data items, and does not store them in the operational data store. As such, the server selectively stores some data items, particularly for the purposes of comparing some software applications.
In some embodiments, the operational data store includes a database that further includes a plurality of tables, and the determined data fields are associated with one of the plurality of tables. The second data items are stored in the same one of the plurality of tables in the operational data store. Under some circumstances, each table of the operational data store is associated with a respective data sheet including the determined data fields. When data items are stored in the respective table of the operational data store, they are associated with the data fields (sometimes shortened as fields) as specified in the corresponding data sheet.
After storing the second data items in the corresponding data fields in the operational data store, the server analyzes (8D) the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources. In some embodiments, after analyzing the second data items, the server regularly generates a report to report to an administrator the corresponding analysis result associated with the plurality of second data items.
In some embodiments, the server analyzes the second data items by comparing each of the second data items with a respective threshold value; in accordance with a determination that a specific second data item exceeds its corresponding threshold value, identifying the specific second data item as an outliner data item of the plurality of second data items; and generating an alert message to indicate that the outliner data item is identified. As such, a subset of second data items that fall out of a desired range are identified, and the server sends out warning messages to acknowledge the existence of such outliner second data items.
In some embodiments, the server renders visualization of the plurality of second data items according to their respective data fields in the operational data store. One of those skilled in the art knows that many database visualization techniques are applicable to visualize the second data items here. In one example, the server generates a plot according to the second data fields that are associated with two data fields of the operational data store.
In some embodiments, the second data items include a subset of second data items, and the server modifies each of the subset of second data items according to a respective predetermined data precision.
In some embodiments, the server analyzes the plurality of second data items by combining a subset of second data items according to their respective data fields, data sources and a predetermined combination rule. For example, the second data items associated with two related data fields are averaged. Further, in some embodiments, the combined second data items are associated with and stored in another data field distinct from the respective data fields of the subset of second data items.
As explained above with reference to FIG. 1A, in some implementations, the plurality of second data items are associated with a specific software application that is used on the client devices associated with the plurality of data sources, and each client device has an operational system selected from Microsoft Windows, iOS, Android, Linux and the like. Further, as explained above with reference to FIG. 1B, in some implementations, the plurality of second data items are associated with two or more software applications that implement similar functions on the client devices associated with the plurality of data sources. For example, the two or more software applications are distinct instant messaging applications (e.g., WeChat and WhatsApp, or Skype and Viber) .
In view of many of the above embodiments, data management method 8 optionally includes at least one of the following operations:
●identifying an outliner data item of the plurality of second data items by comparing each of the plurality of second data items with a respective threshold value;
●visualizing the plurality of second data items according to their respective data fields in the operational data store;
●combining a first subset of second data items according to their respective data fields, data sources and a predetermined combination rule;
●regularly generating a report to report the corresponding analysis result associated with the plurality of second data items; and
●modifying each of a second subset of second data items according to a respective predetermined data precision.
It should be understood that the particular order in which the operations in FIG. 2 have been described are merely exemplary and are not intended to indicate that the described order is the only order in which the operations could be performed. One of ordinary skill in the art would recognize various ways to cache and distribute specific data as described herein. Additionally, it should be noted that details of other processes described below with respect to  methods  100, 200, 300 and 400 (e.g., FIGS. 11-15) are also applicable in an analogous manner to method 8 described above with respect to FIG. 2. For brevity, these details are not repeated here.
FIG. 3 illustrates a block diagram of a server 2 that manages data items provided by a plurality of data sources in accordance with some embodiments of the application. In some implementations, the server at least includes one or more processors 310 (e.g., central processing modules) and a memory 320 for storing data, programs and instructions for execution by one or more processors 310. In some implementations, the server further includes one or more communication interfaces 330, an input/output (I/O) interface 340, and one or more communication buses 350 that interconnect these components.
In some embodiments, I/O interface 340 includes an input module 342 and a display module 344. Examples of input module 342 include a keyboard, a mouse, a touch pad, a game controller, a function key, a trackball, a joystick, a microphone, a camera and the like. Additionally, display module 344 displays information that is inputted by the user or provided to the user for review. Examples of display module 344 include, but are not limited to, a liquid crystal display (LCD) and an organic light-emitting diode (OLED) display. In some implementations, input module 342 and display module 344 are integrated on a touch-sensitive display that displays a graphical user interface (GUI) .
In some embodiments, communication buses 350 include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. In some embodiments, communication interfaces 330 further include a receiver 332 and a transmitter 334.
In some embodiments, memory 320 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. In some embodiments, memory 320 includes one or more storage devices remotely located from the one or more processors 310. In some embodiments, memory 320, or alternatively the non-volatile memory device (s) within memory 320, includes a non-transitory computer readable storage medium.
In some embodiments, memory 320 or alternatively the non-transitory computer readable storage medium of memory 320 stores the following programs, modules and data structures, instructions, or a subset thereof:
●operating System 321 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
●I/O interface module 322 that includes procedures for handling various basic input and output functions through one or more input and output devices, wherein I/O interface module 302 further includes an interface display module that controls displaying of a graphical user interface;
communication module 323 that is configured to connect the server to other servers (e.g. , servers and client devices) , via one or more network communication interfaces 350 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
data management module 324 that is configured to determine data fields for an operational data store 325, receive data items, store the received data items to the determined data fields, and analyzes the stored data items to determine performance of corresponding software applications at data sources that generate the data items; and
operational data store 325.
More details on data management module 324 are explained above with reference to FIGS. 1A, 1B and 2. In various embodiments of the present application, data management module 324 further includes a data analysis module 326 (sometimes called “statistical module 50” in the following figures) that analyzes the data items provided by the data sources.
FIGS. 4-10 illustrate block diagrams of seven exemplary data management modules for managing data items provided by a plurality of data sources in accordance with some embodiments of the application. Specifically, FIG. 4 is a block diagram of an exemplary data management module 324A according to a first embodiment of the present application. Data  management module 324A further includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50.
Acquisition module 10 is configured to acquire operation and maintenance data (e.g., first data) and a data sheet of a software application (e.g., Tencent QQ, QQ music) . The operation and maintenance data need to be analyzed, and the corresponding data fields associated with these data need to be identified. In some embodiments, the operation and maintenance data may be data related to software performance such as Tencent QQ login time, the number of login failures, login frequency, or other relevant information (e.g., genres of QQ music played and times of a certain genre of music) . On the other hand, the data sheet is associated with a table in an operational data store (sometimes called a database) , and contains a specific number of data fields. Specifically, the data sheet optionally includes a set of data fields corresponding to a specific software application, a set of data fields corresponding to more than one software applications, or other data fields for use in maintenance and analysis of software performance. As such, after acquiring the operation and maintenance data and the data sheet of the software application, the operation and maintenance data and the data sheet are analyzed to identify software users’ usage patterns, update or remove software functions, and thereby improve software performance.
Prompt module 20 is configured to prompt the user to define data fields of the data sheet based on the operation and maintenance data (e.g., first data) . The data fields of the data sheet are defined based on the corresponding data fields of the operation and maintenance data. Specially, in some embodiments, prompt module 20 requests a user to enter a user input for the purpose of defining the data fields of the data sheet according to the need for software application analysis.
Definition module 30 is configured to define one or more data fields of the data sheet according to the user input entered by the user. In one specific example, the user input names three data fields (e.g., field_1, field_2 and field_3) as “data 1, ” “data 2” and “data 3, ” respectively.
Storage module 40 is configured to store the operation and maintenance data in the data sheet that includes the data fields. The operation and maintenance data stored in the data sheet are associated with characteristics of the software applications. In accordance with the data fields defined for the data sheet, the data sheet include data representing different characteristics of the software applications, and thereby is customized to represent a subset of characteristics of the software applications. As such, the data sheet includes data fields that are named differently, and stores operation and maintenance data that need further analysis.
Statistical module 50 is configured to analyze the operation and maintenance data stored in the data sheet. Statistical module 50 optionally filters and sorts all or part of the data, reports and graphically displays all or part of the data, and/or performs a secondary data operation  (e.g., data formatting, threshold alert generation and automatic report generation) . Analysis performed on the operation and maintenance data may be selected from the foregoing analysis and statistical functions, and selection of the foregoing functions is made according to the actual demands of the operation and maintenance data.
In some implementations, the secondary data operation is one of simple arithmetical operations, e.g., calculation of the sum, difference, or ratio of data stored in two data fields of the data sheet. For example, a field is named “the percentage of the data 3, ” and corresponding data in this field are calculated from two other data ( “data 3” and “data 1” ) based on an equation of “data 3/(data 3 + data 1) ×100. ” Data “data 3” and “data 1” are stored in two other data fields, field_3 and field_1, and extracted therefrom for calculating data “the percentage of the data 3. ”
In some implementations, a separate data format is set for each data field, and two data fields of the data sheet may have distinct data formats. It is very convenient to include a sub-module in statistical module 50 for unifying the data formats of the data stored in the data sheet. In some embodiments, data in a data field is modified by incorporating a prefix or a suffix, and the precision of the data is modified as well. For instance, data “the percentage of data 3” are modified to keep two decimal places, and include a symbol “%” to represent a percentage value.
In some implementations, a threshold may be set for a data field. When data in the data field exceed or are less than the threshold, an alert will be given to the user or a person in charge of the configuration. In the previous example, the alert is generated when “the percentage of data 3” exceeds 50%so as to inform the person in charge to check the data and identify a cause for the alert.
In some implementations, the user may select data in one or more data fields to generate a graph and represent the selected data graphically. For example, a graph representing “data 3” is generated to represent the trend of “data 3” in a recent period of time, and it may be determined from the graph whether there is a steep increase or drop. In another example, a pie diagram is generated to represent the relationship between “data 3” and “data 1. ” Such a diagram could be used to show the respective values and percentages of data “data 3” and “data 1” on a specific day or within a period of time.
In some implementations, the user request to receive data of one or more data fields, and statistical module 50 generates a data table including the requested data and represents the requested data to the user according to a predetermined presentation format. In accordance with an exemplary predetermined presentation format, the requested data are optionally visualized in a graph, and sent in an email message regularly (e.g., every day, every week or every month) . In some embodiments, the requested data are accompanied with an average or a sum calculated based on the  requested data. Data management system 324A optionally archives the email in a historical log to allow the user to review the requested data in the email conveniently.
With the above-mentioned one or more methods, the function of performing data statistics for different software applications or data fields can be realized, and the requirement for characterization and good experience to data statistics can be satisfied.
It is noted that in various embodiments of the application, data management module 324 does not have to include the prompt module 20. After acquisition module 10 acquires the operation and maintenance data and the data sheet of the software application, definition module 30 defines data fields of the data sheet directly according to one or more user inputs entered by the user.
FIG. 5 is a block diagram of an exemplary data management module 324B according to a second embodiment of the present application. Data management module 324B includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50, wherein acquisition module 10 further includes a determination module 101, an acquisition module 102 and a creation module 103. More details on prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4.
In some embodiments, determination module 101 is configured to determine whether there is a data sheet in data server 2. The data sheet optionally contains field names, field types, and operation and maintenance data that already exist in the data sheet. In some embodiments, a data sheet stores only one type of operation and maintenance data. Determining whether there is a data sheet in the data server may be determining whether there is a data sheet that can be used by the user for data analysis, for example a data sheet that can be used to analyze the number of Tencent QQ login failures. The data server may be configured to store in the data sheet (a) data directly reported from client devices 4 installed with the software applications and/or (b) summary data generated from data regularly received from client devices 4.
Acquisition module 102 is configured to acquire the data sheet in the data server according to the user's selection after determining the existence of the desired data sheet in the data server. After the data sheet is determined to exist in the data server, the data sheet in the data server is acquired according to a type of the operation and maintenance data or the data sheet selected by the user. In some implementations, the data sheet acquired may be used to analyze the performance of a QQ music software, the user's habit of using the QQ music software, or other data that can be used to evaluate the user usage or software application performance.
Creation module 103 is configured to, in accordance with a determination that there is no data sheet pre-existing in a data server (e.g., server 2) , receive a data sheet creation request and user inputs to define a data sheet. Creation module 103 is configured to create the data sheet in the  data server according to the user inputs that define the data sheet. In some embodiments, in the data sheet created, a sheet name and data fields are created according to the format required by the user, and the data sheet created is stored on the data server. Then, when server 2 obtains the operation and maintenance data from other client devices 4, data management module 324 of server 2 automatically stores the data in the created data sheet.
FIG. 6 is a block diagram of a data management module 324C according to a third embodiment of the present application. Like data management module 324B, data management module 324C includes an acquisition module 10 (further including a determination module 101, an acquisition module 102 and a creation module 103) , aprompt module 20, a definition module 30, a storage module 40, and a statistical module 50. More details on prompt module 20, definition module 30 and storage module 40 are explained above with reference to FIG. 4, and more details on determination module 101, acquisition module 102 and creation module 103 are explained above with reference to FIG. 5. In some embodiments, data management module 324C further includes a summarization module 60.
Summarization module 60 is configured to obtain the data sheet, summarize the operation and maintenance data, and forward the summarized data to the data server. The operation and maintenance data corresponding to the same data field are stored in the same data sheet. For example, for a software application, Tencent QQ, all the operation and maintenance data corresponding to a “login time” field are stored in the same data sheet. The operation and maintenance data corresponding to the same data field are associated with the same data storage model. In one example, a corresponding data storage model of the operation and maintenance data corresponding to a “login time” field of QQ includes information concerning both a login time and a login place. In some implementations, the operation and maintenance data are summarized and forwarded directly based on the data provided by the client devices, while in some implementations, the operation and maintenance data are summarized and forwarded after they are processed manually or using a program.
Since the operation and maintenance data corresponding to the same data field have the same data storage model, the data could be rendered for display according to a standardized graphical format (e.g., based on a specific trend or distribution graph) , or reported in a standardized report, facilitating subsequent analysis and review of the operation and maintenance data.
In some implementations, statistical module 50 is configured to analyze the operation and maintenance data stored by receiving the user's input and determining the data sheet selected by the user, coupling the operation and maintenance data corresponding to the data sheet stored in the  data server and selected by the user to the data platform, and performing data statistics on the operation and maintenance data coupled to the data platform.
After software applications are released for operation, operation and maintenance data are reported for the purposes of monitoring security and stability of the software application, and usage of the user and the like. Such operation and maintenance data are collected, processed and presented on a standard data platform (e.g., a web platform) . In some implementations, an intuitive understanding of the trend and distribution of the operation and maintenance data is achieved by presenting the data in tables and graphs, thereby providing a basis for improving the software application.
In some implementations, statistical module 50 receives user inputs entered by the user, selects the data sheet according to the user inputs and couples the data sheet selected from the data server to the user data platform. An operation of coupling the data to the user data platform optionally includes filling the data into the user data platform, enabling the user data platform to be in one-to-one correspondence with the data, or other operations that can associate the data with the user data platform. Optionally, the data platform displays all or part of the data, filters and sorts the data, and performs a secondary data operation (e.g., data format setting, threshold alarming and automatic reporting) . Further, analysis performed on the operation and maintenance data includes perform one or more of the aforementioned functions on the data platform, and the one or more functions are selected according to the actual demands of the user.
It is noted that the data platform recited here is intended to facilitate the understanding of the technical scheme of an embodiment of the application and is only illustrative, rather than exhaustive. The data platform can realize other functions such as the function used for analyzing the user's use habit or the software application performance based on a user request.
FIG. 7 is a block diagram of a data management module 324D according to a fourth embodiment of the present application. Data management module 324D includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4. In some embodiments, , statistical module 50 further includes a calculation module 501 and a statistical module 502
Calculation module 501 is configured to perform secondary data calculation on the operation and maintenance data stored. The secondary data operation conducted on the operation and maintenance data stored may be simple arithmetical operations (e.g., the calculation of the total, difference, percentage, ratio and the like) on selected data fields. For example, the value of a field  “the percentage of the data 3” is defined to according to an expression of “data 3/ (data 3 + data 1)×100. ” After the values of “data 3” and “data 1” corresponding to data fields of “field_3” and “field_1” are extracted, the value associated with data field “the percentage of the data 3” is optionally calculated in the background.
Statistical module 502 is configured to perform data statistics on the data after secondary calculation. Performing data statistics on the data after secondary calculation may be performing statistics on the result of secondary calculation, for example, the total, the difference, the percentage and the like of “data 1” to “data 3. ” And data statistics may also be performed on the total, so as to generate a graph, give an alarm or report by email, etc.
FIG. 8 is a block diagram of a data management module 324E according to a fifth embodiment of the present application. Data management module 324E includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4. In some embodiments, statistical module 50 further includes a data acquisition module 11, a format setting module 21 and a first display module 31
Data acquisition module 11 is configured to acquire the statistical data after data statistics is performed based on the operation and maintenance data stored. In some embodiments, the statistical data acquired is selected from the total, the difference, the percentage calculated from the operation and maintenance data.
Format setting module 21 is configured to receive the format of the statistical data set by the user. Optionally, a separate data format is set for data of each data field. For example, the data is modified to incorporate a prefix or a suffix according to a predetermined data format. Optionally, a module is used to set a precision level for the data, and unify the data for subsequent display. For example, data in the data field of “the percentage of data 3” are set to keep two decimal bits followed by the symbol “%” to represent percentage values.
First display module 31 is configured to display the statistical data according to the predetermined data format as explained above. Specifically, in one example, the data in the data field of “the percentage of data 3” are set to keep two decimal bits followed by the symbol “%” to represent percentage values, and this two decimal bit precision is also used to present the sum or the difference.
FIG. 9 is a block diagram of a data management module 324F according to a sixth embodiment of the present application. Data management module 324F includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical  module 50. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4. In some embodiments, statistical module further includes a receiving module 12, an association module 22 and a second display module 32.
Receiving module 12 is configured to acquire fields set by the user and needing to be displayed after data statistics is performed based on the operation and maintenance data stored. The fields that need to be displayed optionally include all or part of the fields of the operation and maintenance data. Receiving module 12 receives the fields that have been set by the user and need to be displayed. For example, the operation and maintenance data includes Tencent QQ login frequency and login time and the like, and if the field set by the user and needing to be displayed is the login frequency of Tencent QQ, then the field received by the receiving module 12 is “login frequency. ”
Association module 22 is configured to associate the fields set by the user and needing to be displayed with the data sheet defined. After receiving the fields that need to be displayed, the receiving module 12 associates the fields that need to be displayed with the data sheet defined. For example, the field needing to be displayed is “login frequency, ” if it is associated with “data 1” in the data sheet defined, the data in “data 1” in the data sheet defined is “login frequency” of the operation and maintenance data. In some embodiments, the fields that need to be displayed with the data sheet defined are associated by making an one-to-one correspondence between the fields that need to be displayed and the fields of the data sheet defined, filling the content of the fields that need to be displayed into the data sheet defined, or any other manners that can associate the fields that need to be displayed with the data sheet defined.
Second display module 32 is configured to display the operation and maintenance data in the associated data sheet. The operation and maintenance data in the associated data sheet are displayed by displaying the data in the operation and maintenance data that is associated with the data sheet, and by displaying the data field data in a tabular form according to the fields that have been set.
FIG. 10 is a block diagram of a data management module 324G according to a seventh embodiment of the present application. Data management module 324G includes an acquisition module 10, a prompt module 20, a definition module 30, a storage module 40 and a statistical module 50. In some embodiments, statistical module 50 includes a receiving module 12, an association module 22, and a second display module 32. More details on acquisition module 10, prompt module 20, definition module 30, storage module 40 and statistical module 50 are explained above with reference to FIG. 4. More details on receiving module 12, association module 22 and  second display module 32 are explained above with reference to FIG. 9. Further, in some embodiments, association module 22 includes a threshold module 42, a determination module 52 and an alarm module 62.
Threshold module 42 is configured to receive a threshold setting for associated fields after the fields that are set by the user and need to be displayed are associated with the data sheet defined. The user's setting of threshold for associated fields may be setting thresholds for all associated fields or part of the associated fields. In some embodiments, the threshold settings for the percentage, total, and difference fields are predetermined as 50%, 500, and 100, respectively. Threshold module 42 may receive the threshold setting for the associated fields, i.e. receive such threshold information, for example, the percentage of 50%. The threshold of associated fields is optionally defined manually, obtained through calculation based on a specific program. As such, the defined threshold is used for identifying abnormal data.
Determination module 52 is configured to determine whether the operation and maintenance data stored in the data sheet and the corresponding threshold settings satisfy a preset alarm condition. In some implementations, the preset alarm condition is satisfied when the operation and maintenance data are greater than or equal to the corresponding threshold settings. On the opposite, in some implementations, the preset alarm condition is not satisfied when the operation and maintenance data are less than the corresponding threshold settings. The preset alarm condition optionally varies based on the data fields and/or the software applications. However, the thresholds of different data fields are optionally independent from or related to each other.
Alarm module 62 is configured to give an alarm after determining the operation and maintenance data stored in the data fields of the data sheet and the threshold satisfy the preset alarm condition. After the operation and maintenance data and the threshold satisfy the preset alarm condition, an alarm will be given to the user or a person to indicate existence of some critical data. In one example, the alarm is triggered when “the percentage of data 3” exceeds 50%, and thus, informs an administrator to check the operation and maintenance data.
An embodiment of the application further provides a data management method which is run on a computer processing device and is used to analyze the operation and maintenance data of a software application. It should be noted that the data management method of an embodiment of the application may be carried out by one of the aforementioned data management modules each provided by an embodiment of the application, and the data management module of an embodiment of the application may also be used to carry out the data management method provided by an embodiment of the application.
FIG. 11 illustrates a flow chart of an exemplary data management method 100 for analyzing data items provided by a plurality of data sources in accordance with some embodiments of the application. Data management method 100 includes the following steps:
Step 101, acquiring the operation and maintenance data and the data sheet of a software application. The software application is optionally Tencent QQ, QQ music or any other software application that need data field collection and statistics. The operation and maintenance data acquired may be data related to software performances such as Tencent QQ login time, the number of login failures and login frequency and the like, or information such as kinds of QQ music played or playing times of a certain kind, etc. The data sheet may contain any number of fields, may contain a plurality of data fields of a software application, or a plurality of data fields of a plurality of software applications, or any other data fields that may be used to perform maintenance and analysis to the software applications. After acquiring the operation and maintenance data and the data sheet of the software application, analysis may be performed on the operation and maintenance data and the data sheet to conduct a research on usage and habit of the user, improve or remove software application functions or optimize software performances, etc.
Step 102, prompting the user to define fields of the data sheet based on the operation and maintenance data. Defining fields of the data sheet based on the operation and maintenance data optionally includes defining fields of the data sheet based on any one or a plurality of data fields of the operation and maintenance data and prompt the user to define fields of the data sheet according to the need for software application analysis.
Step 103, defining the fields of the data sheet according to definition information input by the user. Defining fields of the data sheet optionally includes defining any one or a plurality of fields of the data sheet, or naming fields of the data sheet, for example, naming three fields field_1, field_2 and field_3 of the data sheet as “data 1, ” “data 2” and “data 3” respectively.
Step 104, storing the operation and maintenance data in the data sheet defined. The operation and maintenance data stored in the data sheet defined optionally include corresponding data of any one or a plurality of software application data fields, and the data sheet defined may be a data sheet customized with respect to any one or a plurality of data fields of any software application. The data sheet may contain field names or data that need data analysis or statistics.
Step 105, performing data statistics based on the operation and maintenance data stored. The data statistics may include filtering and sorting all or part of the data of the software application data fields, reporting and graphically displaying all or part of the data, as well as performing secondary data operation, data format setting, threshold alarming and automatic reporting and the like. The statistics performed on the operation and maintenance data may be data statistics  performed on any one or a plurality of the foregoing functions, and selection may be made according to the actual demands of the operation and maintenance data.
In some implementations, the secondary data operation is one of simple arithmetical operations, e.g., calculation of the sum, difference, or ratio of data stored in two data fields of the data sheet. For example, a field is named “the percentage of the data 3, ” and corresponding data in this field are calculated from two other data ( “data 3” and “data 1” ) based on an equation of “data 3/(data 3 + data 1) ×100. ” Data “data 3” and “data 1” are stored in two other data fields, field_3 and field_1, and extracted therefrom for calculating data “the percentage of the data 3. ”
In some implementations, a separate data format is set for each data field, and two data fields of the data sheet may have distinct data formats. It is very convenient to include a sub-module in statistical module 50 for unifying the data formats of the data stored in the data sheet. In some embodiments, data in a data field is modified by incorporating a prefix or a suffix, and the precision of the data is modified as well. For instance, data “the percentage of data 3” are modified to keep two decimal places, and include a symbol “%” to represent a percentage value.
In some implementations, a threshold may be set for a data field. When data in the data field exceed or are less than the threshold, an alert will be given to the user or a person in charge of the configuration. In the previous example, the alert is generated when “the percentage of data 3” exceeds 50% so as to inform the person in charge to check the data and identify a cause for the alert.
In some implementations, the user may select data in one or more data fields to generate a graph and represent the selected data graphically. For example, a graph representing “data 3” is generated to represent the trend of “data 3” in a recent period of time, and it may be determined from the graph whether there is a steep increase or drop. In another example, a pie diagram is generated to represent the relationship between “data 3” and “data 1. ” Such a diagram could be used to show the respective values and percentages of data “data 3” and “data 1” on a specific day or within a period of time.
Automatic report means that the user may define and receive data of a certain data field or a plurality of data fields, the platform may summarize the received data for representation in a table and graphical display. The table or graphical display is included in a report generated on a daily, monthly or annual basis, and the report is sent to the user via email. In one specific example, the table or graphic display in the report presents the total and average value to the user. In some embodiments, the platform may also archive the email to allow the user to query for historical report record conveniently.
With the above-mentioned one or more methods, different statistics may be performed on different data, and the requirement for characterization and good experience to the data statistics can be satisfied.
It should be noted that in some embodiments, data management method 100 does not include operation S102. Therefore, after the operation and maintenance data and data sheet of the software application are acquired, the fields of the data sheet may be defined directly according to the definition information input entered by the user.
FIG. 12 illustrates a flow chart of a method 101 for acquiring a data sheet in accordance with some embodiments of the application. The data sheet of FIG. 11 may be acquired by the method for acquire a data sheet of an embodiment of the application. Specifically, as shown in S101 of FIG. 11, the operation and maintenance data of the software application is stored in the data sheet of the data server after being acquired, then the data sheet is acquired. As shown in FIG. 12, method 101 for acquiring the data sheet includes Step 1011 to 1013 described as follows.
Step 1011, determining whether there is a data sheet in the data server. The data sheet may be a data sheet contains any field name and any field type, and any type of operation and maintenance data exists in the data sheet. One data sheet stores one type of operation and maintenance data. In some implementations, the existence of the data sheet in the data server is determined by determining whether there is a data sheet that can be used by the user for data analysis, for example a data sheet that can be used to analyze the number of Tencent QQ login failures. The data server may be used to store data directly reported from a software application source end or summarized data filed regularly after manual or programmed preprocessing, and the data server may also store the data sheet.
After acquiring the data sheet, the data management method further includes summarizing and forwarding the operation and maintenance data to the data server, wherein corresponding data storage models of the operation and maintenance data corresponding to the same data field are the same, and the operation and maintenance data corresponding to the same data field are stored in the same data sheet. The data statistics performed based on the operation and maintenance data stored includes: receiving the user input and determining the data sheet selected by the user; coupling the operation and maintenance data stored in the data server and corresponding to the data sheet selected by the user to the user platform; and performing data statistics on the operation and maintenance data coupled to the data platform.
Wherein, corresponding data storage models of the operation and maintenance data corresponding to the same data field are the same. For example, the corresponding data storage model of the operation and maintenance data corresponding to the login time of QQ includes “login  time” and “login place, ” then all the corresponding data storage models of the operation and maintenance data corresponding to the login time of QQ are the same, including the “login time” and “login place. ” The operation and maintenance data corresponding to the same data field are stored in the same data sheet. For example, all the operation and maintenance data corresponding to the login time of QQ are stored in the same data sheet.
As corresponding data storage models of the operation and maintenance data corresponding to the same data field are the same, the format of data display performed and the trend graph or distribution graph plotted with respect to the same data field based on this model is the same, and the report format may be uniformed, which is convenient for analysis and viewing.
When various software applications are released and operate, there appears a series of report data used for monitoring the security and stability of the software application and the usage of the user and the like, and the data platform is a web platform which collects and summarizes this kind of data and display them uniformly. An intuitive understanding of the trend and distribution of various operation data may be obtained through the various tables and graphical display, thereby providing a basis for software application adjustment.
The statistical module may receive the data input by the user, select the data sheet according to the data input by the user and couple the data sheet selected from the data server to the user data platform. Coupling the data to the user data platform may be filling the data into the user data platform, or enabling the user data platform to be in one-to-one correspondence with the data, or other methods that can associate the data with the user data platform. The data platform may display all or part of the data, may filter and sort the data, and may perform secondary data operation, data format setting, threshold alarming and automatic reporting, etc. The statistics performed on the operation and maintenance data can realize any one or a plurality of the foregoing functions through the data platform, and selection may be made according to the actual demands of the user. It should be noted that the data platform recited here is intended to facilitate the understanding of the technical scheme of an embodiment of the application and is only illustrative, rather than exhaustive. The data platform can realize other functions such as the function used for analyzing the user's use habit or the software application performance according to the user's demand.
Step 1012, acquiring the data sheet in the data server according to the user's selection if the determination is yes. After the data sheet is determined to exist in the data server, the data sheet in the data server is acquired according to any type of operation and maintenance data or data sheet selected by the user. The data sheet acquired may be used to analyze, for example, the performance of a QQ music software or the user's habit of using the QQ music software, or other data that can be used to measure the user usage or software application performance.
Step 1013, receiving data sheet request information and definition information input by the user and creating a data sheet in the data server if the determination is no. The data sheet request information and definition information input by the user may be received and a data sheet may be created in the data server according to the definition information after determining that there is no data sheet existing in the data server. In the data sheet created, the sheet name and field may be created according to the format required by the user, and the data sheet created is stored on the data server. When there is software data to be accessed, the data will be added into the data sheet directly.
In some embodiments, the data statistics performed based on the operation and maintenance data stored includes performing secondary data calculation to the operation and maintenance data stored and performing data statistics on the data after secondary calculation.
The secondary data operation conducted on the operation and maintenance data stored may be simple arithmetical operations such as the calculation of the total, balance, percentage and the like to associated fields. For example, the value of a field “the percentage of the data 3” is “data 3/ (data 3 + data 1) *100, ” and after the value of field_3 and field_1 is extracted, the value of field_3/ (field_1+ field3) *100 will be calculated in the background.
Performing data statistics on the data after secondary calculation may be performing statistics on the result of secondary calculation, for example, the total, the difference, the percentage and the like of “data 1” to “data 3. ” And data statistics can also be performed on the total, so as to generate a graph, give an alarm or report by email, etc.
As explained below, FIGS. 13-15 illustrate flow charts of another three exemplary data management methods for managing data items provided by a plurality of data sources in accordance with some embodiments of the application.
FIG. 13 is a flow chart of a data management method 200 according to a second embodiment of the present application. Data management method 200 is one of several preferred implementations of data management method 100 shown in FIG. 11. After operation S105, the generated statistical data are set and displayed. As shown in FIG. 13, the data management method includes Step 201 to 208 described as follows.
Steps 201-205 shown in FIG. 13 are the same as steps 101-105 shown in FIG. 11, respectively. For brevity, the details of steps 101-105 are not repeated here.
Step 206, acquiring statistical data. The statistical data acquired may be the total, the difference, the percentage and the like obtained from the calculation of the operation and maintenance data.
Step 207, receiving the format of the statistical data set by the user. Setting the format of the statistical data may be setting separate format for data of each field, for example, adding prefix  and suffix, as well as decimal places, etc. It is very convenient to set a module for the values or unify the data display pattern. For example, the “the percentage of data 3” may be set to keep two decimal places and be followed by the symbol %to represent percentage.
Step 208, displaying the statistical data according to the format set.
Displaying the statistical data may be a display with two decimal places followed by the symbol % for the percentage, or a display, for example, with two decimal places reserved for the sum or the difference.
FIG. 14 is a flow chart of a data management method 300 according to a third embodiment of the present application. Data management method 300 is one of several preferred implementations of data management method 100 shown in FIG. 11. After operation S105, the fields that need to be displayed and the data sheet defined are associated and displayed. As shown in FIG. 14,data management method 300 includes S301 to S308 described as follows.
Steps 301-305 shown in FIG. 14 are the same as steps 101-105 shown in FIG. 11, respectively. For brevity, the details of steps 101-105 are not repeated here.
Step 306, receiving the fields set by the user and needing to be displayed. The fields that need to be displayed may be all or part of the fields of the operation and maintenance data. The receiving module 12 receives the fields that have been set by user and needing to be displayed. For example, the operation and maintenance data includes Tencent QQ login frequency and login time and the like, and if the field set by the user and needing to be displayed is the login frequency of Tencent QQ, then the field received by the receiving module 12 is “login frequency. ”
Step 307, associating the fields set by the user and needing to be displayed with the data sheet defined. After receiving the fields that need to be displayed, the fields that need to be displayed are associated with the data sheet defined. For example, the field needing to be displayed is “login frequency, ” if it is associated with “data 1” in the data sheet defined, the data in “data 1” in the data sheet defined is “login frequency” of the operation and maintenance data. Associating the fields that need to be displayed with the data sheet defined may be making an one-to-one correspondence between the fields that need to be displayed and the fields of the data sheet defined, or filling the content of the fields that need to be displayed into the data sheet defined, or any other manners that can associate the fields that need to be displayed with the data sheet defined.
Step 308, displaying the operation and maintenance data in the associated data sheet. Displaying the operation and maintenance data in the associated data sheet may be displaying the data in the operation and maintenance data that is associated with the data sheet.
FIG. 15 is a flow chart of a data management method 400 according to a fourth embodiment of the present application. Data management method 400 is one of several preferred  implementations of data management method 100 shown in FIG. 11. Here, the fields that are set by the user and need to be displayed are further associated with the defined data sheet. As shown in FIG. 15, data management method 400 includes S401 to S411 described as follows.
Steps 401-407 shown in FIG. 14 are the same as steps 101-107 shown in FIG. 11, respectively. For brevity, the details of steps 101-107 are not repeated here.
Step 409, receiving the threshold setting for the associated fields. The user's setting of threshold for associated fields may be setting thresholds for all associated fields or part of the associated fields. The threshold setting for the associated fields may be the percentage of 50%, or the total of 500, or the difference of 100. The threshold module 42 may receive the threshold setting for the associated fields, i.e. receive such threshold information as, for example, the percentage is 50%. The threshold of associated fields may be set manually, or is obtained through calculating and processing according to a program, or is a threshold used for detection of data exception.
Step 410, determining whether the value of fields of logged operation and maintenance data and the threshold satisfy a preset alarm condition if the logged operation and maintenance data is received. As for whether the value of fields of the logged operation and maintenance data and the threshold satisfy the preset alarm condition, the answer may be yes when the value of fields of the logged operation and maintenance data is greater than or equal to the threshold, or the answer may be yes when the value of fields of the logged operation and maintenance data is less than the threshold. Whether the preset alarm condition is satisfied may be set according to different data fields of different software applications, and the thresholds of different data fields may be independent from each other, or the thresholds of different data fields are associated.
Step 411, giving an alarm if the value of fields of the logged operation and maintenance data and the threshold are determined to satisfy the preset alarm condition. After the value of fields of the operation and maintenance data and the threshold satisfy the preset alarm condition, an alarm will be given to the user or a person in charge of the configuration to alert them to notice the sensitive data. For example, the alarm may be set to be triggered when “the percentage of data 3” exceeds 50% so as to inform the person in charge to check the data and the reason for data exception.
An embodiment of the application further provides a computer storage medium which stores programs used for performing all or part of the steps of the above-mentioned data management method.
Methods  100, 200, 300 and 400 are, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more  processors of a server (e.g., server 2) . Each of the operations shown in FIGS. 11-15 may correspond to instructions stored in a computer memory or non-transitory computer readable storage medium. The computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices. The instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors. Some operations in method 8 may be combined and/or the order of some operations may be changed.
It should be understood that the particular order in which the operations in FIGS. 11-15 have been described are merely exemplary and are not intended to indicate that the described order is the only order in which the operations could be performed. One of ordinary skill in the art would recognize various ways to cache and distribute specific data as described herein. Additionally, it should be noted that details of other processes described below with respect to method 8 (e.g., FIG. 2) are also applicable in an analogous manner to  methods  100, 200, 300 and 400 described above with respect to FIGS. 11-15. For brevity, these details are not repeated here.
While particular embodiments are described above, it will be understood it is not intended to limit the invention to these particular embodiments. On the contrary, the invention includes alternatives, modifications and equivalents that are within the spirit and scope of the appended claims. Numerous specific details are set forth in order to provide a thorough understanding of the subject matter presented herein. But it will be apparent to one of ordinary skill in the art that the subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
Although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, first ranking criteria could be termed second ranking criteria, and, similarly, second ranking criteria could be termed first ranking criteria, without departing from the scope of the present invention. First ranking criteria and second ranking criteria are both ranking criteria, but they are not the same ranking criteria.
The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms “a, ” “an, ” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all  possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes, ” “including, ” “comprises, ” and/or “comprising, ” when used in this specification, specify the presence of stated features, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting, ” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true] ” or “if [astated condition precedent is true] ” or “when [astated condition precedent is true] ” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
Although some of the various drawings illustrate a number of logical stages in a particular order, stages that are not order dependent may be reordered and other stages may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be obvious to those of ordinary skill in the art and so do not present an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software or any combination thereof.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various implementations with various modifications as are suited to the particular use contemplated. Implementations include alternatives, modifications and equivalents that are within the spirit and scope of the appended claims. Numerous specific details are set forth in order to provide a thorough understanding of the subject matter presented herein. But it will be apparent to one of ordinary skill in the art that the subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the implementations.

Claims (20)

  1. A computer-implemented method for managing data items, comprising:
    on a server having one or more processors and memory storing one or more programs for execution by the one or more processors:
    determining a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications, wherein the plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices;
    receiving a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device;
    for each of the plurality of second data items, identifying one of the plurality of data fields in the operational data store and storing the respective second data item in the identified data field in the operational data store; and
    analyzing the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources.
  2. The method of claim 1, wherein each of the plurality of data fields is determined based on a respective statistical data field model established according to the plurality of first data items and at least one characteristic of the one or more software applications.
  3. The method of claim 1, further comprising:
    receiving a plurality of third data items associated with the one or more software applications from the plurality of data sources; and
    in accordance with a determination that each of the plurality of third data items is not associated with any data field in the operational data store, discarding the plurality of third data items.
  4. The method of claim 1, wherein the plurality of second data items are associated with a specific software application that is used on the client devices associated with the plurality of data sources, and each client device has an operational system selected from Microsoft Windows, iOS, Android, Linux and the like.
  5. The method of claim 1, wherein the plurality of second data items are associated with two or more software applications that implement similar functions on the client devices associated with the plurality of data sources.
  6. The method of claim 5, wherein the two or more software applications are distinct instant messaging applications.
  7. The method of claim 1, wherein the operational data store comprises a database that further comprises a plurality of tables, and the plurality of data fields are associated with one of the plurality of tables, such that the plurality of second data items are stored in the same one of the plurality of tables in the operational data store.
  8. The method of claim 1, wherein at least one of the plurality of data fields is defined based on a user input entered by a user of the one or more software applications.
  9. The method of claim 1, wherein analyzing the plurality of second data items further comprises:
    comparing each of the plurality of second data items with a respective threshold value;
    in accordance with a determination that a specific second data item exceeds its corresponding threshold value, identifying the specific second data item as an outliner data item of the plurality of second data items; and
    generating an alert message to indicate that the outliner data item is identified.
  10. The method of claim 1, further comprising:
    visualizing the plurality of second data items according to their respective data fields in the operational data store.
  11. The method of claim 1, wherein analyzing the plurality of second data items further comprises:
    combining a subset of second data items according to their respective data fields, data sources and a predetermined combination rule.
  12. The method of claim 11, wherein the combined second data items are associated with and stored in a data field distinct from the respective data fields of the subset of second data items.
  13. The method of claim 1, further comprising:
    regularly generating a report to report the corresponding analysis result associated with the plurality of second data items.
  14. The method of claim 1, wherein the plurality of second data items comprise a subset of second data items, the method further comprising:
    modifying each of the subset of second data items according to a respective predetermined data precision.
  15. A server system, wherein the server system comprises a first server, comprising:
    one or more processors; and
    memory having instructions stored thereon, which when executed by the one or more processors cause the processors to perform operations comprising:
    determining a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications, wherein the plurality of data fields represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices;
    receiving a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device;
    for each of the plurality of second data items, identifying one of the plurality of data fields in the operational data store and storing the respective second data item in the identified data field in the operational data store; and
    analyzing the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources.
  16. The server system of claim 15, wherein the instructions stored on the memory when executed further cause the processors to perform at least one of the following operations:
    identifying an outliner data item of the plurality of second data items by comparing each of the plurality of second data items with a respective threshold value;
    visualizing the plurality of second data items according to their respective data fields in the operational data store;
    combining a first subset of second data items according to their respective data fields, data sources and a predetermined combination rule;
    regularly generating a report to report the corresponding analysis result associated with the plurality of second data items; and
    modifying each of a second subset of second data items according to a respective predetermined data precision.
  17. The server system of claim 15, wherein each of the plurality of data fields is determined based on a respective statistical data field model established according to the plurality of first data items and at least one characteristic of the one or more software applications.
  18. A non-transitory computer-readable medium, having instructions stored thereon, which when executed by one or more processors cause the processors to perform operations comprising:
    determining a plurality of data fields for an operational data store based on a plurality of first data items associated with one or more software applications, wherein the plurality of data fields  represent a plurality of characteristics of the one or more software applications, and the operational data store tracks operation and maintenance status of the one or more software applications at a plurality of client devices;
    receiving a plurality of second data items associated with the one or more software applications from a plurality of data sources each associated with a respective client device;
    for each of the plurality of second data items, identifying one of the plurality of data fields in the operational data store and storing the respective second data item in the identified data field in the operational data store; and
    analyzing the plurality of second data items that are received from the plurality of the data sources and stored in the operational data store to determine corresponding performance of the one or more software applications at the plurality of data sources.
  19. The non-transitory computer-readable medium of claim 18, wherein the instructions stored thereon when executed further cause the processors to perform at least one of the following operations:
    identifying an outliner data item of the plurality of second data items by comparing each of the plurality of second data items with a respective threshold value;
    visualizing the plurality of second data items according to their respective data fields in the operational data store;
    combining a first subset of second data items according to their respective data fields, data sources and a predetermined combination rule;
    regularly generating a report to report the corresponding analysis result associated with the plurality of second data items; and
    modifying each of a second subset of second data items according to a respective predetermined data precision.
  20. The non-transitory computer-readable medium of claim 18, wherein the plurality of second data items are associated with two or more software applications that implement similar functions on the client devices associated with the plurality of data sources.
PCT/CN2014/085676 2013-09-02 2014-09-01 Management of operational data from multiple data sources WO2015027954A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310393372.0 2013-09-02
CN201310393372.0A CN104424299B (en) 2013-09-02 2013-09-02 Data statistical approach and device

Publications (1)

Publication Number Publication Date
WO2015027954A1 true WO2015027954A1 (en) 2015-03-05

Family

ID=52585625

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/085676 WO2015027954A1 (en) 2013-09-02 2014-09-01 Management of operational data from multiple data sources

Country Status (3)

Country Link
CN (1) CN104424299B (en)
TW (1) TW201510720A (en)
WO (1) WO2015027954A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607983A (en) * 2015-11-09 2016-05-25 北京京东尚科信息技术有限公司 Data exception monitoring method and apparatus

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653436A (en) * 2015-12-31 2016-06-08 山东中创软件商用中间件股份有限公司 Data displaying method and system
CN106100868B (en) * 2016-05-27 2019-07-09 努比亚技术有限公司 A kind of project operation and maintenance device, system and method
CN106021591A (en) * 2016-06-06 2016-10-12 北京奇虎科技有限公司 Data processing method and system for terminal
CN106533734A (en) * 2016-09-23 2017-03-22 杭州优云软件有限公司 Automation operation method through combination of actual operation and post system
CN110069453A (en) * 2017-09-30 2019-07-30 北京国双科技有限公司 Operation/maintenance data treating method and apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5189608A (en) * 1987-06-01 1993-02-23 Imrs Operations, Inc. Method and apparatus for storing and generating financial information employing user specified input and output formats
CN101093514A (en) * 2007-08-20 2007-12-26 中兴通讯股份有限公司 Processing system for automated testing log
CN102208991A (en) * 2010-03-29 2011-10-05 腾讯科技(深圳)有限公司 Blog processing method, device and system
CN103024348A (en) * 2012-11-06 2013-04-03 前卫视讯(北京)科技发展有限公司 Operation and maintenance management system of video monitoring

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075919A (en) * 2006-06-22 2007-11-21 腾讯科技(深圳)有限公司 Method and system for monitoring Internet service
CN101071482A (en) * 2007-06-19 2007-11-14 广州市煤气公司 Underground gas pipe network safety evaluating system
CN101207851A (en) * 2007-11-20 2008-06-25 北京信达爱瑞通信技术有限公司 Wireless application access system, client end equipment and server
CN101546403A (en) * 2008-03-27 2009-09-30 天津德智科技有限公司 Online service system and method for providing online service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5189608A (en) * 1987-06-01 1993-02-23 Imrs Operations, Inc. Method and apparatus for storing and generating financial information employing user specified input and output formats
CN101093514A (en) * 2007-08-20 2007-12-26 中兴通讯股份有限公司 Processing system for automated testing log
CN102208991A (en) * 2010-03-29 2011-10-05 腾讯科技(深圳)有限公司 Blog processing method, device and system
CN103024348A (en) * 2012-11-06 2013-04-03 前卫视讯(北京)科技发展有限公司 Operation and maintenance management system of video monitoring

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607983A (en) * 2015-11-09 2016-05-25 北京京东尚科信息技术有限公司 Data exception monitoring method and apparatus

Also Published As

Publication number Publication date
CN104424299B (en) 2019-06-07
CN104424299A (en) 2015-03-18
TW201510720A (en) 2015-03-16

Similar Documents

Publication Publication Date Title
US11736378B1 (en) Collaborative incident management for networked computing systems
US10673683B2 (en) Data network notification bar processing system
US11593400B1 (en) Automatic triage model execution in machine data driven monitoring automation apparatus
WO2015027954A1 (en) Management of operational data from multiple data sources
US11245586B2 (en) Data insight scoring for performance analytics
US10942960B2 (en) Automatic triage model execution in machine data driven monitoring automation apparatus with visualization
US11886475B1 (en) IT service monitoring by ingested machine data with KPI prediction and impactor determination
US11403333B2 (en) User interface search tool for identifying and summarizing data
CN109660380A (en) Monitoring method, platform, system and the readable storage medium storing program for executing of operation condition of server
US20150032882A1 (en) System and Method for Dynamically Grouping Devices Based on Present Device Conditions
US20140081691A1 (en) Systems and methods for workflow automation
US20150332488A1 (en) Monitoring system performance with pattern event detection
US10423509B2 (en) System and method for managing environment configuration using snapshots
CN109254901B (en) A kind of Monitoring Indexes method and system
US11106713B2 (en) Sampling data using inverted indexes in response to grouping selection
JP2010146306A (en) Configuration monitoring system and configuration monitoring method
CN107592236A (en) The monitoring method and device of a kind of related business datum of promotion message
CN111078695B (en) Method and device for calculating association relation of metadata in enterprise
CN110221947A (en) Warning information method for inspecting, system, computer installation and readable storage medium storing program for executing
US11615358B2 (en) Data insights for performance analytics
CN105607983B (en) Data exception monitoring method and device
CN108390770A (en) A kind of information generating method, device and server
JP3906217B2 (en) System improvement support system
US20220366348A1 (en) Determining true utilization
JP5050639B2 (en) User access status output device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14841080

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC , EPO FORM 1205A DATED 03-08-16

122 Ep: pct application non-entry in european phase

Ref document number: 14841080

Country of ref document: EP

Kind code of ref document: A1