Computerized item rental using beacons
By using beacon equipment for automated detection and tracking in the item rental system, the problems of inefficiency and high error rates caused by manual input in the prior art are solved, and more efficient and accurate leasing process management is achieved.
Patent Information
- Application Number
- CN201910358011.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-05-03
- Filing Date
- 2019-04-30
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2039-04-30
AI Technical Summary
The prior art relies on a large amount of manual user input during the item rental process, resulting in inefficiency and error-prone.
By computerized detection and tracking of items using beacon equipment, the rental status of items is automatically determined and the rental process is controlled.
Automated item rental tracking is implemented, reducing the need for manual input, improving efficiency and reducing error rates.
Smart Images

Figure CN110443668B_ABST
Abstract
Description
Technical Field
[0001] The present application relates generally to item tracking, and more particularly to computerized systems and methods for computerized detection and tracking of items using beacons. Background Art
[0002] Many businesses offer rental services where users can rent items. In one example, a hardware store allows users to rent power washers, chain saws, and various other equipment. Unfortunately, current technical processes require a lot of manual input to track item rentals through computer-implemented processes and applications. Customers typically enter a store and approach the rental department to talk to an employee about renting an item. The employee must manually create an entry, such as in an electronic ledger or through a computer's rental tracking application, to indicate that the customer is renting a specific item. The employee must manually enter information about the customer and the item to be rented through the computer. In this way, a computer is used to create rental information through user input for tracking the rental of items.
[0003] When a customer returns an item to end the rental, the customer brings the item back to the rental department and speaks to an employee about returning the item to end the rental. The employee must enter information about the user and the item through a computer in order to find the rental information. The employee uses the rental information to calculate the amount the customer owes for the rental and charges the customer the calculated amount accordingly. This computer-implemented technical process for tracking rentals essentially relies on manual user input, which can be error-prone and inefficient. Summary of the invention
[0004] Computerized systems and methods are described herein that provide computerized detection and tracking of items using beacons. In one embodiment, the system determines the rental status of an item and controls the rental process of an item based at least in part on beacon signals as described herein. The computer-implemented technical process improves upon prior art processes for tracking item rentals by using beacon signals to detect the physical presence of an item and track the start and end of an item being rented.
[0005] In one embodiment, a computer-implemented method performed by a computing system is disclosed, and a non-transitory computer-readable medium storing computer-executable instructions is disclosed, which when executed by a processor of a computing device causes the processor to perform the method, the method comprising: maintaining a data structure that maps user identifiers of users to beacon identifiers of beacon devices associated with rental items rented by the corresponding users; controlling a wireless receiver of the computing device to listen for a beacon signal transmitted by the beacon device associated with the rental item; and in response to receiving, by the wireless receiver, a beacon signal from the beacon device associated with the rental item:
[0006] parsing the beacon signal to identify a beacon identifier of the beacon device; querying the data structure using the beacon identifier to determine whether the beacon identifier is mapped to a user identifier within the data structure; and
[0007] In response to the beacon identifier not being mapped within the data structure:
[0008] a current user identifier identifying a user requesting to rent the rental item;
[0009] creating an entry within a data structure to map the current user identifier with the beacon identifier to indicate that the rental item is assigned to and is being rented by the user; and
[0010] The beacon device is configured to set the beacon identifier to the subscription identifier to indicate that the user is now renting the rental item.
[0011] In another embodiment, the method further performs the following operations and / or the instructions include instructions for the following operations: receiving a second beacon signal from a beacon device by a wireless receiver; parsing the second beacon signal to identify a beacon identifier of the beacon device; using the beacon identifier to query a data structure to determine that the rental item is being rented by a user based on the data structure including an entry mapping the user's current user identifier to the beacon identifier; calculating the charge amount for the user to rent the rental item; executing a charge command to charge the charge amount to the user's account; removing the entry from the data structure to indicate that the rental item is not currently rented; and configuring the beacon device to set the beacon identifier to the identifier of the rental item to indicate that the rental item is available for rent.
[0012] In another embodiment, the method further performs creation and / or the instructions for creating an entry include instructions for: populating the entry with a lease start time corresponding to the time when the beacon signal was received. In another embodiment, the entry is populated with a lease start time corresponding to the time when the beacon signal was received, and wherein the instructions for calculating the charge amount include instructions for: determining a lease end time corresponding to the time when the second beacon signal was received; extracting the lease start time from the entry; and calculating the charge amount based on the lease duration obtained from the difference between the lease start time and the lease end time.
[0013] In another embodiment, the method further performs the following operations and / or the instructions include instructions for the following operations: listening for beacon signals according to a monitoring mode, wherein the beacon signals are parsed to identify the beacon device type of the beacon device but not the beacon identifier of the beacon device when in the monitoring mode; and in response to receiving an incoming beacon signal while in the monitoring mode, transitioning to listening for beacon signals according to a ranging mode, wherein the beacon signals are parsed to identify the beacon identifier of the beacon device.
[0014] In another embodiment, the method further performs operations and / or the instructions include instructions for operations wherein receiving a beacon signal triggers an exit event to begin rental of the rental item, and receiving a second beacon signal triggers an entry event to end rental of the rental item.
[0015] In another embodiment, the method further performs the following operations and / or the instructions include instructions for the following operations: in response to identifying a current user identifier of a user requesting to rent the rental item, sending a command to a store controller to transport the rental item from the storage location to the rental pickup location.
[0016] In another embodiment, the beacon device comprises a Bluetooth beacon tag attached to the rental item, wherein the beacon identifier comprises an identifier of the rental item.
[0017] In another embodiment, the method further performs the following operations and / or the instructions include instructions for the following operations: in response to receiving the first beacon signal, presenting a user interface on the computing device, wherein the user interface is populated with the user's customer information, rental item information of the rental item, and an indication as to whether the rental item is currently rented or available for rent. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The accompanying drawings that are incorporated in this specification and form a part thereof illustrate various systems, methods and other embodiments of the present disclosure. It will be appreciated that the element boundaries (e.g., frame, group of frames or other shapes) shown in the figures represent an embodiment of the boundary. In certain embodiments, an element may be implemented as a plurality of elements, or a plurality of elements may be implemented as an element. In certain embodiments, the element of the internal assembly of another element may be implemented as an external assembly, and vice versa. In addition, the element may not be drawn to scale.
[0019] Figure 1 An embodiment of a system associated with computerized item rental using beacons is shown.
[0020] Figure 2 Embodiments of methods associated with computerized item rental using beacons are shown.
[0021] Figure 3A An embodiment of a system associated with computerized item rental using beacons is shown.
[0022] Figure 3B An embodiment of a system associated with computerized item rental using a beacon is shown, wherein rental of an item begins.
[0023] Figure 3CAn embodiment of a system associated with computerized item rental using beacons is shown.
[0024] Figure 3D An embodiment of a system associated with computerized item rental using beacons is shown, wherein the rental of the item ends.
[0025] Figure 4 Embodiments of a non-transitory computer readable medium are illustrated.
[0026] Figure 5 An embodiment of a computing system configured with the disclosed example systems and / or methods is shown.
[0027] Figure 6 An embodiment of an integrated business system and enterprise network is shown in which embodiments of the present invention may be implemented.
[0028] Figure 7 An embodiment of a multi-tenant distributed computing service platform is shown. DETAILED DESCRIPTION
[0029] Computerized systems and methods are described herein that provide computerized detection and tracking of items using beacons. In one embodiment, the system determines the rental status of an item and controls the rental process of an item based at least in part on beacon signals as described herein. The computer-implemented technical process improves upon prior art processes for tracking item rentals by using beacon signals to detect the physical presence of an item and track the start and end of an item being rented. Rather than relying on manual user input of rental information to track item rentals, which is inefficient and error-prone, the computer-implemented technical process provides a control system for automatically detecting and tracking that an item is being rented or returned based on beacon signals received from a beacon device attached to the item.
[0030] In particular, beacon devices are attached to rental items available for rent, such as by a business that rents such rental items. For example, one beacon device is attached to each rental item in a one-to-one relationship. Beacon devices, such as Bluetooth transmitters, are configured to periodically or continuously transmit beacon signals. The beacon signal includes a beacon identifier of the beacon device. The beacon identifier is a unique identifier that can be used to identify a specific beacon device. Therefore, for each beacon device attached to a rental item, the beacon identifier of the beacon device is assigned to the rental item to which the beacon device is attached. The beacon assignments are stored in a database, as will be described below. Thus, the present system can detect and identify rental items by detecting beacon signals from the assigned beacon devices.
[0031] In one embodiment, the system includes a communication module implemented by a computer to control a wireless receiver to listen for beacon signals sent by a beacon device attached to a rental item. The computer may include a tablet, a smartphone, a desktop computer, or any other computing device with communication capabilities (such as a Bluetooth-enabled device) to listen for beacon signals.
[0032] The enterprise can use the communication module to determine when a rental item enters the communication range of the computer. For example, the rental item can be moved from the storage room (out of range) to the front room (in range) by the computer to start the rental process, or the rental item can be carried from outside the house (out of range) to the front room (in range) when returned. When the rental item is within range, a beacon signal from the rental item is detected, which indicates the physical presence of the rental item. The communication module uses the detection and physical presence of the beacon signal to determine and control the rental status / state of the rental item. For example, the rental item is leaving the enterprise to begin the rental of the rental item, or is being returned to the enterprise to end the rental of the rental item.
[0033] refer to Figure 1 , shows and summarizes one embodiment of a system 100 associated with computerized item rental using beacons, and reference is made to Figure 2 A more detailed description is provided. The system 100 is implemented as a computer hosted on a computing device such as Figure 5 The computing device includes a wireless receiver (such as a Bluetooth receiver) that can be controlled by the communication module 105 to listen for beacon signals from the beacon device. In one embodiment, the communication module 105 is used by the enterprise to detect, track and control the rental process of the rental items. For simplicity, Figure 1 Example rental items are shown as first rental item 115, second rental item 125, and third rental item 135, but system 100 can operate with any number of rental items. Communication module 105 tracks the rental status and information of each item within data structure 110, such as which rental items are currently rented and by whom.
[0034] In one embodiment, data structure 110 includes a table with rows. Each row can correspond to a rental item. The row for the rental item can be populated with an identifier of the rental item, an identifier of a beacon device attached to the rental item, a reservation identifier indicating that the user is renting the rental item, a user identifier of the user renting the rental item, and / or other information. The row can be populated with a field that can be set to indicate whether the rental item is currently being rented, or there is no field and the mere existence of the row indicates that the rental item is being rented because the row is deleted when the rental item is returned to end the rental. When the rental of the rental item begins, a row can be created in data structure 110, and when the rental ends, the row is removed from data structure 110. It can be appreciated that other types and structures of data structures can be used as data structure 110.
[0035] As previously described, each item includes a beacon device attached to the item, and a corresponding beacon identifier is assigned to the item. The communication module 105 determines how to track the rental information based on the beacon signals received from the beacon devices associated with the rental items. The first beacon device 120 is attached to the first rental item 115, the second beacon device 130 is attached to the second rental item 125, the third beacon device 140 is attached to the third rental item 135, and so on. Each beacon device is configured to transmit a unique identifier that can be used by the communication module 105 to distinguish between the beacon device and its associated rental item.
[0036] For example, the third beacon device 140 is configured to periodically or continuously transmit a beacon signal encoded with a third beacon identifier. The third beacon identifier can be set to a specific value that serves as an identifier for the third rental item 135. The assignment of the beacon identifier to the rental item can be stored in the data structure 110. The user 150 can carry the third rental item 135 from the rental pickup location toward the exit 160 of the enterprise where the communication module 105 is located. When the third beacon device 140 enters the communication range of the wireless receiver, the wireless receiver will receive the beacon signal transmitted by the third beacon device 140. The wireless receiver is configured to provide the beacon signal to the communication module 105 for processing. Receiving the beacon signal indicates to the communication module 105 that the physical presence of the rental item has been detected.
[0037] In one embodiment of processing a beacon signal detected from the third beacon device 140, the communication module 105 parses the beacon signal to extract a third beacon identifier of the third beacon device 140. The communication module 105 queries the data structure 110 using the third beacon identifier to determine whether the third beacon identifier is mapped to any user identifier within the data structure 110. In response to the third beacon identifier not being mapped to any user identifier, the communication module 105 determines that the third rental item 135 is not rented and is available for rent. Therefore, the communication module 105 determines the following conditions: (1) the physical presence of the third rental item 135 is detected, and (2) the rental status of the rental item is "unrented". These conditions indicate that the third rental item 135 is brought in to "start" the rental process rather than being returned to "end" the rental process. The communication module 105 is configured to initiate and control the start rental process or the end rental process based on the determination. In this example, the start rental process is initiated.
[0038] Since the start rental process is initiated, the user identifier is requested because the user requests to rent the third rental item. Therefore, the communication module 105 identifies the current user identifier of the user requesting the rental of the rental item. For example, the user 150 can submit a request to rent the third rental item 135 using the computing device 155. The request can include the user identifier, or can be used to construct the user identifier of the user 150. In this way, the communication module 105 can create a mapping 145 within the data structure 110 that maps the third beacon identifier (which is assigned to the third rental item) to the user identifier to indicate that the third rental item 135 is assigned to the user identifier.
[0039] Once created and stored in the data structure 110, the presence of a mapping between rental items and users can be used to indicate the rental status of the third rental item 135. For example, if the rental item is mapped to the user identifier, then the rental item is rented. If the rental item is not mapped to the identifier, or if there is no entry for the rental item, then the rental item is not rented. In another embodiment, a separate rental status field can be included (in addition to the mapping) to indicate the rental status / status of the rental item. For example, a value can be assigned to the status field for each rental item, such as by setting a "1" or "0" value, a "yes / no" value, or using terms such as "rented" or "available", or other desired values. After the mapping is created, the communication module 105 considers that the user 150 is now renting the third rental item 135 and that the third rental item 135 cannot be assigned to another user.
[0040] When the user 150 returns the third rental item 135 to the business and comes within range of the communication module 105, the computer's wireless receiver detects the beacon signal transmitted by the third beacon device 140 and provides the beacon signal to the communication module 105. The communication module 105 parses the beacon signal to extract the beacon identifier. The beacon identifier is then used to identify the beacon device, which in this case is the third beacon device 140.
[0041] The communication module 105 then determines the rental status of the item associated with the third beacon device 140 to determine whether the item is rented or returned. As previously explained, the communication module 105 queries the data structure 110 using the beacon identifier to determine whether the beacon identifier is mapped to any user identifier within the data structure 110. Since the third rental item is rented as explained above, the beacon identifier is found in the data structure 110 and includes a mapping to a user (e.g., mapping 145).
[0042] In response to the beacon identifier being mapped to the user identifier of user 150, communication module 105 determines that user 150 is returning third rental item 135 to end the rental. An "end" rental process is initiated. Thus, communication module 105 calculates a charge amount for the rental of third rental item 135 and executes a charge command to charge the charge amount to the account of user 150. Communication module 105 removes mapping 145 from data structure 110 to change the rental status and indicate that third rental item 135 is available for rental.
[0043] refer to Figure 2 , shows one embodiment of a computer-implemented method 200 associated with computerized item rental using beacons. In one embodiment, the method 200 is performed by Figure 1 The communication module 105 and system 100 of the present invention utilize various computing resources of the computer 515 or other computer to execute. Computing resources such as the processor 520 are used to execute instructions associated with controlling the wireless receiver, parsing the beacon signal, querying the data structure, and creating entries in the data structure. The memory 535 and / or the disk 555 are used to store the data structure to track the rental of the rental item. The network hardware is used to transmit the rental information and the charging command between the computer 515 and the remote computer through the network. The method 200 is triggered when the application is executed on the computing device implementing the communication module 105 to track the rental of the rental item.
[0044] The communication module 105 is configured to track the rental of the rental item based on the beacon signal received from the beacon device. In one embodiment, the first beacon device 325 is attached to the first rental item 320 and the second beacon device 335 is attached to the second rental item 330. Figure 3AThe example system 300 of FIG. 100 is shown. The beacon device includes a transceiver configured to periodically or continuously transmit a wireless signal. In one embodiment, the beacon device includes a Bluetooth beacon tag configured to transmit a Bluetooth radio signal that can be received and intercepted by a Bluetooth-enabled device such as a computer hosting the communication module 105.
[0045] The beacon signal transmitted by the beacon device can be encoded with information such as a beacon identifier. The value of the beacon identifier can be dynamically set to correspond to an identifier of the beacon device, an identifier of the rental item to which the beacon device is attached, a user identifier of a user currently renting the rental item, or a subscription identifier indicating that the user is currently renting the rental item. In one embodiment, the first beacon device 325 is configured to transmit a first beacon signal encoded with a first beacon identifier, wherein the first beacon identifier has a value corresponding to the identifier of the first rental item 320. The second beacon device 335 is configured to transmit a second beacon signal encoded with a second beacon identifier, wherein the second beacon identifier has a value corresponding to the identifier of the second rental item 330.
[0046] At 205, the communication module 105 maintains a data structure 305, such as an electronic ledger, table, database, or file, for tracking rental item information. The communication module 105 populates the data structure 305 with an entry indicating that a particular user is currently renting a particular rental item. The entry is populated with a user identifier of the user renting the rental item. The entry maps the user identifier to a beacon identifier of a beacon device attached to the rental item rented by the user. Therefore, if the data structure 305 includes an entry mapping the beacon identifier to the user identifier, then the communication module 105 can determine that the corresponding rental item is currently being rented. If there is no entry mapping the beacon identifier to any user identifier, then the communication module 105 can determine that the corresponding rental item is available for rent.
[0047] At 210, the communication module 105 controls a wireless receiver of the computing device hosting the communication module 105 to listen for beacon signals sent by beacon devices attached to the rental items of the enterprise. In one embodiment, the communication module 105 (such as an application executed on a computer) uses a Bluetooth driver installed within the computer's operating system to access and control the computer's Bluetooth receiver. The communication module 105 can use the commands and functions of the Bluetooth driver to obtain the beacon signals received by the Bluetooth receiver. In this way, the communication module 105 controls the wireless receiver to receive the beacon signals and provides the communication module 105 with access to the received beacon signals.
[0048] In one embodiment of receiving and processing beacon signals, user 310 moves first rental item 320 within the communication range of the wireless receiver, such as Figure 3B The communication module 105 receives the beacon signal transmitted by the first beacon device 325 attached to the first rental item 320 through a wireless receiver. In one embodiment, the Bluetooth receiver of the computer receives the Bluetooth radio signal transmitted by the Bluetooth transmitter of the first beacon device 325. The communication module 105 receives the beacon signal from the Bluetooth receiver through a Bluetooth driver.
[0049] At 215, the communication module 105 parses the beacon signal to extract the beacon identifier of the first beacon device 325. In one embodiment, the beacon signal is received as a character sequence or other data that can be parsed using a parsing function (such as a character / text parsing function). The communication module 105 can determine that the character sequence corresponds to an identifier of the first beacon device 325, an identifier of the first rental item 320, or a reservation identifier indicating that the first rental item 320 has been rented. The communication module 105 can make this determination by looking up the character sequence within a lookup table of identifiers. In this example, the communication module 105 determines that the extracted beacon identifier is a unique identifier for the first rental item 320.
[0050] In one embodiment of receiving and parsing beacon signals, the communication module 105 can control the wireless receiver to listen for beacon signals according to different modes. Initially, the communication module 105 controls the wireless receiver to listen for beacon signals according to the monitoring mode. When in the monitoring mode, the beacon signal is received and parsed to identify the beacon device type of the beacon device, but not the beacon identifier of the beacon device. That is, the beacon device can be configured to encode the beacon signal with various identifiers, such as where the first part of the character sequence corresponds to the beacon device type and the second part of the character sequence corresponds to the beacon identifier. The beacon device type can specify the type / category of the rental item associated with the beacon device, such as a chain saw type, a power washer type, a carpet cleaning machine type, etc. Therefore, the beacon device type does not specify an exact chain saw, but only indicates that the rental item is a certain type of chain saw. In response to receiving a beacon signal while in the monitoring mode, the communication module 105 transitions to the ranging mode. When in the ranging mode, the beacon signal is parsed to identify the beacon identifier of the beacon device. In one embodiment, operation of a computer is improved by reducing resource usage and power consumption because the monitoring mode may be a lower power mode than the ranging mode and thus transitions to the ranging mode only upon initial detection of a beacon device.
[0051] At 220, the communication module 105 uses the beacon identifier corresponding to the unique identifier of the first rental item 320 to query the data structure 305 to determine whether there is any entry that maps the beacon identifier to the user identifier. If there is an existing entry that maps the beacon identifier to the user identifier, the communication module 105 can determine that the rental item is currently being rented by the corresponding user and is therefore being returned by the user to end the rental. In this example, the communication module 105 determines based on the query that there is no entry within the data structure 305 that maps the beacon identifier associated with the first rental item 320 to any user identifier. Therefore, the communication module 105 determines that the first rental item 320 is not currently rented and available for rental because there is no entry mapping the beacon identifier.
[0052] The communication module 105 determines that the first rental item 320 is available for rental and has been moved into the communication range of the wireless receiver, which indicates that the user is attempting to rent the first rental item 320. Thus, at 225, the communication module 105 identifies the current user identifier of the user 310 requesting to rent the first rental item 320. The communication module 105 can identify the current user identifier in various ways. In one embodiment, the user 310 submits the rental request through the computing device 315. The rental request includes the current user identifier, such as the name of the user 310 or any other identifying information. The computing device 315 sends the rental information such as the current user identifier to the communication module 105. The rental information may include other information, such as payment information, a description of the first rental item 320, user information, etc.
[0053] In one embodiment, verification of user 310 is performed, such as by computing device 315. Verification is performed to authenticate user 310 as permitted to rent first rental item 320. User information within the rental request, such as a user identifier, address, payment information, username and password or other login credentials, may be verified as authentic. Various types of verification, such as facial recognition verification, voice recognition verification, fingerprint recognition verification, and / or biometric verification, may be performed by computing device 315 to authenticate user 310 for renting first rental item 320.
[0054] At 230, the communication module 105 creates an entry 340 within the data structure 305 to indicate that the user 310 is now renting the first rental item 320. The communication module 105 populates the entry 340 with a mapping between the beacon identifier having a value identifying the first rental item 320 and the user identifier of the user 310. The communication module 105 may populate the entry 340 with other information, such as a rental start time corresponding to the time when the beacon signal was received from the first beacon device 325. In this manner, the rental of the first rental item 320 by the user 310 is initiated and tracked by the data structure 305. Thus, the receipt of the beacon signal triggers a departure event for the first rental item 320, thereby causing the enterprise to initiate the rental of the first rental item 320 by the user 310.
[0055] The rental of the first rental item 320 is also tracked by dynamically modifying the beacon identifier transmitted by the first beacon device 325. For example, the beacon identifier is initially set to a value corresponding to the unique identifier of the first rental item 320. Thus, the communication module 105 is configured to send a command to the first beacon device 325 to configure the first beacon device 325 to set the beacon identifier to a value corresponding to the reservation identifier to indicate that the first rental item 320 is assigned to the user 310. The reservation identifier can also be used to determine the rental status of the item. Setting the reservation identifier means that the user 310 is now renting the first rental item 320 and the first rental item 320 cannot be assigned to or rented by another user.
[0056] In one embodiment, the reservation identifier may be generated by the communication module 105, such as in response to a successful authentication of the user 310 for renting the first rental item 320. The reservation identifier may be generated as a sequence of characters that may be encoded into a beacon signal transmitted by the first beacon device 325. The reservation identifier may be stored by the communication module 105, such as within the data structure 305. For example, the reservation identifier is stored as the first beacon identifier within the entry 340, or within a separate entry.
[0057] In one embodiment, a user interface may be constructed to display information related to the rental of the first rental item 320. For example, in response to receiving a beacon signal and identifying a beacon identifier associated with the first rental item 320, a user interface is presented on a computer hosting the communication module 105, another computer associated with the enterprise, a computing device 315 of a user 310, or any other computer. The user interface is populated with customer information about the user 310, such as name, address, user account, etc. The user interface is populated with rental item information for the first rental item 320, such as a description of the first rental item 320, a serial number, etc. The user interface is populated with an indication of whether the first rental item 320 is currently rented or available for rental. The user interface may be displayed for an employee or user 310 of the enterprise.
[0058] In one embodiment, the first rental item 320 is stored in a storage area within the communication range of the wireless receiver. The storage area may not be accessible to the user 310. Therefore, in response to identifying the current user identifier of the user 310 requesting to rent the first rental item 320, a command is sent from the communication module 105 to the store controller to transport the first rental item 320 from the storage location of the storage area to the rental pickup location. In one embodiment, the command is sent to a store controller that is capable of controlling a machine to physically transport the first rental item 320 to the rental pickup location (e.g., a mechanical or electrical device whose operation can be controlled by the command sent by the communication module 105). In another embodiment, the command is sent to a store controller who is an employee, the command having instructions for the employee to transport the first rental item 320 to the rental pickup location. For example, the command can be displayed to the employee, such as through a user interface of a computer.
[0059] Now that the first rental item 320 has been rented by the user 310 and has left the enterprise, the communication module 105 continues to use the wireless receiver to listen for beacon signals indicating that the user has rented and returned the rental item, such as Figure 3C In one embodiment, the communication module 105 receives a second beacon signal from the first beacon device 325, such as Figure 3D For example, user 310 is returning first rental item 320 to end the rental, and thus brings first rental item 320 into the communication range of the wireless receiver.
[0060] The communication module 105 parses the second beacon signal to identify the beacon identifier of the first beacon device 325. The beacon identifier may have a value set to a subscription identifier that was set when the user 310 rented the first rental item 320. The communication module 105 queries the data structure 305 using the beacon identifier to determine that the user 310 is renting the first rental item 320 based on the data structure 305 including an entry 340 that maps the current user identifier of the user 310 to the first beacon identifier. In this manner, the receipt of the second beacon signal triggers an entry event, in which the first rental item 320 enters the enterprise to be returned in order to end the rental of the first rental item 320.
[0061] The communication module 105 calculates an amount to be charged for the user's rental of the first rental item 320. In one embodiment, the amount to be charged may be calculated as a fixed fee agreed to by the user 310 for the rental of the first rental item 320. In another embodiment, the amount to be charged is based on the duration of the rental. Thus, the communication module 105 determines a rental end time corresponding to the time when the second beacon signal is received. The communication module 105 queries the data structure 305 to extract the rental start time from the entry 340. The communication module 105 calculates the amount to be charged based on the rental duration obtained from the difference between the rental start time and the rental end time.
[0062] In another embodiment, the communication module calculates the charge amount based on sensor data extracted from the second beacon signal. For example, the first beacon device 325 may be associated with a sensor such as a temperature sensor, a motion sensor, or other type of sensor that can detect sensor data associated with the first rental item 320, such as the operating temperature or movement of the first rental item 320. The first beacon device 325 may encode the sensor data into the beacon signal emitted by the first beacon device 325. Therefore, the communication module 105 can parse the beacon signal to extract the sensor data. In this way, the communication module 105 can evaluate the sensor data to determine the amount of time that the first rental item 320 is operated. When the value of the sensor data exceeds a threshold indicating the operation of the first rental item 320, the communication module 105 can determine that the first rental item 320 is being operated. For example, a temperature value above a certain value indicates that the motor of the first rental item 320 is being operated and thus heating up. Similarly, certain motion values may indicate that the first rental item 320 is moved during operation. In this manner, the communication module 105 can calculate a charge amount based on the amount of time the first rental item 320 is operated.
[0063] In response to calculating the charge amount, the communication module 105 executes a charge command to charge the amount to the account of the user 310. In one embodiment, the charge command is executed on an account that the user 310 has with the business. In another embodiment, the charge command is sent over a network to a computer of a financial service, such as a bank, to charge the bank account of the user 310. After successfully executing the charge command, the entry 340 is removed 345 from the data structure 305 to indicate that the first rental item 320 is now available for rental. The communication module 105 may send a command to the first beacon device 325 to configure the first beacon device 325 to set the beacon identifier from the value of the subscription identifier back to the identifier of the first rental item 320 to indicate that the first rental item 320 is now available for rental.
[0064] Figure 4 is a schematic diagram of a scenario 400 involving an example non-transitory computer-readable medium 405. In one embodiment, one or more of the components described herein are configured as program modules, such as the communication module 105, stored in the non-transitory computer-readable medium 405. The program module is configured with stored instructions, such as processor-executable instructions 420, which, when executed by at least one processor, such as the processor 440, cause the computing device to perform the corresponding function(s) as described herein. In one embodiment, the functions of the communication module 105 stored in the non-transitory computer-readable medium 405 may be executed by the processor 440 as the processor-executable instructions 420 to perform Figure 2 Embodiment 425 of method 200 .
[0065] The non-transitory computer readable medium 405 includes processor executable instructions 420 that, when executed by a processor 440, cause at least some of the provisions herein to be performed. The non-transitory computer readable medium 405 includes a memory semiconductor (e.g., a semiconductor utilizing static random access memory (SRAM), dynamic random access memory (DRAM), and / or synchronous dynamic random access memory (SDRAM) technology), a platter of a hard drive, a flash memory device, or a magnetic or optical disk (such as a compact disk (CD), a digital versatile disk (DVD), or a floppy disk). The example non-transitory computer readable medium 405 stores computer readable data 410 that, when read 415 by a reader 435 of a device 430 (e.g., a read head of a hard drive or a read operation invoked on a solid-state storage device), expresses the processor executable instructions 420.
[0066] In some embodiments, processor executable instructions 420, when executed, cause operations to be performed, such as, for example, Figure 2At least some of the operations in the example method 200 are performed. In some embodiments, the processor executable instructions 420 are configured to cause the system to be implemented, for example, such as Figure 1 At least some of the example systems 100 of are implemented.
[0067] Figure 5 An example computing device 500 is shown that is configured and / or programmed with one or more of the example systems and methods described herein and / or equivalents. The example computing device 500 may be a computer 515 that includes a processor 520, a memory 535, and an I / O port 545 operably connected via a bus 525. In one embodiment, the computer 515 may include a processor configured to facilitate Figure 1-Figure 2 525. The logic of the communication module 105 of the system 100 and / or method 200 shown in FIG. 525. In different embodiments, the logic of the communication module 105 can be implemented in hardware, a non-transitory computer-readable medium 505 having stored instructions, firmware, and / or a combination thereof. Although the logic of the communication module 105 is shown as a hardware component attached to the bus 525, it should be appreciated that in other embodiments, the logic of the communication module 105 can be implemented in the processor 520, stored in the memory 535, or stored in the disk 555.
[0068] In one embodiment, the communication module 105 or the logic of the computer 515 is a means (e.g., structure: hardware, non-transitory computer-readable medium, firmware) for performing the described actions. In some embodiments, the computing device may be a server operating in a cloud computing system, a server configured in a software as a service (SaaS) architecture, a smart phone, a laptop computer, a tablet computing device, etc.
[0069] For example, the component can be implemented as an application specific integrated circuit (ASIC) that is programmed to implement a rule-based source sequence for allocation. The component can also be implemented as stored computer executable instructions that are presented to the computer 515 as data 510, which is temporarily stored in the memory 535 and then executed by the processor 520.
[0070] The logic of the communication module 105 may also provide means (eg, hardware, non-transitory computer-readable medium 505 storing executable instructions, firmware) for executing the rule-based source sequence for allocation.
[0071] Generally describing an example configuration of computer 515, processor 520 can be a variety of processors, including dual microprocessors and other multi-processor architectures. Memory 535 can include volatile memory and / or non-volatile memory. Non-volatile memory can include, for example, read-only memory (ROM), programmable read-only memory (PROM), etc. Volatile memory can include, for example, random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), etc.
[0072] The disk 555 may be operably connected to the computer 515 via, for example, an I / O interface 540 (e.g., card, device) and an I / O port 545. The disk 555 may be, for example, a magnetic disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, a memory stick, etc. In addition, the disk 555 may be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, etc. For example, the memory 535 may store processes, such as in a non-transitory computer readable medium 505, and / or data 510. The disk 555 and / or the memory 535 may store an operating system that controls and allocates resources of the computer 515.
[0073] The computer 515 can interact with input / output (I / O) devices via the I / O interface 540 and the I / O port 545. The I / O devices can be, for example, keyboards, microphones, pointing and selection devices, cameras, video cards, displays, disks 555, network devices 550, etc. The I / O port 545 can include, for example, a serial port, a parallel port, and a USB port. The I / O controller 530 can connect the I / O interface 540 to the bus 525.
[0074] The computer 515 can operate in a network environment and thus can be connected to a network device 550 via an I / O interface 540 and / or an I / O port 545. Through the network device 550, the computer 515 can interact with the network. Through the network, the computer 515 can be logically connected to a remote computer (e.g., the computer 515 can reside in a distributed computing environment to which a client can connect). The network with which the computer 515 can interact includes, but is not limited to, a local area network (LAN), a wide area network (WAN), and other networks.
[0075] Figure 66 is a diagram illustrating a system 600 in which embodiments of the present invention may be implemented. Enterprise network 604 may be associated with a business enterprise, such as a retailer, wholesaler, service provider, or other type of business. Alternatively, and depending on the advantages of an integrated business system hosted by an application service provider (ASP), such as a multi-tenant data processing platform, the business enterprise may include fewer dedicated facilities or business networks or no dedicated facilities or business networks at all, as long as its end users have access to an Internet browser and an Internet connection.
[0076] For simplicity and clarity of explanation, enterprise network 604 is represented by an on-site local area network 606 to which multiple personal computers 608 are connected, and an exemplary remote user computer 610, each of which is generally dedicated to a specific end user, such as a service agent or other employee (although such dedicatedness is not required), and an exemplary remote user computer 610 can be, for example, a laptop or tablet computer of a traveling employee who can access the Internet through a public Wi-Fi access point or other Internet access method. The end users (consumers) associated with computers 608 and 610 can have Internet-enabled smart phones or other electronic devices (such as PDAs, tablets, laptops) with wireless Internet access or other synchronization capabilities. Users of enterprise network 604 interface with integrated business system 602 across the Internet 612 or another suitable communication network or combination of networks.
[0077] The integrated business system 602, which may be hosted by a dedicated third party, may include Figure 6 The integrated business server 614 and the web interface server 616 are shown coupled. It should be appreciated that either or both of the integrated business server 614 and the web interface server 616 can be implemented on one or more different hardware systems and components, even in Figure 6 is represented as a single unit.
[0078] In a typical example where system 602 is operated by a third party for the benefit of multiple account owners / tenants, each of which operates a business, integrated business server 614 includes ERP module 618 and also includes CRM module 620. In many cases, it is desirable for ERP module 618 to share methods, libraries, databases, subroutines, variables, etc. with CRM module 620, and indeed ERP module 618 may be interwoven with CRM module 620 into an integrated business data processing platform (which may be single-tenant, but is typically multi-tenant).
[0079] ERP module 618 may include, but is not limited to, a finance and accounting module, an order processing module, a time and billing module, an inventory management and delivery module, an employee management and payroll module, a calendar and collaboration module, a reporting and communication module, and other ERP-related modules. CRM module 620 may include, but is not limited to, a sales force automation (SFA) module, a marketing automation module, a contact list module (not shown), a call center support module, a web-based customer support module, a reporting and communication module, and other CRM-related modules.
[0080] The integrated business server 614 (or multi-tenant data processing platform) may also provide other business functions, including a web store / e-commerce module 622, a partner and supplier management module 624, and an integrated reporting module 630. An SCM (supply chain management) module 626 and a PLM (product lifecycle management) module 628 may also be provided. The web interface server 616 is configured and adapted to interface with the integrated business server 614 to provide one or more web-based user interfaces to end users of the enterprise network 604.
[0081] Figure 6 The integrated business system shown in can be hosted on a distributed computing system that includes at least one but possibly multiple "servers". A server is a physical computer dedicated to providing a data storage and execution environment for one or more software applications or services that are intended to serve the needs of users of other computers that communicate data with the server (e.g., via a public network such as the Internet or a private "intranet" network). A server and the services it provides may be referred to as a "host", and the remote computers being served and the software applications running on the remote computers may be referred to as "clients". Depending on the computing service(s) the server provides, it may be referred to as a database server, a data storage server, a file server, a mail server, a print server, a web server, etc. A web server is most often a combination of hardware and software that helps deliver content to client web browsers that access the web server via the Internet, typically by hosting websites.
[0082] Figure 7 700 is a diagram illustrating elements or components of an example operating environment 700 in which embodiments of the present invention may be implemented. As shown, various clients 702 in conjunction with and / or incorporated into various computing devices may communicate with a distributed computing service / platform 708 via one or more networks 714. For example, the clients may be in conjunction with and / or incorporated into a client application (e.g., software) implemented at least in part by one or more of the computing devices.
[0083] Examples of suitable computing devices include personal computers, server computers 704, desktop computers 706, laptop computers 707, notebook computers, tablet computers or personal digital assistants (PDAs) 710, smart phones 712, cellular phones, and consumer electronic devices incorporating one or more computing device components (such as one or more electronic processors, microprocessors, central processing units (CPUs) or controllers). Examples of suitable networks 714 include networks utilizing wired and / or wireless communication technologies and networks operating according to any suitable network and / or communication protocols (e.g., the Internet). In the use case involving the delivery of customer support services, the computing devices mentioned represent the endpoints of the customer support delivery process, i.e., the consumer's devices.
[0084] The distributed computing service / platform (which may also be referred to as a multi-tenant business data processing platform) 708 may include multiple processing layers, including a user interface layer 716, an application server layer 720, and a data storage layer 724. The user interface layer 716 may maintain multiple user interfaces 718, including graphical user interfaces and / or web-based interfaces. The user interface may include a default user interface for the service that provides access to applications and data for users or "tenants" of the service (depicted in the figure as a "service UI"), and one or more user interfaces that have been specialized / customized according to the specific requirements of the user (e.g., represented in the figure by "tenant A UI", ..., "tenant Z UI", and accessible via one or more APIs).
[0085] The default user interface may include components that enable tenants to manage tenant participation in functions and capabilities provided by the service platform (such as accessing data, causing specific data processing operations to be performed, etc.). Each processing layer shown in the figure can be implemented with a set of computers and / or computer components including computer servers and processors, and can perform various functions, methods, processes or operations determined by executing software applications or instruction sets. The data storage layer 724 may include one or more data repositories, which may include a service data repository 725 and one or more tenant data repositories 726.
[0086] Each tenant data repository 726 may contain tenant-specific data that is used as part of providing a range of tenant-specific business services or functions, including but not limited to ERP, CRM, e-commerce, human resource management, payroll, etc. The data repository may be implemented using any suitable data storage technology, including a structured query language (SQL) based relational database management system (RDBMS).
[0087] According to one embodiment of the present invention, the distributed computing service / platform 708 can be multi-tenant, and the distributed computing service / platform 708 can be operated by an entity to provide a set of business-related applications, data storage devices, and functions to multiple tenants. These applications and functions may include applications and functions used by an enterprise to manage various aspects of its operations. For example, the applications and functions may include providing web-based access to a business information system, thereby allowing users with a browser and an Internet or intranet connection to view, enter, process, or modify certain types of business information.
[0088] As described above, such business information systems may include enterprise resource planning (ERP) systems that integrate the capabilities of several historically separate business computing systems into a common system with the goal of streamlining business processes and improving efficiencies at a business-wide level. For example, the capabilities or modules of an ERP system may include (but are not required to include, nor limited to only include): accounting, order processing, time and billing, inventory management, retail point of sale (POS) systems, e-commerce, product information management (PIM), demand / material requirements planning (MRP), procurement, content management systems (CMS), professional service automation (PSA), employee management / payroll, human resource management, and employee calendaring and collaboration, as well as reporting and analysis functions related to these functions. These functions or business applications are typically implemented by one or more modules of software code / instructions that are maintained on and executed by one or more servers 722 that are part of the application server layer 720 of the platform.
[0089] Another business information system that can be provided as part of the integrated data processing and service platform is an integrated customer relationship management (CRM) system, which is designed to assist in better understanding customers, enhancing service to existing customers, and assisting in acquiring new and profitable customers. For example, the capabilities or modules of the CRM system may include (but are not required to include, nor limited to only include): sales force automation (SFA), marketing automation, contact lists, call center support, return management authorization (RMA), loyalty program support, and web-based customer support, as well as reporting and analysis functions related to these functions.
[0090] In addition to ERP and CRM functions, business information systems / platforms (such as Figure 7708) may also include one or more of the following: integrated partner and supplier management systems, e-commerce systems (e.g., virtual storefront applications or platforms), product lifecycle management (PLM) systems, human resource management systems (which may include medical / dental insurance management, payroll, etc.), or supply chain management (SCM) systems. These functions or business applications are typically implemented by one or more modules of software code / instructions that are maintained on and executed by one or more servers 722 that are part of the application server layer 720 of the platform.
[0091] It is noted that functional and strategic advantages can be obtained through the use of an integrated business system that includes ERP, CRM, and other business capabilities, for example, where the integrated business system is integrated with a merchant's e-commerce platform and / or "web store." For example, a customer searching for a particular product can be directed to the merchant's website, and a wide variety of products and / or services can be presented to the customer from their home computer, or even from their mobile phone. When a customer initiates an online sales transaction via a browser-based interface, the integrated business system can process the order, update accounts receivable, update inventory databases and other ERP-based systems, and can also automatically update strategic customer information databases and other CRM-based systems. These modules and other applications and functions can advantageously be integrated and executed by a single code base that accesses one or more integrated databases, where necessary, to form an integrated business management system or platform (such as Figure 7 Platform 708).
[0092] As about Figure 6 As pointed out, Figure 7 The integrated business system shown in can be hosted on a distributed computing system that includes at least one but typically multiple "servers." A server is a physical computer dedicated to providing a data storage and execution environment for one or more software applications or services that are intended to serve the needs of other computer users who communicate data with the server, for example, via a public network such as the Internet or a private "intranet" network.
[0093] Rather than building and maintaining such an integrated business system themselves, an enterprise may utilize a system provided by a third party. Such a third party may implement an integrated business system / platform as described above in the context of a multi-tenant platform, where individual instances of a single comprehensive integrated business system are provided to individual tenants. One advantage of such a multi-tenant platform is that each tenant is able to customize their instantiation of the integrated business system according to the tenant's specific business needs or operating methods. Each tenant may be a business or entity that uses the multi-tenant platform to provide business data and functionality to multiple users. Some of the multiple users may have different roles or responsibilities within the business or entity.
[0094] In some cases, a tenant may desire to modify or supplement the functionality of an existing platform application by introducing an extension to the application, where the extension will be made available to the tenant's employees and / or customers. In some cases, such extensions may be applied to process the tenant's business-related data residing on the platform. Extensions may be developed by the tenant or by third-party developers and then available for installation by the tenant. The platform may include a "library" or directory of available extensions that may be accessed by the tenant and searchable to identify extensions of interest. After appropriate validation of the proposed extension, the software developer may be allowed to "publish" the extension to the library or directory.
[0095] Thus, in order to allow tenants to obtain the services and functionality they desire (which may include providing certain services to their end customers, such as functionality associated with an e-commerce platform), the multi-tenant service platform may allow tenants to configure certain aspects of the available service(s) to better meet their business needs. In this manner, various aspects of the service platform may be customizable, thereby enabling tenants to configure various aspects of the platform to provide different services to their respective users or groups of those users. For example, a business enterprise using the service platform may want to provide additional functionality or capabilities to its employees and / or customers, or to process its business data in a specific manner according to a defined workflow customized for their business needs, etc.
[0096] Tenant customization of the platform can include custom functionality built on top of lower-level operating system functionality (such as the ability to perform tenant- or user-specific functionality, data processing, or operations). Some multi-tenant service platforms may provide the ability to customize functionality or operations at multiple different levels of the service platform, from aesthetic modifications to the graphical user interface to providing integration of components and / or entire applications developed by independent third-party vendors. This can be very beneficial because by allowing the use of components and / or applications developed by third-party vendors, multi-tenant services can significantly enhance the functionality available to tenants and increase tenant satisfaction with the platform.
[0097] As noted, in addition to user customization, independent software developers can also create extensions to specific applications that are available to users through the multi-tenant data processing platform. Extensions can add new functions or capabilities to the underlying application. One or more tenants / users of the platform may wish to add extensions to the underlying application so that they can take advantage of the enhancements to the application that are possible through the extension. In addition, developers may wish to upgrade or provide patches to the extension because they recognize the need for fixes or additional functionality that would be beneficial to incorporate into the extension. In some cases, developers may prefer to make upgrades available (at least initially) only to a selected group of users in order to obtain feedback on new versions of improved extensions, test the stability of the extensions, or assist them in segmenting the market for their (one or more) extensions.
[0098] In another embodiment, the described methods and / or their equivalents may be implemented with computer executable instructions. Thus, in one embodiment, a non-transitory computer readable / storage medium is configured to have stored computer executable instructions of an algorithm / executable application, which when executed by (one or more) machines causes the (one or more) machines (and / or associated components) to perform the method. Example machines include, but are not limited to, processors, computers, servers operating in a cloud computing system, servers configured with a software as a service (SaaS) architecture, smart phones, and the like. In one embodiment, a computing device is implemented with one or more executable algorithms configured to perform any of the disclosed methods.
[0099] In one or more embodiments, the disclosed methods or their equivalents are performed by any of the following: computer hardware configured to perform the methods; or computer instructions embodied in a module stored in a non-transitory computer-readable medium, wherein the instructions are configured as an executable algorithm, and the executable algorithm is configured to perform the method when executed by at least one processor of a computing device.
[0100] Although for the purpose of simplifying the description, the method shown in the figure is shown and described as a series of frames of the algorithm, it should be appreciated that these methods are not limited by the order of the frames. Some frames may appear in a different order than shown and described and / or appear simultaneously with other frames. Moreover, the example method can be implemented using frames less than all the frames shown. Frames can be combined or divided into multiple actions / components. In addition, additional and / or alternative methods can adopt additional actions not shown in the frame.
[0101] The following includes definitions of selected terms used herein. The definitions include various examples and / or forms of components that fall within the scope of the terms and can be used to implement. The examples are not intended to be limiting. Both singular and plural forms of the terms may be within the definitions.
[0102] References to "one embodiment," "an embodiment," "an example," "an example," etc. indicate that the embodiment(s) or examples so described may include particular features, structures, characteristics, properties, elements, or limitations, but not every embodiment or example must include the particular features, structures, characteristics, properties, elements, or limitations. Furthermore, repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, but it may.
[0103] As used herein, a "data structure" is an organization of data stored in a memory, storage device, or other computerized system in a computing system. A data structure can be, for example, any of a data field, a data file, a data array, a data record, a database, a data table, a chart, a tree, a linked list, etc. A data structure can be formed by and include multiple other data structures (e.g., a database includes multiple data records). Other examples of data structures are also possible according to other embodiments.
[0104] As used herein, "computer-readable medium" or "computer storage medium" refers to a non-transitory medium that stores instructions and / or data configured to perform one or more functions of the disclosed functions when executed. In some embodiments, data can be used as instructions. Computer-readable media can take the form of, but not limited to, non-volatile media and volatile media. Non-volatile media can include, for example, optical disks, magnetic disks, etc. Volatile media can include, for example, semiconductor memories, dynamic memories, etc. Common forms of computer-readable media can include, but are not limited to, floppy disks, flexible disks, hard disks, magnetic tapes, other magnetic media, application specific integrated circuits (ASICs), programmable logic devices, compact disks (CDs), other optical media, random access memories (RAMs), read-only memories (ROMs), memory chips or cards, memory sticks, solid-state storage devices (SSDs), flash drives, and other media that computers, processors, or other electronic devices can work with. If each type of medium is selected for implementation in one embodiment, it can include storage instructions for algorithms configured to perform one or more functions of the disclosed and / or claimed functions.
[0105] As used herein, "logic" means a component implemented using a computer or electrical hardware, a non-transitory medium with stored instructions of executable applications or program modules, and / or a combination of these to perform any function or action as disclosed herein, and / or to cause a function or action from another logic, method, and / or system to be performed as disclosed herein. Equivalent logic may include firmware, a microprocessor programmed with an algorithm, discrete logic (e.g., ASIC), at least one circuit, an analog circuit, a digital circuit, a programmed logic device, a memory device containing instructions of the algorithm, etc., any of which may be configured to perform one or more functions of the disclosed functions. In one embodiment, logic may include one or more gates, a combination of gates, or other circuit components configured to perform one or more functions of the disclosed functions. In the case of describing multiple logics, it is possible to merge multiple logics into one logic. Similarly, in the case of describing a single logic, it is possible to distribute the single logic between multiple logics. In one embodiment, one or more of these logics are corresponding structures associated with performing the disclosed and / or claimed functions. Choosing which type of logic to implement can be based on desired system conditions or specifications. For example, if higher speed is considered, hardware will be selected to implement the function. If lower cost is a consideration, stored instructions / executable applications will be chosen to implement the functionality.
[0106] An "operable connection" or a connection through which entities are "operably connected" is a connection that can send and / or receive signals, physical communications, and / or logical communications. An operable connection may include a physical interface, an electrical interface, and / or a data interface. An operable connection may include different combinations of interfaces and / or connections sufficient to allow operable control. For example, two entities may be operably connected to transmit signals to each other directly or through one or more intermediate entities (e.g., a processor, an operating system, logic, a non-transitory computer-readable medium). Logical and / or physical communication channels may be used to create an operable connection.
[0107] As used herein, a "user" includes, but is not limited to, one or more persons, computers or other devices, or a combination of these.
[0108] Although the disclosed embodiments have been shown and described in considerable detail, it is not intended that the scope of the appended claims be limited or in any way restricted to such details. Of course, it is not possible to describe every expected combination of components or methods for the purpose of describing various aspects of the subject matter. Therefore, the present disclosure is not limited to the specific details or illustrative examples shown and described. Therefore, the present disclosure is intended to cover changes, modifications and variations that fall within the scope of the appended claims.
[0109] To the extent that the term "comprising" or "including" is employed in the detailed description or claims, it is intended to be inclusive in a manner similar to how the term "comprising" is interpreted when employed as a transitional word in a claim.
[0110] To the extent that the term "or" is employed in the detailed description or claims (e.g., A or B), it is intended to mean "A or B or both A and B." When the applicants intend to indicate "only A or B but not both A and B," then the phrase "only A or B but not both A and B" will be used. Thus, the use of the term "or" herein is inclusive, rather than exclusive.
Claims
1. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the processor to: maintaining a data structure that maps user identifiers of users to beacon identifiers of beacon devices associated with rental items leased by the corresponding users, wherein the data structure comprises a table having a plurality of rows and each row of the table corresponds to a rental item being leased, wherein each row comprises an identifier of the rental item, a beacon identifier of a beacon device attached to the rental item, a subscription identifier indicating that a first user is leasing the rental item, and a user identifier of the first user who is leasing the rental item, and wherein a row is created in the data structure when a lease of a rental item begins and is removed from the data structure when the lease ends; controlling a wireless receiver of a computing device to listen for a beacon signal transmitted by a beacon device associated with the rental item, wherein the wireless receiver listens for the beacon signal according to a listening mode; as well as While in the listening mode, in response to receiving, by the wireless receiver, a first beacon signal from a first beacon device associated with a first rental item: parsing the first beacon signal to identify a type of rental item associated with the first beacon device instead of the first beacon identifier of the first beacon device; Switching to listening to the beacon signal according to a ranging mode; while in the ranging mode, parsing a first beacon signal to identify a first beacon identifier of a first beacon device associated with a first rental item; querying the data structure using a first beacon identifier of a first beacon device to determine whether the first beacon identifier of the first beacon device is mapped within the data structure to a user identifier of a first user; as well as In response to the first beacon identifier of the first beacon device not being mapped within the data structure, indicating that the first rental item is not currently being rented: identifying a user identifier of a second user requesting to rent a first rental item associated with a first beacon identifier of the first beacon device and verifying the user identifier of the second user; creating a new row within the data structure to map the user identifier of the second user to the first beacon identifier of the first beacon device to indicate that the first rental item is assigned to and is being rented by the second user; as well as A first beacon device associated with the first rental item is configured to set a first beacon identifier of the first beacon device to the subscription identifier to indicate that the second user is now renting the first rental item.
2. The non-transitory computer readable medium of claim 1, wherein the instructions include instructions for: receiving, by the wireless receiver, a second beacon signal from a first beacon device; parsing the second beacon signal to identify a first beacon identifier of the first beacon device; querying the data structure using the first beacon identifier of the first beacon device to determine that the first rental item is being rented by the second user based on the data structure including the new row mapping the user identifier of the second user to the first beacon identifier of the first beacon device; Calculating a charge amount for the second user to rent the first rental item; executing a charging command to charge the charging amount to the account of the second user; removing the new row from the data structure to indicate that the first rental item is not currently being rented; and The first beacon device is configured to set a first beacon identifier of the first beacon device to an identifier of the first rental item to indicate that the first rental item is available for rental.
3. The non-transitory computer readable medium of claim 1 , wherein the instructions to create the new row include instructions to: The data structure is populated with a lease start time corresponding to a time when the first beacon signal was received.
4. The non-transitory computer readable medium of claim 3, wherein the data structure is populated with a lease start time corresponding to a time when the first beacon signal was received, and wherein the instructions to calculate the charge amount include instructions for: determining a lease end time corresponding to a time when the second beacon signal is received; extracting the lease start time from the data structure; and The charge amount is calculated based on the rental duration obtained from the difference between the rental start time and the rental end time.
5. The non-transitory computer readable medium of claim 2, wherein receiving the first beacon signal triggers an exit event to begin rental of the first rental item, and receiving the second beacon signal triggers an entry event to end rental of the rental item.
6. The non-transitory computer readable medium of claim 1, wherein the instructions include instructions for: In response to identifying the user identifier of the second user requesting the rental of the first rental item, a command is sent to the store controller to transport the first rental item from the storage location to the rental pickup location.
7. The non-transitory computer-readable medium of claim 1, wherein the first beacon device comprises a Bluetooth beacon tag attached to the first rental item, wherein the first beacon identifier of the first beacon device comprises an identifier of the first rental item.
8. The non-transitory computer readable medium of claim 1, In response to receiving the first beacon signal, presenting a user interface on the computing device, wherein the user interface is populated with customer information of the second user, rental item information of the first rental item, and an indication as to whether the first rental item is currently rented or available for rent.
9. A computing system comprising: a processor, connected to the memory; as well as a communication module stored on a non-transitory computer readable medium and configured with instructions that, when executed by the processor, cause the processor to: maintaining a data structure that maps user identifiers of users to beacon identifiers of beacon devices associated with rental items leased by the corresponding users, wherein the data structure comprises a table having a plurality of rows and each row of the table corresponds to a rental item being leased, wherein each row comprises an identifier of the rental item, a beacon identifier of a beacon device attached to the rental item, a subscription identifier indicating that a first user is leasing the rental item, and a user identifier of the first user who is leasing the rental item, and wherein a row is created in the data structure when a lease of a rental item begins and is removed from the data structure when the lease ends; controlling a wireless receiver of the computing device to listen for a beacon, wherein the wireless receiver listens for the beacon signal according to a listening mode; as well as While in the listening mode, in response to receiving, by the wireless receiver, a first beacon signal from a first beacon device associated with a first rental item: parsing the first beacon signal to identify a type of rental item associated with the first beacon device instead of the first beacon identifier of the first beacon device; Switching to listening to the beacon signal according to a ranging mode; while in the ranging mode, parsing a first beacon signal to identify a first beacon identifier of a first beacon device associated with a first rental item; querying the data structure using a first beacon identifier of a first beacon device to determine whether the first beacon identifier of the first beacon device is mapped within the data structure to a user identifier of a first user; as well as In response to the first beacon identifier of the first beacon device not being mapped within the data structure, indicating that the first rental item is not currently being rented: identifying a user identifier of a second user requesting to rent a first rental item associated with a first beacon identifier of the first beacon device and verifying the user identifier of the second user; creating a new row within the data structure to map the user identifier of the second user to the first beacon identifier of the first beacon device to indicate that the second user is now renting the first rental item; as well as A first beacon device associated with the first rental item is configured to set a first beacon identifier of the first beacon device to the subscription identifier to indicate that the second user is now renting the first rental item.
10. The computing system of claim 9, wherein the instructions include instructions that cause the processor to: receiving, by the wireless receiver, a second beacon signal from the first beacon device; parsing the second beacon signal to identify a first beacon identifier of the first beacon device; querying the data structure using the first beacon identifier of the first beacon device to determine that the first rental item is being rented by the second user based on the data structure including the new row mapping the user identifier of the second user to the first beacon identifier of the first beacon device; Calculating a charge amount for the second user to rent the first rental item; executing a charging command to charge the charging amount to the account of the second user; as well as The new row is removed from the data structure to indicate that the first rental item is not currently being rented.
11. The computing system of claim 10, wherein the instructions include instructions that cause the processor to: In response to determining that the first rental item is being returned to end the rental, the first beacon device is configured to reset a first beacon identifier of the first beacon device from the subscription identifier to an identifier of the first rental item.
12. The computing system of claim 9, wherein the instructions include instructions that cause the processor to: Verification is performed to authenticate the user for renting the rental item.
13. The computing system of claim 9, wherein the instructions include instructions that cause the processor to: At least one of facial recognition verification, voice recognition verification, fingerprint recognition verification, or biometric verification is performed to authenticate the second user for renting the first rental item.
14. The computing system of claim 13, wherein the instructions include instructions that cause the processor to: In response to authenticating the second user: creating a subscription identifier to indicate that the second user is now renting the first rental item; and The first beacon device is dynamically configured to set a first beacon identifier of the first beacon device from an identifier of the first rental item to a subscription identifier.
15. A computer-implemented method, the computer-implemented method involving a computing device including a processor, and the computer-implemented method comprising: maintaining, by a processor, a data structure that maps user identifiers of users to beacon identifiers of beacon devices associated with rental items rented by the corresponding users, wherein the data structure comprises a table having a plurality of rows and each row of the table corresponds to a rental item being rented, wherein each row comprises an identifier of the rental item, a beacon identifier of a beacon device attached to the rental item, a reservation identifier indicating that a first user is renting the rental item, and a user identifier of the first user who is renting the rental item, and wherein a row is created in the data structure when a rental of a rental item begins and is removed from the data structure when the rental ends; controlling, by the processor, a wireless receiver of the computing device to listen for a beacon signal transmitted by a beacon device associated with the rental item, wherein the wireless receiver listens for the beacon signal according to a listening mode; as well as While in the listening mode, in response to receiving, by the wireless receiver, a first beacon signal from a first beacon device associated with a first rental item: parsing the first beacon signal to identify a type of rental item associated with the first beacon device instead of the first beacon identifier of the first beacon device; Switching to listening to the beacon signal according to a ranging mode; while in the ranging mode, parsing, by a processor, a first beacon signal to identify a first beacon identifier of a first beacon device associated with a first rental item; querying, by the processor, the data structure using a first beacon identifier of the first beacon device to determine whether the first beacon identifier of the first beacon device is mapped within the data structure to a user identifier of the first user; as well as In response to the first beacon identifier of the first beacon device not being mapped within the data structure, indicating that the first rental item is not currently being rented: identifying, by the processor, a user identifier of a second user requesting to rent a first rental item associated with a first beacon identifier of the first beacon device and verifying the user identifier of the second user; creating, by the processor, a new row in the data structure to map the user identifier of the second user to the first beacon identifier of the first beacon device to indicate that the second user is currently renting the first rental item; as well as A first beacon device associated with the first rental item is configured, by the processor, to set a first beacon identifier of the first beacon device to a subscription identifier to indicate that the second user is now renting the first rental item.
16. The computer-implemented method of claim 15, further comprising: receiving, by the wireless receiver, a second beacon signal from the first beacon device; parsing the second beacon signal to identify a first beacon identifier of the first beacon device; querying the data structure using the first beacon identifier of the first beacon device to determine that the first rental item is being rented by the second user based on the data structure including the new row mapping the user identifier of the second user to the first beacon identifier of the first beacon device; Calculating a charge amount for the second user to rent the first rental item; executing a charging command to charge the charging amount to the account of the second user; as well as The new row is removed from the data structure to indicate that the first rental item is not currently being rented.
17. The computer-implemented method of claim 16, further comprising: parsing the second beacon signal to extract motion sensor data collected during the rental of the first rental item; evaluating the motion sensor data to determine an amount of time the first rental item is being operated, wherein the first rental item is determined to be being operated when a value of the motion sensor data exceeds a threshold value indicative of operational movement of the first rental item; and The charge amount is calculated based on the amount of time the first rental item is operated.
18. The computer-implemented method of claim 16, further comprising: parsing the second beacon signal to extract temperature sensor data collected during the rental of the first rental item; evaluating the temperature sensor data to determine an amount of time the first rental item is being operated, wherein the first rental item is determined to be being operated when a value of the temperature sensor data exceeds a threshold value indicative of an operating temperature of the first rental item; and The charge amount is calculated based on the amount of time the first rental item is operated.
19. The computer-implemented method of claim 15, further comprising: parsing the second beacon signal to extract sensor data collected during the rental of the first rental item; evaluating the sensor data to determine an amount of time the first rental item is being operated, wherein when a value of the sensor data exceeds a threshold value indicative of operation of the first rental item, determining that the first rental item is being operated; and The charge amount is calculated based on the amount of time the first rental item is operated.
20. A computer program product comprising instructions which, when executed by one or more processors of a computer, cause the computer to perform the computer-implemented method of any one of claims 15-19.
Citation Information
Patent Citations
Fully automated vehicle rental system
US20010037298A1
Autonomous rental store
US20030125961A1
Education proximity services
US9432808B1