Automated wireless local area networking topology mapping

A system, method, and computer readable storage device are provided for collecting data associated with a WiFi signal profile of an area of interest (AOI), analyzing the collected data, and generating a dataset from the data representative of the signal profile. The dataset includes value information and location information, wherein value information include signal data that are to be displayed in a visual representation. The dataset includes values of measured WiFi signal strengths, and in some examples the values are weighted based on one or a combination of device data, interference data, and business-related data. This can enable generation and display of a visual representation that includes a representation of signal strength values based on assessed signal strengths needed to support particular services on particular user devices. The visual representation can be a heatmap that shows color-coded variations in WiFi signal values associated with locations or devices in the AOI.

BACKGROUND

With advances in wireless technology, more and more devices are being developed with wireless local area networking (WiFi) capability. As service providers deliver a variety of services over WiFi, consumers expect great WiFi signal coverage across their (oftentimes many) connected devices throughout their homes. In a wireless local area network, signal coverage is seldom even. For example, when a device uses WiFi, the signals are transmitted over radio waves. Despite advanced features in wireless technology, interferences can happen, which can result in a weak or unreliable wireless connection. For example, the signals received by a wireless device can be negatively impacted by distance from a router or access point, physical obstructions, certain surfaces and materials, appliances that send wireless signals, electrical equipment that may generate interference, other WiFi networks, or other obstacles.

To support some types of services that rely on fast download speeds, a reasonably strong signal may be needed. For example, a consumer's experience of his/her broadband Internet service may be determined by the WiFi performance on a wireless network. Poor WiFi performance may result in symptoms such as intermittent connectivity, unexpected disconnections, delays in connection and data transfer, and slow network speeds. In some examples, the power draw of WiFi enabled devices increases when WiFi signal strength is poor, which can lead to inefficient battery power usage. To ensure that a strong signal needed to support online or wireless services is provided everywhere needed in an area of interest, it is important to select an optimal place for the router and to configure the connected devices in a way that will give the best results.

With a proliferation of WiFi enabled devices being used in homes and as consumers depend more on more on being connected to the web, being able to assess and visualize a WiFi signal profile of an area of interest is a technical problem for which a technical solution is needed when positioning WiFi enabled devices for optimal performance.

SUMMARY

Aspects of the present disclosure provide a technical improvement to the performance of computing devices connected to a WiFi network in an area of interest by assessing a signal profile of the area of interest and generating a visual representation of the signal profile for configuring the computing devices for optimization of WiFi performance in the area of interest. A system, method, and computer readable storage device are provided that collect various data associated with an area of interest, such as an indication of a location of a wireless router, signal strength measurements and locations of the measurements in the area of interest, an identification of user devices in the area of interest, the devices' locations, and an indication of interference sources in the area of interest. The collected data are assessed, signal values based on signal strength measurements, locations, interferences, and business-related data are computed, and a visual representation of the signal values overlaid on a layout image of the area of interest is generated for display.

According to an aspect, additional data can be collected, such as information about wireless services used on a particular device (which can be used to identify bandwidth-intensive activities for which a stronger WiFi signal strength may be needed to support) and business-related data corresponding to Internet or video services provided to the area of interest. In some examples, collected signal data can be weighted according to collected service-related data, and the visual representation can indicate signal strength values based on particular services used on particular user devices. In various implementations, the visual representation is a heatmap that shows color-coded variations in WiFi signal values associated with locations or devices in the area of interest. For example, the visual representation can be used to provide information needed to configure user devices in the area of interest such that WiFi performance can be optimized.

DETAILED DESCRIPTION

Aspects of the present disclosure enable an improvement of the performance of computing devices connected to a WiFi network in an area of interest based on generation and analysis of a visual representation (e.g., a map or layout) of an area of interest, wherein the visual representation comprises signal strength data associated with a WiFi network overlaid on the visual representation. In various implementations, the WiFi signal performance data are represented as colors. Various locations within the area of interest are assigned a color value based on WiFi signal performance, wherein determining WiFi signal performance values at specific locations is based at least in part on measured signal strength values. In some implementations, WiFi signal performance values are further based on supported applications or services. In some implementations, WiFi signal performance values are further based on measured or assessed signal interference values.

In various implementations, connected devices in the area of interest are additionally identified and located on the visual representation. According to an aspect, the visual representation is configured to dynamically update upon receiving an indication of movement of a connected device in the area of interest.

In various implementations, the visual representation is configured to dynamically update upon receiving an indication of a user selection to filter the visual representation. For example, a user can select to display signal performance values based on specific supported applications or services.

In various implementations, the visual representation is configured to display a determined recommended layout of at least one location of a connected device in the area of interest based on a determination of the location having signal performance values that are within a range sufficient for supporting a particular application or service.

According to an aspect, the visual representation provides information for configuring connected devices for optimization of WiFi performance in the area of interest. With optimized WiFi performance, connected devices can benefit from the following technical improvements: improved usability, enhanced reliability, energy savings, and a reduction of processing resources required when reacting to poor WiFi reception, such as the processing resources required for discarding incomplete packets and waiting for them to be resent over a poor-quality analog signal.

FIG. 1is a block diagram of an example environment100in which the present disclosure can be practiced. As shown inFIG. 1, a signal data visualization system104is in communication with one or a plurality of data sources114a-n(collectively or individually referred to as data source114), one or a plurality of user devices102a-n(collectively or individually referred to as user device102), and optionally a cloud server116. The signal data visualization system104is illustrative of a software module, system, or device operative to generate and provide a visual representation120of WiFi signal performance data corresponding to an area of interest106for display on a user device102. For example, the WiFi signal performance data can provide information for configuring wireless user devices102in the area of interest106for optimizing WiFi performance of the wireless user devices.

As used herein, the term “area of interest”106is used to describe a location or area, such as a room, home, office, building, property, etc., that includes a wireless local area network (WLAN)118(e.g., WiFi network) provided by a wireless router112via which WiFi-compatible user devices102connected to the network can connect to other devices on the network and to the Internet (network108) for networking with other devices based on the IEEE 802.11 communications standards. The network108can encompass a variety of network types including, but not limited to, the Internet, an intranet, an extranet, local-area networks, wide-area networks, fiber-coax networks, public switched telephone networks, global telephone networks, etc., and combinations thereof. An example cable television (CATV) architecture that can serve as one example of a network108via which Internet service can be provided is illustrated inFIG. 7and is described below.

The WLAN118in the area of interest106includes a modem110and a router112, wherein the router creates a network between connected devices102in the area of interest, and the modem connects that network, and thus the computers on it, to the Internet (network108). For example, the modem110is a piece of networking equipment that plugs into the Internet service infrastructure (e.g., cable, telephone, satellite, or fiber), and includes a standard Ethernet cable output that can be plugged into a router112or into a connected device102) for providing an Internet connection to the router or connected device. In some examples, the router112is a stand-alone device that connects to an Ethernet port on the modem110, and “routes” networking/internet traffic to its connected devices102. In other examples, the router112is integrated with the modem110. According to an aspect, the router112is operable to send and receive networking traffic from the modem110with one connection, and route that data through its Ethernet ports and through the air via 2.4 GHz and 5 GHz frequency spectrums.

The illustrated example environment100includes multiple user devices102. As should be appreciated, fewer or more user devices102may be included in an area of interest106. The one or more user devices102may include various types of wirelessly connected user devices such as a mobile phones, smart phones, tablet computers, laptop computers, wearables, hand-held devices, set-top boxes, gaming consoles, smart televisions, streaming media players, connected appliances, connected speaker devices, connected automobiles, home automation devices, security devices, printers, etc. The user devices102may include various antennas and receivers/transmitters adapted for specific types of wireless communications. For example, the user devices102may be adapted to communicate using WiFi standards, specifically including 802.11 communications standards. In some examples, the user devices102may also be configured to communicate using Bluetooth®. Details of the computing devices and variations thereof can be found inFIGS. 5, 6A, 6B, and 7.

In some examples, the signal data visualization system104is implemented via a client-server architecture where a client device (e.g., user device102) has an application running locally that performs a set of functions that require communication with a server (e.g., cloud server116) in order to support desired functionality (e.g., analysis of collected data and generation of a visual representation120of WiFi signal performance data). The client application can be configured to allow users to input a desired request of the application and/or to input data on which WiFi signal performance is based, which is sent to the server for processing. Additionally, the client application can be configured to allow users to view a generated visual representation120of WiFi signal performance data corresponding to an area of interest106. In some examples, the client application is a guide application that can display a generated visual representation120of WiFi signal performance data corresponding to an area of interest106in addition to an onscreen program guide of channels. As will be appreciated, the cloud server116and the one or more data sources114may be part of a distributed system and composed of a multitude of individual computing systems, and multiple user devices102may be in communication with the signal data visualization system104.

According to an aspect, the signal data visualization system104is configured to receive data from the one or more data sources114, wherein the data are used by the signal data visualization system to determine WiFi signal performance in an area of interest106and to characterize the WiFi signal performance in a visual representation120of the area of interest. The one or more data sources114can be embodied as various types of devices, applications, services, data stores, or sensors. For example, a connected user device102, the cloud server116, a document accessed by the signal data visualization system104, a data entry component of a user interface that receives user input, a database or service managed by a third party that is available on the Internet or on the WLAN118, etc., can operate as a data source114to the signal data visualization system. In some examples, a data source114is operative to provide (to the signal data visualization system104) data sensed by a sensor (e.g., camera, GPS, accelerometer, gyroscope, thermometer, pressure sensor) integrated in or communicatively attached to the data source114. In some implementations, a data source114is part of a connected user device102, such as a hard drive local to the connected user device. In some implementations, a user may designate a data source114via the signal data visualization system104. In some examples, receiving input data can include requesting data of the specified data type from the application, and receiving the input data from the application via inter-process communication. The one or more data sources114provide data to the signal data visualization system104, such as layout or map data, user device data, signal data, interference data, business data, and user inputs. Data provided by the one or more data sources114are described in further detail below.

With reference now toFIG. 2, a block diagram of components of an example embodiment of a signal data visualization system104is provided. As illustrated inFIG. 2, the example embodiment of the signal data visualization system104includes an area-of-interest mapping engine202illustrative of a software module, system, or device operative or configured to define or map the area of interest106for establishing a background image onto which to apply a heatmapped dataset corresponding to WiFi signal performance.

In some implementations, the area-of-interest mapping engine202is operative to access a layout image, such as a two-dimensional map, three-dimensional map, a two-dimensional projection of a three-dimensional map, a topographic map, a photographed image, a virtually-live image, a floorplan, a schematic, etc. An accessed layout image may be provided to the signal data visualization system104by a data source114operating as a layout data source. In some examples, the area-of-interest mapping engine202can be configured to request a layout image from a data source114via an application programming interface (API). For example, the area-of-interest mapping engine202may make an API call to a third-party application or service, such as a maps service, a layout or floorplan mapping service, etc. In other examples, the area of interest mapping engine202is operative to receive one or a plurality of captured images (e.g., captured via a camera) as layout images from a data source114. For example, a user may selectively capture an image of the area of interest106using a camera integrated in or communicatively attached to a user device102, and may select to transmit the captured image to the signal data visualization system104.

In some examples, a layout image accessed by the area-of-interest mapping engine202includes coordinates, which enables the signal data visualization system104to position dataset values corresponding to WiFi signal performance against the layout image so that WiFi signal performance value information can be shown in context to the area of interest106in the signal data visual representation120. Examples of coordinates include latitude and longitude coordinates, Cartesian coordinates, polar coordinates, addresses, location identifiers that can be correlated to coordinates or ranges of coordinates, etc.

In other examples, a layout image accessed by the area-of-interest mapping engine202may not include coordinates. In such examples, the area-of-interest mapping engine202is operative to communicate a request for coordinate data to allocate to the accessed layout image. For example, a user can be prompted by the area-of-interest mapping engine202to position a user device102with an integrated or communicatively attached GPS system at certain locations in the area of interest106, such that coordinates at those locations can be identified and provided to the area-of-interest mapping engine202. That is, a user device102with an integrated or communicatively attached GPS system (and optionally other sensors) can be used as a data source114to provide coordinate data to the area-of-interest mapping engine202corresponding to positions and physical features, such as walls, floors, ceilings, etc., in the area of interest106. The area-of-interest mapping engine202can be further configured to allocate received coordinate data to the accessed layout image.

In other implementations, the area-of-interest mapping engine202is operative to generate a layout of the area of interest106from user input received via a data entry component of a user interface. For example, the area-of-interest mapping engine202may be configured to operate as a floorplan tool that enables the user to draw a layout of the area of interest106or to modify preloaded floorplans to correspond to the area of interest. In some examples, the area-of-interest mapping engine202operating as a floorplan tool can provide a gallery of architectural features (e.g., walls, doors, stairs, and windows) that the user can insert in the layout. The user can be prompted by the area-of-interest mapping engine202to position a user device102with an integrated or communicatively attached GPS system at certain locations in the area of interest106corresponding to locations in the generated layout, such that coordinates at those locations can be identified and provided to the area-of-interest mapping engine202for allocation to the generated layout of the area of interest.

In other implementations, the area-of-interest mapping engine202is operative to generate a layout of the area of interest106from received or detected coordinate data. For example, the signal data visualization system104, by means of the area-of-interest mapping engine202, may prompt the user to move a user device102with an integrated or communicatively attached GPS system through the area of interest106(e.g., around the perimeter of the area of interest or around the perimeter of a sub-area of interest, such as a room within a house), wherein the user device is configured to track the relative position and motion of the user device and transmit coordinate data corresponding to the relative position and motion of the user device to the area-of-interest mapping engine202. In some examples, the user device can include and utilize other sensors, such as an accelerometer, gyroscope, magnetometer, etc. to track the relative motion of the user device102as the user moves through the area of interest106for collecting coordinate data to generate the layout of the area of interest. In some examples, user input can be received via a data entry component of a user interface that can be applied to the coordinate data or layout. For example, the user may define certain sub-areas of interest (e.g., rooms) in the area of interest106, walls, or other physical features of the area of interest. In some implementations, the area-of-interest mapping engine202is operative to determine, based on coordinate data, a layout image (and associated settings, such as zoom and rotation) to use as a background image onto which to apply a heatmapped dataset corresponding to WiFi signal performance. According to an aspect, the accessed or generated layout and corresponding coordinate data are stored in a database222.

With reference still toFIG. 2, the example embodiment of the signal data visualization system104includes a device data collector204illustrative of a software module, system, or device operative or configured to collect data associated with devices in the area of interest106that generate the WiFi signals (e.g., the router112), data associated with WiFi-enabled devices (e.g., user devices102) that are connected to the WLAN118, and data associated with WiFi-enabled devices (e.g., user devices102) that the user intends to connect to the WLAN (and to position in the area of interest based at least in part on being provided with information on the WiFi signal performance in the area of interest106). Device-related data may be provided to the signal data visualization system104by one or more data sources114operating as device data sources, and may be stored in the database222.

In some examples, the router112operates as a device data source that provides information about itself to the signal data visualization system104. For example, the device data collector204may request information from the router112such as information about the router's coverage or range, frequency bands over which the router is operative to communicate, which wireless protocols the router uses, location of the router, maximum connection speed, etc. In other examples, device-related data associated with the router112is entered or selected by the user via a user interface associated with the signal data visualization system104.

In some examples, a connected user device102operates as a device data source that provides information about itself to the signal data visualization system104. For example, the device data collector204may request or be automatically provided device-related information from a connected user device102, such as a device identifier, information about the type of device (e.g., a connected printer, a desktop computer, a connected light bulb, a video streaming device), location of the device, types of data services or applications supported by the device, data services or applications commonly used on the device, etc. Location of the user device102may be determined by a GPS system integrated with or communicatively attached to the user device. In some examples, if the user device102is moved to another location in the area of interest106, the user device is configured to communicate its new location to the signal data visualization system104. In other examples, the device data collector204is operative to recurrently request location data from identified user devices102in the area of interest106, wherein the user devices provide location data in response to the requests. Any user device location changes can be updated in the database222. In other examples, at least a portion of the device-related information can be entered or selected by the user via a user interface associated with the signal data visualization system104, transmitted to and received by the device data collector204, and stored in the database222. For example, a connected user device102may not be GPS-enabled, and the user may input the location of the device into the signal data visualization system104via the user interface, which is communicated to the device data collector204.

As mentioned above, device-related information can include information about services or applications (e.g., web browsing, emailing, voice over IP (Internet Protocol), streaming audio, IP TV, streaming video, gaming, file sharing, surveillance, home automation services) supported by a connected user device102. For example, this information can include information about services or applications that the connected user device102can provide wirelessly, which can be enable the signal data visualization104to determine a minimum or operable signal strength needed to support the services or applications and/or an amount of bandwidth a connected device102may expect to use. For example, a connected device102in the area of interest106may be an Internet-connected smart lightbulb that is low-bandwidth intensive and only needs a data connection to turn on or off, change color, change brightness, etc. Thus, a WiFi signal strength needed to communicate with the smart lightbulb may be less than a WiFi signal strength needed to sustain a connected device supporting data-heavy activities, such as media streaming, downloading games, high-definition IP TV streaming, etc. In some examples, a connected user device102can notify the device data collector204about a current application or service being provided wirelessly by the device. For example, this service-related data can be used to generate a real-time (or near real-time) visual representation of the WiFi signal profile of the area of interest106.

With reference still toFIG. 2, the example embodiment of the signal data visualization system104includes a signal data collector206illustrative of a software module, system, or device operative or configured to collect signal data associated with the WLAN118in the area of interest106and to store the signal data in the database222. For example, the signal data collected by the signal data collector206can be used as dataset values corresponding to WiFi signal performance. According to an aspect, signal data associated with the WLAN118can be measured and provided to the signal data collector206via one or more data sources114operating as signal data sources. In some examples, one or more connected user devices102in the area of interest106operate as signal data sources. For example, one or more connected user devices102in the area of interest106can comprise an integrated or installed signal strength meter (e.g., hardware instrument or software application) operative to measure the WiFi signal levels received by the one or more devices at their locations in the area of interest. The WiFi radio signal levels may be measured in decibels (dB) and signal data provided to the signal data visualization system104can include an identification of the WLAN118and the strength of its signals as values in decibels. Signal data can include additional information, such as network identifying information (e.g., network SSID).

In some examples, a connected user device102operating as a signal data source is GPS-enabled, such as a mobile phone, a tablet device, or other mobile GPS-enabled device. Accordingly, the user device102is operative to determine coordinates of its location, and thus coordinates of the location at which WiFi signal measurements are taken. The user device102can provide the WiFi signal measurements and the associated location information (e.g., coordinates) to the signal data collector206.

In other examples, a connected user device102operating as a signal data source is not GPS-enabled. In such examples, the user device may measure WiFi signal levels and provide those measurements to the signal data collector206in a communication. The signal data collector206is able to identify, from communication metadata, the sender (user device102) of the signal measurements, and can associate the measurements with the location of the identified user device based on device-related data (e.g., device identifier and location data) collected by the device data collector204and stored in the database222. For example, a wireless video streaming device may not be GPS-enabled, but may be able to measure WiFi signal levels and transmit those signal measurements to the signal data collector206. The user may have previously provided device-related information to the device data collector204, including the location of the wireless video streaming device in the area of interest106. Accordingly, when signal data are provided by the wireless video streaming device, the measurements can be correlated with the location of the wireless video streaming device.

In some examples, a data source114operating as a signal data source can be a dedicated device for measuring WiFi signals, wherein the device comprises a WiFi signal strength meter and a GPS system. For example, the user or a technician can use a particular mobile device operating as a signal data source to measure WiFi signal levels at various locations throughout the area of interest106(e.g., the user or technician moves through the area of interest with the signal data source) to take signal measurements, to determine coordinates of the locations at which the measurements are recorded, and to provide the measurements and associated coordinates to the signal data collector206, which stores the measurements and associated location data in the database222.

With reference still toFIG. 2, the example embodiment of the signal data visualization system104includes an interference data collector208illustrative of a software module, system, or device operative or configured to collect interference data associated with the area of interest106and to store the interference data in the database222. Interference data can include signal interference-related information (e.g., identification of possible sources of signal interference, measured interference data), structural information (e.g., types of materials, surfaces, or physical obstructions in the area of interest106), as well as other types of information related to the environment of the area of interest106that can cause radio frequency interferences on the wireless network. According to examples, radio frequency interference can be caused by a physical obstruction or by an unwanted signal that occurs at the same time and frequency as a data signal. For example, interference to wireless networks may come from a variety of sources, such as other wireless devices (e.g., baby monitors, garage door openers, wireless phones), appliances (e.g., as microwaves, refrigerators), other proximate WiFi networks, etc. Radio frequency interference causes wireless receivers in connected user devices102to sporadically make mistakes when decoding packets, which results in retransmissions of data. This disrupts the flow of data and degrades quality of service. For example, when interference occurs, users of wireless IP phones may likely experience dropped calls, browsing the web may be slow, and when streaming movies on a connected television, lost synchronization between a picture and sound may be common, as well as varying picture quality and long pauses while the video stream re-buffers.

Interference data can be provided to the interference data collector208via one or more data sources114operating as interference data sources. In some examples, a data source114operating as an interference data source is embodied as a spectrum analyzer or a device comprising or in communication with a spectrum analyzer operative to measure the amplitude (usually in dBm) of signals over a particular range of frequencies and to provide the measured signals to the signal data visualization system104. The measured amplitudes may represent a combination of signals coming from data traffic on the WLAN118and interfering signals coming from other sources. The data source114may include a GPS system, which enables the data source to provide location data with the measured signal data.

In other examples, interference data provided to the interference data collector208can include user-input interference information. For example, user-input interference information can include a selection or entry of possible sources of signal interference, such as other wireless devices, appliances, other WiFi networks, structural information (e.g., types of materials, surfaces), physical obstructions (e.g., walls, floors, trees, furniture) in or associated with the area of interest106. Location information (e.g., coordinates, selection of a location in a layout or background image of the area of interest106) associated with the interference information can also be input or detected and provided to and received by the interference data collector208and stored in the database222.

In some implementations, the data visualization system104includes a business data collector210illustrative of a software module, system, or device operative or configured to collect business-related data associated with services (e.g., Internet service, video service, security service) provided to the area of interest106. In some examples, business-related data includes data corresponding to a particular Internet service level that is provided to the area of interest106. For example, subscribers of a particular Internet service level may be provided a certain level of bandwidth or a maximum rate at which data can be downloaded from the Internet (network108) to a computer in the area of interest106.

In some examples, business-related data includes data corresponding to a particular tier of video service that is provided to the area of interest106(e.g., according to a subscription). For example, subscribers of a particular video service tier may be provided certain types of content that require certain levels (additional) bandwidth, such as 4K UHD (ultra-high definition) content (e.g., video content with a horizontal screen display resolution of approximately 4,000 pixels). Given that a stronger signal strength can be correlated with higher data transfer speeds, connected user devices102located in areas that have a strong signal strength in the area of interest may be enabled to support certain bandwidth-intensive services (e.g., streaming 4K UHD content), while connected user devices located in areas that have a weaker signal strength in the area of interest may be unable to support certain bandwidth-intensive services.

In some examples, business-related data is input by the user via a user interface associated with the signal data visualization system104. In other examples, business-related data is provided to the business data collector210by a billing system responsive to a request for the data. Other types of business-related data can be collected by the business data collector210. According to an aspect, the business data collector210stores the received business-related data in the database222.

With reference still toFIG. 2, the signal data visualization system104further comprises a signal profile data visualization engine212illustrative of a software module, system, or device operative or configured to analyze the collected data and to generate, from the collected data, a dataset to be heatmapped, wherein the dataset is representative of the signal profile of the area of interest106. According to an aspect, the dataset includes value information and location information, wherein value information include those data that are to be displayed to the user in the signal data visual representation120. Additionally, location information provide context for the value information and enable the signal data visualization system104to position the value information against a background so that that value information are provided in context to the background in the signal data visual representation120. In some implementations, the signal profile data visualization engine212is operative to generate a layer encoded with the value information, wherein a system of color-coding is used to represent different values in the signal data visual representation120. For example, WiFi signal data can be represented using a varying set of colors ranging from cool (e.g., weak WiFi signal strength) to hot (e.g., strong WiFi signal strength).

In various aspects, a WiFi signal profile can include one or a combination of: layout data, signal strength data, location information, connected user device information, services-related information, router information, business information and rules, and environmental or interference information. According to examples, the dataset is comprised of WiFi signal strength measurements and location information or coordinates associated with the measurements, wherein the signal profile data visualization engine212correlates a value-color spectrum to the dataset such that a layer can be rendered and applied to the layout image of the area of interest106to show the dataset in a heatmap visualization on that layout image. For example, the layer can be encoded with the WiFi signal strength measurements from the dataset organized according to the location information.

In various implementations, the dataset includes interference data. For example, the dataset can include signal interference measurements and locations associated with the interference measurements, or the signal profile data visualization engine212can assign interference values to identified interference sources (e.g., according to interference data collected by the interference data collector208) in the area of interest106. Interference values can be associated with certain interference sources based on the sources and estimated amounts of signal interference caused by the sources (e.g., an identified brick wall may be assigned a particular interference value, while a microwave oven may be assigned another interference value). These interference values can be correlated with a value-color spectrum such that a layer can be rendered and applied to the layout image of the area of interest106to show the interference values in a heatmap visualization on the layout image. For example, WiFi signal interference can be represented using a varying set of colors ranging from cool (e.g., low interference) to hot (e.g., high interference). The layer can be encoded with the interference values from the dataset organized according to the location information.

In various implementations, the dataset includes bandwidth values corresponding to the minimum bandwidth needed to reliably support particular applications or services. For example, to support video streaming of a high-definition stream, a connected device102may need at least a 5 Mbps connected. Based on device data collected by the device data collector204, these bandwidth values can be associated with particular user devices102in the area of interest106. According to an aspect, bandwidth values can be applied as weights to WiFi signal strength measurements in the dataset. For example, based on a particular service (e.g., being used, is oftentimes used, or can be provided by a user device102) and the bandwidth intensity of the service (represented by a bandwidth value), the signal profile data visualization engine212can increment or decrement the signal value associated with the user device or location of the device.

As an example, consider that a WiFi signal strength measurement is taken proximate to a connected lightbulb, and the measurement is a value that may be considered weak (in comparison to other collected WiFi signal strength values in the area of interest106). Accordingly, the signal profile data visualization engine212may correlate this signal value with a particular color value from the value-color spectrum for representing the signal value in the signal data visual representation120. However, based on an assessed bandwidth level needed to provide/support certain services (e.g., turn on and oft change color, change brightness), a bandwidth value can be applied as a weight to the signal value that increments the signal value to account for the minimal bandwidth and minimal signal strength that may be required for enabling the lightbulb to provide the identified services. Accordingly, another color value from the value-color spectrum can be correlated with this weighted signal value, which can indicate that the measured signal level value is adequate for provide the identified services.

As another example, a WiFi signal strength measurement is taken proximate to an IP TV, and the measurement is a value that may be considered between average and strong (in comparison to other collected WiFi signal strength values in the area of interest106). Accordingly, the signal profile data visualization engine212may correlate this signal value with a particular color value from the value-color spectrum for representing the signal value in the signal data visual representation120. However, based on collected business data that indicates that a video services subscription associated with the area of interest106provides for streaming of 4K UHD content and based on collected device data that indicates that the IP TV is streaming 4K UHD content or is commonly used for streaming 4K UHD content, a bandwidth value can be applied as a weight to the signal value that decrements the signal value to account for the additional bandwidth and signal strength that may be required for enabling the IP TV to provide the 4K UHD streaming services. Accordingly, a particular color value from the value-color spectrum can be correlated with this weighted signal value, which can indicate that the measured signal level value may not be adequate for provide the identified service (e.g., streaming 4K UHD content).

According to an aspect, the dataset is structured such that the values represented in the dataset can be filtered based on a desired view of the data (e.g., represented in the signal data visual representation120). In some examples, the dataset can be filtered for displaying only measured WiFi signal strengths in the area of interest106. In other examples, the dataset can be filtered for alternatively or additionally displaying interference data. In other examples, the dataset can be filtered for alternatively or additionally applying bandwidth weights to the signal strength measurements for displaying the adequacy of signal strengths corresponding to particular services provided on particular user devices102. In other examples, the dataset can be filtered for alternatively or additionally identifying locations in the area of interest106where WiFi signal strengths are adequate for supporting a particular user device102(e.g., based on services provided via that user device). As can be appreciated, the dataset can be filtered in various other ways for representing signal profile data.

According to an aspect, the signal profile data visualization engine212is further operative to overlay a generated layer encoded with value information and correlated color-coding of the value information on the layout image of the area of interest106based on location data to develop a combined layout. According to an aspect, this combined layout can be transmitted by an output engine216of the signal data visualization system104to a user device102for rendering the layout as a signal data visual representation120on a display220. In some examples, the output engine216may store the combined layout in the database222.

In various implementations, user interface tools are provided to enable the user to manipulate the data or the visual representation120, wherein user interface tool functionality is provided by a user interface engine218. The user interface engine218can be configured to receive user inputs received via user interface tools or via the user interface associated with the signal data visualization system104, and to communicate those inputs to the signal profile data visualization engine212for manipulating the data or the visual representation120. For example, the user interface tools can enable the user to modify or manipulate the collected by the area-of-interest mapping engine202, the device data collector204, the signal data collector206, the interference data collector208, or the business data collector210, or to the outputs generated by the signal profile data visualization engine212. In one example, the user may implement a user interface tool to determine and display one or more locations in the area of interest106for locating or re-locating a user device102, for example, based on measured WiFi signal strengths and bandwidth needs of the user device for supporting certain services provided via that user device. The user is enabled to use the one or more determined locations to configure devices in the area of interest106for optimal WiFi signal performance. In another example, the user may implement a user interface tool to modify the combined layout.

With reference now toFIG. 3A, an illustration of one example300of a signal data visual representation120of WiFi signal performance data corresponding to an area of interest106is provided. The signal data visual representation120is an example of a 2D map, and can be rendered on a display220of a user device102. According to the illustrated example300, the signal data visual representation120includes two layout images302a,bof the area of interest106: a first layout image302arepresenting a first level of a residence and a second layout image302brepresenting a second level of the residence. The layout images302a,b(collectively or individually referred to as layout image302) may be uploaded to the area-of-interest mapping engine202, added via communication with a map or layout service (e.g., via an API), created via a floorplan tool provided by the area-of-interest mapping engine, or provided via another method. As illustrated inFIG. 3A, rooms or sub-areas of interest304a-s(collectively or individually referred to as sub-areas of interest304) may be defined in the area of interest106.

Additionally, the router112and wireless user devices102a-r(collectively or individually referred to as user devices102) in the area of interest106can be identified, and information about the router and devices (e.g., device identifiers, information about the types of devices, locations of the devices, types of data services or applications supported by the devices, data services or applications commonly used on the devices) can be manually or automatically collected by the device data collector204. As illustrated, based on an identification of the user devices102and the devices' locations, representations of the user devices102can be included in the signal data visual representation120and displayed at their relative positions in the represented area of interest106.

According to an aspect, value information associated with WiFi signal strength data can be correlated with color-coding and represented in a layer and applied to the layout images302. One example of a representation of color-coded value information is illustrated inFIG. 3A, wherein strengths of WiFi signals are represented in relation to the connected user devices102in the area of interest106. In the illustrated example300, WiFi signal strength values are represented by wireless symbols308displayed in a specified color (or shade). In some examples, a specific color, shade, or gradient can be associated with a specific range of WiFi signal strengths (e.g., green is associated with values within a range of strong signal strengths, yellow is associated with values within a range of average signal strengths, and red is associated with values within a range of poor signal strengths).

In some implementations, the WiFi signal strength data represented in the signal data visual representation120are reflective of signal strength measurements taken in the area of interest106. In other implementations, the WiFi signal strength data represented in the signal data visual representation120are reflective of weighted signal strength measurements. For example, the value information associated with WiFi signal strength data can be weighted based on one or a combination of: a particular service (e.g., being used, is oftentimes used, or can be provided by a user device102), the bandwidth intensity of the service, and interference data. In some examples, a legend306can be provided for information about the color-coding.

With reference now toFIG. 3B, an illustration of another example310of a signal data visual representation120of WiFi signal performance data corresponding to an area of interest106is provided. In the illustrated example310, strengths of measured or measured and weighted WiFi signals are represented as a plurality of color-coded symbols312a-coverlaid on the layout images302. The color-coded symbols312may be positioned at locations where corresponding WiFi signal strength measurements were taken and/or positioned at locations of wirelessly connected user devices102in the area of interest106.

With reference now toFIG. 3C, an illustration of another example314of a signal data visual representation120of WiFi signal performance data corresponding to an area of interest106is provided. In the illustrated example310, WiFi signal strength values are represented by a heatmap316comprised of a layer or overlay of various values of colors from a color spectrum that correlate to values in a WiFi signal dataset and are positioned over the layout image302according to location information associated with the values. For example, areas in the area of interest106where strong WiFi signal strengths are measured may be displayed in a specified color (or shade), such as a dark or warm color or shade, areas where weak or poor WiFi signal strengths are measured may be displayed in a specified color/shade, such as a light or cool color or shade, and areas where average WiFi signal strengths are measured may be displayed in a specified color/shade between the color/shade of the strong signal strengths and the color/shade of the weak signal strengths.

With reference now toFIG. 3D, an example318of a signal data visual representation120including interference-related data is provided. As described above, a variety of interference data can be collected by the interference data collector208and applied to the data. In some implementations, interference-related data can be used to show areas in the area of interest106(or in a sub-area of interest304bas illustrated) where there is signal interference320(e.g., as measured) or where signal interference is likely. For example, certain areas may be determined to likely have signal interference based on input interference data, such as a specification of architectural features (e.g., walls, floors, structures, building materials), trees, as well as certain materials or surfaces, such as brick surfaces, steel structures, reflective surfaces, etc.

In some implementations, interference-related data can be used in association with signal strength data to provide information to the user about areas in the area of interest106(or in a sub-area of interest304bas illustrated) where WiFi signal performance can be optimized. For example, responsive to a request for a recommended location to position a particular wireless user device102, the signal data visual representation120can include a display of a suggested location322. The suggested location322can be determined based on measured signal strengths, interference data, and in some examples, based on a particular application or service supported by the user device102.

With reference now toFIG. 3E, an illustration of an example324of a 3D signal data visual representation120of WiFi signal performance data corresponding to an area of interest106is provided. For example, the WiFi signal performance data values are represented as a 3D heatmap316in the area of interest106. In some implementations, the user may utilize a wearable user device102, such as an augmented reality-enabled device where the 3D signal data visual representation120can be displayed as an overlay on a live or virtually-live layout image302.

With reference now toFIG. 3F, an illustration of an example signal data visual representation120displayed on a display220of a user device102is provided. According to an example, the signal data visual representation120may be automatically presented to the user when an inferior WiFi signal strengths are detected by a user device102for supporting a specified activity or operation. For example, the signal data visual representation120may be displayed on the user's television screen responsive to receiving an indication of a user selection to stream 4K UHD content on a television (user device102) located in an area in the area of interest106where WiFi signal strengths are measured as average and where signal interference is determined to be likely (e.g., based on other wireless devices or appliances in the area). Given this information, the user can take certain steps to optimize WiFi signal performance in the area of interest106. For example, the user can select to stream the 4K UHD content on another user device102, may move the television, or may remove certain interference sources.

FIG. 4is a flow diagram that depicts general stages of an example method400for generating and providing a signal data visual representation120of WiFi signal performance data corresponding to an area of interest106according to an embodiment. The method400begins at START OPERATION402, and proceeds to OPERATION404where the method400uses the area-of-interest mapping engine202to receive or generate a layout image302of the area of interest106, and store the layout image in the database222. For example, the layout image302can be provided to the signal data visualization system104, or the area-of-interest mapping engine202can be configured to operate as a floorplan tool that enables the user to create a layout of the area of interest106or to modify a preloaded floorplan to correspond to the area of interest.

At OPERATION406, the method400uses the device data collector204to receive device-related data, and store the data in the database222. For example, device-related data (e.g., device identifier, location data, service or application data) can be automatically communicated to the signal data visualization system104by one or more user devices102in the area of interest106, can be communicated to the signal data visualization system responsive to a request for device-related data, or can be input or selected by a user via a data entry component of a user interface associated with the signal data visualization system.

At OPERATION408, the method400uses the signal data collector206to receive signal data, such as signal strength data measured and provided to the signal data collector by one or more data sources114operating as signal data sources, and store the data in the database222. According to examples, location data associated with locations in the area of interest106where the signal strength measurements are recorded can be provided with the signal data.

At OPERATION410, the method400uses the interference data collector208to receive interference data from one or more data sources114, and store the data in the database222. For example, interference data can include identified and/or measured interference signal data and/or user-input interference information, such as a selection or entry of possible sources of signal interference.

At optional OPERATION412, the method400uses the business data collector210to receive business-related data, and store the data in the database222. For example, the business-related data can indicate information associated with services (e.g., Internet service, video service, security service) provided to the area of interest106which can affect the WiFi signal profile of the area of interest.

At OPERATION414, the method400uses the signal profile data visualization engine212to analyze the received data and generate a dataset from the data that is representative of the signal profile of the area of interest106. According to an aspect, the dataset includes value information and location information, wherein value information include those data that are to be displayed in the signal data visual representation120. In some examples, the dataset includes values of measured WiFi signal strengths. In other examples, the dataset includes values of measured WiFi signal strengths that are weighted based on one or a combination of device data, interference data, and business-related data.

At OPERATION416, the method400uses the signal profile data visualization engine212to generate a visual representation120of the dataset. For example, the method400can use the signal profile data visualization engine212to generate a layer encoded with value information from the dataset, wherein a system of color-coding is used to represent the different values, and to overlay the generated layer encoded with value information and correlated color-coding of the value information on the layout image of the area of interest106based on location data to develop a combined layout. At OPERATION416, the method400further uses the output engine216to transmit the combined layout to a user device102for rendering the layout as a signal data visual representation120on a display220of the device.

At DECISION OPERATION418, the method400uses the user interface engine218to determine whether any user input is received. For example, user input can correspond with a request to filter the dataset and update the signal data visual representation120based on the filtered dataset. In some examples, the dataset can be filtered responsive to a user selection to display a view of: only measured WiFi signal strengths in the area of interest106, interference data, weighted signal strength data (e.g., for displaying the adequacy of signal strengths corresponding to particular services provided on particular user devices102), recommended locations for one or more user devices, etc.

When user input corresponding to a request to filter the dataset is received, the method400proceeds to OPERATION420, where the method uses the user interface engine218to provide the user input to the signal profile data visualization engine212, and further uses the signal profile data visualization engine to filter the dataset based on the user input. The method400can then continue to OPERATION416. If user input is not received at DECISION OPERATION418, the method ends at OPERATION498.

FIG. 5is a block diagram illustrating example physical components of a computing device or system500with which embodiments may be practiced. It should be appreciated that in other embodiments, different hardware components other than those illustrated in the example ofFIG. 5may be used. Computing devices may be implemented in different ways in different embodiments. For instance, in the example ofFIG. 5, the computing device500includes a processing system504, memory502, a network interface506(wired and/or wireless), radio/antenna507, a secondary storage device508, an input device510, a video interface512, a display unit514, and a communication medium516. In other embodiments, the computing device500may be implemented using more or fewer hardware components (e.g., a video interface, a display unit, or an input device) or in combination with other types of computer systems and program modules526.

The memory502includes one or more computer-readable storage media capable of storing data and/or computer-executable instructions. Memory502may store the computer-executable instructions that, when executed by processor504, cause allocation and/or reallocation operations as part of load balancing internal connections. In various embodiments, the memory502is implemented in various ways. For example, the memory502can be implemented as various types of computer-readable storage media. Example types of computer-readable storage media include, but are not limited to, solid state memory, flash memory, dynamic random access memory (DRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), DDR2 SDRAM, DDR3 SDRAM, read-only memory (ROM), reduced latency DRAM, electrically-erasable programmable ROM (EEPROM), and other types of devices and/or articles of manufacture that store data.

The term computer-readable storage medium may also refer to devices or articles of manufacture that store data and/or computer-executable instructions readable by a computing device. The term computer-readable storage media encompasses volatile and nonvolatile, removable and non-removable media implemented in various methods or technologies for storage and retrieval of information. Such information can include data structures, program modules, computer-executable instructions, or other data.

The processing system504includes one or more processing units, which may include tangible integrated circuits that selectively execute computer-executable instructions. In various embodiments, the processing units in the processing system504are implemented in various ways. For example, the processing units in the processing system504can be implemented as one or more processing cores. In this example, the processing system504can comprise one or more microprocessors. In another example, the processing system504can comprise one or more separate microprocessors. In yet another example embodiment, the processing system504can comprise Application-Specific Integrated Circuits (ASICs) that provide specific functionality. In yet another example, the processing system504provides specific functionality by using an ASIC and by executing computer-executable instructions.

The computing device500may be enabled to send data to and receive data from a communication network via a network interface card506. In different embodiments, the network interface card506is implemented in different ways, such as an Ethernet interface, a token-ring network interface, a fiber optic network interface, a wireless network interface (e.g., WIFI, Wi-Max, etc.), or another type of network interface. The network interface may allow the device to communicate with other devices, such as over a wireless network in a distributed computing environment, a satellite link, a cellular link, and comparable mechanisms. Other devices may include computer device(s) that execute communication applications, storage servers, and comparable devices.

The secondary storage device508includes one or more computer-readable storage media, and may store data and computer-executable instructions not directly accessible by the processing system504. That is, the processing system504performs an I/O operation to retrieve data and/or computer-executable instructions from the secondary storage device508. In various embodiments, the secondary storage device508can be implemented as various types of computer-readable storage media, such as by one or more magnetic disks, magnetic tape drives, CD-ROM discs, DVD-ROM discs, BLU-RAY discs, solid state memory devices, and/or other types of computer-readable storage media.

The input device510enables the computing device500to receive input from a user. Example types of input devices include, but are not limited to, keyboards, mice, trackballs, stylus input devices, key pads, microphones, joysticks, touch-sensitive display screens, and other types of devices that provide user input to the computing device500.

The video interface512outputs video information to the display unit514. In different embodiments, the video interface512is implemented in different ways. For example, the video interface512is a video expansion card. In another example, the video interface512is integrated into a motherboard of the computing device500. In various embodiments, the display unit514can be an LCD display panel, a touch-sensitive display panel, an LED screen, a projector, a cathode-ray tube display, or another type of display unit. In various embodiments, the video interface512communicates with the display unit514in various ways. For example, the video interface512can communicate with the display unit514via a Universal Serial Bus (USB) connector, a VGA connector, a digital visual interface (DVI) connector, an S-Video connector, a High-Definition Multimedia Interface (HDMI) interface, a DisplayPort connector, or another type of connection.

The communications medium516facilitates communication among the hardware components of the computing device500. In different embodiments, the communications medium516facilitates communication among different components of the computing device500. For instance, in the example ofFIG. 5, the communications medium516facilitates communication among the memory502, the processing system504, the network interface card506, the secondary storage device508, the input device510, and the video interface512. In different embodiments, the communications medium516is implemented in different ways, such as a PCI bus, a PCI Express bus, an accelerated graphics port (AGP) bus, an InfiniBand® interconnect, a serial Advanced Technology Attachment (ATA) interconnect, a parallel ATA interconnect, a Fiber Channel interconnect, a USB bus, a Small Computing system Interface (SCSI) interface, or another type of communications medium.

The memory502stores various types of data and/or software instructions. For instance, in the example ofFIG. 5, the memory502stores a Basic Input/Output System (BIOS)518, and an operating system520. The BIOS518includes a set of software instructions that, when executed by the processing system504, cause the computing device500to boot up. The operating system520includes a set of software instructions that, when executed by the processing system504, cause the computing device500to provide an operating system that coordinates the activities and sharing of resources of the computing device500. The memory502also stores one or more application programs or program code522that, when executed by the processing system504, cause the computing device500to provide applications to users. The memory502also stores one or more utility programs524that, when executed by the processing system504, cause the computing device500to provide utilities to other software programs.

Embodiments may be used in combination with any number of computer systems, such as in server environments, desktop environments, laptop or notebook computer systems, multiprocessor systems, micro-processor based or programmable consumer electronics, networked PCs, mini computers, main frame computers and the like. Embodiments may be utilized in various distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network in a distributed computing environment, and where program code may be located in local and/or remote memory storage (e.g., memory and/or disk(s)).

All system components described herein may be communicatively coupled via any method of network connection known in the art or developed in the future including, but not limited to wired, wireless, modem, dial-up, satellite, cable modem, Digital Subscriber Line (DSL), Asymmetric Digital Subscribers Line (ASDL), Virtual Private Network (VPN), Integrated Services Digital Network (ISDN), X.25, Ethernet, token ring, Fiber Distributed Data Interface (FDDI), IP over Asynchronous Transfer Mode (ATM), Infrared Data Association (IrDA), wireless, WAN technologies (T1, Frame Relay), Point-to-Point Protocol over Ethernet (PPoE), etc. including any combination thereof.

FIGS. 6A-6Billustrate a suitable mobile computing device600or environment, for example, a mobile computing device or smart phone, a tablet personal computer, a laptop computer, or other user device102, with which aspects can be practiced. The mobile computing device600is illustrative of any suitable device operative to send, receive and process wireless communications. A display screen605is operative for displaying a variety of information such as information about incoming and outgoing communications, as well as, a variety of data and displayable objects, for example, text, alphanumeric data, photographs, and the like.

Data input to the mobile computing device600can be performed via a variety of suitable means, such as, touch screen input via the display screen605, keyboard or keypad input via a data entry area610, key input via one or more selectable buttons or controls615, voice input via a microphone618disposed on the mobile computing device600, photographic input via a camera625functionality associated with the mobile computing device600, or any other suitable input means. Data can be output via the mobile computing device600via any suitable output means, including but not limited to, display on the display screen605, audible output via an associated speaker630or connected earphone system, vibration module for providing tactile output, and the like.

Referring now toFIG. 6B, operational unit635is illustrative of internal operating functionality of the mobile computing device600. A processor640is illustrative of a computer processor for processing incoming and outgoing data and communications and controlling operation of the device and associated software applications via a mobile computing device operating system. Memory645can be utilized for storing a device operating system, device programming, one or more stored applications, for example, mobile telephone applications, data processing applications, calculators, games, Internet browsing applications, navigation applications, acceleration applications, camera and/or video applications, etc.

Mobile computing device600can contain an accelerometer655for detecting acceleration, and can be used to sense orientation, vibration, and/or shock. Mobile computing device600can contain a global positioning system (GPS) system (e.g., GPS send/receive functionality)660. A GPS system660uses radio waves to communicate with satellites orbiting the Earth. Some GPS-enabled mobile computing devices use wireless-assisted GPS to determine a user's location, wherein the device uses orbiting GPS satellites in conjunction with information about the device's mobile phone signal. Radio functions650include all required functionality, including onboard antennae, for allowing the mobile computing device600to communicate with other communication devices and systems via a wireless network. Radio functions650can be utilized to communicate with a wireless or WIFI-based positioning system to determine a device location.

FIG. 7is a block diagram illustrating a cable television services system700(hereafter referred to as “CATV”) architecture providing an operating environment according to an aspect. As should be appreciated, a CATV services system700is but one of various types of systems that can be utilized for providing Internet services and/or video services to an area of interest106as described herein. Referring now toFIG. 7, digital and analog video programming, information content and interactive television services are provided via a hybrid fiber coax (HFC) network715to a television set716for consumption by a cable television/services system customer. As is known to those skilled in the art, HFC networks715combine both optical fiber and coaxial cable lines. Typically, optical fiber runs from the cable head end710to neighborhoods of subscribers. Coaxial cable runs from the optical fiber feeders to each customer or subscriber. The functionality of the HFC network715allows for efficient bidirectional data flow between the set-top box718and the application server740of the aspect.

The CATV system700is in the form of a distributed client-server computing system for providing video and data flow across the HFC network715between server-side services providers (e.g., cable television/services providers) via a server-side head end710and a client-side customer via a set-top box (STB)718functionally connected to a customer receiving device, such as the television set716. As is understood by those skilled in the art, modern CATV systems700can provide a variety of services across the HFC network715including traditional digital and analog video programming, telephone services, high speed Internet access, video-on-demand, and services.

On the client side of the CATV system700, digital and analog video programming and digital and analog data are provided to the customer television set716via the STB718. Interactive television services that allow a customer to input data to the CATV system700likewise are provided by the STB718. As illustrated inFIG. 7, the STB718is a multipurpose computing device having a computer processor, memory, and an input/output mechanism. The input/output mechanism receives input from server-side processes via the HFC network715and from customers via input devices such as a remote control device728, keyboard730, or other computing device, such as a tablet/slate computer, smart phone, etc. The remote control device728and the keyboard730can communicate with the STB718via a suitable communication transport such as the infrared connection732. The remote control device728can include a biometric input module729. The STB718also includes a video processor for processing and providing digital and analog video signaling to the television set716via a cable communication transport734. A multi-channel tuner is provided for processing video and data to and from the STB718and the server-side head end system710, described below.

The STB718also includes an operating system722for directing the functions of the STB718in conjunction with a variety of client applications725. For example, if a client application725requires a news flash from a third-party news source to be displayed on the television716, the operating system722can cause the graphics functionality and video processor of the STB718, for example, to output the news flash to the television716at the direction of the client application725responsible for displaying news items.

Because a variety of different operating systems722can be utilized by a variety of different brands and types of set-top boxes718, a middleware layer724can be provided to allow a given software application to be executed by a variety of different operating systems. According to an embodiment, the middleware layer724can include a set of application programming interfaces (APIs) that are exposed to client applications and operating systems722that allow client applications725to communicate with the operating systems722through common data calls understood via the API set. As described below, a corresponding middleware layer742is included on the server side of the CATV system700for facilitating communication between the server-side application server and the client-side STB718. The middleware layer742of the server-side application server and the middleware layer724of the client-side STB718can format data passed between the client side and server side according to the Extensible Markup Language (XML).

According to one aspect, the STB718passes digital and analog video and data signaling to the television716via a one-way communication transport734. According to other aspects, two-way communication transports can be utilized, for example, via high definition multimedia (HDMI) ports. The STB718can receive video and data from the server side of the CATV system700via the HFC network715through a video/data downlink and data via a data downlink. The STB718can transmit data from the client side of the CATV system700to the server side of the CATV system700via the HFC network715via one data uplink. The video/data downlink is an “in band” downlink that allows for digital and analog video and data signaling from the server side of the CATV system700through the HFC network715to the STB718for use by the STB718and for distribution to the television set716. As is understood by those skilled in the art, the “in band” signaling space operates at a relative high frequency, e.g., between 54 and 1000 megahertz. The signaling space is generally divided into 6 megahertz channels in which can be transmitted as a single analog signal or a greater number (e.g., ten) of digital signals.

The data downlink and the data uplink, illustrated inFIG. 7, between the HFC network715and the set-top box718comprise “out of band” data links. As is understand by those skilled in the art, the “out of band” frequency range is generally at a lower frequency than “in band” signaling. For example, the “out of band” frequency range can be between zero and 54 megahertz. Data flow between the STB718and the server-side application server740is typically passed through the “out of band” data links. Alternatively, an “in band” data carousel can be positioned in an “in band” channel into which a data feed can be processed from the application server740through the HFC network715to the STB718. Operation of data transport between components of the CATV system700, described with reference toFIG. 7, is well known to those skilled in the art.

Referring still toFIG. 7, the head end710of the CATV system700is positioned on the server side of the CATV system and includes hardware and software systems responsible for originating and managing content for distributing through the HFC network715to client-side STBs718for presentation to customers. As described above, a number of services can be provided by the CATV system700, including digital and analog video programming, interactive television services, telephone services, video-on-demand services, targeted advertising, and/or provision of supplemental content.

The application server740can be configured as a computing system operative to assemble and manage data sent to and received from the STB718via the HFC network715. As described above, the application server740includes a middleware layer742for processing and preparing data from the head end710of the CATV system700for receipt and use by the client-side STB718. For example, the application server740via the middleware layer742can obtain supplemental content from third-party services746via the Internet744for transmitting to a customer through the HFC network715, the STB718, and recording by a local or remote DVR. For example, content metadata from a third-party content provider service can be downloaded by the application server740via the Internet744. When the application server740receives the downloaded content metadata, the middleware layer742can be utilized to format the content metadata for receipt and use by the STB718. Therefore, content metadata can be sent and categorized based on the availability to the customer's program guide data.

According to one embodiment, data obtained and managed by the middleware layer742of the application server740is formatted according to the Extensible Markup Language and is passed to the STB718through the HFC network715where the XML-formatted data can be utilized by a client application725in concert with the middleware layer724, as described above. As should be appreciated by those skilled in the art, a variety of third-party services data746, including news data, weather data, sports data and other information content can be obtained by the application server740via distributed computing environments such as the Internet744for provision to customers via the HFC network715and the STB718.

According to aspects, the application server740obtains customer support services data, including billing data, information on customer work order status, answers to frequently asked questions, services provider contact information, and the like from data services726for provision to the customer via an interactive television session. The data services726include a number of services operated by the services provider of the CATV system700which can include profile and other data associated with a given customer.

A billing system762can include information such as a customer's name, street address, business identification number, Social Security number, credit history, and information regarding services and products subscribed to by the customer. According to embodiments, the billing system762can also include billing data for services and products subscribed to by the customer for bill processing, billing presentment and payment receipt.

A customer information database768can include general information about customers such as place of employment, business address, business telephone number, and demographic information such as age, gender, educational level, and the like. The customer information database768can also include information on pending work orders for services or products ordered by the customer. The customer information database768can also include general customer information such as answers to frequently asked customer questions and contact information for various service provider offices/departments. As should be understood, this information can be stored in a variety of disparate databases operated by the cable services provider.

Referring still toFIG. 7, web services system750is illustrated between the application server740and the data services726. According to aspects, web services system750serves as a collection point for data requested from each of the disparate data services systems comprising the data services726. According to aspects, when the application server740requires customer services data from one or more of the data services726, the application server740passes a data query to the web services system750. The web services system750formulates a data query to each of the available data services systems for obtaining any required data for a requesting customer as identified by a set-top box identification associated with the customer.

The web services system750serves as an abstraction layer between the various data services systems and the application server740. That is, the application server740is not required to communicate with the disparate data services systems, nor is the application server740required to understand the data structures or data types utilized by the disparate data services systems. The web services system750is operative to communicate with each of the disparate data services systems for obtaining necessary customer data. The customer data obtained by the web services system is assembled and is returned to the application server740for ultimate processing via the middleware layer742, as described above. An authentication system766can include information such as secure user names, subscriber profiles, subscriber IDs, and passwords utilized by customers for access to network services. As should be understood by those skilled in the art, the disparate systems750,762,766,768can be integrated or provided in any combination of separate systems, whereinFIG. 7shows only one example.

Aspects, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments. The functions/acts noted in the blocks can occur out of the order as shown in any flowchart or described herein. For example, two processes shown or described in succession can in fact be executed substantially concurrently or the blocks can sometimes be executed in the reverse order, depending upon the functionality/acts involved.

While certain embodiments have been described, other embodiments may exist. Furthermore, although embodiments have been described as being associated with data stored in memory and other storage mediums, data may also be stored on or read from other types of computer-readable storage media. Further, the disclosed processes may be modified in any manner, including by reordering and/or inserting or deleting a step or process, without departing from the embodiments.

The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather by the claims appended hereto.