The subject matter disclosed herein relates to data processing. In particular, example embodiments may relate to techniques for quantifying, tracking, and anticipating risk at a manufacturing facility.
Product manufacturing, especially pharmaceutical drug manufacturing necessarily entails some amount of risk. That is to say that in many manufacturing procedures that may be used in making products, there always exists some probability that an issue may occur. In some instances, deviations in an established manufacturing procedure may lead to unrecoverable product losses, and thus, unrecoverable profit loss. Even worse, if undetected, a deviation in the manufacturing process of a product has potential to cause injury to an end consumer of the product.
It is therefore important for manufacturing facility stakeholders to be able to understand what aspects of their manufacturing facility's operations contribute to risk so that corrective action can be taken to avoid or mitigate such risk in the future. However, achieving a common and accurate understanding of the risk is difficult because individual stakeholders may recognize different risk factors, and may attribute different severities to each factor. Further, heuristic methods used in traditional industry practice, which are devoid of data-driven metrics and analysis, often fail to identify correct risk factors and further fail to accurately determine a probability that such factors will actually lead to an issue occurring.
Various ones of the appended drawings merely illustrate example embodiments of the present inventive subject matter and cannot be considered as limiting its scope.
Reference will now be made in detail to specific example embodiments for carrying out the inventive subject matter. Examples of these specific embodiments are illustrated in the accompanying drawings, and specific details are set forth in the following description in order to provide a thorough understanding of the subject matter. It will be understood that these examples are not intended to limit the scope of the claims to the illustrated embodiments. On the contrary, they are intended to cover such alternatives, modifications, and equivalents as may be included within the scope of the disclosure.
Aspects of the present disclosure relate to systems and methods for quantifying, tracking, and anticipating risk in a manufacturing facility. Example embodiments involve systems and methods for generating various risk analytics associated with the manufacturing facility. The risk analytics are generated by analyzing data related to the operations of the manufacturing facility. For example, the method may include analyzing deviation reports that describe deviations from existing manufacturing procedures (referred to hereinafter simply as “deviations”). These deviations provide a quantifiable representation of the risk associated with the manufacturing facility. In example embodiments, the deviation reports are analyzed to provide an overview of the deviations that occur over time as well as a breakdown of deviations by type, subtype, root cause, work center, line-operations, product, and criticality, for example. Further, classification logic may be employed in the analysis of deviations reports to classify deviations into groups to enable the identification of repeat deviations.
Additional example embodiments involve systems and methods to generate a risk data model for the manufacturing facility. The risk data model may be used to determine the level of risk associated with the manufacturing facility. Accordingly, the risk data model includes factors that contribute to the risk in the manufacturing facility and indicators of the relative contribution each factor makes to the overall risk. The risk data model may be developed through an analysis of deviations that have occurred in the manufacturing facility and staffing conditions during such deviations. More particularly, at least some of the risk factors included in the risk data model are based on correlations between the deviations and the staffing conditions. Additional risk factors included in the risk data model may, for example, relate to financial risks (e.g., risk of financial issues affecting the manufacturing site), manufacturing risk (e.g., risk of manufacturing problems such as those caused by legacy systems), risks associated with excipients (e.g., risk of input materials and chemicals causing a problem), risks associated with change control (e.g., risk associated with change control events such as new processes or procedures, or failure to adhere to existing ones), and risk associated with mother nature (e.g., lightning storms, high humidity, high or low temperatures, or the like).
Additional example embodiments involve systems and methods to determine a risk level associated with the manufacturing facility. The determination of the risk level includes calculating a risk score for the manufacturing facility using a risk data model and information related to current or projected staffing conditions of the manufacturing facility. The risk score is then used to determine the overall risk level of the facility as well as risk levels associated with individual risk factors. Risk analytics, risk scores, and risk levels are presented to users such as stakeholders of the manufacturing facility so as to assist those stakeholders in making informed decisions about actions to take to avoid, or at least mitigate, further risk.
As shown, the network system 100 includes a client device 102 in communication with a data processing platform 104 over a network 106. The data processing platform 104 communicates and exchanges data with the client device 102 that pertains to various functions and aspects associated with the network system 100 and its users. Likewise, the client device 102, which may be any of a variety of types of devices that include at least a display, a processor, and communication capabilities that provide access to the network 106 (e.g., a smart phone, a tablet computer, a personal digital assistant (PDA), a personal navigation device (PND), a handheld computer, a desktop computer, a laptop or netbook, or a wearable computing device), may be operated by a user (e.g., a person) of the network system 100 to exchange data with the data processing platform 104 over the network 106.
The client device 102 communicates with the network 106 via a wired or wireless connection. For example, one or more portions of the network 106 may comprises an ad hoc network, an intranet, an extranet, a Virtual Private Network (VPN), a Local Area Network (LAN), a wireless LAN (WLAN), a Wide Area Network (WAN), a wireless WAN (WWAN), a Metropolitan Area Network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a Wireless Fidelity (Wi-Fi®) network, a Worldwide Interoperability for Microwave Access (WiMax) network, another type of network, or any suitable combination thereof.
In various embodiments, the data exchanged between the client device 102 and the data processing platform 104 may involve user-selected functions available through one or more user interfaces (UIs). The UIs may be specifically associated with a web client 108 (e.g., a browser) or an application 109, executing on the client device 102, and in communication with the data processing platform 104.
Turning specifically to the data processing platform 104, a web server 110 is coupled to (e.g., via wired or wireless interfaces), and provides web interfaces to, an application server 112. The application server 112 hosts one or more applications (e.g., web applications) that allow users to use various functions and services of the data processing platform 104. For example, the application server 112 may host a manufacturing risk analytics service 114 that provides a number of analytics related to risk associated with product manufacturing (e.g., pharmaceutical drug manufacturing). In some embodiments, the manufacturing risk analytics service 114 runs and executes on the application server 112, while in other embodiments, the application server 112 provides the client device 102 with a set of instructions (e.g., computer-readable code) that causes the web client 108 of the client device 102 to execute and run the manufacturing risk analytics service 114. The manufacturing risk analytics service 114 analyzes various data to quantify the risk associated with a manufacturing facility and to provide stakeholders with a number of risk analytics to assist the stakeholders in tracking risk at their facilities. Further, the manufacturing risk analytics service 114 makes use of the determined risk analytics to assist stakeholders in anticipating risk based on projected changes in employment and manufacturing output.
The data analyzed by the manufacturing risk analytics service 114 may, for example, include operational data and deviation report data. The deviation report data includes deviation reports that describe a deviation from an existing manufacturing procedure (e.g., an approved instruction or an established standard). Each deviation report may include a timestamp (e.g., a time and date of the deviation), a textual description of the deviation, and a criticality category (e.g., incident, minor deviation, major deviation, critical deviation).
The operational data includes information related to staffing conditions of the manufacturing facility. For example, the operational data may include a total number of employees of the manufacturing facility, a total number of employees of the manufacturing facility who are temporary employees, a total cost to employ the employees of the manufacturing facility, a total number of hours worked by the employees of the manufacturing facility, and a total number of overtime hours worked by the employees of the manufacturing facility. The operational data also includes output data including an amount of goods produced by the employees of the manufacturing facility (e.g., represented as a dollar amount). The operational data also includes information related to customer complaints associated with the manufacturing facility, scheduled audits, previously performed audits, and task data including overdue, scheduled, and upcoming tasks. The operational data analyzed by the manufacturing risk analytics service 114 includes historical operational data (e.g., information related to staffing conditions over a previous period of time), current operational data (e.g., information related to current staffing conditions), and projected operational data (e.g., information related to anticipated staffing conditions).
The data analyzed by the manufacturing risk analytics service 114 is obtained from a third-party computing system 118 (e.g., corresponding to a manufacturing facility), and in particular, a third-party database 120 communicatively coupled to the third-party computing system 118. The data may be routinely automatically retrieved (e.g., nightly) by the manufacturing risk analytics service 114, or manually provided by a user of the third-party computing system 118 or the client device 102 for subsequent processing and analysis by the manufacturing risk analytics service 114.
The data obtained from the third-party computing system 118 is stored in a database 116 that is communicatively coupled to the application server 112 (e.g., via wired or wireless interfaces). The data processing platform 104 may further include a database server (not shown) that facilitates access to the database 116. The database 116 may include multiple databases that may be internal or external to the data processing platform 104. Data representative of the various risk analytics and other pertinent data generated by the manufacturing risk analytics service 114 are also stored on the database 116.
The manufacturing risk analytics service 114 is shown as including an interface module 200, a data retrieval module 205, a data analysis module 210, a classifier module 215, a risk modeling engine 220, and a risk scoring module 225, all configured to communicate with each other (e.g., via a bus, shared memory, a switch, or application programming interfaces (APIs)). The aforementioned modules of the manufacturing risk analytics service 114 may, furthermore, access one or more databases that are part of the data processing platform 104 (e.g., database 116), and each of the modules may access one or more computer-readable storage media of the client device 102.
The interface module 200 receives requests from various client computing devices, and communicates appropriate responses to the requesting client devices. The interface module 200 may receive requests from client devices in the form of Hypertext Transfer Protocol (HTTP) requests, or other web-based, application programming interface (API) requests. For example, the interface module 200 provides a number of interfaces (e.g., APIs or user interfaces that are presented by the client device 102) that allow data to be received by the manufacturing risk analytics service 114.
The interface module 200 also provides user interfaces that include graphical representations of the various analytics produced by the manufacturing risk analytics service 114. These user interfaces may include various graphs, charts, and other graphics used, for example, to represent and analyze risk associated with a manufacturing facility or a set of manufacturing facilities. The interface module 200 also receives and processes user input received through such user interfaces. Examples of the user interfaces provided by the interface module 200 are discussed below in reference to
The data retrieval module 205 is configured to retrieve data for processing and analysis. For example, the data retrieval module 205 obtains deviation report data and operational data associated with manufacturing facilities. In some embodiments, the data retrieval module 205 retrieves such data from the third-party database 120 of the third-party computing system 118 through appropriate requests (e.g., API requests or calls) transmitted over the network 106. The data may be retrieved by the data retrieval module 205 on a periodic basis (e.g., nightly). In some embodiments, the data retrieval module 205 obtains data from a location specified by a user (e.g., via a user interface provided by the interface module 200).
The data analysis module 210 is configured to analyze data to develop various analytics related to risk in a manufacturing facility. For example, the data analysis module 210 analyzes deviation report data to identify patterns in occurrences of deviations (e.g., departures from an existing manufacturing procedure). Given a set of deviation report data, the data analysis module 210 determines a number of analytics including a breakdown of the number of deviations that occur by type, subtype, root cause, work center, line-operations, product, and criticality, for example.
The data analysis module 210 also tracks the occurrences of deviations over time to identify chronic deviations. For example, the data analysis module 210 analyzes deviation report data to identify repeat deviations, which are multiple occurrences of the same deviation occurring within a predefined time range of one another. The data analysis module 210 includes classification logic that is used to classify deviations into groups so as to enable the data analysis module 210 to identify repeat deviations.
In some instances, the workload of employees at a manufacturing facility (e.g., a number of tasks assigned to each employee) contributes to the amount of risk at the manufacturing facility. Accordingly, the data analysis module 210 also analyzes task data (e.g., included as part of the operational data) obtained from a manufacturing facility to develop analytics to assist manufacturing facility stakeholders with task management and workload balancing. In some embodiments, the analysis of the task data may also be used in the determination of the amount of risk associated with manufacturing facilities.
The task data includes information related to planned and upcoming tasks associated with the manufacturing facility. The task data may include a scheduled date or date range, a due date, a responsible party (e.g., an employee of the manufacturing facility to whom the task is assigned), and a description of the task. The data analysis module 210 analyzes the task data to generate an overview of the tasks performed over a certain time period, and determine a number of overdue tasks, an amount of time each task is overdue, and a number of tasks scheduled for a given time period. The data analysis module 210 also generates a breakdown of tasks due by days overdue, due date, status, and criticality. The data analysis module 210 also generates a breakdown of the tasks assigned to each employee of the manufacturing facility and the status of each task (e.g., overdue, scheduled, and upcoming).
The classifier module 215 is configured to analyze the textual descriptions of deviations included in deviation report data to classify each deviation into one or more of several deviation types and subtypes. The deviation types and subtypes assigned to each deviation may be stored in a record associated with the corresponding deviation. In this manner, the data analysis module 210 can use the determined type and subtype to produce more informed analytics (e.g., a breakdown of deviations by type and subtype).
The risk modeling engine 220 is configured to generate risk data models for manufacturing facilities. A risk data model is used to quantify risk associated with the manufacturing facility. The risk data model includes one or more risk metrics, which are factors that contribute to risk. The one or more risk metrics may, for example, correspond to correlations between occurrences of deviations in a manufacturing facility and staffing conditions of the manufacturing facility. Accordingly, in generating the risk data model, the risk modeling engine 220 analyzes deviation report data and historical operational data to identify correlations between occurrences of deviations and staffing conditions, which are used as the risk metrics in the risk data model. For example, the risk metrics may include a headcount change (e.g., a number of employees hired over a period of time), a percentage of hours worked by employees that are overtime hours, a percentage of the total workforce who are temporary employees, and productivity (e.g., amount of goods created relative to an amount of people creating the goods). The risk data model also includes a weight of each risk metric to indicate an amount of risk attributable to that risk metric.
In some embodiments, the risk data model generated by the risk modeling engine 220 takes into account the output of (e.g., amount of goods produced by) the manufacturing facility. To this end, the risk modeling engine 220 analyzes deviation report data along with operational data to identify trends in occurrences of deviations relative to the output of the manufacturing facility. In this manner, the risk data model may be used to identify risk associated with an anticipated output of the manufacturing facility.
The risk scoring module 225 generates a risk score for a manufacturing facility using a risk data model generated by the risk modeling engine 220. The risk score provides a quantified measure of risk associated with the manufacturing facility. Specifically, in some instances, the risk score provides an indication of the likelihood that a future deviation will occur in the manufacturing facility.
In generating the risk score for a manufacturing facility, the risk scoring module 225 accesses a risk data model corresponding to the manufacturing facility, and operational data associated with the manufacturing facility. The operational data may include either current operational data (e.g., information related to current staffing conditions of the manufacturing facility) or projected operational data (e.g., information related to anticipated staffing conditions of the manufacturing facility). In instances in which the risk score is based on current operational data, the risk score provides an indication of the current risk associated with the manufacturing facility. In instances in which the risk score is based on projected operational data, the risk score provides an indication of the risk associated with the anticipated staffing conditions.
Once the risk scoring module 225 has accessed the risk data model and the operational data, the risk scoring module 225 determines a value for each risk metric (referred to herein as “risk metric values”) included in the risk data model. The risk scoring module 225 determines the risk metric values based on the operational data. Following the example from above, the risk scoring module 225 determines values corresponding to headcount change, overtime hour percentage, temporary employee percentage, and productivity. The risk scoring module 225 then weights each determined risk metric value based on the respective risk metric weight indicated in the risk data model. The weighted risk metric values are used to provide an indication of the risk associated with each individual risk metric; accordingly, the risk scoring module 225 may work in conjunction with the interface module 200 to provide a display of the weighted risk metric values. To generate the overall risk score associated with the manufacturing facility, the risk scoring module 225 aggregates the weighted risk metric values. For example, the risk scoring module 225 calculates an average of the weighted risk metric values to generate the overall risk score.
The risk scoring module 225 also determines risk levels associated with manufacturing facilities based on the determined risk score. The risk level may, for example, be high, medium, or low. Each risk level corresponds to a range of risk scores, and accordingly, the determination of the risk level of a manufacturing facility includes determining which range of values the determined risk score falls into.
In some embodiments, the risk scoring module 225 also calculates a risk score specifically associated with a production target of the manufacturing facility. The production target includes a recovery amount (e.g., an anticipated amount of goods to be produced or output). Production target data representative of the production target may be included in the operational data associated with the manufacturing facility, or provided by a user through an interface provided by the interface module 200. The risk scoring module 225 uses the risk data model along with operational data associated with the manufacturing facility to calculate the risk level associated with the production target.
At operation 305, the risk modeling engine 220 obtains deviation report data associated with a manufacturing facility. The deviation report data includes one or more deviation reports identifying a deviation from a manufacturing procedure (e.g., an established standard or approved instruction). Each deviation report includes a timestamp, a criticality category, and a textual description of the deviation. An example of a deviation is placing an incorrect label on a product.
At operation 310, the risk modeling engine 220 obtains historical operational data associated with the manufacturing facility. The historical operational data includes information related to staffing conditions of the manufacturing facility over a previous period of time. The historical operational data may, for example, include a total number of employees of the manufacturing facility, a total number of employees of the manufacturing facility who are temporary employees, a total cost to employ the employees of the manufacturing facility, an amount of goods created by the employees of the manufacturing facility, a total number of hours worked by the employees of the manufacturing facility, and a total number of overtime hours worked by the employees of the manufacturing facility.
At operation 315, the risk modeling engine 220 identifies correlations between the deviation report data and the historical operational data. Specifically, the risk modeling engine 220 identifies correlations between occurrences of deviations and staffing conditions. In some instances, the risk modeling engine 220 may identify a series of non-linear exponential correlated risk factors. The identification of the correlations between the deviation report data and the historical operational data results in the identification of factors that contribute to risk in the manufacturing facility, and the degree to which each factor contributes to the risk.
At operation 320, the risk modeling engine 220 generates a risk data model corresponding to the manufacturing facility using the identified correlations. In particular, the risk data model includes one or more risk metrics (e.g., factors contributing to risk) corresponding to the identified correlations. As an example,
Referring back to
At operation 505, the interface module 200 obtains operational data associated with a manufacturing facility. The operational data includes information related to staffing conditions of the manufacturing facility. The operational data may relate to current or projected staffing conditions. The interface module 200 may receive the operational data from a user via one or more user interfaces, or the data retrieval module 205 may provision the interface module 200 with the operational data after retrieving it from one or more third party sources.
At operation 510, the risk scoring module 225 accesses a risk data model corresponding to the manufacturing facility (e.g., from the database 116). The risk data model includes risk metrics that contribute to the overall risk of the manufacturing facility.
At operation 515, the risk scoring module 225 calculates, using the risk data model, a risk score for the manufacturing facility based on the operational data received at operation 505. As an example,
The method 600 may be embodied in computer-readable instructions for execution by one or more processors such that the operations of the method 600 may be performed in part or in whole by the application server 112. In particular, the operations of the method 600 may be performed in part or in whole by the functional components of the manufacturing risk analytics service 114; accordingly, the method 600 is described below by way of example with reference thereto. However, it shall be appreciated that at least some of the operations of the method 600 may be deployed on various other hardware configurations and the method 600 is not intended to be limited to the application server 112.
At operation 605, the risk scoring module 225 determines risk metric values for each of the risk metrics included in the risk data model of the manufacturing facility based on the operational data. At operation 610, the risk scoring module 225 weights each risk metric value according to the respective weight of each risk metric specified by the risk data model. At operation 615, the risk scoring module 225 aggregates the weighted risk metric values to generate the risk score for the manufacturing facility. For example, the risk scoring module 225 may calculate the average of the weighted risk metric values to determine the overall risk score for the manufacturing facility.
Referring back to
At operation 525, which is optional in some embodiments, the risk scoring module 225 accesses production target data including a production target (e.g., an anticipated recovery). The production target data may be included in the operational data associated with the manufacturing facility or it may be received directly from a user via a user interface provided by the interface module 200.
At operation 530, which is optional in some embodiments, the risk scoring module 225 determines a risk level associated with the production target using the risk data model and the determined risk metric values. The risk scoring module 225 may determine the risk level associated with the production target based on a comparison of risk scores associated with the manufacturing facility at previous production (e.g., recovery) levels.
At operation 535, the interface module 200 causes presentation of a user interface on the client device 102. The user interface includes the risk score and the risk level associated with the manufacturing facility along with other information such as the risk level associated with a production target. As an example of the foregoing user interface,
As shown, the user interface 700 includes a graph 702 that illustrates risk scores associated with a manufacturing facility over a period of time, which in this example relate to deviations occurring over the period of time. The graph 702 includes the risk scores for both a previous and a current year. It shall be appreciated that a year is simply an example time period over which risk scores may be graphed, although, in other embodiments, a user may specific other time period for the graph 702.
In some instances, the method 500 may initially be performed for current operational data and then repeated for projected operational data to produce a current risk score and a projected risk score. That is, a risk score is initially calculated based on the current operational data, and then the risk score is recalculated based on the projected operational data. An example of the current and projected risk scores is included in the user interface 700. In particular, a window 704 includes a current risk score, and a window 706 includes a projected risk score for the next month.
Further examples of interfaces provided by the interface module 200 are discussed below in reference to
In particular, the user interface 800 includes risk analytics associated with deviations occurring at the manufacturing facility, such as weekly deviations 802, repeat deviations 804 (e.g., multiple instances of the same deviation occurring within a predefined time range), and past due deviations 806 (e.g., deviations awaiting corrective action). The user interface 800 also includes risk analytics associated with tasks performed at the manufacturing facility, such as overdue tasks 808, tasks performed 810, and percent of tasks overdue 812. The user interface 800 also includes risk analytics associated with manufacturing audits, such as customer complaints 814, audits underway 816, and upcoming audits 818.
The risk levels displayed in the windows 1304 and 1306 are determined by the risk scoring module 225 based on an analysis of operational data (historical, current, and projected) in light of various risk metrics included in a risk data model corresponding to a manufacturing facility. In this example, the risk metrics relate to staffing conditions of the manufacturing facility. In particular, in this example, the risk metrics include headcount change, productivity, percent overtime, and percent temporary employees. As shown, the user interface 1300 includes charts 1308-1311, each of which corresponds to a risk metric included in the risk data model. In particular, each of the charts 1308-1311 includes historical, current, and projected risk metric values for the corresponding risk metric over the period of time specified by the date drop-down menus 1302. The risk metric values are determined by the risk scoring module 225 based on analysis of the manufacturing facility's operational data. Each of the charts 1308-1311 also includes an indicator of the risk level associated with the corresponding risk metric value, which is denoted by color. The risk level of each risk metric value corresponds to the weighted risk metric value determined during the process of calculating a risk score associated with the manufacturing facility.
As an example, the chart 1308 includes historical, current, and projected values for headcount change, which represents the change to the total number of employees of the manufacturing facility, over the period of time specified by the date drop-down menus 1302. The chart 1309 includes historical, current, and projected values for productivity, which represents an amount of goods created at the manufacturing facility relative to the amount of people creating the goods, over the period of time specified by the date drop-down menus 1302. The chart 1310 includes historical, current, and projected values for percent overtime, which represents an amount of overtime hours worked at the manufacturing facility relative to the total number of hours worked at the manufacturing facility, over the period of time specified by the date drop-down menus 1302. The chart 1311 includes historical, current, and projected values for percent temporary employees, which represents a number of temporary employees of the manufacturing facility relative to the total number of employees in the manufacturing facility workforce, over the period of time specified by the date drop-down menus 1302.
The user interface 1300 also includes a chart 1312 illustrating historical, current, and projected values for recovery of the manufacturing facility over the period of time specified by the date drop-down menus 1302. The recovery of the manufacturing facility represents an amount of goods being created (e.g., amount in dollars of revenue generated) by the manufacturing facility. The chart 1312 also includes an indicator of risk level for each recovery value. The risk scoring module 225 determines the risk level associated with each historical, current, and projected recovery value based on an analysis of the manufacturing facility's operational data in light of the risk data model associated with the manufacturing facility.
Inputs received at either of the buttons 1402 and 1404 may change one or more risk metric values, and thus, change not only the projected overall risk score, but the individual risk levels associated with each risk metric as well. Accordingly, upon receiving inputs at either one of the buttons 1402 or 1404 indicative of projected operational data, the risk scoring module 225 recalculates risk levels for at least a portion of the risk metrics in the risk data model, and the recalculated risk levels are displayed in the user interface 1400. In particular, the risk scoring module 225 recalculates risk levels for a set of risk metric pairs (e.g., overtime and headcount) in light of the input received via the buttons 1402 and 1404. The risk level for each risk metric pair is displayed in the user interface 1400 in a different block so as to illustrate the relationship of each risk metric pair. For example, a block 1406 represents a +5% change in overtime hours and a −5% change in headcount. Similarly, a block 1408 represents a −7% change in overtime hours and a +5% change in headcount. In the user interface 1400, the risk level of each block is denoted by color. It shall be appreciated that although
The user interface 1500 further includes a graph 1512 that displays overdue tasks over the period of time. The user interface 1500 further includes a graph 1514 that displays planned and upcoming tasks over the period of time.
Modules, Components, and Logic
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC). A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware modules become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware modules) at different times. Software accordingly configures a particular processor or processors, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API).
The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented modules may be distributed across a number of geographic locations.
Example Machine Architecture and Machine-Readable
The machine 1700 may include processors 1710, memory/storage 1730, and L/O components 1750, which may be configured to communicate with each other such as via a bus 1702. In an example embodiment, the processors 1710 (e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an ASIC, a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1712 and a processor 1714 that may execute the instructions 1716. The term “processor” is intended to include multi-core processor that may comprise two or more independent processors (sometimes referred to as “cores”) that may execute instructions contemporaneously. Although
The memory/storage 1730 may include a memory 1732, such as a main memory, or other memory storage, and a storage unit 1736, both accessible to the processors 1710 such as via the bus 1702. The storage unit 1736 and memory 1732 store the instructions 1716 embodying any one or more of the methodologies or functions described herein. The instructions 1716 may also reside, completely or partially, within the memory 1732, within the storage unit 1736, within at least one of the processors 1710 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 1700. Accordingly, the memory 1732, the storage unit 1736, and the memory of the processors 1710 are examples of machine-readable media.
As used herein, “machine-readable medium” means a device able to store instructions and data temporarily or permanently, and may include, but is not limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Erasable Programmable Read-Only Memory (EEPROM)), and/or any suitable combination thereof. The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store the instructions 1716. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instructions 1716) for execution by a machine (e.g., machine 1700), such that the instructions, when executed by one or more processors of the machine (e.g., processors 1710), cause the machine to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” excludes signals per se.
Furthermore, the machine-readable medium is non-transitory in that it does not embody a propagating signal. However, labeling the tangible machine-readable medium “non-transitory” should not be construed to mean that the medium is incapable of movement—the medium should be considered as being transportable from one real-world location to another. Additionally, since the machine-readable medium is tangible, the medium may be considered to be a machine-readable device.
The I/O components 1750 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components 1750 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 1750 may include many other components that are not shown in
In further example embodiments, the I/O components 1750 may include biometric components 1756, motion components 1758, environmental components 1760, or position components 1762 among a wide array of other components. For example, the biometric components 1756 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like. The motion components 1758 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environmental components 1760 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components 1762 may include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
Communication may be implemented using a wide variety of technologies. The I/O components 1750 may include communication components 1764 operable to couple the machine 1700 to a network 1780 or devices 1770 via a coupling 1782 and a coupling 1772, respectively. For example, the communication components 1764 may include a network interface component or other suitable device to interface with the network 1780. In further examples, the communication components 1764 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices 1770 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a Universal Serial Bus (USB)).
Moreover, the communication components 1764 may detect identifiers or include components operable to detect identifiers. For example, the communication components 1764 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF4117, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 1764. such as location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth.
Transmission Medium
In various example embodiments, one or more portions of the network 1780 may be an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, the Internet, a portion of the Internet, a portion of the PSTN, a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, the network 1780 or a portion of the network 1780 may include a wireless or cellular network and the coupling 1782 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, the coupling 1782 may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1×RTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standard-setting organizations, other long range protocols, or other data transfer technology.
The instructions 1716 may be transmitted or received over the network 1780 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 1764) and using any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions 1716 may be transmitted or received using a transmission medium via the coupling 1772 (e.g., a peer-to-peer coupling) to the devices 1770. The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying the instructions 1716 for execution by the machine 1700, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Language
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one, independent of any other instances or usages of “at least one” or “one or more.” In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Also, in the following claims, the terms “including” and “comprising” are open-ended; that is, a system, device, article, or process that includes elements in addition to those listed after such a term in a claim are still deemed to fall within the scope of that claim. Moreover, in the following claims, the terms “first,” “second,” “third,” and so forth are used merely as labels, and are not intended to impose numerical requirements on their objects.
Number | Name | Date | Kind |
---|---|---|---|
6430305 | Decker | Aug 2002 | B1 |
6820135 | Dingman | Nov 2004 | B1 |
6978419 | Kantrowitz | Dec 2005 | B1 |
6980984 | Huffman et al. | Dec 2005 | B1 |
7168039 | Bertram | Jan 2007 | B2 |
7168045 | Fliess | Jan 2007 | B2 |
7617232 | Gabbert et al. | Nov 2009 | B2 |
7752125 | Kothari | Jul 2010 | B1 |
7756843 | Palmer | Jul 2010 | B1 |
7899796 | Borthwick et al. | Mar 2011 | B1 |
7917376 | Bellin et al. | Mar 2011 | B2 |
7941321 | Greenstein et al. | May 2011 | B2 |
8036971 | Aymeloglu et al. | Oct 2011 | B2 |
8046283 | Burns et al. | Oct 2011 | B2 |
8054756 | Chand et al. | Nov 2011 | B2 |
8214490 | Vos et al. | Jul 2012 | B1 |
8229902 | Vishniac et al. | Jul 2012 | B2 |
8290838 | Thakur et al. | Oct 2012 | B1 |
8302855 | Ma et al. | Nov 2012 | B2 |
8386377 | Xiong et al. | Feb 2013 | B1 |
8473454 | Evanitsky et al. | Jun 2013 | B2 |
8484115 | Aymeloglu et al. | Jul 2013 | B2 |
8577911 | Stepinski et al. | Nov 2013 | B1 |
8589273 | Creeden et al. | Nov 2013 | B2 |
8660878 | Bernardini | Feb 2014 | B2 |
8688573 | Rukonic et al. | Apr 2014 | B1 |
8694969 | Bernardini | Apr 2014 | B2 |
8739290 | Jamail | May 2014 | B1 |
8744890 | Bernier | Jun 2014 | B1 |
8769412 | Gill | Jul 2014 | B2 |
8781882 | Arboletti | Jul 2014 | B1 |
8793151 | DelZoppo | Jul 2014 | B2 |
8812960 | Sun et al. | Aug 2014 | B1 |
8924388 | Elliot et al. | Dec 2014 | B2 |
8924389 | Elliot et al. | Dec 2014 | B2 |
8938686 | Erenrich et al. | Jan 2015 | B1 |
8949164 | Mohler | Feb 2015 | B1 |
9069842 | Melby | Jun 2015 | B2 |
9100428 | Visbal | Aug 2015 | B1 |
9129219 | Robertson et al. | Sep 2015 | B1 |
9256664 | Chakerian et al. | Feb 2016 | B2 |
9323234 | Zhou | Apr 2016 | B2 |
20020065708 | Senay et al. | May 2002 | A1 |
20020095360 | Joao | Jul 2002 | A1 |
20020095658 | Shulman | Jul 2002 | A1 |
20020103705 | Brady | Aug 2002 | A1 |
20020147805 | Leshem et al. | Oct 2002 | A1 |
20030126102 | Borthwick | Jul 2003 | A1 |
20040001103 | Fliess | Jan 2004 | A1 |
20040034570 | Davis | Feb 2004 | A1 |
20040111480 | Yue | Jun 2004 | A1 |
20040153418 | Hanweck | Aug 2004 | A1 |
20040153437 | Buchan | Aug 2004 | A1 |
20040215551 | Eder | Oct 2004 | A1 |
20040236688 | Bozeman | Nov 2004 | A1 |
20040256718 | Chandler | Dec 2004 | A1 |
20050010472 | Quatse et al. | Jan 2005 | A1 |
20050086207 | Heuer et al. | Apr 2005 | A1 |
20050154628 | Eckart et al. | Jul 2005 | A1 |
20050154769 | Eckart et al. | Jul 2005 | A1 |
20050228688 | Visser | Oct 2005 | A1 |
20060026120 | Carolan et al. | Feb 2006 | A1 |
20060080283 | Shipman | Apr 2006 | A1 |
20060143034 | Rothermel | Jun 2006 | A1 |
20060143075 | Carr et al. | Jun 2006 | A1 |
20060143079 | Basak et al. | Jun 2006 | A1 |
20060173762 | Clater | Aug 2006 | A1 |
20060190391 | Cullen | Aug 2006 | A1 |
20070000999 | Kubo et al. | Jan 2007 | A1 |
20070011304 | Error | Jan 2007 | A1 |
20070038646 | Thota | Feb 2007 | A1 |
20070150801 | Chidlovskii et al. | Jun 2007 | A1 |
20070156673 | Maga | Jul 2007 | A1 |
20070162454 | D'Albora et al. | Jul 2007 | A1 |
20070185867 | Maga | Aug 2007 | A1 |
20070192122 | Routson et al. | Aug 2007 | A1 |
20070194097 | Jones | Aug 2007 | A1 |
20070284433 | Domenica et al. | Dec 2007 | A1 |
20080103996 | Forman et al. | May 2008 | A1 |
20080208735 | Balet et al. | Aug 2008 | A1 |
20080222295 | Robinson et al. | Sep 2008 | A1 |
20080255973 | El Wade et al. | Oct 2008 | A1 |
20080256131 | Shimohara | Oct 2008 | A1 |
20080313132 | Hao et al. | Dec 2008 | A1 |
20090055795 | Finlayson | Feb 2009 | A1 |
20090094270 | Alirez et al. | Apr 2009 | A1 |
20090106178 | Chu | Apr 2009 | A1 |
20090112745 | Stefanescu | Apr 2009 | A1 |
20090125359 | Knapic | May 2009 | A1 |
20090125459 | Norton et al. | May 2009 | A1 |
20090157732 | Hao et al. | Jun 2009 | A1 |
20090187546 | Whyte et al. | Jul 2009 | A1 |
20090187548 | Ji et al. | Jul 2009 | A1 |
20090249244 | Robinson et al. | Oct 2009 | A1 |
20090271343 | Vaiciulis et al. | Oct 2009 | A1 |
20090307049 | Elliott et al. | Dec 2009 | A1 |
20090313463 | Pang et al. | Dec 2009 | A1 |
20090319418 | Herz | Dec 2009 | A1 |
20090319891 | MacKinlay | Dec 2009 | A1 |
20100030722 | Goodson et al. | Feb 2010 | A1 |
20100031141 | Summers et al. | Feb 2010 | A1 |
20100042922 | Bradateanu et al. | Feb 2010 | A1 |
20100057622 | Faith et al. | Mar 2010 | A1 |
20100070842 | Aymeloglu et al. | Mar 2010 | A1 |
20100098318 | Anderson | Apr 2010 | A1 |
20100106752 | Eckardt et al. | Apr 2010 | A1 |
20100114887 | Conway et al. | May 2010 | A1 |
20100131502 | Fordham | May 2010 | A1 |
20100161735 | Sharma | Jun 2010 | A1 |
20100191563 | Schlaifer et al. | Jul 2010 | A1 |
20100235915 | Memon et al. | Sep 2010 | A1 |
20100262688 | Hussain et al. | Oct 2010 | A1 |
20100312837 | Bodapati et al. | Dec 2010 | A1 |
20110047114 | Marvell | Feb 2011 | A1 |
20110061013 | Billicki et al. | Mar 2011 | A1 |
20110078173 | Seligmann et al. | Mar 2011 | A1 |
20110093327 | Fordyce et al. | Apr 2011 | A1 |
20110099133 | Chang et al. | Apr 2011 | A1 |
20110153384 | Horne et al. | Jun 2011 | A1 |
20110173093 | Psota et al. | Jul 2011 | A1 |
20110191138 | Saraf | Aug 2011 | A1 |
20110208565 | Ross et al. | Aug 2011 | A1 |
20110213655 | Henkin | Sep 2011 | A1 |
20110218955 | Tang | Sep 2011 | A1 |
20110270604 | Qi et al. | Nov 2011 | A1 |
20110270834 | Sokolan et al. | Nov 2011 | A1 |
20110289397 | Eastmond et al. | Nov 2011 | A1 |
20110295649 | Fine | Dec 2011 | A1 |
20110314007 | Dassa et al. | Dec 2011 | A1 |
20110314024 | Chang et al. | Dec 2011 | A1 |
20120004904 | Shin et al. | Jan 2012 | A1 |
20120011238 | Rathod | Jan 2012 | A1 |
20120011245 | Gillette et al. | Jan 2012 | A1 |
20120022945 | Falkenborg et al. | Jan 2012 | A1 |
20120054284 | Rakshit | Mar 2012 | A1 |
20120059853 | Jagota | Mar 2012 | A1 |
20120066166 | Curbera et al. | Mar 2012 | A1 |
20120079363 | Folting et al. | Mar 2012 | A1 |
20120084117 | Tavares et al. | Apr 2012 | A1 |
20120084287 | Lakshminarayan et al. | Apr 2012 | A1 |
20120131512 | Takeuchi et al. | May 2012 | A1 |
20120158527 | Cannelongo et al. | Jun 2012 | A1 |
20120159362 | Brown et al. | Jun 2012 | A1 |
20120173381 | Smith | Jul 2012 | A1 |
20120215574 | Driessnack | Aug 2012 | A1 |
20120215784 | King et al. | Aug 2012 | A1 |
20120221553 | Wittmer et al. | Aug 2012 | A1 |
20120226523 | Weiss | Sep 2012 | A1 |
20120245976 | Kumar et al. | Sep 2012 | A1 |
20120323888 | Osann, Jr. | Dec 2012 | A1 |
20130016106 | Yip et al. | Jan 2013 | A1 |
20130035909 | Douady | Feb 2013 | A1 |
20130054306 | Bhalla | Feb 2013 | A1 |
20130057551 | Ebert et al. | Mar 2013 | A1 |
20130096988 | Grossman et al. | Apr 2013 | A1 |
20130110746 | Ahn | May 2013 | A1 |
20130151453 | Bhanot et al. | Jun 2013 | A1 |
20130166348 | Scotto | Jun 2013 | A1 |
20130166480 | Popescu et al. | Jun 2013 | A1 |
20130185245 | Anderson | Jul 2013 | A1 |
20130185307 | El-Yaniv et al. | Jul 2013 | A1 |
20130208565 | Orji et al. | Aug 2013 | A1 |
20130226318 | Procyk | Aug 2013 | A1 |
20130238616 | Rose et al. | Sep 2013 | A1 |
20130246170 | Gross et al. | Sep 2013 | A1 |
20130246537 | Gaddala | Sep 2013 | A1 |
20130246597 | Iizawa et al. | Sep 2013 | A1 |
20130263019 | Castellanos et al. | Oct 2013 | A1 |
20130282696 | John et al. | Oct 2013 | A1 |
20130290825 | Arndt et al. | Oct 2013 | A1 |
20130297619 | Chandrasekaran et al. | Nov 2013 | A1 |
20130304770 | Boero et al. | Nov 2013 | A1 |
20130325544 | Bonin | Dec 2013 | A1 |
20140012796 | Petersen et al. | Jan 2014 | A1 |
20140040371 | Gurevich et al. | Feb 2014 | A1 |
20140058914 | Song et al. | Feb 2014 | A1 |
20140068487 | Steiger et al. | Mar 2014 | A1 |
20140095509 | Patton | Apr 2014 | A1 |
20140108380 | Gotz et al. | Apr 2014 | A1 |
20140108985 | Scott et al. | Apr 2014 | A1 |
20140123279 | Bishop et al. | May 2014 | A1 |
20140136285 | Carvalho | May 2014 | A1 |
20140143009 | Brice et al. | May 2014 | A1 |
20140156527 | Grigg et al. | Jun 2014 | A1 |
20140156584 | Motukuri | Jun 2014 | A1 |
20140157172 | Peery et al. | Jun 2014 | A1 |
20140164502 | Khodorenko et al. | Jun 2014 | A1 |
20140189536 | Lange et al. | Jul 2014 | A1 |
20140195515 | Baker et al. | Jul 2014 | A1 |
20140222521 | Chait | Aug 2014 | A1 |
20140222793 | Sadkin et al. | Aug 2014 | A1 |
20140229554 | Grunin et al. | Aug 2014 | A1 |
20140257918 | Spencer | Sep 2014 | A1 |
20140337086 | Asenjo | Nov 2014 | A1 |
20140344230 | Krause et al. | Nov 2014 | A1 |
20140350985 | Pink | Nov 2014 | A1 |
20140358829 | Hurwitz | Dec 2014 | A1 |
20140366132 | Stiansen et al. | Dec 2014 | A1 |
20150073929 | Psota et al. | Mar 2015 | A1 |
20150073954 | Braff | Mar 2015 | A1 |
20150095773 | Gonsalves et al. | Apr 2015 | A1 |
20150100897 | Sun et al. | Apr 2015 | A1 |
20150106170 | Bonica | Apr 2015 | A1 |
20150106379 | Elliot et al. | Apr 2015 | A1 |
20150135256 | Hoy et al. | May 2015 | A1 |
20150178647 | Wiggins | Jun 2015 | A1 |
20150188872 | White | Jul 2015 | A1 |
20150242401 | Liu | Aug 2015 | A1 |
20150281287 | Gill | Oct 2015 | A1 |
20150338233 | Cervelli et al. | Nov 2015 | A1 |
20150379413 | Robertson et al. | Dec 2015 | A1 |
20160004764 | Chakerian et al. | Jan 2016 | A1 |
20160063192 | Johnson | Mar 2016 | A1 |
20160125344 | Carmeli | May 2016 | A1 |
20160148132 | Aqlan | May 2016 | A1 |
20160320768 | Zhao | Nov 2016 | A1 |
Number | Date | Country |
---|---|---|
102546446 | Jul 2012 | CN |
103167093 | Jun 2013 | CN |
102054015 | May 2014 | CN |
102014204827 | Sep 2014 | DE |
102014204830 | Sep 2014 | DE |
102014204834 | Sep 2014 | DE |
2487610 | Aug 2012 | EP |
2858018 | Apr 2015 | EP |
2869211 | May 2015 | EP |
2889814 | Jul 2015 | EP |
2892197 | Jul 2015 | EP |
2963595 | Jan 2016 | EP |
WO 20050116851 | Dec 2005 | WO |
Entry |
---|
Amnet, “5 Great Tools for Visualizing Your Twitter Followers,” posted Aug. 4, 2010, http://www.amnetblog.com/component/content/article/115-5-grate-tools-for-visualizing-your-twitter-followers.html. |
Appacts, “Smart Thinking for Super Apps,” <http://www.appacts.com> Printed Jul. 18, 2013 in 4 pages. |
Apsalar, “Data Powered Mobile Advertising,” “Free Mobile App Analytics” and various analytics related screen shots <http://apsalar.com> Printed Jul. 18, 2013 in 8 pages. |
Capptain—Pilot Your Apps, <http://www.capptain.com> Printed Jul. 18, 2013 in 6 pages. |
Celik, Tantek, “CSS Basic User Interface Module Level 3 (CSS3 UI),” Section 8 Resizing and Overflow, Jan. 17, 2012, retrieved from internet http://www.w3.org/TR/2012/WD-css3-ui-20120117/#resizing-amp-overflow retrieved on May 18, 2015. |
Chaudhuri et al., “An Overview of Business Intelligence Technology,” Communications of the ACM, Aug. 2011, vol. 54, No. 8. |
Cohn et al., “Semi-supervised Clustering with User Feedback,” Constrained Clustering: Advances in Algorithms, Theory, and Applications 4.1, 2003, pp. 17-32. |
Countly Mobile Analytics, <http://count.ly/> Printed Jul. 18, 2013 in 9 pages. |
Distimo—App Analytics, <http://www.distimo.com/app-analytics> Printed Jul. 18, 2013 in 5 pages. |
Flurry Analytics, <http://www.flurry.com/> Printed Jul. 18, 2013 in 14 pages. |
Google Analytics Official Website—Web Analytics & Reporting, <http://www.google.com/analytics.index.html> Printed Jul. 18, 2013 in 22 pages. |
Gorr et al., “Crime Hot Spot Forecasting: Modeling and Comparative Evaluation,” Grant 98-IJ-CX-K005, May 6, 2002, 37 pages. |
Gu et al., “Record Linkage: Current Practice and Future Directions,” Jan. 15, 2004, pp. 32. |
Hansen et al. “Analyzing Social Media Networks with NodeXL: Insights from a Connected World”, Chapter 10, pp. 143-164, published Sep. 2010. |
Hua et al., “A Multi-attribute Data Structure with Parallel Bloom Filters for Network Services” HiPC 2006, LNCS 4297, pp. 277-288, 2006. |
“HunchLab: Heat Map and Kernel Density Calculation for Crime Analysis,” Azavea Journal, printed from www.azavea.com/blogs/newsletter/v4i4/kernel-density-capabilities-added-to-hunchlab/ on Sep. 9, 2014, 2 pages. |
Keylines.com, “An Introduction to KeyLines and Network Visualization,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-White-Paper.pdf> downloaded May 12, 2014 in 8 pages. |
Keylines.com, “KeyLines Datasheet,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-datasheet.pdf> downloaded May 12, 2014 in 2 pages. |
Keylines.com, “Visualizing Threats: Improved Cyber Security Through Network Visualization,” Apr. 2014, <http://keylines.com/wp-content/uploads/2014/04/Visualizing-Threats1.pdf> downloaded May 12, 2014 in 10 pages. |
Kontagent Mobile Analytics, <http://www.kontagent.com/> Printed Jul. 18, 2013 in 9 pages. |
Localytics—Mobile App Marketing & Analytics, <http://www.localytics.com/> Printed Jul. 18, 2013 in 12 pages. |
Manno et al., “Introducing Collaboration in Single-user Applications through the Centralized Control Architecture,” 2010, pp. 10. |
Mixpanel—Mobile Analytics, <https://mixpanel.com/> Printed Jul. 18, 2013 in 13 pages. |
Open Web Analytics (OWA), <http://www.openwebanalytics.com/> Printed Jul. 19, 2013 in 5 pages. |
Piwik—Free Web Analytics Software. <http://piwik.org/> Printed Jul. 19, 2013 in18 pages. |
“Refresh CSS Ellipsis When Resizing Container—Stack Overflow,” Jul. 31, 2013, retrieved from internet http://stackoverflow.com/questions/17964681/refresh-css-ellipsis-when-resizing-container, retrieved on May 18, 2015. |
Sigrist et al., “PROSITE, a Protein Domain Database for Functional Characterization and Annotation,” Nucleic Acids Research 38.Suppl 1, 2010, pp. D161-D166. |
StatCounter—Free Invisible Web Tracker, Hit Counter and Web Stats, <http://statcounter.com/> Printed Jul. 19, 2013 in 17 pages. |
TestFlight—Beta Testing on the Fly, <http://testflightapp.com/> Printed Jul. 18, 2013 in 3 pages. |
trak.io, <http://trak.io/> printed Jul. 18, 2013 in 3 pages. |
UserMetrix, <http://usermetrix.com/android-analytics> printed Jul. 18, 2013 in 3 pages. |
Valentini et al., “Ensembles of Learning Machines,” M. Marinaro and R. Tagliaferri (Eds.): WIRN VIETRI 2002, LNCS 2486, pp. 3-20. |
Vose et al., “Help File for ModelRisk Version 5,” 2007, Vose Software, pp. 349-353. [Uploaded in 2 Parts]. |
Wang et al., “Research on a Clustering Data De-Duplication Mechanism Based on Bloom Filter,” IEEE 2010, 5 pages. |
Wikipedia, “Multimap,” Jan. 1, 2013, https://en.wikipedia.org/w/index.php?title=Multimap&oldid=530800748. |
Notice of Allowance for U.S. Appl. No. 14/479,863 dated Mar. 31, 2015. |
Notice of Allowance for U.S. Appl. No. 14/225,084 dated May 4, 2015. |
Notice of Allowance for U.S. Appl. No. 14/319,161 dated May 4, 2015. |
Notice of Allowance for U.S. Appl. No. 14/323,935 dated Oct. 1, 2015. |
Notice of Allowance for U.S. Appl. No. 14/552,336 dated Nov. 3, 2015. |
Notice of Allowance for U.S. Appl. No. 14/746,671 dated Jan. 21, 2016. |
Official Communication for U.S. Appl. No. 14/225,160 dated Jul. 29, 2014. |
Official Communication for U.S. Appl. No. 14/225,084 dated Sep. 2, 2014. |
Official Communication for U.S. Appl. No. 14/225,006 dated Sep. 10, 2014. |
Official Communication for U.S. Appl. No. 14/451,221 dated Oct. 21, 2014. |
Official Communication for U.S. Appl. No. 14/225,160 dated Oct. 22, 2014. |
Official Communication for U.S. Appl. No. 14/463,615 dated Nov. 13, 2014. |
Official Communication for U.S. Appl. No. 13/827,491 dated Dec. 1, 2014. |
Official Communication for U.S. Appl. No. 14/479,863 dated Dec. 26, 2014. |
Official Communication for U.S. Appl. No. 14/319,161 dated Jan. 23, 2015. |
Official Communication for U.S. Appl. No. 14/483,527 dated Jan. 28, 2015. |
Official Communication for U.S. Appl. No. 14/463,615 dated Jan. 28, 2015. |
Official Communication for U.S. Appl. No. 14/225,160 dated Feb. 11, 2015. |
Official Communication for U.S. Appl. No. 14/225,084 dated Feb. 20, 2015. |
Official Communication for U.S. Appl. No. 14/225,006 dated Feb. 27, 2015. |
Official Communication for U.S. Appl. No. 14/571,098 dated Mar. 11, 2015. |
Official Communication for U.S. Appl. No. 14/225,160 dated May 20, 2015. |
Official Communication for U.S. Appl. No. 14/463,615 dated May 21, 2015. |
Official Communication for U.S. Appl. No. 13/827,491 dated Jun. 22, 2015. |
Official Communication for U.S. Appl. No. 14/483,527 dated Jun. 22, 2015. |
Official Communication for U.S. Appl. No. 14/552,336 dated Jul. 20, 2015. |
Official Communication for U.S. Appl. No. 14/676,621 dated Jul. 30, 2015. |
Official Communication for U.S. Appl. No. 14/571,098 dated Aug. 5, 2015. |
Official Communication for U.S. Appl. No. 14/225,160 dated Aug. 12, 2015. |
Official Communication for U.S. Appl. No. 14/571,098 dated Aug. 24, 2015. |
Official Communication for U.S. Appl. No. 14/225,006 dated Sep. 2, 2015. |
Official Communication for U.S. Appl. No. 14/631,633 dated Sep. 10, 2015. |
Official Communication for U.S. Appl. No. 14/463,615 dated Sep. 10, 2015. |
Official Communication for U.S. Appl. No. 14/225,084 dated Sep. 11, 2015. |
Official Communication for U.S. Appl. No. 14/562,524 dated Sep. 14, 2015. |
Official Communication for U.S. Appl. No. 14/813,749 dated Sep. 28, 2015. |
Official Communication for U.S. Appl. No. 14/746,671 dated Sep. 28, 2015. |
Official Communication for U.S. Appl. No. 14/141,252 dated Oct. 8, 2015. |
Official Communication for U.S. Appl. No. 13/827,491 dated Oct. 9, 2015. |
Official Communication for U.S. Appl. No. 14/483,527 dated Oct. 28, 2015. |
Official Communication for U.S. Appl. No. 14/676,621 dated Oct. 29, 2015. |
Official Communication for U.S. Appl. No. 14/571,098 dated Nov. 10, 2015. |
Official Communication for U.S. Appl. No. 14/562,524 dated Nov. 10, 2015. |
Official Communication for U.S. Appl. No. 14/746,671 dated Nov. 12, 2015. |
Official Communication for U.S. Appl. No. 14/842,734 dated Nov. 19, 2015. |
Official Communication for U.S. Appl. No. 14/306,138 dated Dec. 3, 2015. |
Official Communication for U.S. Appl. No. 14/463,615 dated Dec. 9, 2015. |
Official Communication for U.S. Appl. No. 14/800,447 dated Dec. 10, 2015. |
Official Communication for U.S. Appl. No. 14/225,006 dated Dec. 21, 2015. |
Official Communication for U.S. Appl. No. 14/306,147 dated Dec. 24, 2015. |
Official Communication for U.S. Appl. No. 14/306,138 dated Dec. 24, 2015. |
Official Communication for U.S. Appl. No. 14/225,084 dated Jan. 4, 2016. |
Official Communication for U.S. Appl. No. 14/225,160 dated Jan. 25 2016. |
Official Communication for U.S. Appl. No. 14/319,765 dated Feb. 1, 2016. |
Official Communication for U.S. Appl. No. 14/929,584 dated Feb. 4, 2016. |
Official Communication for U.S. Appl. No. 14/571,098 dated Feb. 23, 2016. |
Official Communication for New Zealand Patent Application No. 622473 dated Mar. 27, 2014. |
Official Communication for New Zealand Patent Application No. 622513 dated Apr. 3, 2014. |
Official Communication for New Zealand Patent Application No. 622473 dated Jun. 19, 2014. |
Official Communication for Great Britain Patent Application No. 1404499.4 dated Aug. 20, 2014. |
Official Communication for New Zealand Patent Application No. 628161 dated Aug. 25, 2014. |
Official Communication for Great Britain Patent Application No. 1404486.1 dated Aug. 27, 2014. |
Official Communication for Great Britain Patent Application No. 1404489.5 dated Aug. 27, 2014. |
Official Communication for Great Britain Patent Application No. 1404499.4 dated Sep. 29, 2014. |
Official Communication for Great Britain Patent Application No. 1404489.5 dated Oct. 6, 2014. |
Official Communication for European Patent Application No. 14187996.5 dated Feb. 12, 2014. |
Official Communication for European Patent Application No. 14200298.9 dated May 13, 2015. |
Official Communication for Great Britain Patent Application No. 1404486.1 dated May 21, 2015. |
Official Communication for Great Britain Patent Application No. 1404489.5 dated May 21, 2015. |
Official Communication for European Patent Application No. 14191540.5 dated May 27, 2015. |
Official Communication for European Patent Application No. 14200246.8 dated May 29, 2015. |
Official Communication for Great Britain Patent Application No. 1404499.4 dated Jun. 11, 2015. |
Official Communication for Netherlands Patents Application No. 2012421 dated Sep. 18, 2015. |
Official Communication for Netherlands Patents Application No. 2012417 dated Sep. 18, 2015. |
Official Communication for Netherlands Patent Application 2012438 dated Sep. 21, 2015. |
Official Communication for European Patent Application No. 15181419.1 dated Sep. 29, 2015. |
Official Communication for European Patent Application No. 15184764.7 dated Dec. 14, 2015. |