Systems and methods for automatic detection of an event and providing resources customized based on the event

Implementations are disclosed to automatically evaluate, detect, or predict an event, and provide customized virtual assistance to a user based on the event. The implementations include a system capable of pulling data from a client device, detecting an event based on the pulled data, and pushing customized digital resources to the client device based on the detected event.

BACKGROUND

Computing systems are being used to provide services and assistance to users. For example, in response to receiving a call at a call center, a bot can provide dialing options to the calling user and direct the call to a proper customer service department based on the option that the user selects.

SUMMARY

The present disclosure provides computer-implemented methods and systems that provide an automatic service to a user of a client device based on the needs of the user. The implementations described herein can detect or predict the user's needs and provide corresponding services to the user by performing a series of data pushing and pulling operations.

In some implementations, the present method include: pulling, in a first power mode of at least a portion of the data processing system, occurrence data indicative of an occurrence in proximity to a client device; parsing the received occurrence data; based on the parsing, detecting, in the occurrence data, an occurrence of a specified event; and based on the detecting, accessing, from a hardware storage device, a plurality of nodes and associations among the nodes, with the associations specifying one or more sequences for accessing contents of the nodes, and with at least a first one of the nodes storing instructions representing one or more rules with associated one or more conditions, satisfaction of which specifies one or more digital resources to push to the client device; detecting that the occurrence of the specified event satisfies the one or more conditions associated with the one or more rules of the first one of the nodes; and switching the portion of the data processing system from the first power mode to the second power mode, wherein the first power mode consumes a lesser amount of power, relative to an amount of power consumed in the second power mode; and in the second power mode, pushing, to the client device through one or more communication channels, the one or more digital resources specified by at least the first one of the accessed nodes, wherein the one or more digital resources are each customized for the detected occurrence of the specified event; pulling, from the client device through the one or more communication channels, interaction data specifying an interaction with at least one of the one or more digital resources; based on the interaction data, identifying, in the hardware storage device, an association between a second node and the first one of the accessed nodes; accessing, from the hardware storage device, contents of the second node; and pushing, in live-time relative to a time of the interaction, the contents of the second node to the client device, with the contents being rendered as one or more visualizations on a display of the client device.

At least some implementations include one or more of the following features: at least part of the hardware storage device that is on a low power mode during the first power mode and turns to a high power mode during the second power mode; detecting the occurrence of the specified event comprises identifying, in the hardware storage device, a specified event that matches or is relevant to information included in the occurrence data; detecting the occurrence of the specified event comprises: predicting a likelihood of the specified event happening in a future time, wherein the predicting is based on the occurrence data and subsequent occurrence data that the data processing system pulls from the client device, and detecting the occurrence of the specified event in response to determining that the likelihood is greater than a specified threshold value; detecting the occurrence of the specified event comprises performing speech recognition on the occurrence data to detect one or more key words or phrases that are mapped, in the hardware storage device, to the specified event; the one or more digital resources include at least one of a signature card, a form, a document, or an augmented reality bot to assist a user of the user device on what to do; the specified event is a check engine light or a request identified based on an engagement with an avatar in a virtual environment.

The present disclosure also provides one or more non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

Methods in accordance with the present disclosure may include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.

Among other advantages, the present implementations provide the following benefits. The present implementations can be used in detecting or predicting the needs of a user and provide services to the user based on those needs. Some implementations detect or predict the needs by facilitating an automatic conversation with the user, for example, by using a questionnaire that is customized based on the events that happen in proximity of the client or the previous answers that the client have already provided. Some implementations detect or predict the user's needs based on activities that happen around the user, for example, by using information of one or more sensors that have detected a malfunction on a machine or have detected utterance of a key phrase by the user. Accordingly, the implementations can reduce the risk of accidents because they keep monitoring the sensors and can suggest or provide services to the user before an issue with a sensor become critical.

Further, the systems implemented herein detect or predict the user's needs automatically. The system does so by based on a series of pushing and pulling data to and from the user's client device. Accordingly, the interactions with the user may be minimized to reduce interrupting the user. This feature by itself reduces the chance of accidents that may happen due to the user's postponement of taking care of a sensor or a malfunction in a machine, e.g., a car.

The implementations are particularly beneficial in emergency situations and accidents to accelerate submission of a request for help, submission of an insurance claim, communicate with a customer service, etc.

The implementations also provides solutions that reduce power usage in computing systems. Some of the systems described herein can keep working on a low-power mode while the system is monitoring the data that is being used by a client device of the user, and switch to a high-power mode in case that the system detects an occurrence of an event on or in proximity of the client device.

DETAILED DESCRIPTION

The present implementations provide for automatic communications between a client device and a data processing system to detect, evaluate, or predict the needs of a user of the client device in real-time, to suggest services to the user based on those needs, and to assist the user to receive one or more of the suggested services. The data processing system performs these operations by automatic pulling and pushing of data from and to the client device.

The data processing system can predict or determine the user's needs by detecting an occurrence of an event. The event can be a check-engine light turning on, which can indicate that the user may have been in an accident and may need help to be rescued or to submit an insurance claim. The system can detect such event by pulling data from the user's client device. The client device can be a sophisticated computing device such as a smart phone, a personal digital assistance device (PDA), a laptop, a smart watch, etc., or can be a set of one or more sensors that are attached to the user's car and are in communication with the data processing system directly or indirectly through a sophisticated computing device.

The system can determine that the event is a check-engine light event and push relevant digital resources to the client device to suggest solutions or assist the user in fixing the underlying issue with the check-engine light. The pushed digital resources can include an avatar or a bot that can communicate with the user and assist him in in real-time. For example, the avatar can ask the user questions customized for this particular event, for example, questions about whether the use is in an emergency situation such as an accident or about the maintenance history of the car. The system pulled the user's answers, and pulls customized solutions to the user.

As another example, the data processing system can detect or predict the event based on an engagement of the user with an avatar in a virtual environment. For example, they user may engage with the avatar to open a bank account. The system detects the event of opening a bank account by pulling relevant data from the client device, for example, while the user is engaging with the avatar. Based on this prediction or detection, the system can push customized digital resources such as a signature card or other forms that the user would need for opening the bank account. The system then pulls the user's interactions with one or more of the digital resources to proceed on opening the bank account. The system may push subsequent digital resources such as a thank you note to the user.

The event can be initiated directly by the user, or can be recognized from data that client device gathers from its environment. For example, the user can initiate opening the bank account directly by starting relevant operations executed on the client device such as by opening a relevant page on a mobile application or a website of the bank. The event can be recognized from the data that the client device gathers from its surroundings, for example, by performing sound, voice, or speech recognition or gathering the user's statement on her desire to open a bank account. The data processing system can pull this information from the client device and can analyze this information to detect an underlying event. For example, the system can parse and map user's speech data to one or more key words and phrases that are mapped to a specific event, and identify the specific event as the detected event.

FIG.1depicts an example data processing system100(“system100”) and a client device102that can be used to execute implementations of the present disclosure. Data processing system100can send and receive information to and from client device102by pushing and pulling data. System100and client device102can communicate wirelessly, e.g., through a local LAN or satellite, or in a wired manner, e.g., through a cable.

System100includes listening engine106, detection engine108, and storage devices114and122. Listening engine106“listens” to or monitors the processes or activities executed on or in proximity of client device102by pulling occurrence data104from client device102. Listening engine106forwards the pulled occurrence data104to detection engine108. Detection engine communicates with events storage device114to detect an occurrence of an event among a list of events stored in event storage device114. If a match is found, detection engine108communicates with node hardware storage device122to push to client device102one or more digital resources that are customized for the detected event.

Listening engine106can continuously monitor the activities that happen on or in proximity of client device102, or can send periodic inquiries to client device102to inquire for the activities that are currently happening or have recently happened. Listening engine106can include one or more antennas for sending the inquiries and for receiving occurrence data104. Listening engine106can pre-process occurrence data104, for example, to remove account information of user132or client device102's information, before sending the occurrence data104to detection engine108.

Detection engine108parses the occurrence data104to detect information about an occurrence of an event. Detection engine108sends a query112for occurrence data to events storage device114to determine whether the information included in occurrence data104matches or is related to any of the specified events listed and stored in events storage device114. If a relevancy or a match116is found, detection engine108determines that one of the specified events has happened or is about to happen.

Events storage device114stores a plurality of specified events (e.g.,124a,124n) in a table of events134. The table of events can store the specified events in a categorized manner. The categories can be based on a level of urgency, the type of initiation of the events (e.g., pulling an alert from a sensor, or a user interaction data from a client device), etc.

In the example depicted inFIG.1, detection engine108detects that the event of “opening a new account” has occurred (or is about to occur) because this event matches one of the specified event stored in the events storage device114.

Detection engine108then sends a request (120) to node hardware storage device122for nodes associated to the detected event. Node hardware storage device122and events storage device114can be parts of the same storage device. Each of the specified events (or data representing an event, collectively referred to herein as “events”—for purposes of convenience and without limitation) stored in the events storage device114is associated with or mapped to a respective group of nodes stored on the node hardware storage device122. Generally, a node includes a data record structured with fields of a particular location of data storage for storage of the data record. For example, the “opening new account” event124aon event storage device114is mapped to the group of nodes128on node hardware storage device122.

FIG.2shows an example of the group of nodes128and associations among the nodes. The associations can specify one or more sequences for accessing contents of the nodes. For example, node206's content210can be accessed only after accessing node202's content208and node204's content212.

At least one of the nodes includes instructions representing one or more rules with associated one or more conditions. The rule specifies one or more digital resources to be pushed to the client device upon satisfaction of the one or more conditions. For example, node202includes a conditional rule, that if satisfied, causes pushing to client device102a digital signature card210stored on node204. Another conditional rule can be pushing a particular electronic form to client device102in response to determining that a likelihood of the detected event occurring in a close future (e.g., within the next five minutes) is greater than a specified threshold value. More details about the event prediction is provided below.

FIG.3shows a pushing process, where a digital resource304including the digital signature card210is pushed to client device102for presentation to user132. System100can push digital signature card210or any other digital resources through one or more communication channels such as through wireless or wired connections between system100and client device102.

As noted above, system100can customize the digital resources based on the detected event before pushing those resources to client device102. For example, system100may add the name of the bank or information of user132to digital signature card210before pushing the card to client device102, or may push specific digital forms that this particular bank requires, for example, for a background check on the user.

User132can respond to the received digital resources by interacting with client device102. For example, user132can review a visual representation130aof the digital signature card on display or graphical user interface130and submit hi/hers signature, for example, by clicking on a particular button130brendered in graphical user interface130displayed on client device102.

Listening engine106of system100pulls from client device102interaction data that specifies user132's interaction with the signature card. The signed signature card314can be associated with user132and be stored in a data storage device312that stores information about bank accounts.

In some implementations, system100reviews the interaction data to determine subsequent information to be pushed to client device102. For example, user132may submit different interactions such as submitting a signature, asking a question about a particular part of the signature card, closing the signature card, etc. System100can push subsequent information based on the user's interaction with the signature card.

To obtain the subsequent information, listening engine106requests from node hardware storage device122subsequent node contents310from the group of nodes128. As shown inFIG.4, node206is determined to be the subsequent node. System100can then push content of node206to client device102, as shown inFIG.5.

In another example, system100can modify content of node206or generate information based on the content of node206instead of sending the same content to client device. For example, system100may add information of user132or the bank, or the date of creating the account to the content of node206before sending the content to client device102. The content or the modified content can be rendered as one or more visualizations on the display130of client device102.

System100can push the data in real-time or in live-time relative to a time of user132's interaction with the digital resources that system100had pushed to client device102. For example, from user132's perspective, once the signature is submitted (FIG.3), client device102displays, in a relatively live manner, a thank you message (504) that is pushed from system100to client device102.

In some implementations, system100operates in lower power mode before detecting an occurrence of a specified event, and switches to a higher power mode when detection engine108of the system detects the occurrence of a specified event. The lower power mode consumes a lesser amount of power, relative to an amount of power consumed in the higher power mode.

Once detection engine108detects the occurrence of an event, detection engine108can signal the rest of the system to switch to a higher power mode (110inFIG.1). System100can push the digital resources (e.g., a signature card, an electronic document, an augmented reality avatar to assist user132respond to an event) to client device102and assess user interactions with the digital resources when the system operates in the higher power mode.

In the lower power more, at least some components of system100can be in low power mode by suspending their operations, for example, being off or sleep. For example, system100can hibernate the busses between the node hardware storage device122and other components of the system, the processors that modify data before pushing data to client device102, a transmitter that sends data out of system100, etc.

In the lower power mode, at least some components of system100can operate in a low-power mode by performing only a portion of their functions. For example, during the lower power mode, listening engine106can pull occurrence data104from client device102while suspending its communications with node hardware storage device122(seeFIG.1). Listening engine106can restore its communication with hardware storage device when system100operates in the higher power mode.

In some implementations, system100requires an authentication of user132before pushing digital resources to the client device102. The authentication may be required for pushing any digital resources, or for pushing only particular digital resources, e.g., a customized signature card. The authentication can be done electronically, for example, through a face, a voice, or a finger print recognition, can be a multi-step authentication that would require the user to submit an access code, or can be any commonly known form of authentication procedures.

In some implementations, detection engine108can use occurrence data104to predict occurrence of an event such as user132's desire to open a bank account before the user takes any actions towards that desire on client device102. For example, client device102may detect the local area network (LAN) of a bank with which the user does not have an account. Detecting the LAN of the bank indicates that the user has likely entered a building of the bank. Listening engine106pulls information on the detection of the LAN, and detection engine108identifies the specified event of “opening new account” as a relevant event and predict a likelihood of opening an account happening in a close future.

Detection engine108can use subsequent occurrence data (e.g., speech data) that is pulled from client device102to tune or adjust the predicted likelihood. If detection engine108determines that the likelihood is greater than specific threshold, detection engine108identifies the specified event as a forecasted event and requests relevant digital resources to be pushed to client device102. Detection engine108is also capable of training itself based on the user's responses to pushed resources so that the system100can make more accurate predictions in future.

FIGS.6through10provide another example of application of the present implementations, where the event is a car's check-engine light turning on. Although a car and a check engine light are depicted in these figures, similar concepts apply to any other devices or sensors that can communicate with the client device102. For example, similar concepts can be applied to electronic household devices such as refrigerators, washing machines, or vacuums that are capable of communicating with client device102.

The car650inFIG.6communicates with client device102wirelessly, for example, through a Bluetooth connection. Alternatively, or in addition, car650can communicate with client device102through a wired connection, for example, during an annual service of car650at a repair shop.

Car650includes one or more sensors that monitor operations of respective component of car650. In case that any of the sensor senses a malfunction in a respective component, the sensor turns on to provide a warning about an issue with the component. For example, check-engine light652turns on when at least one sensor corresponding to the engine of car650detects an issue with the engine.

Car650communicates to client device102information of the sensors that have detected an issue. Accordingly car650reports the check-engine light652to client device120. In some implementations, client device102pulls this information from car650.

Similar toFIG.1,FIG.7illustrates the operation of data processing system100in response to receiving occurrence data. Detection engine108performs a similar process explained above with respect toFIG.1, to identify occurrence of an event from the list of events stored in the events storage device114.

UnlikeFIG.1, the occurrence data inFIG.7is check-engine light704, and the specified event (724b) detected by the detection engine108is the check-engine light being on. As a result the nodes associated with the check-engine light (i.e., group of nodes124inFIG.1) in node hardware storage device122can be different from the group of nodes128explained for the event discussed inFIG.1, i.e., the event of opening a new account.

An example of group of nodes124corresponding to the check-engine light event and an association between those nodes is shown inFIG.8. Similar to the group of nodes shown inFIG.2, the association between the nodes inFIG.8specifies one or more sequences of accessing contents of the nodes. For example, node806's content812would be accessed after accessing node802's content808and node804's content812.

Node802stores instructions representing one or more rules associated with one or more conditions, satisfaction of which specifies one or more digital resources to be pushed to the client device. The digital resource specified in node802is a virtual avatar app810that is stored in node804. The virtual avatar app810includes an avatar and one or more predefined questions to be asked from user132of client device102. The content of node804, for example, the questions, is customized for the engine-light event.

As shown inFIG.9, upon satisfaction of the conditions specified in node802, system100pushes (904) the virtual avatar app810or a modified version of the app to client device102. For example, the system may modify the app by adding information of user132or car650to the virtual avatar app810before pushing the app to client device102.

Virtual avatar app810is displayed on display130or client device102to ask the stored questions from the user. User132interacts with the app through client device102by submitting answer(s) to respective question(s). The app can communicate with the user verbally, through text, or through figures and sign language. For example, a virtual avatar representing an operator of an insurance company can ask the questions from user132.

System100pulls interaction data908from client device102, and perform operations similar to what was discussed above with respect toFIGS.3and4, to obtain contents of one or more subsequent nodes based on the user's interaction data. For example, listening engine106requests subsequent node content (910) from node hardware storage device.

In the example depicted inFIGS.8through10, in response to receiving the interaction data that indicates user132has been in an accident, system100determines that the subsequent node is node806and pushes (1004inFIG.10) the content of node806to client device102. If, however, system100determines that the interaction data indicates that user132has not been in an accident, system100may determine another node in the group of nodes124(not shown) different from node806to be the subsequent node. The content of that other node can include further questions, which system100can push to client device102to evaluate user132's needs.

FIG.11is an example process1100that can be executed according to implementations of the present disclosure. The process1100can be performed by a computing system, for example, the data processing system100described in above.

The computing system pulls occurrence data from a client device (1102). For example, system100inFIG.1pulls occurrence data from client device102.

The computing system parses occurrence data (1104) and detects an occurrence of a specified event from the parsed data (1106). For example, detection engine108of system100inFIG.1can parse the occurrence data104. Detection engine108communicates with event storage device114to determine whether the parsed data includes a specified event stored on the storage device.

Based on the detection of the occurrence of the specified event, the computing system accesses a plurality of nodes in a storage device (1108). For example, detection engine108accesses a group of nodes124or128stored on node hardware storage device122based on the detected event. Each group of nodes includes a respective plurality of nodes and the association between the respective plurality of nodes. The associations specify one or more sequences for accessing contents of the nodes. At least a first one of the plurality of nodes, e.g., node202in the group of nodes128, stores instructions representing one or more rules with associated one or more conditions, satisfaction of which specifies one or more digital resources to be pushed to the client device.

The computing device detects that the occurrence of the specified event satisfies one or more conditions associated with the one or more rules of the first one of the plurality of nodes (1110). For example, see node202inFIG.2and the condition specified there.

The computing device can optionally switch its power mode (1112), for example, in response to determining that the one or more conditions are satisfied at1110. The computing device can switch from a lower power mode to a higher power mode that consumes more power relative to the lower power mode.

The computing device pushes to the client device one or more digital resources specified on the first node (1114). For example, inFIG.3, system100pushes to client device102a digital resource304based on the digital resource210stored on node204of the group of nodes128(seeFIG.2). The digital resources can each be customized for the detected occurrence of the specified event.

The computing device pulls from the client device user interaction with at least one of the digital resources (1116). An example of this pulling is shown inFIG.3, where system100pulls a signed signature card308from client device102.

Based on the user interaction data, the computing device identifies an association between a second node and the first node in the plurality of nodes (1118). For example, inFIG.3, listening engine106requests subsequent node contents310. In response to determining that the user has signed the signature card, system100identifies an association between node202and node206, and determines node206(seeFIG.4) as the subsequent node.

The computing system then accesses content of the second node (1120), and pushes the content of the second node to the client device (1122).FIG.4shows accessing content of the subsequent node206.FIG.5shows pushing content of node206to client device102. The pushed content can be rendered as one or more visualizations on a display of the client device.

FIG.12depicts an example computing system, according to implementations of the present disclosure. The system1200may be used for any of the operations described with respect to the various implementations discussed herein. For example, the system1200may be included, at least in part, in the data processing system100, or the client device102described herein. The system1200may include one or more processors1210, a memory1220, one or more storage devices1230, and one or more input/output (I/O) devices1250controllable through one or more I/O interfaces1240. The various components1210,1220,1230,1240, or1250may be interconnected through at least one system bus560, which may enable the transfer of data between the various modules and components of the system1200.

The processor(s)1210may be configured to process instructions for execution within the system1200. The processor(s)1210may include single-threaded processor(s), multi-threaded processor(s), or both. The processor(s)1210may be configured to process instructions stored in the memory1220or on the storage device(s)1230. The processor(s)1210may include hardware-based processor(s) each including one or more cores. The processor(s)1210may include general purpose processor(s), special purpose processor(s), or both.

The memory1220may store information within the system1200. In some implementations, the memory1220includes one or more computer-readable media. The memory1220may include any number of volatile memory units, any number of non-volatile memory units, or both volatile and non-volatile memory units. The memory1220may include read-only memory, random access memory, or both. In some examples, the memory1220may be employed as active or physical memory by one or more executing software modules.

The storage device(s)1230may be configured to provide (e.g., persistent) mass storage for the system1200. In some implementations, the storage device(s)1230may include one or more computer-readable media. For example, the storage device(s)1230may include a floppy disk device, a hard disk device, an optical disk device, or a tape device. The storage device(s)1230may include read-only memory, random access memory, or both. The storage device(s)1230may include one or more of an internal hard drive, an external hard drive, or a removable drive.

One or both of the memory1220or the storage device(s)1230may include one or more computer-readable storage media (CRSM). The CRSM may include one or more of an electronic storage medium, a magnetic storage medium, an optical storage medium, a magneto-optical storage medium, a quantum storage medium, a mechanical computer storage medium, and so forth. The CRSM may provide storage of computer-readable instructions describing data structures, processes, applications, programs, other modules, or other data for the operation of the system1200. In some implementations, the CRSM may include a data store that provides storage of computer-readable instructions or other information in a non-transitory format. The CRSM may be incorporated into the system1200or may be external with respect to the system1200. The CRSM may include read-only memory, random access memory, or both. One or more CRSM suitable for tangibly embodying computer program instructions and data may include any type of non-volatile memory, including but not limited to: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. In some examples, the processor(s)1210and the memory1220may be supplemented by, or incorporated into, one or more application-specific integrated circuits (ASICs).

The system1200may include one or more I/O devices1250. The I/O device(s)1250may include one or more input devices such as a keyboard, a mouse, a pen, a game controller, a touch input device, an audio input device (e.g., a microphone), a gestural input device, a haptic input device, an image or video capture device (e.g., a camera), or other devices. In some examples, the I/O device(s)1250may also include one or more output devices such as a display, LED(s), an audio output device (e.g., a speaker), a printer, a haptic output device, and so forth. The I/O device(s)1250may be physically incorporated in one or more computing devices of the system1200, or may be external with respect to one or more computing devices of the system1200.

The system1200may include one or more I/O interfaces1240to enable components or modules of the system1200to control, interface with, or otherwise communicate with the I/O device(s)1250. The I/O interface(s)1240may enable information to be transferred in or out of the system1200, or between components of the system1200, through serial communication, parallel communication, or other types of communication. For example, the I/O interface(s)1240may comply with a version of the RS-232 standard for serial ports, or with a version of the IEEE 1284 standard for parallel ports. As another example, the I/O interface(s)1240may be configured to provide a connection over Universal Serial Bus (USB) or Ethernet. In some examples, the I/O interface(s)1240may be configured to provide a serial connection that is compliant with a version of the IEEE 1394 standard.

The I/O interface(s)1240may also include one or more network interfaces that enable communications between computing devices in the system1200, or between the system1200and other network-connected computing systems. The network interface(s) may include one or more network interface controllers (NICs) or other types of transceiver devices configured to send and receive communications over one or more networks using any network protocol.

Computing devices of the system1200may communicate with one another, or with other computing devices, using one or more networks. Such networks may include public networks such as the internet, private networks such as an institutional or personal intranet, or any combination of private and public networks. The networks may include any type of wired or wireless network, including but not limited to local area networks (LANs), wide area networks (WANs), wireless WANs (WWANs), wireless LANs (WLANs), mobile communications networks (e.g., 3G, 4G, Edge, etc.), and so forth. In some implementations, the communications between computing devices may be encrypted or otherwise secured. For example, communications may employ one or more public or private cryptographic keys, ciphers, digital certificates, or other credentials supported by a security protocol, such as any version of the Secure Sockets Layer (SSL) or the Transport Layer Security (TLS) protocol.

The system1200may include any number of computing devices of any type. The computing device(s) may include, but are not limited to: a personal computer, a smartphone, a tablet computer, a wearable computer, an implanted computer, a mobile gaming device, an electronic book reader, an automotive computer, a desktop computer, a laptop computer, a notebook computer, a game console, a home entertainment device, a network computer, a server computer, a mainframe computer, a distributed computing device (e.g., a cloud computing device), a microcomputer, a system on a chip (SoC), a system in a package (SiP), and so forth. Although examples herein may describe computing device(s) as physical device(s), implementations are not so limited. In some examples, a computing device may include one or more of a virtual computing environment, a hypervisor, an emulation, or a virtual machine executing on one or more physical computing devices. In some examples, two or more computing devices may include a cluster, cloud, farm, or other grouping of multiple devices that coordinate operations to provide load balancing, failover support, parallel processing capabilities, shared storage resources, shared networking capabilities, or other aspects.