U.S. patent application number 14/961735 was filed with the patent office on 2016-10-13 for communication hub and repeaters.
The applicant listed for this patent is Enovate Medical, LLC. Invention is credited to Arlow Farrell, Mary Metelko, Sean Thornton.
Application Number | 20160302210 14/961735 |
Document ID | / |
Family ID | 57111625 |
Filed Date | 2016-10-13 |
United States Patent
Application |
20160302210 |
Kind Code |
A1 |
Thornton; Sean ; et
al. |
October 13, 2016 |
COMMUNICATION HUB AND REPEATERS
Abstract
A method and apparatus for receiving, by a processing device of
a communication hub, communication data from a source device over a
first channel of a plurality of wireless communication channels.
The hub authorizes the source device in view of at least one of an
indication that the source device is within a specified distance
from the hub or an indication that the source device is predefined
as an approved device. The hub determines whether to re-transmit
the data to a destination device over a second channel. The data is
not re-transmitted when the data includes a specified level of
corrupted data or the source device is unauthorized. The hub
transforms the data from a first format to a second format
corresponding to the second channel.
Inventors: |
Thornton; Sean;
(Murfreesboro, TN) ; Metelko; Mary; (Murfreesboro,
TN) ; Farrell; Arlow; (Murfreesboro, TN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Enovate Medical, LLC |
Murfreesboro |
TN |
US |
|
|
Family ID: |
57111625 |
Appl. No.: |
14/961735 |
Filed: |
December 7, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62146084 |
Apr 10, 2015 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G01S 1/68 20130101; H04W
48/12 20130101; G01S 5/14 20130101; G01S 5/0226 20130101; H04W
72/085 20130101; H04L 63/0815 20130101; G06Q 10/08 20130101; G01S
5/08 20130101; H04L 63/10 20130101; H04W 4/80 20180201; H04W 72/10
20130101; G16H 10/60 20180101; H04L 63/0861 20130101; H04W 88/04
20130101; H04L 43/16 20130101 |
International
Class: |
H04W 72/08 20060101
H04W072/08; H04L 12/26 20060101 H04L012/26; H04W 72/10 20060101
H04W072/10 |
Claims
1. A method comprising: receiving, by a processing device of a
communication hub, communication data from a source device over a
first channel of a plurality of wireless communication channels;
authorizing, by the processing device, the source device in view of
at least one of an indication that the source device is within a
specified distance from the hub or an indication that the source
device is predefined as an approved device; determining, by the
processing device, whether to re-transmit the communication data to
a destination device over a second channel of the plurality of
wireless communication channels, wherein the communication data is
not re-transmitted when the communication data comprises a
specified level of corrupted data or the source device is
unauthorized; transforming, by the processing device, a first
format of the communication data to a second format, the first
format corresponding to the first channel and the second format
corresponding to the second channel; and re-transmitting, by the
processing device, the communication data in the second format to
the destination device over the second channel.
2. The method of claim 1, further comprising: analyzing, by the
processing device, the communication data to determine a type of
data; calculating, by the processing device, a priority of the
communication data based on the analyzing; and delaying the
re-transmission of the communication data, by the processing
device, when the priority is below a specified threshold.
3. The method of claim 1, further comprising: analyzing, by the
processing device, a data size of the communication data; and
delaying the re-transmission of the communication data, by the
processing device, when the data size is greater than a specified
threshold.
4. The method of claim 1, further comprising: analyzing, by the
processing device, the communication data to determine a type of
data; determining, by the processing device, whether the type of
data is predefined to trigger the communication hub to transmit a
response; and transmitting, by the processing device, the response
when the type of data is determined to trigger the response.
5. The method of claim 1, wherein authorizing the source device in
view of the indication that the source device is within a specified
distance from the hub comprises: analyzing the communication data
to determine a received signal strength indicator (RSSI), the
communication data having been wirelessly transmitted by the source
device; comparing the RSSI to an RSSI threshold; and determining
the source device is authorized when the RSSI is greater than or
equal to the RSSI threshold or unauthorized when the RSSI is less
than the RSSI threshold.
6. The method of claim 1, wherein authorizing the source device in
view of the indication that the source device is predefined as an
approved device comprises: analyzing the communication data to
determine a source device identifier, the source device identifier
associated with the source device having transmitted the
communication data; comparing the source device identifier with
approved source device identifiers; and determining the source
device is authorized when the source device identifier matches the
approved source device identifiers or unauthorized when the source
device identifier does not match the approved source device
identifiers.
7. The method of claim 1, wherein determining whether to
re-transmit the communication data to a destination device over a
second channel of the plurality of wireless communication channels,
wherein the communication data is not re-transmitted when the
communication data comprises a specified level of corrupted data
comprises: analyzing the communication data to determine a source
device identifier and a parameter value; identifying the source
device in view of the source device identifier; comparing the
parameter value to a parameter set predefined for the source
device; and preventing the re-transmission of the communication
data when the parameter value is outside the parameter set.
8. The method of claim 1, further comprising authorizing, by the
processing device, the source device in view a device density
threshold associated with the communication hub.
9. The method of claim 1, wherein transforming the first format of
the communication data to a second format is transformed when the
communication data is determined to be transmitted.
10. The method of claim 1, wherein transforming the first format of
the communication data to the second format comprises at least one
of compressing the communication data, securing the communication
data, changing a communication protocol of the communication data,
removing data from the communication data, or adding data to the
communication data.
11. The method of claim 1, wherein the plurality of wireless
communication channels comprises at least two of a channel
compliant with a low energy wireless personal area network (PAN)
standard, a wireless local area network (WLAN) standard, or a
cellular standard.
12. The method of claim 1, wherein re-transmitting the
communication data in the second format to the destination device
over the second channel comprises transmitting, via a cellular
network, the communication data to a server in a format compliant
with a cellular standard.
13. The method of claim 1, wherein the hub further comprises a
wired communication channel.
14. An apparatus comprising: an antenna for receiving and
transmitting communication data; a processing device operatively
coupled to the antenna; and a memory, coupled to the processing
device and storing instructions, that when executed cause the
processing device to: receive, by the processing device of a
communication hub, communication data from a source device over a
first channel of a plurality of wireless communication channels;
authorize the source device in view of at least one of an
indication that the source device is within a specified distance
from the hub or an indication that the source device is predefined
as an approved device; determine whether to re-transmit the
communication data to a destination device over a second channel of
the plurality of wireless communication channels, wherein the
communication data is not re-transmitted when the communication
data comprises a specified level of corrupted data or the source
device is unauthorized; transform a first format of the
communication data to a second format, the first format
corresponding to the first channel and the second format
corresponding to the second channel; and re-transmit the
communication data in the second format to the destination device
over the second channel.
15. The apparatus of claim 14, the processing device further to:
analyze the communication data to determine a type of data;
calculate a priority of the communication data based on the
analyzing; and delay the re-transmission of the communication data
when the priority is below a specified threshold.
16. The apparatus of claim 14, the processing device further to:
analyze a data size of the communication data; and delay the
re-transmission of the communication data, by the processing
device, when the data size is greater than a specified
threshold.
17. The apparatus of claim 14, the processing device further to:
analyze the communication data to determine a type of data;
determine whether the type of data is predefined to trigger the
communication hub to transmit a response; and transmit the response
when the type of data is determined to trigger the response.
18. A non-transitory machine-readable storage including instruction
that, when executed by a processing device, cause the processing
device to: receive, by the processing device of a communication
hub, communication data from a source device over a first channel
of a plurality of wireless communication channels; authorize the
source device in view of at least one of an indication that the
source device is within a specified distance from the hub or an
indication that the source device is predefined as an approved
device; determine whether to re-transmit the communication data to
a destination device over a second channel of the plurality of
wireless communication channels, wherein the communication data is
not re-transmitted when the communication data comprises a
specified level of corrupted data or the source device is
unauthorized; transform a first format of the communication data to
a second format, the first format corresponding to the first
channel and the second format corresponding to the second channel;
and re-transmit the communication data in the second format to the
destination device over the second channel.
19. The non-transitory machine-readable storage of claim 18, the
processing device further to: analyze the communication data to
determine a type of data; calculate a priority of the communication
data based on the analyzing; and delay the re-transmission of the
communication data when the priority is below a specified
threshold.
20. The non-transitory machine-readable storage of claim 18, the
processing device further to: analyze a data size of the
communication data; delay the re-transmission of the communication
data, by the processing device, when the data size is greater than
a specified threshold; analyze the communication data to determine
a type of data; determine whether the type of data is predefined to
trigger the communication hub to transmit a response; and transmit
the response when the type of data is determined to trigger the
response.
Description
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Application No. 62/146,084 filed on Apr. 10, 2015, the contents of
which are hereby incorporated by reference herein.
BACKGROUND
[0002] Asset management systems may be systems used to manage the
entire or part of the lifecycle of an asset. An entity may identify
assets as objects of value to the entity. Assets may be tangible
objects, such as buildings, hardware, devices, etc., or may be
intangible objects such as software, information, intellectual
property, etc. Asset management systems may help an entity design,
deploy, operate, maintain, track, upgrade, and/or dispose of
assets. As part of asset management, an entity may use an asset
tracking system to identify, track the movement of, and/or manage
the entity's assets.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] The present disclosure is illustrated by way of example, and
not by limitation, in the figure of the accompanying drawings.
[0004] FIG. 1A illustrates a communication flow of asset and
management information in a medical management system (MMS)
according to various embodiments.
[0005] FIG. 1B illustrates an asset management system, according to
one embodiment.
[0006] FIG. 2 illustrates a method of analyzing and re-transmitting
communication data, according to one embodiment.
[0007] FIG. 3 illustrates a method of delaying the re-transmitting
of communication data, according to one embodiment.
[0008] FIG. 4 illustrates a method of delaying the re-transmitting
of communication data, according to another embodiment.
[0009] FIG. 5 illustrates a method of transmitting a response in
view of the communication data, according to one embodiment.
[0010] FIG. 6 illustrates a method of authorizing a source device
in view of indication the source device is within a specified
distance, according to one embodiment.
[0011] FIG. 7 illustrates a method of authorizing a source device
in view of a device density threshold, according to one
embodiment.
[0012] FIG. 8 illustrates a method of authorizing a source device
in view of indication the source device is predefined as an
approved device, according to one embodiment.
[0013] FIG. 9 illustrates a method of determining whether to
re-transmit the communication data in view of a specified level of
corrupted data, according to one embodiment.
[0014] FIG. 10 illustrates a block diagram of a machine, according
to one embodiment.
DETAILED DESCRIPTION
[0015] A communication network, such as an enterprise network for a
large-scale enterprise, may provide numerous connectivity and
management challenges. In many environments, such as a hospital
environment, a military environment, or large corporate
environment, new communication networks may be installed without or
limited benefit of leveraging existing communication networks. For
example, many environments use secure networks and do not allow
access by third parties. In such as case, the third party may need
a separate network to communicate the third-party information. In
another example, an asset management system may be used to track
and manage the assets of an enterprise. Without access to the
enterprise's networks, communication of asset management
information may be difficult. The nodes of a communication network
may be numerous, disparate, and/or transmit data using different
wireless and wired communication protocols. Data from numerous and
disparate nodes may need to be aggregated, managed, analyzed,
transformed, and/or re-transmitted. Often the data may need to be
re-transmitted to a server to perform operations, such as
computationally intensive analysis. A wired connection to a server,
such as an off-site server, may not be available in some
environments. A wireless communication, such as a cellular
communication, may be used to re-transmit data to the server. Low
data transfer rates and the cost of data transmission over cellular
may be prohibitive.
[0016] The present disclosure addresses the above-mentioned and
other deficiencies by using a communication hub to receive
communication data from a plurality of communication channels,
authorize a source device having transmitted the communication
data, determine whether to re-transmit the communication data to a
destination device based on one or more factors, transform the
format of the communication data, and re-transmit the communication
data. The communication hub may be used in an asset management
system and provide a separate network that runs in parallel with an
enterprise's network without using or intruding on the enterprise's
network.
[0017] Communication data (also referred to as data) may refer to
information communicated in an information signal to and/or from a
communication hub. The communication data may be digital data
and/or analog data. In one example, communication data may be in
the form of a data packet. A data packet may refer to a formatted
unit of data containing in the form of one or more identifiers. For
example, (i.e., data the network uses to deliver the user data) the
sequencing information, the length of the payload, source and
destination addresses, etc., may each be considered identifiers. In
another example, the user data of the data packet may include one
or more identifiers. The user data may include company identifiers,
source device identifiers, approved device identifiers, signal
strength identifiers (e.g., received signal strength indicator
(RSSI), property identifiers, parameter identifiers, parameter
value identifiers, identifiers of other manufacturing specific data
(e.g., manufacturer identifier), wireless broadcast identifiers
(e.g., advertisement indicator identifier), location identifiers,
beacon identifiers (e.g., a major identifier (ID) and/or minor
identifiers (ID)), battery identifiers, etc. Examples of
identifiers are provided for purposes of illustration, rather than
limitation. It should be appreciated that different identifiers may
be available. It should be appreciated that some or all of
identifiers in a data packet may be prescribed by the particular
communication protocol used to transmit the communication data. In
one embodiment, the communication data includes data received from
devices, such an asset or asset tag device, at a communication hub
and/or data re-transmitted from the communication hub.
[0018] A communication channel may refer to a transmission medium
(or a path provided by a transmission medium) used to convey an
information signal, such as communication data. The communication
channel may include software and/or hardware capable of sending
and/or receiving the information signal in a particular
communication protocol. Each communication channel may be a
transmission medium for one or more different communication
protocols (wired and/or wireless communication protocols). A
communication channel may be a wired communication channel or a
wireless communication channel. A wired communication channel
(e.g., Ethernet) may be used to transmit and/or receive
communication data. A wireless communication channel may be used to
transmit and/or receive communication data conforming to a wireless
communication protocol. The wireless communication protocol may
conform to a low energy wireless personal area network (PAN)
standard and/or a wireless local area network (WLAN) standard. For
example, a communication channel may include a network interface
device, such as a dongle using the Bluetooth.RTM. technology,
developed by the Bluetooth Special Interest Group (SIG). The
Bluetooth.RTM. dongle may receive and/or transmit an information
signal conforming to the Bluetooth.RTM. standard. The communication
channel may also have additional hardware and software capable of
processing the wired or wireless signals. Alternatively, the
network interface device can operate using other personal area
network (PAN) technologies, such as the Zigbee.RTM. technology.
[0019] In one embodiment, a communication hub receives data from a
source device over a first channel. For example, the communication
hub may receive communication data from an asset, such as a medical
cart communicating via a wireless communication protocol, such as a
protocol using the Wi-Fi.RTM. technology. Alternatively, other
wireless communication protocols or wireless technologies may be
used, including other wireless local area network (WLAN)
technologies, PAN technologies, or the like. The communication hub
may authorize the source device to use the communication hub to
send communication data to a server computer system based on an
indication that the source device is within specified distance from
the hub. For example, the communication hub may examine
communication data for identifiers, such as a received signal
strength indicator (RSSI), to determine whether the asset is within
a specified distance. The communication hub may authorize the
source device in view of an indication the source device is
predefined as an approved device. For example, the communication
hub may examine communication data for identifiers, such as a
company identifier, and compare the one or more identifiers to
identifiers from predefined approved devices. The communication hub
may determine to not re-transmit the communication data if the
source device is not authorized or the communication data is
corrupted. The communication may determine to re-transmit the
communication data to a destination device, such as a server, over
another wireless communication channel, such as a cellular channel.
The data may be transformed from one format to another format. For
example, that communication data may be transformed from a format
compliant with a low energy wireless PAN standard (e.g.,
Bluetooth.RTM. format) to an encrypted format compatible with the
cellular standard. The communication hub may retransmit the
re-formatted communication data to the server via the cellular
channel of a cellular network, for example.
[0020] In another embodiment, the communication hub may authorize
the source device in view of a device density threshold associated
with the communication hub. The device density threshold may be a
threshold number of devices able to connect to the communication
hub at a particular time. The device density threshold may be
defined by the communication hub and/or a system administrator. A
communication hub may analyze the communication data to determine a
signal strength indicator, such as the RSSI. The communication hub
may sort source devices according to the RSSI. The communication
hub may select a number of source devices, up to the device density
threshold, with the highest RSSI. The communication hub may filter
out source devices with weaker signals and that may be located
closer to other communication hubs. In one embodiment, the
communication hug may send a rejection message to the device. The
rejection message may indicate that to the device that the hub has
rejected the device and/or indicate the device may communicate with
another hub (such as a hub that is a distance closer to the
device).
[0021] In another embodiment, prior to re-transmitting the
communication data, communication hub may analyze the data to
determine the type of data. For example, the communication data may
examine the communication data to determine whether the data
contains patient critical information and/or routine information.
The communication hub may determine a priority of the communication
data based on the type of data, For example, patient critical data
may be given a high priority while routine information may be given
a low priority. The communication hub may delay the re-transmission
of the communication data when the priority is below a specified
threshold. For example, communication hub may delay low priority
data and not delay high priority data.
[0022] In still another embodiment, the communication hub may
analyze a data size of the communication data. For example,
communication hub may determine the data size of the communication
data is 500 kilobytes. The communication hub may delay the
re-transmission of the communication data when then data size is
greater than a specified threshold, for example 1 Gigabyte. In some
examples, delaying the communication data may be used to
efficiently transmit data in low data rate environments and/or
achieve cost efficiency when data transmission rates fluctuate over
time (e.g., over the time of day). Delaying the communication data
may be further described with respect to FIG. 3.
[0023] In another embodiment, the communication hub may determine
whether a response is to be transmitted in view of the
communication data. In one embodiment, a response may be
transmitted to an external server. In another embodiment, a
response may be transmitted to the hospital system. The
communication hub may analyze the communication data to determine a
type of data. The communication hub may examine the communication
data to find identifiers indicating type of data. Using the
identifiers, the communication hub may determine whether the type
of data is predefined to trigger a response and transmit a response
if it is determined that the type of data is to trigger a response.
For example, a patient may be monitored by an electrocardiogram
(EKG) device (e.g., asset). When the patient's heart stops beating
the EKG may send a signal to the communication hub reporting that
no pulse is detected. The communication hub may identify that the
signal from an EKG. In response, the communication hub may transmit
a response, such as an alert to the nursing station to alert the
staff that the patient in room X has gone into cardiac arrest.
[0024] It should be noted that examples provided of communication
hubs being used in hospital environments are provided for purposes
of illustration, rather than limitation. It should be appreciated
that communication hubs, as well as other cooperating devices, may
be used in different environments such as disaster relief
operations, retail stores, and/or product warehouses.
[0025] FIG. 1A illustrates a communication flow of asset and
management information in a medical management system (MMS) 100
according to various embodiments, in addition to aspects of a
real-time location system (RTLS) that works with the MMS 100. The
communication flow may originate in a location such as a room 110,
and may include beacon devices 102 and data sent from an asset 104
(e.g., a medical cart is shown). The asset 104 may be coupled with
an asset tag device 105A or may include an asset tag manager 105B
that runs on the asset 104 to determine a location of the asset
104. An asset tag device 105A may be an electronic device coupled
to an asset or integrated into the asset and used as part of an
asset-tracking system (ATS), such as a real-time locating system
(RTLS). An asset tag device may be a small (e.g., size of a U.S.
quarter), resource-constrained (i.e., low processing power, limited
memory, and/or limited battery life) device used to transmit data,
such as a beacon identifier, to a more powerful central device. The
central device, such as a server computer system (also referred to
as server), may make a determination of location of an asset tag
device and/or asset in view of the transmitted data. An asset tag
device may be a wireless device and transmit data using a wireless
communication protocol. An asset tag device may be a low-power
device and/or be battery powered. An asset tag device may use a
rechargeable battery, such as a lithium-ion rechargeable battery.
An asset tag device may be coupled to or integrated into an asset
in a variety of ways. For example, an asset tag device may be a
discrete hardware device that is physically fixed to a hard asset.
An asset tag device may be a hardware device that is integrated
into the hardware of an asset. A third party device, such as a
mobile phone, may be converted into an asset tag device by loading
the asset tag software (e.g., asset tag manager) and leveraging the
hardware of the third party device to perform the functions of the
asset tag device.
[0026] The data (including the location) may flow through a
communication hub 106 (or other network device) and arrive at a
server 108 (such as a medical database and/or an authentication
server). In some embodiments, the data also, or alternatively,
flows through a communications network 115, where the
communications network 115 may include the communication hub 106.
The data flow may also flow in the reverse direction from the
server 108 and/or the communication hub 106 to the asset 104, e.g.,
in response to a request for medical information or records on a
patient. The data may include asset and/or management data, medical
information, patient information, authentication data, and other
personal and security-related information and the like.
[0027] The MMS 100 may include multiple assets 104. The beacon
devices 102 may be associated with fixed locations and may provide
a location identifier (ID) for asset tag device 105A (or 105B) to
detect, such that the asset tag device 105A (or 105B) may determine
a current location, which the assets may transmit through the
communication hub 106 to the server 108. The beacon device 102 may
identify or be associated with any type of location, including a
room, a hallway, a common or conference room, and/or a grid
location.
[0028] The beacon device 102 may include a circuit board within a
housing, the circuit board containing a processor (or discrete
logic or controller or microcontroller), memory (non-volatile
and/or volatile memory), a battery (or other power source), and a
transceiver primarily for transmitting. The beacon device 102 may
be programmed to transmit a beacon signal containing data to
identify the beacon device to other devices, such as to the asset
tag device 105A or to the asset tag manager 105B running on a host
machine of the asset 104.
[0029] In one example, the beacon device 102 may communicate with
the asset tag device 105A and/or the asset tag manager 105B through
a personal area network (PAN), such as, e.g., with Bluetooth.RTM.
technology developed by the Bluetooth Special Interest Group (SIG).
In another example, the PAN may be created with Bluetooth.RTM. low
energy (BLE) technology (also developed by Bluetooth SIG) that may
be used to track the assets 104. For example, a BLE-based beacon
may be associated with an asset in the MMS 100 to communicate asset
and/or management information of the asset.
[0030] In another example, the beacon device 102 may be an active
or passive radio frequency identification (RFID) tag that transmits
a unique RFID number. The RFID number or identifier may be
correlated at the server 108 with a certain location such as may
have been pre-programmed at the server 108 or within a distributed
MMS 100. In this example, the asset tag device 105A and/or the
asset tag manager 105B may be or include an interrogator that
interrogates the RFID tag of the beacon device 102 to determine the
RFID number or identifier of the beacon device 102. When the beacon
device 102 is an active RFID tag, the asset tag device 105A and/or
the asset tag manger 105B may receive the actively transmitted RFID
number of identifier as transmitted by the beacon device 102.
[0031] The asset tag device 105A (e.g., a non-integrated asset tag
device) may be implemented in hardware and include a circuit board
within a housing as depicted in FIG. 2, the circuit board
containing a processor, memory (non-volatile and/or volatile
memory), a battery, and a transceiver. The transceiver may be a
third-party integrated circuit, such as an RF module, e.g., a
Bluetooth.RTM. chip, an RFID interrogator and/or receiver or the
like. The asset tag device may be performed by processing logic
comprising hardware, software, firmware or any combination
thereof.
[0032] The asset tag manager 105B (e.g., an integrated asset tag
device) may be a software program (including instructions) that may
utilize a processor, memory, transceiver and the like of a host
machine of the asset 104, such as the medical cart (all-in-one
(AOI)), any medical device in which the asset tag is integrated, or
any device when used in non-medical applications.
[0033] The asset tag device 105A and/or the assets 104 may be
tracked with a real-time location system (RTLS) that determines the
location of whatever is tagged (or otherwise tracked by identifying
a location of beacon devices 102 in proximity of the assets 104).
The tracked entities may include an asset or equipment, a MSM
and/or patient(s), for example. The communications hub 106 may be
wired or wireless and may direct data between the assets and to
(and from) the assets 104 and the server 108.
[0034] In one example, the beacon device may broadcast a location
ID to any device located within the room 110. In this example, when
the asset 104 receives the location ID from the beacon device 102,
the asset 104 may determine its location. In another example, the
asset 104 may measure a received signal strength indication (RSSI)
from the beacon device 102 to determine a location of the device
within a radius or area for which the beacon device is
designated.
[0035] For example, the asset 104 may use the received location ID
from the beacon device 102 to determine that the asset 104 is
located in an identified room. The asset 104 may also use the RSSI
to determine a location of the asset 104 within the room, such as
within a threshold of location accuracy (e.g., within X distance
from the beacon device 102). In one example, a room may include
multiple beacon devices 102. The asset 104 may receive multiple
location IDs from the multiple beacon devices 102 and use the RSSI
of the different location IDs to determine the location of the
asset 104 within the room. For example, the asset 104 may use the
RSSI of the different location IDs to triangulate the location of
the asset 104 in the room. In another example, the beacon device
102 may be located at different locations. For example, the beacon
device 102 may be located in a hallway, in a lobby, in a stairwell,
in a room, in a parking lot, and so forth. When the asset tag
device 105A (or asset tag manager 105B) determines its location,
the asset tag device 105A (or asset tag manager 105B) may
communicate asset information (such as location information, asset
management information, and so forth) to a closest communication
hub 106.
[0036] In another example, the asset tag device 105A and/or the
asset tag manager 105B can append the location ID to the asset
information and communicate the appended asset information to the
communication hub 106. The communication hub 106 can analyze the
appended information to determine the location of the asset 104
using the location ID and the asset information. For example, the
communication hub 106 can access a database that defines the
locations of different beacon devices with different location IDs.
The communication hub 106 can compare the received location ID from
the asset tag device 105A and/or the asset tag manager 105B with
the location IDs in the database to find a matching pair of
location IDs and associate the defined location of the location ID
with the asset 104.
[0037] In one example, the communication hub 106 may be a device
(such as a communication plate) mounted to a wall. In another
example, the communication hub 106 may be integrated into a
construction of a location. For example, the communication hub 106
may be integrated into a floor, ceiling, or wall of a facility, for
example. In another example, the communication hub 106 may be
software on the server 108.
[0038] In one example, the communication hub 106 may be located at
a different location than the room 110 (such as a central location
on the floor where the device is located or a central location in
the building where the device is located). When the communication
hub 106 receives the asset information from the asset 104, the
communication hub 106 may relay the information to a server 108. In
one example, the communication hub 106 may receive information from
different devices. When the communication hub 106 receives the
information from the different devices, the communication hub 106
may aggregate the data and send the aggregated asset information to
the server 108.
[0039] One advantage of the asset tag device 105A (or asset tag
manager 105B) determining its location and sending the asset
management information to the communication hub 106 may be to
enable the beacon device 102 to be small and low energy. For
example, because the beacon device 102 broadcasts the location ID,
the beacon device 102 may consume a small amount of power (such as
a 1-2 mAh per day) and may be powered by a small battery for an
extended period of time. The asset tag device 105A may have a
separate power supply that may be recharged more easily than the
beacon device 102. Another advantage of the asset tag device 105A
(or asset tag manager 105B) communicating the asset information may
be that the asset the asset tag device 105A may select the
information of the asset tag device 105A to be communicated to the
communication hub 106 and communicate the information in real-time
and directly to the communication hub 106 to reduce communication
interference from multiple devices.
[0040] In one example, the MMS 100 may track the assets 104 in
real-time or substantially real-time. For example, the asset 104
may continuously communicate asset and management information to
the communication hub 106.
[0041] In another example, the MMS 100 may track the assets on a
periodic basis. For example, the asset 104 may communicate asset
and management information to the communication hub 106 on a
periodic basis. In another example, the communication hub 106 may
transmit a request to the asset 104 to communicate the asset and
management information. When the asset 104 receives the request,
the asset 104 may communicate the asset and management information
to the communication hub 106.
[0042] In one example, the MMS may include an implementation system
to map a facility where assets may be managed, e.g., determine a
schematic or layout of the facility. In another example, the
implementation system may include software to determine a schematic
or layout of the facility, including rooms, stairway objects,
hallway objects, and so forth, based on a digital plan and/or a
computer-assisted built plan within the software. In another
example, a user may use a scanner, such as a three-dimensional (3D)
scanner and walk around the facility collecting layout information,
where the software may use the information from the scanner to
determine the layout of the facility.
[0043] With further reference to FIG. 1, when the implementation
software has determined a layout of the facility, the software may
associate the beacon device 102 and/or the communication hub 106
may be associated with the layout of the facility. For example, the
beacon devices 102 and/or the communication hubs 106 in a facility
may have a unique ID. When the facility layout is determined, the
implementation software may receive input from an input device
(such as a mouse, a keyboard, a stylus, a touch screen, and so
forth) associating the different unique IDs with locations on the
facility layout.
[0044] In another example, locations in the facility layout may
have unique IDs associated with the location. In this example, an
assistance device (such as a scanner or a communication device) may
be taken to one or more locations in the facility, where the
location ID may be selected, the assistance device may scan or
communicate with the beacon device 102 and/or the communication hub
106, and the beacon device 102 and/or the communication hub 106 may
be associated with the location ID. In another example, when a
device is located at a facility location, the assistance device may
scan the location for the beacon devices 102 and/or the
communication hubs 106 (such as by using by using Bluetooth.RTM.
scanning) and associate the beacon device 102 and/or the
communication hub 106 scanner in the location with a location ID.
For example, a user may walk into a room with a first location ID,
use a tablet with Bluetooth.RTM. technology to scan the room for
the beacon devices 102 and/or the communication hubs 106, and the
software may associate the beacon devices 102 and/or the
communication hubs 106 detected by the tablet with the first
location ID. The user may repeat this process for multiple
locations in the facility.
[0045] In yet another example, the beacon devices 102 may have a
predefined number or identifier (ID). When a layout of the building
is compiled, the user may use a graphical user interface (GUI) to
select which beacon device is located in each room, hallway,
conference room and the like.
[0046] An advantage of the implementation of the MMS 100 may be to
enable integration of the MMS into a preexisting facility, e.g.,
the MMS may be installed in a preexisting facility and the
implementation system may map the preexisting facility. Another
advantage of the MMS may be that the installation and
implementation of the MMS may enable quick and efficient
installation as the MMS may be installed and configured for a
facility without invasively installing an asset management system.
Another advantage of the MMS may be that the system may avoid
interference by other devices by using the implementation system to
determine optimal locations of the beacon devices 102 and/or the
communication hubs 106.
[0047] The asset management system can be used in other contexts,
as described with respect to FIG. 1B.
[0048] FIG. 1B illustrates an asset management system 100,
according to one embodiment. The asset management system 100 may be
at least partially deployed in area 110. Area 110 can include
beacon device 102 and beacon device 103. In one example, the beacon
devices 102 and 103 can be fixed to opposite corners of the room.
Beacon devices 102 and 103 may transmit wireless broadcast 122 and
123, respectively, using a wireless communication protocol
compatible with asset tag device 105A. The asset tag device 105A
may be coupled to asset 104. Asset 104 may be any asset as
described herein. For example, the asset tag device 105A may be
integrated into the hospital cart or other medical device, military
equipment, business resource, or the like. An asset tag device 105A
may be coupled to or integrated into an asset 104 in a variety of
ways. For example, an asset tag device 105A may be a discrete
hardware device that is physically fixed to a hard asset. An asset
tag device 105A may be a hardware device that is integrated into
the hardware of an asset. A third party device, such as a mobile
phone, may be converted into an asset tag device 105A by loading
the asset tag software (e.g., asset tag manager 105B) and
leveraging the hardware of the third party device to perform the
functions of the asset tag. Asset tag may refer to asset tag device
105A and/or asset tag manager 105B.
[0049] The asset tag device 105A includes an asset tag manager
105B, that is, the processing device of the asset tag device 105A
executes instructions corresponding to the asset tag manger 105B to
perform the functionality describe herein. In other embodiments,
the asset tag manager 105B executes on a processing device of a
host device, such as the AIO, or other medical asset. In some
embodiments, asset tag manager 105B may be a software
implementation of asset tag device 105A used to perform one or more
functions of the asset tag device 105A. Asset tag manager 105B may
be executed by a processing device (not shown).
[0050] Area 110 may refer a physical space delineated by the signal
coverage of one or more beacon devices. It should be appreciated
that an area 110 may be defined by software and correspond to the
physical location of the beacon device and associated wireless
broadcast. For example, a large room may have multiple areas. Two
beacon devices 102 and 103 located at one side of a room may define
an area, while two other beacon devices at the other side of a room
may define another area. Software may correlate the location of the
beacon devices 102 and 103 and signal coverage of the beacon
devices 102 and 103 to define an area, such as area 110. Using two
or more beacon devices to define an area may allow an asset
management system to improve an accuracy of location determinations
of assets. It also should be appreciated that while two beacon
devices (i.e., beacon device 102 and 103) are illustrated in FIG.
1B as defining area 110, the number of beacon devices is for
purposes of illustration, rather than limitation. An area may be
defined by one or more beacon devices and may depend on a variety
of factors such as available resources or system requirements.
[0051] A broadcast may refer to the transmission of a signal
containing data in for example, a data packet. A wireless broadcast
may be a type of broadcast and may refer to the transmission of a
signal containing data without an electrical conductor, for example
the transmission of a signal through the air. Any device, such as
beacon device 102, beacon device 103, and asset tag device 105A may
transmit a broadcast. Any device, such as asset 104, asset tag
device 105A, asset tag manager 105B, and/or server 108 may scan and
receive a broadcast.
[0052] An asset, such as asset 104, may refer to an object of value
to the entity. Asset 104 may be tangible objects, such as
buildings, hardware, devices, etc., or may be intangible objects
such as software, information, intellectual property, etc. Soft
assets may include intangible objects as well as human beings. Hard
assets may include tangible assets. Asset 104 may also broadcast
data to hub 106, as illustrated by wireless broadcast 124.
[0053] An asset tag device, such as asset tag device 105A, may be
an electronic device coupled to an asset, such as asset 104, and
used as part of an asset-tracking system (ATS), such as a real-time
locating system (RTLS). In one example, the asset tag device 105A
may be a small (e.g., size of a U.S. quarter), resource-constrained
(i.e., low processing power, limited memory, and/or limited battery
life) device used to transmit data, such as a beacon identifier, to
a more powerful central device. The central device, such as a
server computer system (also referred to as server 108), may make a
determination of a location of asset tag device 105A and/or asset
104 in view of the transmitted data. In another example, the asset
tag device 105A may be a wireless device and transmit data using a
wireless communication protocol. In another example, the asset tag
device 105A may be a low-power consuming device and/or be battery
powered. In another example, the asset tag device 105A may use a
rechargeable battery, such as a lithium-ion rechargeable battery.
In another example, the asset tag device 105A may be coupled to or
integrated into asset 104 in a variety of ways. For example, asset
tag device 105A may be a discrete hardware device that is
physically fixed to a hard asset. In another example, the asset tag
device 105A may be a hardware device that is integrated into the
hardware of asset 104. A third party device, such as a mobile
phone, may be converted into an asset tag device 105A by loading
the asset tag software (e.g., asset tag manager 105B) and
leveraging the hardware of the third party device to perform the
functions of the asset tag device 105A.
[0054] Asset tag device 105A may be coupled to asset 104. The asset
tag device 105A may communicate with at least the beacon devices
102 and/or 103, hub 106, sever 108, repeater 114 and/or asset 104.
In one example, the asset tag device 105A may be coupled to an
individual, such as medical personnel in a hospital environment
(also referred to as facility). In another example, the asset tag
device 105A may be attached to an employee identification badge or
attached to or integrated into an electronic device, such as a
wristband or watch. In another example, an asset tag manager 105B
may be software integrated into a third party device, such as a
mobile phone or tablet. The asset tag manager 105B may leverage at
least part of the hardware and/or software resources of the third
party device to perform the functions of an asset tag. In should
also be appreciated that an asset tag manager 105B may be
compatible with any device, software platform, and/or operating
system.
[0055] A beacon device (also referred to as a location
identification beacon device), such as beacon device 102 and/or
beacon device 103, may be an electronic device fixed to a known
location (and/or marking a fixed location) and used to transmit
data in for example, a data packet. The data may include a fixed
parameter, such as a beacon identifier, which may be used to
determine a relative location of a device, the device having
received the beacon device's data packet, to the beacon device 102
and/or 103. For example, two different beacon devices (e.g., beacon
devices 102 and 103) may be fixed to different corners of a room
(e.g., area 101), each transmitting a wireless broadcast (e.g.,
wireless broadcast 122 from beacon device 102 and wireless
broadcast 123 from beacon device 103). Each of the wireless
broadcasts may contain a different beacon identifier representative
of the different beacon devices. The wireless broadcasts 122 and
123 may be received by an asset tag device 105A. The asset tag
device 105A may send the beacon identifiers and the asset tag
identifier to a server 108 through hub 106. The server 108 may use
the beacon identifiers to identify each beacon device, identify the
known location of each beacon device, and determine the relative
location of the asset tag to the beacon devices. In another
embodiment, beacon device 102 and/or 103 may be a small,
resource-constrained (i.e., low processing power, limited memory,
and/or limited battery life) device used to transmit data, such as
a beacon identifier, to asset tag device 105A. Beacon device 102
and/or 103 may be a wireless device transmitting data packets using
a wireless communication protocol compatible with asset tag device
105A. The beacon device 102 and/or 103 may be a low-power device
and/or battery powered. The beacon identifier may be a unique
value, such as a number, assigned to the beacon device by a
developer and/or used to identify a beacon device. In one
embodiment the major identifier (2 bytes) and/or minor identifier
(2 bytes) may be used as a beacon identifier. The major identifier
and/or the minor identifier may be a serialized number. The beacon
identifier may be distinct from the universally unique identifier
(UUID). An example of beacon device 102 and/or 103 may be an
iBeacon.RTM., or other device, such as an active radio frequency
identification device (RFID), a passive RFID, an infrared device, a
motion sensor, a sonar or sonic device, and/or a near field
communication (NFC) device.
[0056] It should be noted that a wireless communication protocol
conforming to the Bluetooth Low Energy.RTM. (BLE) (also referred to
as Bluetooth Smart.RTM.) standard is used for purposes of
illustration, rather than limitation. It should be appreciated that
other wireless communication protocols may be used, such as
protocols conforming to the Bluetooth.RTM. wireless standard (also
referred to as Classic Bluetooth.RTM.), ZigBee.RTM. wireless
standard, Wi-Fi.RTM. wireless standard, ultra-wideband (UWB)
wireless standard, or other current or future standard. It should
be noted that Bluetooth.RTM. shall refer to at least Bluetooth.RTM.
Low Energy and Classic Bluetooth.RTM., unless otherwise noted. It
should also be noted that in one embodiment, the wireless
communication protocol may a short range wireless communication
protocol compatible with short range wireless communications (e.g.,
approximately 100 m or less) in a short range wireless network.
[0057] In one example, the asset tag device 105A may broadcast
wireless broadcast 125 to hub 106. In another example, the asset
tag device 105A may broadcast a wireless broadcast to repeater 114,
which in turn broadcasts the wireless broadcast 126 to hub 106. The
wireless broadcast 125 may be in a wireless communication protocol,
such as Bluetooth.RTM.. Asset 104 may also broadcast wireless
broadcast 124 to hub 106 in the same or different wireless
communication protocol. The beacon devices 102 and/or 103 (or any
other device) may broadcast data to hub 106.
[0058] Hub 106 (also referred to as a communication hub) may refer
to an electronic device that connects communication data from one
electronic device to another electronic. Hub 106 may include
functionality of a conventional network hub, as well as additional
functionality. For example, hub 106 may receive, filter, analyze,
modify, and/or transmit data to and from multiple devices using
wireless and/or wired communication and/or a combination thereof.
Hub 106 may transmit received data to multiple ports, similar to a
conventional network hub. Hub 106 may perform functions of a
network switch and may receive, process, and forward data only to a
destination device that needs to receive it (rather than
broadcasting the data to each of its ports). Hub 106 may also
function as a wireless access point (AP) and allow wireless devices
to connect using a wireless communication protocol (e.g.,
Wi-Fi.RTM.). Hub 106 may provide a hotspot, a physical location
offering internet access, over a wireless local area network (WLAN)
through the use of another device such as a router to connect to an
internet service provider. Additionally, hub 106 may perform access
control (e.g., authentication) to control which devices have access
to the network. Hub 106 may also function as a router to forward
data packets between multiple computer networks. Hub 106 may
perform software defined networking (SDN) functions. For example,
hub 106 may function similar to a Dynamic Host Configuration
Protocol (DHCP) server that may assign an internet protocol (IP)
address to a device (e.g., authenticated device), attempting to use
a network, such as a Wi-Fi.RTM. network associated with hub 106. An
internet protocol (IP) table may be configured to route data from
devices within a range of IP addresses to one location and/or
through a particular channel and route data from devices within
another range of IP addressed to another location and/or through
another channel. Although not illustrated in FIG. 1B, hub 106 may
transmit data to computer systems in a local area network (LAN).
For example, hub 106 may transmit data to the internal hospital
data center. Hub module 112 may be a software implementation of hub
106 and perform some or all the functions of hub 106.
[0059] In one embodiment, hub 106 may have one or more
communication channels. Hub 106 may include corresponding hardware
and/or software for each communication channel. For example, hub
106 may include several wireless communication channels conforming
to a wireless communication protocol of a low energy PAN standard,
such as a Bluetooth.RTM. channel (i.e., a channel compliant with
the Bluetooth.RTM. standard able to transmit and/or receive
signals), several wireless communication channels conforming to a
wireless communication protocol of a WLAN standard, such as a
Wi-Fi.RTM. protocol and/or wireless communication channels
conforming to a different wireless communication protocol, such as
a cellular channel (i.e., a channel compliant with a cellular
standard able to transmit and/or receive cellular signals). Hub 106
may also include wired channels, such as an Ethernet channel. Hub
106 may have an interface for each channel capable of transmitting
and/or receiving in the communication protocol associated with the
channel. For example, hub 106 may include one or more separate
antennas for each channel and/or one or more integrated antennas.
Hub 106 may include one or more antennas to receive a wireless
communication protocol of a low energy wireless PAN standard, such
as an antenna capable to receive Bluetooth.RTM. signals, one or
more antennas to receive a wireless communication protocol of a
WLAN standard, such as an antenna to receive Wi-Fi.RTM. signals, a
wired Ethernet port, and/or a cellular antenna (e.g.,
multiple-input and multiple-output (MIMO) antenna). A channel may
be implemented by a hardware dongle compatible with the particular
standard (e.g., a Bluetooth.RTM. dongle).
[0060] In one embodiment, hub 106 may receive data from multiple
source devices such as asset 104, asset tag device 105A, repeater
114, beacon device 102 and 103, or other devices such as
third-party mobile devices. A source device may refer to an
electronic device at which the received data (e.g., communication
data) originated or was created. For example, an asset tag device
105A may send a wireless broadcast to repeater 114, which in turn
transmits the wireless broadcast to hub 106. In this example, the
asset tag device 105A may be considered a source device because
data in the wireless broadcast originated from the asset tag device
105A. In another embodiment, a source device may be the electronic
device from which the data was received (e.g., repeater 114 in the
previous example). Hub 106 may further filter and transform the
data, and transmit the modified data through a cellular network
and/or wired network (e.g., local area network (LAN)). A cellular
network (e.g., mobile network) may be a wireless network
distributed over areas (e.g., cells), each served by at least one
fixed-location transceiver (e.g., cell site or base station). Each
cell may use a different set of frequencies from neighboring cells
to avoid interference and provide bandwidth within each cell. The
cellular network may use any mobile telecommunications technology
such as third generation (e.g., 3GPP LTE), fourth generation (e.g.,
WiMAX, 4G LTE), and fifth generation (5G) of mobile
telecommunications technology. A cellular communication protocol
may be a long range wireless communication protocol used for long
range wireless communications in a long-range cellular network. In
one example, hub 106 may receive data in data packets conforming to
a wireless communication protocol of a low energy PAN standard
(e.g., BLE.RTM. protocol) and/or a wireless communication protocol
of a WLAN standard (e.g., Wi-Fi.RTM. data format protocol) and
re-transmit data to the server 108 using cellular communication
protocols on a cellular network. In another example, hub 106 may
receive data in data packets conforming to the PAN standard and/or
WLAN standard and re-transmit data to another local server (not
shown) using a wired Ethernet cable (e.g., in a LAN).
[0061] In one embodiment, hub 106 may be located at a selected
location within a facility, such as on each floor of a hospital
environment (e.g., facility). Hub 106 may be located at select
locations in the hospital environment so as to provide
communication coverage throughout the environment. In one example,
hub 106 may be located in high traffic areas or along routes or
paths that the asset 104 may frequently move along. In another
example, the locations can be predefined locations selected during
the construction of an environment. In another example, the
locations can be selected to provide a desired coverage area, such
as a wing of a hospital environment.
[0062] In one embodiment, hub 106 may provide a secure private
network for devices (such as server 108, asset tag device 105A, or
asset 104) to communicate with the hub 106. For example, hub 106
may provide a secure wireless area network (WLAN), secure PAN, or
Private Wide Area Network (PWAN) to communicate with a device, such
as an asset tag device 105A and/or asset 104. In another example,
hub 106 may be a gateway or access point for the asset 104 and/or
asset tag device 105A to access information stored on the server
108. For example, hub 106 maybe a network switch enabling asset 104
to access a secure server, such as electronic medical records
(EMRs), hospital information system (HIS) information, or an active
directory of a hospital server. The devices in the WLAN may use the
Wi-Fi.RTM. technology and IEEE 802.11 standards defined by the
Wi-Fi Alliance. Alternatively, the devices in the WLAN may use
other technologies and standards. Similarly, the devices in the PAN
or WPAN may use the Bluetooth.RTM. technology and IEEE 802.15
standards defined by the Bluetooth Special Interest Group.
Alternatively, the devices in the secure PAN may use other
technologies and standards. The WAN or PWAN can be used to transmit
data over long distances and between different LANs, WLANs,
metropolitan area networks (MANs), or other localized computer
networking architectures.
[0063] In one embodiment, hub 106 may prepare data for transmission
to another device, such as server 108. For example, hub 106 may
reformat the data that is received into another format. The format
may refer to the organization of data (e.g., a data format)
according to a predefined specification. The hub 106 may prepare
the data by compressing data in a compression format, securing data
in a secure format (e.g., encryption format), changing the data for
example, to be compliant with a communication protocol (e.g.,
Wi-Fi.RTM. to Bluetooth.RTM., Bluetooth.RTM. v. 1.0 to
Bluetooth.RTM. v. 2.0), removing data, and/or adding data.
[0064] In another embodiment, hub 106 may include a network
compliance device configured to run a Health Level 7 (HL7) engine.
HL7 may refer to a set of international standards for transfer of
clinical and administrative data between software applications used
by various healthcare providers. HL7 may provide a framework for
the exchange, integration, sharing and retrieval of data used by
healthcare providers. The HL7 engine may format information to an
HL7 electronic medical record (EMR) standard. HL7 may provide a
framework for the exchange, integration, sharing and retrieval of
electronic health information. Hub 106 may use a HL7 formatting
engine to aggregate data received, format the data to an HL7
standard, and communicate the formatted data to server 108.
[0065] Asset management system 100 may also include repeaters, such
as repeater 114. A repeater, such as repeater 114, may refer to an
electronic device that receives a signal and retransmits the
signal, often at a higher power. A repeater 114 may receive data
from asset tag device 105A and relay the data to hub 106 or another
repeater (not shown). A repeater 114 may also act as a bridge to
receive data formatted in one wireless communication protocol
(e.g., BLE.RTM.) and re-transmit in another wireless communication
protocol (e.g., Wi-Fi.RTM.). The repeater may be used by a device
to tether (e.g., using Bluetooth.RTM. and/or Wi-Fi.RTM.) to the
Internet. Repeater 114 may be configured as a network of repeaters,
such as nodes in a piconet. A piconet may be a wireless personal
area network (WPAN) formed by a device (e.g., Bluetooth.RTM.
compatible device) serving as a master in the piconet and one or
more other devices (e.g., other Bluetooth.RTM. compatible devices)
serving as slaves.
[0066] In one example, a hospital may have multiple repeaters
located at different locations in the hospital. The repeaters, such
as repeater 114, may receive data from asset tag device 105A, asset
104, beacon device 102, and/or beacon device 103 and relay the data
to hub 106. Repeater 114 may relay the data directly to the hub 106
or indirectly relay the data to hub 106 via one or more other
repeaters. In one embodiment, each floor or department of a
hospital environment may include a hub, such as hub 106 to receive
information from one or more repeaters that provide wireless
coverage of the floor. Repeater 114 may be powered by a batter,
powered by an electrical outlet, or powered by any other manner.
Repeater 114 may be a small form factor device, such as the size of
human child's fist.
[0067] Server 108 (also referred to as a server computer system)
may be a computing device such as server computer, a desktop
computer, or a laptop computer, or a portable computing device such
as, but not limited to, mobile telephones, personal digital
assistants (PDAs), portable media players, netbooks, tablet
computers, portable gaming consoles, portable televisions,
electronic book readers, and the like. Although a single server
(e.g., server 108) is illustrated in FIG. 1B, any number of servers
may be present in an AMS.
[0068] Server 108 may be a server computer system that is part of
an online infrastructure system. Examples of an online
infrastructure include a cloud computing platform that may allow
multiple users from multiple client systems to access different
components or computer resources of the cloud computing platform.
The online infrastructure may provide physical and/or virtual
resources, such as access to services, servers, or other such
resources, to client systems. Examples of services (or
functionality) provided by the online infrastructure may include,
but are not limited to, access to data stored on storage devices,
provisioning of virtual machines, software services, physical
servers, etc.
[0069] Server 108 may store, process, and or analyze data received
from hub 106, as well as beacon device 102 and 103, asset 104, and
asset tag device 105A. In one embodiment, the server 108 may use
the beacon identifiers and asset tag identifiers to determine the
real-time location of an asset (e.g., real-time location system
(RTLS)).
[0070] In one embodiment, server 108 may determine the location of
asset 104 from the beacon identifier of beacon device 102 and/or
beacon device 103, and the asset tag identifier. The server 108 may
also record a time stamp indicating when the beacon identifiers
were received by asset tag device 105A. Server 108 may store data
associating the location of a beacon device in an environment to a
specific beacon identifier. Additionally, sever 108 may store
additional data mapping an asset tag identifier to an asset.
Accordingly, the beacon identifier and asset tag identifier may be
correlated, using the mapping data, to a location in an
environment. The location may be the area 110 and/or include a
location within area 110 where the asset tag device 105A and
associated asset 104 are located (e.g., the middle of area
110).
[0071] In one embodiment, the server 108 may include an application
programming interface (API), such as a representational state
transfer (REST) application program interface (API) interface, to
enable applications to retrieve and present data, such as asset
data and/or management data, to users. For example, an application
may include a user interface with a map of a facility. The
application may access the asset data and/or management data and
determine the locations of one or more assets in the facility. The
application may display the locations of the asset to a user. In
another example, the application may query or search the asset data
and/or management data to determine user requested data, such as
location information of an asset, usage information of an asset,
and so forth.
[0072] In another embodiment, server 108 may receive battery data
indicating battery usage information and/or battery life
information for an asset 104, asset tag device 105A, and/or beacon
devices 102 and 103. Server 108 may use the battery data to
determine a trend in the amount of time a battery of the device may
be used, an estimated remaining battery life, battery errors, when
to replace a battery, and so forth. For example, asset tag device
105A may receive a battery identifier in a wireless broadcast from
beacon device 102 and 103. When creating a data packet, asset tag
may include the battery identifier of each beacon device and/or a
battery identifier for asset tag device 105A. The battery data,
including the battery identifiers may be transmitted to hub 106. A
battery identifier may include information such as remaining
battery life, battery consumption, and/or battery usage rate of an
associated device.
[0073] In another embodiment, data such as software updates or
patches may be communicated from the server 108 to a hub 106, asset
104, asset tag device 105A, and/or beacon devices 102 and 103.
[0074] It should be noted that reference may be made to elements of
FIG. 1B in the below specification.
[0075] FIG. 2 illustrates a method of analyzing and re-transmitting
communication data, according to one embodiment. The method 200 may
be performed by processing logic that comprises hardware (e.g.,
circuitry, dedicated logic, programmable logic, microcode, etc.),
software (such as instructions run on a processing device), or a
combination thereof. The method 200 may be performed all or in part
by hub module 112.
[0076] Method 200 begins by a processing device executing the
method receives communication data from a source device over a
channel of a plurality of wireless channels (block 205). For
example, the communication hub 106 may receive a wireless broadcast
124 from asset 104. The wireless broadcast 124 may be formatted
according to a wireless communication protocol conforming to the
WLAN standard and may be received by hub 106 at a WLAN channel
using a WLAN antenna.
[0077] Method 200 continues to block 210 where processing logic
authorizes the source device in view of at least one of an
indication that the source device is within a specified distance
from hub 106 or an indication that the source device is predefined
as an approved device. For example, hub 106 may only authorize
devices from a specific company, a specific type of device, or
devices from an approved set of devices to transmit communication
data over hub 106. In one example, the communication data itself
may be used to determine that the source device is an approved
device. The communication data may be analyzed (e.g., parsed) to
locate identifiers indicating an approved or unapproved device. In
another example, hub 106 may manage authorization using a local
database. Additional details of authorization are discussed at
least in regards to FIGS. 6, 7, and 8.
[0078] Method 200 continues to block 215 where processing logic
determines whether to re-transmit the communication data to the
destination device over a second channel of the plurality of
wireless channels. The communication data is not re-transmitted
when the communication data comprises exceeds a threshold level of
corrupted data (such as to render the data unreadable) or the
source device is unauthorized. In one example, the channel over
which the communication data is re-transmitted (e.g., second
channel) may be a different channel than the channel on which the
communication data was received (e.g., first channel). For example,
hub 106 may receive the communication data on a WLAN channel and
re-transmit on a cellular channel. In another example, the
receiving and re-transmitting channels may be the same channel. The
re-transmitted communication data may be the same or substantially
the same (e.g., a majority of the data) as the communication data
received by hub 106.
[0079] In another example, processing logic may determine when the
communication data is corrupted data by analyzing the communication
data (e.g., user data). For example, the communication data can
include blood type information of a patient, such as information
identifying the blood type of the patient at type "O+" However,
when the communication data is corrupted, the corrupted
communication data may erroneously indicate that the patient's
blood type is "P". The processing logic of the device may determine
that "P" is not a possible blood type the patient and determine
that the communication data is corrupted. In one embodiment, the
threshold data corruption level may be when any data is corrupted.
In another embodiment, a specified level of corrupted data may
refer to a percentage of data that is deemed corrupted. A specified
level of corrupted data may refer to specific types of data or data
from a specific source device that is deemed corrupted. In another
example, corrupted data may be determined by a checksum, such as a
calculated checksum. Additional details of determining data is
corrupted is discussed at least in regards to FIG. 9.
[0080] In another example, when the source device is unauthorized,
as discussed with respect to block 210, the processing logic may
determine not to re-transmit the communication data. For example,
only source devices from a specific company may be allowed to
re-transmit data using hub 106. The processing logic may determine
devices not from the specific company are unauthorized and may
determine not to re-transmit communication data from the
unauthorized devices.
[0081] Method 200 continues to block 220 where processing logic
transforms a first format of the communication data to a second
format. The first format may correspond to the first wireless
channel and the second format may correspond to the second wireless
channel. The first and second format may be different formats
corresponding to different channels. For example, asset tag device
105A may broadcast a wireless communication signal containing
communication data in a communication protocol conforming to the a
wireless communication protocol of a low energy wireless personal
area network (PAN) standard (e.g., BLE.RTM. standard) which is
received by hub 106 on a channel capable of receiving the wireless
communication protocol (e.g., BLE.RTM. channel). The hub 106 may
transform the communication data to another format by encrypting
the data and/or formatting the communication data to be
re-transmitted in a cellular communication protocol using a
cellular channel. Transforming the format may include compressing
the communication data, securing the communication data, changing
the communication protocol of the communication data, removing data
from the communication data, and/or adding data to the
communication data. It should be noted that transforming the data
may be performed by processing logic at any time. In one example,
the communication data may be transformed at least in part after
the communication data has been determined to be re-transmitted. In
another example, the communication data may be transformed at least
in part prior to determining the communication data is to be
re-transmitted or at any time after receiving the communication
data.
[0082] Method 200 continues to block 225 where the processing logic
re-transmits the communication data in the second format to the
destination device over the second channel. For example, the
communication data may be re-transmitted to server 108 using a
cellular communication protocol (also referred to as format
compliant with cellular standard) over a cellular network.
[0083] FIG. 3 illustrates a method of delaying the re-transmitting
of communication data, according to one embodiment. The method 300
may be performed by processing logic that comprises hardware (e.g.,
circuitry, dedicated logic, programmable logic, microcode, etc.),
software (such as instructions run on a processing device), or a
combination thereof. The method 300 may be performed all or in part
by hub module 112.
[0084] Method 300 begins at block 305 where processing logic
executing the method analyzes the communication data to determine a
type of data. A type of data (also referred to as data type) may
refer to data itself (e.g., identifiers of the data). The
processing logic may parse the communication data to locate one or
more identifiers. In one example, the processing logic may parse
the communication data to locate a source device identifier
indicating a source device having originated the communication
data. The source device identifier may be a type of data and/or
indicate a type of data. For example, source device identifier for
an EKG device may itself be a type of data. In another example, the
EKG source device identifier may indicate that the communication
data includes a type of data, such as heart information data type.
In another example, the identifiers may be used to identify other
data types such as parameters (e.g., blood or heart rate) and/or
value of parameters (e.g., O-type blood or 80 beats per minute).
Data type identifiers may include identifiers, such as a source
device identifier, a parameter identifier, a parameter value
identifier, etc., or a combination thereof. Examples of data type
identifiers are used for purposes of illustration, rather than
limitation. It should be appreciated that any number of identifiers
may be used to analyze data type.
[0085] Method 300 continues to block 310 where processing logic
calculates a priority of the communication data based on the
analyzing of block 305. A priority may be a numerical value such as
1 through 10, where 1 indicates the lowest priority and 10
indicates a highest priority. A priority may be a priority level
such as, low priority, medium priority, high priority, and/or
emergency (or critical) priority. The priority level may be
predetermined for certain data types. The priority level may be
based on a priority algorithm, such as weighting the source device
and certain data types to calculate a priority level of the data.
For example, communication data from a source device such as mobile
device may be predetermined as a low priority while communication
data from an EKG device may be a high priority. In another example,
different data types from a source machine may have different
priorities. Communication data from an EKG device with normal
readings may have a low priority, but communication data from same
EKG device with irregular readings may have a high priority. It
should be noted that the examples of calculating priority are for
purposes of illustration, and not for limitation.
[0086] Method 300 continues to block 315 where processing logic
delays the re-transmission of the communication data when the
priority is below a threshold. The specified threshold may be
specified by a developer or administrator. The threshold may
correspond to the priority as discussed above with respect to block
310. For example, the specified threshold may be a numerical value,
such as 7, corresponding to the priority scale, such as 1 through
10, as discussed above. The specified threshold may be set at
greater than equal to high priority. In the above examples, the
processing logic may delay transmission for communication data with
a calculated priority of 7 and above, or high priority and above.
The amount of delay may be specified by a developer or
administrator. The delay may for minutes, hours, days, for example.
The delay may be for a period till processing logic determines the
communication data may be re-transmitted. The amount of delay may
be determined in view of managing transmission data rates and/or
cost of transmitting data.
[0087] FIG. 4 illustrates a method of delaying the re-transmitting
of communication data, according to another embodiment. The method
400 may be performed by processing logic that comprises hardware
(e.g., circuitry, dedicated logic, programmable logic, microcode,
etc.), software (such as instructions run on a processing device),
or a combination thereof. The method 400 may be performed all or in
part by hub module 112.
[0088] Method 400 begins at block 405 where processing logic
executing the method analyzes the data size of the communication
data. In one example, the data size may be measured in a number of
bytes. In another example, data size may be measured as a number of
data packets. Examples of data size are used for purposes of
illustration, rather than limitation. It should be appreciated that
numerous units of data size may be available. In one example,
processing logic may analyze the data size of the communication
data as 500 kilobytes.
[0089] Method 400 continues to block 410 where processing logic may
delay the re-transmission of the communication data when the data
size is greater than a specified threshold. The specified threshold
may be specified by a developer or administrator. The specified
threshold may correspond to the units of data size discussed above.
For example, the threshold may be set at 1 gigabyte or 10k data
packets. The amount of delay may be specified by a developer or
administrator. The delay may for minutes, hours, days, for example.
The delay may be for a period till processing logic determines the
communication data may be re-transmitted. The amount of delay may
be determined in view of managing transmission data rates and/or
cost of transmitting data.
[0090] FIG. 5 illustrates a method of transmitting a response in
view of the communication data, according to one embodiment. The
method 500 may be performed by processing logic that comprises
hardware (e.g., circuitry, dedicated logic, programmable logic,
microcode, etc.), software (such as instructions run on a
processing device), or a combination thereof. The method 500 may be
performed all or in part by hub module 112.
[0091] Method 500 begins at block 505 where processing logic
executing the method analyzes the communication data to determine a
type of data. Block 505 may be performed in a similar manner as
block 305 of method 300 described above with reference to FIG.
3.
[0092] Method 500 continues to block 510 where processing logic
determines whether the data type is predefined to trigger the
communication hub to transmit a response. In one example,
processing logic may compare the data type identified in block 505
with predefined data types predefined as having an associated
response. If the data type of the communication data matches the
predefined data type, processing logic may determine to transmit a
response. If the data type of the communication data does not match
the predefined data type, processing logic may determine not to
transmit a response. Transmitting the response may be in addition
to or in lieu of re-transmitting the communication data. In one
example, a developer or administrator may predefine certain data
types to trigger a response from the communication hub. The
response may be sent to a destination device and/or a device other
than the server. A response may be any type of information signal
containing data. The response may be a response to the
communication data and include the same information and/or
information different from the communication data.
[0093] Method 500 continues to block 515 where processing logic
transmits the response when the type of data is determined to
trigger the response. For example, the communication device may
receive communication data from an EKG indicating no heart rate.
Processing logic may identify the data type indicating no heart
rate from an EKG. Communication data from an EKG (or specific data
from an EKG) may be predefined to trigger the communication hub to
transmit a response. Processing logic may transmit an alert
response to a nearest nursing station to make staff aware of the
situation. In some embodiments, the data may be directed to the
internal hospital system if it is a certain data type (such as
patient information) and directed to the third party server when it
is another data type (such as battery information).
[0094] FIG. 6 illustrates a method of authorizing a source device
in view of an indication that a source device is within a specified
distance, according to one embodiment. The method 600 may be
performed by processing logic that comprises hardware (e.g.,
circuitry, dedicated logic, programmable logic, microcode, etc.),
software (such as instructions run on a processing device), or a
combination thereof. The method 600 may be performed all or in part
by hub module 112.
[0095] Distance may refer to an actual measurable distance (and/or
direction) or may refer to a relative distance of one source device
from hub 106 relative to the distance of another source device from
hub 106 (e.g., one source device is closer to the hub 106 than the
other source device). The actual distance (e.g., any source device
within a 10 ft radius) and/or relative distance (10 closest source
devices) may be specified by an administrator and/or developer.
Relative distance for example may be specified as X number of
source devices closest to hub 106. The indication that of the
source device is within a specified distance may be signal
strength, such as RSSI. RSSI may be a measurement of the power
present in the received wireless broadcast at a receiving device
(e.g., hub 106). RSSI may serve as an indirect indication of a
specific and/or relative distance of a source device from hub 106.
Hub 106 may include the functionality (hardware and/or software) to
measure the RSSI of wireless broadcasts.
[0096] Method 600 begins at block 605, where processing logic
executing the method analyzes the communication to determine an
RSSI. Analyzing the communication data to determine an RSSI may be
performed in a similar manner as block 305 of method 300 described
above with reference to FIG. 3 and block 505 of method 500
described above with reference to FIG. 5. In one example, analyzing
includes parsing the communication data to locate an RSSI. The
communication data may have been wirelessly transmitted by the
source device. It should be appreciated that a receiving device,
such as a hub, may have the functionality to measure the RSSI of
the received wireless broadcast. It should also be appreciated the
RSSI may be included in the communication data by the receiving
device. For example, the communication data may include an RSSI
identifier indicating an RSSI value of the received wireless
broadcast.
[0097] Method 600 continues at block 610 where processing logic
compares a received signal strength indicator (RSSI) of the
wireless broadcast to an RSSI threshold. The RSSI threshold may be
a numerical threshold. The RSSI threshold may be set by an
administrator and/or developer. For example, the RSSI threshold may
be set to -110 dBm, or any other value. The RSSI threshold may also
include a number of devices having a highest RSSI. For example, the
RSSI threshold may specify X number of source devices (e.g., 10
devices) having the highest RSSI (e.g., top 10 devices based on
RSSI). The RSSI threshold may also include a number of devices
having a highest RSSI and exceed a numerical RSSI threshold (e.g.,
the top 10 devices based on RSSI and exceeding the RSSI value of
-110 dBm). In one example, received wireless broadcasts with RSSI
below the RSSI threshold may be from source devices from outside an
area of interest.
[0098] Method 600 continues to block 615, where processing logic
determines the source device is authorized when the RSSI is greater
than or equal to the RSSI threshold or unauthorized when the RSSI
is less than the RSSI threshold. For example, if the RSSI threshold
is set to -110 dBm, all source devices with an RSSI exceeding or
equal to -110 dBm are authorized, while all source devices with an
RSSI below -110 dBm are unauthorized. In another example,
processing logic determines all source devices with RSSI below -110
dBm are unauthorized, but determines only the top 10 source devices
with the highest RSSI and have an RSSI above or equal to -110 dBm
are authorized.
[0099] FIG. 7 illustrates a method of authorizing a source device
in view of a device density threshold, according to one embodiment.
The method 700 may be performed by processing logic that comprises
hardware (e.g., circuitry, dedicated logic, programmable logic,
microcode, etc.), software (such as instructions run on a
processing device), or a combination thereof. The method 700 may be
performed all or in part by hub module 112.
[0100] It should be appreciated that authorizing the source device
in view of a device density threshold associated with the
communication hub may be performed in a similar manner as
authorizing the source device in view of an indication the source
device is within a specified distance from the hub, and described
above with respect to FIG. 6.
[0101] Device density threshold may refer to the number of devices
able to communicate (e.g. send communication data to) with hub 106
at any given instance. Device density threshold may be a number of
devices, for example 10 devices. Device density threshold may refer
to a number of devices of one type (e.g., 10 asset tags) and
another number of devices of another type (e.g., 5 mobile devices.
Each channel may have a device density threshold. The device
density threshold may be specified by the manufactures and based on
hardware constraints and/or be an arbitrary number of devices
determined for example, by an administrator.
[0102] In one example, to authorize the source device in view of a
device density threshold, processing logic may analyze the
communication data to determine the RSSI and compare the RSSI to an
RSSI threshold. In regards to a device density threshold, the RSSI
threshold may be set to the device density threshold (e.g., a
number of devices able to communication with hub 106) having a
highest RSSI. For example, the RSSI threshold may specify X number
of source devices (e.g., 10 devices) having the highest RSSI (e.g.,
top 10 devices based on RSSI). Processing logic determines the
source device is authorized when the RSSI is greater than or equal
to the RSSI threshold or unauthorized when the RSSI is less than
the RSSI threshold.
[0103] It should be appreciated that authorizing the source device
in view of the device density threshold may be implemented in
different ways. For example, hub 106 may choose the first X devices
as authorized, X equaling the device density threshold.
Additionally, hub 106 may prioritize certain source devices over
other source devices when determining which device to authorize in
view of the device density threshold.
[0104] FIG. 8 illustrates a method of authorizing a source device
in view of indication the source device is predefined as an
approved device, according to one embodiment. The method 800 may be
performed by processing logic that comprises hardware (e.g.,
circuitry, dedicated logic, programmable logic, microcode, etc.),
software (such as instructions run on a processing device), or a
combination thereof. The method 800 may be performed all or in part
by hub module 112.
[0105] Method 800 begins at block 805 where processing logic
performing the method analyzes the communication data to determine
a source device identifier. Block 805 may be performed in a similar
manner as block 305 of method 300 with respect to FIG. 3 and block
505 of method 500 with respect to FIG. 5, and block 605 of method
600 with respect to FIG. 6. For example, processing logic may parse
the communication data for a source device identifier. As noted
above, communication data may include multiple identifiers, such as
company identifiers, source device identifiers, identifiers of
other manufacturing specific data (e.g., manufacturer identifier),
etc. Any identifier or a combination of identifiers may be used as
a source device identifier. For example, the company identifier
and/or manufacturing identifier may be used as a source device
identifier. It should be noted that the source device identifier
may include information to determine the source device is not
approved, which may or may not be enough information to determine
the actual source device.
[0106] Method 800 continues to block 810 where processing logic
compares the source device identifier with approved source device
identifiers. The approved source device identifiers may be
identifiers from source devices approved by for example, a
developer and/or administrator. Method 800 continues to block 815
where processing logic determines the source device is authorized
when the source device identifier matches the approved source
device identifiers or unauthorized when the source device
identifier does not match the approved source device
identifiers.
[0107] For example, processing logic may analyze the communication
to determine a source device identifier by parsing the
communication to look for a company identifier and/or a
manufacturing identifier. When at least one of the company
identifier and manufacturing identifier does not match approved
identifiers (i.e., approved source device identifiers), processing
logic may determine the communication data is from an unapproved
device, and not authorized. When both the company identifier and
manufacturing identifier match the corresponding approved
identifiers, processing logic may determine that the communication
data is from an approved source device, and authorized. It should
be appreciated than any identifier or combination of identifiers
may be used as an indication that a wireless broadcast is from an
approved source device.
[0108] FIG. 9 illustrates a method of determining whether to
re-transmit the communication data in view of a specified level of
corrupted data, according to one embodiment. The method 900 may be
performed by processing logic that comprises hardware (e.g.,
circuitry, dedicated logic, programmable logic, microcode, etc.),
software (such as instructions run on a processing device), or a
combination thereof. The method 900 may be performed all or in part
by hub module 112. As noted above, a specified level of corrupted
data may refer data deemed corrupted, such as specific types of
data or data from a specific source device.
[0109] Method 900 begins at block 905 where processing logic
performing the method analyzes the communication data to determine
a source device identifier and a parameter value. The analyzing of
block 905 may be performed in a similar manner as described in
block 305 of method 300 with respect to FIG. 3, block 505 of method
500 with respect to FIG. 5, block 605 of method 600 with respect to
FIG. 6, and block 805 of method 800 with respect to FIG. 8. In one
example, processing logic may analyze the communication data to
determine a source device identifier and a parameter value (e.g.,
parameter value identifier) by parsing the communication data for
the source device identifier and the parameter value. The parameter
value may be a numerical value of a parameter (e.g., parameter
identifier). For example, a parameter value of 98.degree. F. may be
the parameter value for a temperature parameter. The parameter
value may be a property of a parameter (e.g., O-type blood for the
parameter, blood type).
[0110] Method 900 continues to block 910 where processing logic
identifies the source device in view of the source device
identifier. For example, the source device identifier may indicate
that the communication data is from an EKG device.
[0111] Method 900 continues to block 915 where processing logic
compares the parameter value to a parameter set predefined for the
source device. For example, if the device identifier indicates that
the communication data is from a thermometer. An administrator or
developer may predefine the parameter set for the thermometer as
ranging from 90.degree. F. to 110.degree. F. The parameter set may
be numerical, if applicable. The parameter set may be a set of
non-numerical values (e.g., blood types, such as O, A, etc.). If
the parameter value is within the predefined parameter set,
processing logic may determine to re-transmit the communication
data. If the parameter value is outside the predefined parameter
set, processing logic may determine not to re-transmit the
communication data.
[0112] Method 900 continues to block 920 where processing logic
prevents the re-transmission of the communication data when the
parameter value is outside the parameter set. Continuing the above
example, processing logic may identify the parameter value (i.e.,
temperature) from the source device (e.g., thermometer) as
200.degree. F., which is outside the parameter set of 90.degree. F.
to 110.degree. F. Accordingly, processing logic may prevent the
re-transmission of the communication data from the thermometer.
[0113] FIG. 10 illustrates a diagrammatic representation of a
machine in the exemplary form of a computer system 1000 within
which a set of instructions for causing the machine to perform any
one or more of the methodologies discussed herein, may be executed.
In alternative implementations, the machine may be connected (e.g.,
networked) to other machines in a LAN, an intranet, an extranet, or
the Internet. The machine may operate in the capacity of a server
or a client machine in a client-server network environment, or as a
peer machine in a peer-to-peer (or distributed) network
environment. The machine may be a personal computer (PC), a tablet
PC, a set-top box (STB), a Personal Digital Assistant (PDA), a
cellular telephone, a web appliance, a server, a network router,
switch or bridge, or any machine capable of executing a set of
instructions (sequential or otherwise) that specify actions to be
taken by that machine. Further, while only a single machine is
illustrated, the term "machine" can also be taken to include any
collection of machines that individually or jointly execute a set
(or multiple sets) of instructions to perform any one or more of
the methodologies discussed herein.
[0114] The exemplary computer system 1000 includes a processing
device (processor) 1002, a main memory 1004 (e.g., read-only memory
(ROM), flash memory, dynamic random access memory (DRAM) such as
synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static
memory 1006 (e.g., flash memory, static random access memory
(SRAM), etc.), and a data storage device 1018, which communicate
with each other via a bus 1030.
[0115] Processing device 1002 represents one or more
general-purpose processing devices such as a microprocessor,
central processing unit, microcontroller, or the like. More
particularly, the processing device 1002 may be a complex
instruction set computing (CISC) microprocessor, reduced
instruction set computing (RISC) microprocessor, very long
instruction word (VLIW) microprocessor, or a processor implementing
other instruction sets or processors implementing a combination of
instruction sets. The processing device 1002 may also be one or
more special-purpose processing devices such as an application
specific integrated circuit (ASIC), a field programmable gate array
(FPGA), a digital signal processor (DSP), network processor, or the
like. The processing device 1002 is configured to execute
instructions 1026 for performing the operations and steps discussed
herein.
[0116] The computer system 1000 may further include a network
interface device 1022. The computer system 1000 also may include a
video display unit 1008 (e.g., a liquid crystal display (LCD), a
cathode ray tube (CRT), or a touch screen), an alphanumeric input
device 1010 (e.g., a keyboard), a cursor control device 1014 (e.g.,
a mouse), and a signal generation device 1016 (e.g., a
speaker).
[0117] The data storage device 1018 may include a machine-readable
storage medium 1024 on which is stored one or more sets of
instructions (e.g., software including hub module 112) embodying
any one or more of the methodologies or functions described herein.
The instructions may also reside, completely or at least partially,
within the main memory 1004 and/or within the processing device
1002 during execution thereof by the computer system 1000, the main
memory 1004 and the processing device 1002 also constituting
computer-readable storage media. The instructions may further be
transmitted or received over a network 1020 via the network
interface device 1034.
[0118] While the machine-readable storage medium 1024 is shown in
an exemplary implementation to be a single medium, the term
"computer-readable storage medium" should be taken to include a
single medium or multiple media (e.g., a centralized or distributed
database, and/or associated caches and servers) that store the one
or more sets of instructions. The term "computer-readable storage
medium" can also be taken to include any medium that is capable of
storing, encoding or carrying a set of instructions for execution
by the machine and that cause the machine to perform any one or
more of the methodologies of the present disclosure. The term
"computer-readable storage medium" can accordingly be taken to
include, but not be limited to, solid-state memories, optical
media, and magnetic media.
[0119] In the foregoing description, numerous details are set
forth. It can be apparent, however, to one of ordinary skill in the
art having the benefit of this disclosure, that the present
disclosure may be practiced without these specific details. In some
instances, well-known structures and devices are shown in block
diagram form, rather than in detail, in order to avoid obscuring
the present disclosure.
[0120] Some portions of the detailed description have been
presented in terms of algorithms and symbolic representations of
operations on data bits within a computer memory. These algorithmic
descriptions and representations are the means used by those
skilled in the data processing arts to most effectively convey the
substance of their work to others skilled in the art. An algorithm
is here, and generally, conceived to be a self-consistent sequence
of steps leading to a desired result. The steps are those that may
use physical manipulations of physical quantities. Usually, though
not necessarily, these quantities take the form of electrical or
magnetic signals capable of being stored, transferred, combined,
compared, and otherwise manipulated. It has proven convenient at
times, principally for reasons of common usage, to refer to these
signals as bits, values, elements, symbols, characters, terms,
numbers, or the like.
[0121] It should be borne in mind, however, that all of these and
similar terms are to be associated with the appropriate physical
quantities and are merely convenient labels applied to these
quantities. Unless specifically stated otherwise as apparent from
the following discussion, it is appreciated that throughout the
description, discussions utilizing terms such as "receiving",
"authorizing", "determining", "transforming", "analyzing,"
"re-transmitting," "calculating," "delaying," "comparing," or the
like, refer to the actions and processes of a computer system, or
similar electronic computing device, that manipulates and
transforms data represented as physical (e.g., electronic)
quantities within the computer system's registers and memories into
other data similarly represented as physical quantities within the
computer system memories or registers or other such information
storage, transmission or display devices.
[0122] Although the operations of the methods herein are shown and
described in a particular order, the order of the operations of
each method may be altered so that certain operations may be
performed in an inverse order or so that certain operation may be
performed, at least in part, concurrently with other operations of
the same method and/or different method. In another embodiment,
instructions or sub-operations of distinct operations may be in an
intermittent and/or alternating manner. The terms "first,"
"second," "third," "fourth," etc. as used herein are meant as
labels to distinguish among different elements and may not
necessarily have an ordinal meaning according to their numerical
designation.
[0123] The disclosure also relates to an apparatus for performing
the operations herein. This apparatus may be specially constructed
for the required purposes, or it may include a general-purpose
computer selectively activated or reconfigured by a computer
program stored in the computer. Such a computer program may be
stored in a computer readable storage medium, such as, but not
limited to, any type of disk including floppy disks, optical disks,
CD-ROMs, and magnetic-optical disks, read-only memories (ROMs),
random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical
cards, or any type of media suitable for storing electronic
instructions.
[0124] The words "example" or "exemplary" are used herein to mean
serving as an example, instance, or illustration. Any aspect or
design described herein as "example" or "exemplary" is not
necessarily to be construed as preferred or advantageous over other
aspects or designs. Rather, use of the words "example" or
"exemplary" is intended to present concepts in a concrete fashion.
As used in this application, the term "or" is intended to mean an
inclusive "or" rather than an exclusive "or". That is, unless
specified otherwise, or clear from context, "X includes A or B" is
intended to mean any of the natural inclusive permutations. That
is, if X includes A; X includes B; or X includes both A and B, then
"X includes A or B" is satisfied under any of the foregoing
instances. In addition, the articles "a" and "an" as used in this
application and the appended claims should generally be construed
to mean "one or more" unless specified otherwise or clear from
context to be directed to a singular form. Moreover, use of the
term "an embodiment" or "one embodiment" or "an implementation" or
"one implementation" throughout is not intended to mean the same
embodiment or implementation unless described as such.
[0125] Reference throughout this specification to "one embodiment"
or "an embodiment" means that a particular feature, structure, or
characteristic described in connection with the embodiment is
included in at least one embodiment. Thus, the appearances of the
phrase "in one embodiment" or "in an embodiment" in various places
throughout this specification are not necessarily all referring to
the same embodiment. In addition, the term "or" is intended to mean
an inclusive "or" rather than an exclusive "or."
[0126] It is to be understood that the above description is
intended to be illustrative, and not restrictive. Many other
implementations can be apparent to those of skill in the art upon
reading and understanding the above description. The scope of the
disclosure should, therefore, be determined with reference to the
appended claims, along with the full scope of equivalents to which
such claims are entitled.
* * * * *