System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user

Information

  • Patent Grant
  • 12301575
  • Patent Number
    12,301,575
  • Date Filed
    Tuesday, May 23, 2023
    2 years ago
  • Date Issued
    Tuesday, May 13, 2025
    12 days ago
Abstract
A computing system may receive a request of the user for a first action of the user with an entity. In connection with granting the request of the user, the computing system may configure a token for use by the user and the entity such that (i) the entity is added as an approved entity, and (ii) the token is configured with a resource amount of the first action as a usage threshold of the token. The computing system may receive a request of the entity to use the token. The computing system may determine whether granting the request of the entity would cumulatively exceed the usage threshold of the token. Based on a determination that granting the request of the entity would not cumulatively exceed the resource usage of the token, the computing system may grant the request of the entity to use the token.
Description
BACKGROUND

Tokens (e.g., web tokens) may be used in computing systems in various ways, including authentication, authorization, or for information exchange. For example, when a user successfully logs in using their credentials, a token may be returned and used to authenticate the user. After a user has successfully logged in, an application may request to access routes, services, or resources (e.g., Application Programming Interfaces (APIs)) on behalf of that user. To do so, the token may be exchanged. Further, tokens may be used to securely transmit information between parties because a token may be signed, which provides confidence that the senders are who they say they are.


SUMMARY

Despite the beneficial use cases of tokens described above, tokens have a number of drawbacks related to authorization and security. For example, malicious actors may steal a token and use it without the original user's permission. In existing computing systems, this is possible because whoever has possession of a token is able to use it. Because a token may be used for any purpose once a third-party has possession or access to the token, it can be difficult for a user (e.g., the owner of the token) to control how the token is used. This is true even for third parties that may initially be given permission to use the token. Eventually, the third-party that was initially granted access to the token may use it in ways that the user has not authorized. For example, with respect to typical token systems, a cloud system may be authorized (e.g., via a token) to automatically train a machine learning model. Although the user may wish to control the amount of resources (e.g., computing power, computing time, etc.) that is used to train the machine learning model, the cloud system may end up using more than the requested amount of resources or may use a training dataset for longer than is authorized. Typical token systems provide no mechanism that allows the user to enforce resource limitations on the use of the token beyond those limitations which are already applied to the user's usage.


To address these issues, non-conventional methods and systems described herein provide the ability for tokens to be configured for limited use by a set number of users or entities. In this way, a user device may be provided better control over how a token is used. For example, a cloud system may be authorized (e.g., via a token) to automatically train a machine learning model. A token of the user device can be configured specifically for allowing the cloud system to train the machine learning model a number of times using a specified amount of resources (e.g., a specified amount of resources from a set of resources allocated to the user at the cloud system or a set of resources allocated to the user at one or more other cloud systems). For example, the token may authorize the cloud system to train the machine learning model a first time using a first amount of computing resources and a second time using a second amount of computing resources. Any additional training of the machine learning model by the cloud system may be prevented due to the configuration of the token.


In some embodiments, a computing system may receive a request of the user for a first action of the user with an entity. For example, the action may include authorizing a cloud system to use a set of training data for a limited amount of time. In connection with granting the request of the user, the computing system may configure a token for use by the user and the entity such that (i) the entity is added as an approved entity having permission to use the token to facilitate the first action of the user, and (ii) the token is configured with a resource amount of the first action as a usage threshold of the token for actions of the entity related to the first action. For example, the cloud system may be added as an approved entity and may be allowed to use the training data for a certain time period (e.g., two weeks or other time period) or a certain amount of the training data (e.g., ten gigabytes a day or other resource amount limitation).


The computing system may receive a request of the entity to use the token (e.g., to train a machine learning model using the dataset). The computing system may determine whether granting the request of the entity would cumulatively exceed the usage threshold of the token (e.g., the maximum amount of time that the cloud system is allowed to use the training data). Based on a determination that granting the request of the entity would not cumulatively exceed the resource usage of the token, the computing system may grant the request of the entity to use the token.


Various other aspects, features, and advantages of the disclosure will be apparent through the detailed description of the disclosure and the drawings attached hereto. It is also to be understood that both the foregoing general description and the following detailed description are examples and not restrictive of the scope of the disclosure. As used in the specification and in the claims, the singular forms of “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. In addition, as used in the specification and the claims, the term “or” means “and/or” unless the context clearly dictates otherwise. Additionally, as used in the specification, “a portion,” refers to a part of, or the entirety of (i.e., the entire portion) a given item (e.g., data) unless the context clearly dictates otherwise.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 shows an example system for enabling third-party use of a token to perform a network operation, in accordance with some embodiments.



FIG. 2 shows example request thresholds, in accordance with some embodiments.



FIG. 3 shows example token parameters, in accordance with some embodiments.



FIG. 4 shows an example flowchart of the actions involved in enabling multiple third-party auxiliary use of a token, in accordance with some embodiments.



FIG. 5 shows an example computing system that may be used in accordance with some embodiments.





DETAILED DESCRIPTION OF THE DRAWINGS

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. It will be appreciated, however, by those having skill in the art, that the disclosure may be practiced without these specific details or with an equivalent arrangement. In other cases, some structures and devices are shown in block diagram form to avoid unnecessarily obscuring the disclosure.



FIG. 1 shows an example computing system 100 for enabling third-party use of a token to perform a network operation. A computing system may receive, from a user, a request for a first action of the user with an entity. For example, the action may include authorizing the entity to store data of the user at a data storage system associated with the entity. In connection with granting the request of the user, the computing system may configure a token for use by the user and the entity. In one use case, the token may be configured such that (i) the entity is added as an approved entity of the token (e.g., having permission to use the token to facilitate the first action of the user), and (ii) a resource amount of the first action is set as a usage threshold of the token for actions of the entity related to the first action. For example, the entity may be given authorization to store data of the user and the resource amount may indicate an amount of data that the entity is authorized to store. The computing system may receive a request of the entity to use the token (e.g., to complete a transfer of data from the user to the entity). The computing system may determine whether granting the request of the entity would cumulatively exceed the usage threshold of the token (e.g., the maximum amount of data that the entity is authorized to store using the token, the maximum number of granted requests of the entity to store data of the user using the token, etc.). Based on a determination that granting the request of the entity would not cumulatively exceed the resource usage of the token, the computing system may grant the request of the entity to use the token.


The system 100 may include a network operation system 102, one or more third-party systems 106, or one or more user devices 104, or other components. The network operation system 102 may include a communication subsystem 112, a resource management subsystem 114, or other components. In some embodiments, network operation system 102 may be implemented in software and may execute on a user device 104 or other components of system 100.


The network operation system 102 may generate an access token for use by an owner user and a third-party entity. The access token may be used multiple times (e.g., a threshold number of times) or the access token may be a single-use access token. The access token may be designated (e.g., by the network operation system 102) to support a network operation between the token owner user and the third-party entity. The network operation system 102 may provide the ability for tokens to be configured for limited use by a set number of users or entities.


The network operation system 102 may provide the ability for tokens to be configured for limited use by a set number of users or entities. A user may be provided better control over how a token is used. For example, a cloud system may be authorized (e.g., via a token) to automatically train a machine learning model. A token of the user device can be configured specifically for allowing the cloud system to train the machine learning model a number of times using a specified amount of resources. For example, the token may authorize the cloud system to train the machine learning model a first time using a first amount of computing resources and a second time using a second amount of computing resources. The machine learning model may be prevented from performing any additional training due to the configuration of the token. In some embodiments, a network operation may include a request to train a machine learning model. For example, the network operation may indicate that a cloud system should train a machine learning model for a particular amount of time (e.g., three days).


The token owner user may designate a third-party entity (e.g., as described in more detail below) as an auxiliary entity (e.g., authorized user) for the token. For example, the token owner may be a user device that designates a particular cloud system of a plurality of cloud systems to perform one or more network operations. The access token may be configured with a token owner usage count threshold by the token owner. For example, the token may indicate that a cloud system may train a machine learning model three times using a particular set of data. Alternatively or additionally, the token may indicate that the cloud system may use a threshold amount of computing resources (e.g., computing time, computing power, etc.) to train the machine learning model.


In some embodiments, a network operation may be a transaction. For example, a network operation may be a card transaction between a user and a merchant. In some embodiments, an issuer of the token (e.g., a virtual card number) may provide a preauthorization or an authorization hold so that the transaction amount is available for the merchant to use (e.g., in the future, when an item is shipped to the user, etc.).


The token owner user may designate a third-party entity (e.g., as described in more detail below) as an auxiliary entity for the token. For example, the token owner may be a user that is shopping via the Internet and the third-party entity may be a merchant. The token may be designated for use by the merchant. The token may be designated for use by only one merchant, in which case no other merchant or user may be able to use the token. The access token may be configured with a token owner usage count threshold by the token owner. For example, the token may be limited to one use or transaction. The use or transaction may include multiple subparts. For example, the token may be configured to be used to pay a third-party entity (e.g., a merchant) in multiple parts. Each part of the payment may be included as the one use or transaction.


The network operation system 102 may detect an owner-initiated request for use of the access token for a first network operation. The first network operation may be a transaction between the owner user (e.g., via the user device 104) and the third-party entity (e.g., via the third-party computing system 106). For example, the owner-initiated request may indicate that a third-party entity should be granted permission to use the token.


The network operation system 102 may bind the token to the third-party entity. Binding the token with the third-party entity may include configuring the token such that the third-party entity is set as an auxiliary entity of the token. For example, setting the third-party entity as an auxiliary entity of the token may include providing permission to the third-party entity to use the token. Configuring the token such that the third-party entity is set as an auxiliary entity may prevent other third-party entities (e.g., any user other than the owner and the third-party entity to which the token has been bound) from using the token.


Binding the token with the third-party entity may include configuring a resource amount of the first network operation as an auxiliary resource threshold of the access token. The network operation system 102 may set a maximum resource amount that the third-party entity is allowed to use in connection with the token. For example, the third-party entity may be allowed to charge up to a maximum amount on the token (e.g., virtual card number) for a transaction. The maximum resource amount may be the total amount the third-party entity may charge to the token for a transaction (e.g., including all subparts of the transaction). For example, if the resource amount configured as an auxiliary resource threshold is $60 and the transaction with the third-party entity includes three payments of $20, the third-party entity may be allowed to charge the token three times for $20 each time, but may be restricted from charging the token after the total amount charged has reached $60.


The network operation system 102 may receive an entity-initiated request of the third-party entity to use the access token. For example, if the third-party entity is the merchant as described in the example above, the merchant may send a request (e.g., to the network operation system) to use the token. The request may include a resource amount of the token that the third-party entity would like to use.


In some embodiments, the network operation system 102 may determine whether the entity that made the request has been granted permission to use resources of the token. If the entity does not have permission to use the token (e.g., has not been bound to the token as described above), the network operation system 102 may deny the request. For example, the network operation system 102 may receive, from a second entity, a second request to use the token. The network operation system 102 may determine that the token has not been configured with the second entity as the approved entity. In response to determining that the token has not been configured with the second entity as the approved entity, the network operation system 102 may deny the second request.


The network operation system 102 may determine whether the resource amount included in the request would exceed (e.g., cumulatively exceed) the resource amount that was configured as an auxiliary resource threshold of the access token. The network operation system 102 may determine whether the auxiliary-entity-initiated request would cumulatively exceed the auxiliary resource threshold of the access token in view of a granting of one or more other auxiliary-entity-initiated requests of the third-party entity to use the access token. For example, the network operation system 102 may determine the sum total of resources that have been previously requested by the third-party entity for the token. If the sum total of resources that have been previously requested when combined with the resource amount included in the request exceed the auxiliary resource threshold, the network operation system 102 may deny the request. For example, if the sum total of resources that have been previously requested is $40 and the resource amount included in the request is $50, then the combined amount is $90. If the auxiliary resource threshold is $60, then the network operation system 102 may deny the request because the combined amount of $90 is greater than $60.


The network operation system 102 may grant a request, for example, in response to determining that the resource amount would not exceed (e.g., cumulatively exceed) the resource threshold (e.g., the auxiliary resource threshold). Granting the request may allow the third-party entity to use the token for the requested amount of resource. For example, by granting the request, the third-party entity may be able to charge the requested amount to the token (e.g., a virtual card number).


The network operation system 102 may deny a request, for example, if the resource amount would exceed (e.g., cumulatively exceed) the resource threshold. For example, the token may include a parameter (e.g., a value) that tracks how much of the resource an entity has used. If the sum of the parameter and the resource amount in the request exceeds the resource threshold, the network operation system 102 may deny the request. The network operation system 102 may receive (e.g., from the entity described above) a second request to use the token. In response to receiving the second request, the network operation system 102 may determine whether granting the second request would exceed the usage threshold of the token. In response to determining that granting the second request would exceed the usage threshold of the token, denying the second request.


In some embodiments, the network operation system 102 may perform one or more additional or alternative checks before granting a request to use resources of the token. The checks may include determining whether more than a threshold number of requests have been made by a particular entity, whether a total number of requests made by any combination of entities has exceeded a threshold number of requests, or other checks. For example, granting the request to use the token may include determining a total number of third-party requests that have been made to use the token, and in response to determining that the total number of third-party requests is less than a threshold number, granting the third-party request to use the token.


As an example, FIG. 2 shows a table with various request thresholds. As shown in the Requests column 251 and the Thresholds column 252, there may be separate request thresholds for different entities and there may be a separate request threshold for the token (e.g., a total amount of times that the token may be used). For example, Entity A may be limited to 4 requests or uses of the token. Entity B may be limited to 16 requests or uses of the token. The total number of times that the token may be used (e.g., the total number of times the token may be approved to be charged or used to access resources) may be 50 times.


Additionally, or alternatively, one or more other checks may include determining whether the request is made after a threshold date. For example, granting the request of an entity may include determining that the request of the entity is received before a threshold date. If the request of the entity is received before the threshold date, the network operation system 102 may grant the request of the entity. The network operation system 102 may deny a request, for example, if the request is made after a threshold date. The threshold date may be stored as a parameter of the token.


The network operation system 102 may update one or more parameters of the token to reflect use of the token for a usage amount indicated by the request of the entity. Updating a parameter of the token may allow the network operation system 102 to make sure that the resources of the token are not overused by the entity or the user. For example, if the token is a cloud service access token, the amount of bandwidth or the number of hours of a cloud service used in connection with the token may be tracked so that a bandwidth or time usage threshold may not be exceeded. As another example, if the token is a virtual transaction card, a monetary amount charged to the virtual transaction card may be tracked so that a threshold amount to be charged (e.g., the resource limit) may not be exceeded. The updating may be in response to granting the request of the entity. The token may include one or more parameters, for example, to indicate a total amount of resources that the token has available, to indicate a resource threshold (e.g., the auxiliary resource threshold described above) for a particular third-party entity, or to indicate a running total amount of resource that a third-party entity has used (e.g., a sum of resource amounts of each request that has been granted in connection with the token). For example, the token may include any parameters discussed in connection with FIGS. 2-3.



FIG. 3 shows a table 300 with example token parameters 301. The token parameters 301 may include a resource limit 305. The resource limit may be a total amount of resources that the token has access to or a total amount of resources that may be used in connection with the token. For example, if the token is a cloud service access token, the resource limit parameter 305 may be a bandwidth threshold or time usage threshold (e.g., number of hours of a cloud service used in connection with the token). As another example, if the token is a virtual transaction card, the resource limit parameter 305 may be a transaction amount threshold associated with the token. The resource threshold for entity parameter 310 may be the auxiliary resource threshold described in connection with FIG. 1 or FIG. 4. The resource threshold for entity parameter 310 may be the maximum amount of resource (e.g., an amount of training data or other data in gigabytes, an amount of network bandwidth in gigabytes, an amount of hours of usage of a cloud service, a monetary amount to be charged to an account, etc.) that can be used or charged to the token by an entity that has been configured as an auxiliary entity of the token (e.g., as described in connection with FIG. 1 or FIG. 4). The resources used by entity parameter 315 may be a running total of the amount of resources that have been used by a particular entity. For example, if a first entity has charged the virtual transaction card twice for $10 each time, the resources used by entity parameter 315 have a value of $20. The parameters described in FIG. 3 may be used to perform one or more actions described in FIG. 1, 2, or 4.


It is contemplated that the actions or descriptions of FIG. 4 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 4 may be done in alternative orders or in parallel to further the purposes of this disclosure. For example, each of these actions may be performed in any order, in parallel, or simultaneously to reduce lag or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in relation to FIGS. 1-3 or FIG. 5 could be used to perform one or more of the actions in FIG. 4.


The user device 104 may be any computing device, including, but not limited to, a laptop computer, a tablet computer, a hand-held computer, smartphone, and other computer equipment (e.g., a server or virtual server), including “smart,” wireless, wearable, or mobile devices. The network operation system 102 may include one or more computing devices described above or may include any type of mobile terminal, fixed terminal, or other device. For example, the network operation system 102 may be implemented as a cloud-computing system and may feature one or more component devices. A person skilled in the art would understand that system 100 is not limited to the devices shown in FIG. 1. Users may, for example, utilize one or more other devices to interact with devices, one or more servers, or other components of system 100. A person skilled in the art would also understand that while one or more operations are described herein as being performed by particular components of the system 100, those operations may, in some embodiments, be performed by other components of the system 100. As an example, while one or more operations are described herein as being performed by components of the network operation system 102, those operations may be performed by components of the user device 104, or third-party system 106. In some embodiments, the various computers and systems described herein may include one or more computing devices that are programmed to perform the described functions.


One or more components of the network operation system 102, user device 104, or third-party system 106, may receive content or data via input/output (I/O) paths. The one or more components of the network operation system 102, the user device 104, or the third-party system 106 may include processors or control circuitry to send and receive commands, requests, and other suitable data using the I/O paths. The control circuitry may include any suitable processing, storage, or I/O circuitry. Each of these devices may include a user input interface or user output interface (e.g., a display) for use in receiving and displaying data. It should be noted that in some embodiments, the network operation system 102, the user device 104, or the third-party system 106 may have neither user input interfaces nor displays and may instead receive and display content using another device (e.g., a dedicated display device such as a computer screen or a dedicated input device such as a remote control, mouse, voice input, etc.).


One or more components or devices in the system 100 may include electronic storages. The electronic storages may include non-transitory storage media that electronically stores information. The electronic storage media of the electronic storages may include one or both of (i) system storage that is provided integrally (e.g., substantially non-removable) with servers or client devices, or (ii) removable storage that is removably connectable to the servers or client devices via, for example, a port (e.g., a universal serial bus (USB) port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). The electronic storages may include one or more of optically readable storage media (e.g., optical discs, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), etc.), solid-state storage media (e.g., flash drive, etc.), or other electronically readable storage media. The electronic storages may include one or more virtual storage resources (e.g., cloud storage, a virtual private network, or other virtual storage resources). The electronic storages may store software algorithms, information determined by the processors, information obtained from servers, information obtained from client devices, or other information that enables the functionality as described herein.



FIG. 1 also includes a network 150. The network 150 may be the Internet, a mobile phone network, a mobile voice or data network (e.g., a 5G or Long-Term Evolution (LTE) network), a cable network, a satellite network, a combination of these networks, or other types of communications networks or combinations of communications networks. The devices in FIG. 1 (e.g., network operation system 102, the user device 104, or the third-party system 106) may communicate (e.g., with each other or other computing systems not shown in FIG. 1) via the network 150 using one or more communications paths, such as a satellite path, a fiber-optic path, a cable path, a path that supports Internet communications (e.g., IPTV), free-space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communications path or combination of such paths. The devices in FIG. 1 may include additional communication paths linking hardware, software, or firmware components operating together. For example, the network operation system 102, any component of the processing system (e.g., the communication subsystem 112, the resource management subsystem), the user device 104, or the third-party system 106 may be implemented by one or more computing platforms.



FIG. 4 is an example flowchart of processing operations of a method that enables the various features and functionality of the systems as described in detail above. The processing operations presented below are intended to be illustrative and non-limiting. In some embodiments, for example, the method may be accomplished with one or more additional operations not described, or without one or more of the operations discussed. Additionally, the order in which the processing operations of the methods are illustrated (and described below) is not intended to be limiting.


In some embodiments, the method may be implemented in one or more processing devices (e.g., a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, or other mechanisms for electronically processing information). The processing devices may include one or more devices executing some or all of the operations of the methods in response to instructions stored electronically on an electronic storage medium. The processing devices may include one or more devices configured through hardware, firmware, or software to be specifically designed for execution of one or more of the operations of the methods. It should be noted that the operations performed by network operation system 102 may be performed using one or more components in system 100 (FIG. 1) or computer system 500 (FIG. 5).



FIG. 4 shows an example flowchart of the actions involved in enabling multiple third-party auxiliary use of a token (e.g., an access token, a single-use access token, a single-use virtual card number, etc.) to facilitate a token-owner-initiated network operation with the third-party entity. For example, process 400 may represent the actions taken by one or more devices shown in FIGS. 1-3 and described above. At 405, network operation system 102 may generate an access token for use by an owner user and a third-party entity. The access token may be designated (e.g., by the network operation system 102) to support a network operation between the token owner user and the auxiliary entity. The token owner user may designate a third-party entity (e.g., as described below at 415) as an auxiliary entity for the token. For example, the token owner may be a user that is shopping via the Internet and the third-party entity may be a merchant or other service provider. The token may be designated for use by the service provider. In one use case, the token may be designated for use by only one merchant, in which case no other merchant or user may be able to use the token. The access token may be configured with a token owner usage count threshold by the token owner. For example, the token may be limited to one use or transaction. The use or transaction may include multiple subparts. For example, the token may be configured to be used to pay a third-party entity (e.g., a merchant) in multiple parts. Each part of the payment may be included as the one use or transaction.


At 410, network operation system 102 may detect an owner-initiated request for use of the access token for a first network operation. The first network operation may be a transaction between the owner user and the third-party entity. For example, the owner-initiated request may indicate that a third-party entity should be granted permission to use the token.


At 415, network operation system 102 may bind the token to the third-party entity. Binding the token with the third-party entity may include configuring the token such that the third-party entity is set as an auxiliary entity of the token. For example, setting the third-party entity as an auxiliary entity of the token may include providing permission to the third-party entity to use the token. Configuring the token such that the third-party entity is set as an auxiliary entity may prevent other third-party entities (e.g., any user other than the owner and the third-party entity to which the token has been bound) from using the token.


Binding the token with the third-party entity may include configuring a resource amount of the first network operation as an auxiliary resource threshold of the access token. The network operation system 102 may set a maximum resource amount that the third-party entity is allowed to use in connection with the token (e.g., an amount of data from a dataset, an amount of network bandwidth in gigabytes, an amount of hours of usage of a cloud service, a monetary amount to be charged to an account, etc.). For example, the third-party entity may be allowed to charge up to a maximum amount on the token for a transaction. The maximum resource amount may be the total amount the third-party entity may charge to the token for a transaction (e.g., including all subparts of the transaction). In one use case, where the token is a virtual card number, if the resource amount configured as an auxiliary resource threshold is $60, and the transaction with the third-party entity includes three payments of $20, then the third-party entity may be allowed to charge the token three times for $20 each time, but may be restricted from charging the token after the total amount charged has reached $60.


At 420, network operation system 102 may receive an entity-initiated request of the third-party entity to use the access token. For example, if the third-party entity is the merchant as described in the example above, the merchant may send a request (e.g., to the network operation system) to use the token. The request may include a resource amount of the token that the third-party entity would like to use.


At 425, network operation system 102 may determine whether the resource amount included in the request would exceed (e.g., cumulatively exceed) the resource amount that was configured as an auxiliary resource threshold of the access token at 415. The network operation system 102 may determine whether the auxiliary-entity-initiated request would cumulatively exceed the auxiliary resource threshold of the access token in view of a granting of one or more other auxiliary-entity-initiated requests of the third-party entity to use the access token. For example, the network operation system 102 may determine the sum total of resources that have been previously requested by the third-party entity for the token. If the sum total of resources that have been previously requested when combined with the resource amount included in the request exceed the auxiliary resource threshold, the network operation system 102 may deny the request.


At 430, the network operation system 102 may grant the request received at 420, for example, in response to determining that the resource amount would not exceed (e.g., cumulatively exceed) the resource threshold (e.g., the auxiliary resource threshold). Granting the request may allow the third-party entity to use the token for the requested amount of resource. For example, by granting the request, the third-party entity may be able to charge the requested amount to the token.


At 435, the network operation system 102 may update one or more parameters of the token to reflect use of the token for the resource amount of the entity-initiated request. The token may include one or more parameters, for example, to indicate a total amount of resources that the token has available, to indicate a resource threshold for a particular third-party entity (e.g., the auxiliary resource threshold described above), or to indicate a running total amount of resource that a third-party entity has used (e.g., a sum of resource amounts of each request that has been granted in connection with the token). For example, the token may include any parameters discussed in connection with FIGS. 1-3 above.


It is contemplated that the actions or descriptions of FIG. 4 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 4 may be done in alternative orders or in parallel to further the purposes of this disclosure. For example, each of these actions may be performed in any order, in parallel, or simultaneously to reduce lag or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in relation to FIGS. 1-3 or FIG. 5 could be used to perform one or more of the actions in FIG. 4.



FIG. 5 is a diagram that illustrates an exemplary computing system 500 in accordance with embodiments of the present technique. Various portions of systems and methods described herein may include or be executed on one or more computer systems similar to computing system 500. Further, processes and modules described herein may be executed by one or more processing systems similar to that of computing system 500.


Computing system 500 may include one or more processors (e.g., processors 510a-510n) coupled to system memory 520, an I/O device interface 530, and a network interface 540 via an I/O interface 550. A processor may include a single processor or a plurality of processors (e.g., distributed processors). A processor may be any suitable processor capable of executing or otherwise performing instructions. A processor may include a central processing unit (CPU) that carries out program instructions to perform the arithmetical, logical, and I/O operations of computing system 500. A processor may execute code (e.g., processor firmware, a protocol stack, a database management system, an operating system, or a combination thereof) that creates an execution environment for program instructions. A processor may include a programmable processor. A processor may include general or special purpose microprocessors. A processor may receive instructions and data from a memory (e.g., system memory 520). Computing system 500 may be a units-processor system including one processor (e.g., processor 510a), or a multi-processor system including any number of suitable processors (e.g., 510a-510n). Multiple processors may be employed to provide for parallel or sequential execution of one or more portions of the techniques described herein. Processes, such as logic flows, described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating corresponding output. Processes described herein may be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). Computing system 500 may include a plurality of computing devices (e.g., distributed computer systems) to implement various processing functions.


I/O device interface 530 may provide an interface for connection of one or more I/O devices 560 to computer system 500. I/O devices may include devices that receive input (e.g., from a user) or output information (e.g., to a user). I/O devices 560 may include, for example, graphical user interface presented on displays (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor), pointing devices (e.g., a computer mouse or trackball), keyboards, keypads, touchpads, scanning devices, voice recognition devices, gesture recognition devices, printers, audio speakers, microphones, cameras, or the like. I/O devices 560 may be connected to computer system 500 through a wired or wireless connection. I/O devices 560 may be connected to computer system 500 from a remote location. I/O devices 560 located on a remote computer system, for example, may be connected to computer system 500 via a network and network interface 540.


Network interface 540 may include a network adapter that provides for connection of computer system 500 to a network. Network interface 540 may facilitate data exchange between computer system 500 and other devices connected to the network. Network interface 540 may support wired or wireless communication. The network may include an electronic communication network, such as the Internet, a local area network (LAN), a wide area network (WAN), a cellular communications network, or the like.


System memory 520 may be configured to store program instructions 570 or data 580. Program instructions 570 may be executable by a processor (e.g., one or more of processors 510a-510n) to implement one or more embodiments of the present techniques. Instructions 570 may include modules of computer program instructions for implementing one or more techniques described herein with regard to various processing modules. Program instructions may include a computer program (which in certain forms is known as a program, software, software application, script, or code). A computer program may be written in a programming language, including compiled or interpreted languages, or declarative or procedural languages. A computer program may include a unit suitable for use in a computing environment, including as a stand-alone program, a module, a component, or a subroutine. A computer program may or may not correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program may be deployed to be executed on one or more computer processors located locally at one site or distributed across multiple remote sites and interconnected by a communication network.


System memory 520 may include a tangible program carrier having program instructions stored thereon. A tangible program carrier may include a non-transitory computer-readable storage medium. A non-transitory computer-readable storage medium may include a machine-readable storage device, a machine-readable storage substrate, a memory device, or any combination thereof. Non-transitory computer-readable storage media may include non-volatile memory (e.g., flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read only memory EPROM, EEPROM memory), volatile memory (e.g., RAM, static random access memory (SRAM), synchronous dynamic RAM (SDRAM)), bulk storage memory (e.g., CD-ROM, DVD-ROM, or hard-drives), or the like. System memory 520 may include a non-transitory computer-readable storage medium that may have program instructions stored thereon that are executable by a computer processor (e.g., one or more of processors 510a-510n) to cause the subject matter and the functional operations described herein. A memory (e.g., system memory 520) may include a single memory device or a plurality of memory devices (e.g., distributed memory devices).


I/O interface 550 may be configured to coordinate I/O traffic between processors 510a-510n, system memory 520, network interface 540, I/O devices 560, or other peripheral devices. I/O interface 550 may perform protocol, timing, or other data transformations to convert data signals from one component (e.g., system memory 520) into a format suitable for use by another component (e.g., processors 510a-510n). I/O interface 550 may include support for devices attached through various types of peripheral buses, such as a variant of the peripheral component interconnect (PCI) bus standard or the USB standard.


Embodiments of the techniques described herein may be implemented using a single instance of computer system 500 or multiple computer systems 500 configured to host different portions or instances of embodiments. Multiple computer systems 500 may provide for parallel or sequential processing/execution of one or more portions of the techniques described herein.


Those skilled in the art will appreciate that computer system 500 is merely illustrative and is not intended to limit the scope of the techniques described herein. Computer system 500 may include any combination of devices or software that may perform or otherwise provide for the performance of the techniques described herein. For example, computer system 500 may include or be a combination of a cloud-computing system, a data center, a server rack, a server, a virtual server, a desktop computer, a laptop computer, a tablet computer, a server device, a client device, a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a vehicle-mounted computer, a global positioning system (GPS), or the like. Computer system 500 may also be connected to other devices that are not illustrated or may operate as a stand-alone system. In addition, the functionality provided by the illustrated components may, in some embodiments, be combined in fewer components or distributed in additional components. Similarly, in some embodiments, the functionality of some of the illustrated components may not be provided or other additional functionality may be available.


Those skilled in the art will also appreciate that while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity. In some embodiments, some or all of the software components may execute in memory on another device and communicate with the illustrated computer system via inter-computer communication. Some or all of the system components or data structures may also be stored (e.g., as instructions or structured data) on a computer-accessible medium or a portable article to be read by an appropriate drive, various examples of which are described above. In some embodiments, instructions stored on a computer-accessible medium separate from computer system 500 may be transmitted to computer system 500 via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network or a wireless link. Various embodiments may further include receiving, sending, or storing instructions or data implemented in accordance with the foregoing description upon a computer-accessible medium. Accordingly, the present disclosure may be practiced with other computer system configurations.


In block diagrams, illustrated components are depicted as discrete functional blocks, but embodiments are not limited to systems in which the functionality described herein is organized as illustrated. The functionality provided by each of the components may be provided by software or hardware modules that are differently organized than is presently depicted; for example, such software or hardware may be intermingled, conjoined, replicated, broken up, distributed (e.g., within a data center or geographically), or otherwise differently organized. The functionality described herein may be provided by one or more processors of one or more computers executing code stored on a tangible, non-transitory, machine-readable medium. In some cases, third-party content delivery networks may host some or all of the information conveyed over networks, in which case, to the extent information (e.g., content) is said to be supplied or otherwise provided, the information may be provided by sending instructions to retrieve that information from a content delivery network.


Due to cost constraints, some features disclosed herein may not be presently claimed and may be claimed in later filings, such as continuation applications or by amending the present claims. Similarly, due to space constraints, neither the Abstract nor the Summary section of the present document should be taken as containing a comprehensive listing of all such disclosures or all aspects of such disclosures.


It should be understood that the description and the drawings are not intended to limit the disclosure to the particular form disclosed, but to the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure as defined by the appended claims. Further modifications and alternative embodiments of various aspects of the disclosure will be apparent to those skilled in the art in view of this description. Accordingly, this description and the drawings are to be construed as illustrative only and are for the purpose of teaching those skilled in the art the general manner of carrying out the disclosure. It is to be understood that the forms of the disclosure shown and described herein are to be taken as examples of embodiments. Elements and materials may be substituted for those illustrated and described herein, parts and processes may be reversed or omitted, and certain features of the disclosure may be utilized independently, all as would be apparent to one skilled in the art after having the benefit of this description of the disclosure. Changes may be made in the elements described herein without departing from the spirit and scope of the disclosure as described in the following claims. Headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description.


As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). The words “include,” “including,” “includes,” and the like mean including, but not limited to. As used throughout this application, the singular forms “a,” “an,” and “the” include plural referents unless the content explicitly indicates otherwise. Thus, for example, reference to “an element” or “the element” includes a combination of two or more elements, notwithstanding use of other terms and phrases for one or more elements, such as “one or more.” The term “or” is, unless indicated otherwise, non-exclusive (i.e., encompassing both “and” and “or”). Terms describing conditional relationships, for example, “in response to X, Y,” “upon X, Y,” “if X, Y,” “when X, Y,” and the like, encompass causal relationships in which the antecedent is a necessary causal condition, the antecedent is a sufficient causal condition, or the antecedent is a contributory causal condition of the consequent (e.g., “state X occurs upon condition Y obtaining” is generic to “X occurs solely upon Y” and “X occurs upon Y and Z”). Such conditional relationships are not limited to consequences that instantly follow the antecedent obtaining, as some consequences may be delayed, and in conditional statements, antecedents are connected to their consequents, for example, the antecedent is relevant to the likelihood of the consequent occurring. Statements in which a plurality of attributes or functions are mapped to a plurality of objects (e.g., one or more processors performing actions A, B, C, and D) encompasses both all such attributes or functions being mapped to all such objects and subsets of the attributes or functions being mapped to subsets of the attributes or functions (e.g., both or all processors each performing actions A-D, and a case in which processor 1 performs action A, processor 2 performs action B and part of action C, and processor 3 performs part of action C and action D), unless otherwise indicated. Further, unless otherwise indicated, statements that one value or action is “based on” another condition or value encompass both instances in which the condition or value is the sole factor and instances in which the condition or value is one factor among a plurality of factors. The term “each” is not limited to “each and every” unless indicated otherwise. Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic processing/computing device.


The above-described embodiments of the present disclosure are presented for purposes of illustration and not of limitation, and the present disclosure is limited only by the claims which follow. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems or methods described above may be applied to, or used in accordance with, other systems or methods.


The present techniques will be better understood with reference to the following enumerated embodiments:


1. A method comprising: receiving a request of the user for a first action of the user with an entity; in connection with granting the request of the user, configuring a token for use by the user and the entity such that (i) the entity is added as an approved entity having permission to use the token to facilitate the first action of the user, and (ii) the token is configured with a resource amount of the first action as a usage threshold of the token for actions of the entity related to the first action; receiving a request of the entity to use the token; determining whether granting the request of the entity would cumulatively exceed the usage threshold of the token, the determining related to the usage threshold being based on multiple requests of the entity to use the token; and based on a determination that granting the request of the third party would not cumulatively exceed the resource usage of the token, granting the request of the entity to use the token.


2. The method of any of the preceding embodiments, further comprising: updating one or more parameters of the token to reflect use of the token for a usage amount indicated by the request of the entity.


3. The method of any of the preceding embodiments, further comprising: receiving a second request to use the token; determining whether granting the second request would exceed the usage threshold of the token; and, denying the second request based on a determination that granting the second request would exceed the usage threshold of the token.


4. The method of any of the preceding embodiments, wherein granting the request of the entity further comprises: determining a total number of third-party requests that have been made to use the token; and granting the request of the entity to use the token based on a determination that the total number of third-party requests does not exceed a threshold number.


5. The method of any of the preceding embodiments, wherein configuring the token for use by the user and the entity comprises: determining the resource amount based on input from the user, wherein the input is associated with the entity.


6. The method of any of the preceding embodiments, further comprising: receiving a second request of the user to use the token; determining whether granting the second request of the user would exceed a maximum usage threshold of the token; and granting the second request based on a determination that granting the second request of the user would not exceed the maximum usage threshold of the token.


7. The method of any of the preceding embodiments, further comprising: receiving, from a second entity, a second request to use the token; denying the second request based on a determination that the token has not been configured with the second entity as the approved entity.


8. The method of any of the preceding embodiments, wherein granting the request of the entity comprises: determining that the request of the entity is received before a threshold date; and granting the request of the entity based on (i) the determination that granting of the third-party request would not exceed the usage threshold of the token, and (ii) a determination that the auxiliary-entity-initiated request is received before the threshold date.


9. The method of any of the preceding embodiments, wherein configuring the token comprises configuring the token as a single-use access token for use by the user as a token owner user and the entity as an auxiliary entity, the single-use access token being designated to support an action of the token owner user with the auxiliary entity, the single-use access token being configured with a token owner usage count threshold of one use by the token owner.


10. The method of claim 9, wherein, in response to detecting an owner-initiated request for use of the single-use access token for the first action of the token owner user with the entity, binding the single-use access token to the entity such that the single-use access token is configured with (i) the entity as the auxiliary entity of the single-use access token, and (ii) the resource amount of the first action as an auxiliary resource threshold of the single-use access token for actions of the auxiliary entity related to the first action.


11. A tangible, non-transitory, machine-readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising those of any of embodiments 1-10.


12. A system comprising: one or more processors; and memory storing instructions that, when executed by the processors, cause the processors to effectuate operations comprising those of any of embodiments 1-10.


13. A system comprising means for performing any of embodiments 1-10.

Claims
  • 1. A system for enabling multiple third-party auxiliary to use a token to facilitate a token-owner-initiated network operation with a third party, the system comprising: one or more processors; andmemory storing instructions that, when executed by the one or more processors, cause operations comprising: in response to detecting a token-owner-initiated request to use a token for a transaction associated with a token owner user with a third-party entity, configuring the token for multiple auxiliary uses by the third-party entity for the transaction, wherein configuring the token comprises configuring the token as a single-use virtual token for multiple auxiliary uses by the third-party entity for the transaction, wherein (i) the third-party entity is added as an auxiliary entity that is approved to use the token to complete the transaction associated with the token owner user, and (ii) the token is configured with a resource amount as a resource amount usage threshold associated with the transaction;after granting a first third-party request of the third-party entity to use the token for a first subpart of the transaction, receiving a second third-party request of the third-party entity to continue use of the token for a second subpart of the transaction, the first subpart of the transaction corresponding to a first amount of resources, the second subpart corresponding to a second amount of resources;determining whether a sum comprising the first amount and the second amount would exceed the resource amount usage threshold of the token;granting the second third-party request to use the token based on a determination that the sum would not exceed the token's resource amount usage threshold associated with the transaction;after granting the first and second third-party requests of the third-party entity, receiving at least one other third-party request of the third-party entity to use the token for at least one other subpart of the transaction; anddenying the at least one other third-party request based on at least one other resource amount of the at least one other third-party request cumulatively exceeding the resource amount usage threshold of the token.
  • 2. The system of claim 1, the operations further comprising: receiving at least one third-party request of a second third-party entity to use the token;in response to receiving the at least one third-party request of the second third-party entity, determining whether the token has been configured with the second third-party entity as the auxiliary entity; andin response to determining that the token has not been configured with the second third-party entity as the auxiliary entity, denying the at least one third-party request of the second third-party entity.
  • 3. The system of claim 1, wherein granting the second third-party request to use the token comprises: determining whether the second third-party request is received before a threshold date associated with the transaction; andgranting the second third-party request in response to (i) determining that the resource amount would not cumulatively exceed the resource amount usage threshold of the token, and (ii) determining that the second third-party request is received before the threshold date associated with the transaction.
  • 4. A method comprising: detecting a token-owner-initiated request to use a token for a transaction associated with a token owner user with a third-party entity;configuring the token for multiple auxiliary uses by the third-party entity for the transaction, wherein configuring the token comprises configuring the token as a single-use virtual token for multiple auxiliary uses by the third-party entity for the transaction, wherein (i) the third-party entity is added as an auxiliary entity that is approved to use the token to complete the transaction associated with the token owner user, and (ii) the token is configured with a resource amount as a resource amount usage threshold associated with the transaction;after granting a first third-party request of the third-party entity to use the token for a first subpart of the transaction, receiving a second third-party request of the third-party entity to continue use of the token for a second subpart of the transaction, the first subpart of the transaction corresponding to a first amount of resources, the second subpart corresponding to a second amount of resources;determining that a sum comprising the first amount and the second amount would not exceed the resource amount usage threshold of the token;granting the second third-party request to use the token based on the determination that the sum would not exceed the token's resource amount usage threshold associated with the transaction;after granting the first and second third-party requests of the third-party entity, receiving at least one other third-party request of the third-party entity to use the token for at least one other subpart of the transaction; anddenying the at least one other third-party request based on at least one other resource amount of the at least one other third-party request cumulatively exceeding the resource amount usage threshold of the token.
  • 5. The method of claim 4, further comprising: after configuring the token for use by the third-party entity for the transaction associated with the token owner user, receiving at least one additional third-party request of the third-party entity to use the token for at least one other transaction associated with the token owner user, the at least one other transaction being independent of the transaction associated with the token owner user;determining that the token has not been configured for use with the at least one other transaction associated with the token owner user; anddenying the at least one other third-party request based on the determination that the token has not been configured for use with the at least one other transaction.
  • 6. The method of claim 4, further comprising: receiving at least one third-party request of a second third-party entity to use the token;determining that the token has not been configured with the second third-party entity as the auxiliary entity; anddenying the at least one third-party request of the second third-party entity based on the determination that the token has not been configured with the second third-party entity as the auxiliary entity.
  • 7. The method of claim 4, wherein granting the second third-party request to use the token comprises: determining that the second third-party request is received before a threshold date related to the transaction; andgranting the second third-party request based on (i) the determination that the resource amount would not cumulatively exceed the resource amount usage threshold of the token, and (ii) the determination that the second third-party request is received before the threshold date.
  • 8. The method of claim 4, wherein configuring the token for use by the third-party entity comprises: determining, for the resource amount usage threshold of the token, the resource amount based on input from the token owner user indicating a total amount of resources to be used by the third-party entity for the transaction.
  • 9. The method of claim 4, further comprising: receiving a second user request of the token owner user to use the token for the transaction; andgranting the second user request of the token owner user to use the token for the transaction.
  • 10. The method of claim 4, wherein the token comprises a virtual card number, and wherein the token is configured with an overall transaction amount of the transaction as the resource amount usage threshold associated with the transaction.
  • 11. The method of claim 4, wherein the token comprises a web token.
  • 12. One or more non-transitory computer-readable media comprising instructions that, when executed by one or more processors, causes operations comprising: in response to detecting a token-owner-initiated request to use a token for a transaction associated with a token owner user with a third-party entity, configuring the token for multiple auxiliary uses by the third-party entity for the transaction, wherein configuring the token comprises configuring the token as a single-use virtual token for multiple auxiliary uses by the third-party entity for the transaction, wherein (i) the third-party entity is added as an auxiliary entity that is approved to use the token to complete the transaction associated with the token owner user, and (ii) the token is configured with a resource amount as a resource amount usage threshold associated with the transaction;after granting a first third-party request of the third-party entity to use the token for a first subpart of the transaction, receiving a second third-party request of the third-party entity to continue use of the token for a second subpart of the transaction, the first subpart of the transaction corresponding to a first amount of resources, the second subpart corresponding to a second amount of resources;granting the second third-party request to use the token based on a determination that a sum of the first and second amounts would not exceed the token's resource amount usage threshold associated with the transaction;after granting the first and second third-party requests of the third-party entity, receiving at least one other third-party request of the third-party entity to use the token for at least one other subpart of the transaction; anddenying the at least one other third-party request based on at least one other resource amount of the at least one other third-party request cumulatively exceeding the resource amount usage threshold of the token.
  • 13. The one or more non-transitory computer-readable media of claim 12, the operations further comprising: after configuring the token for use by the third-party entity for the transaction associated with the token owner user, receiving at least one additional third-party request of the third-party entity to use the token for at least one other transaction associated with the token owner user, the at least one other transaction being independent of the transaction associated with the token owner user; anddenying the at least one other third-party request based on a determination that the token has not been configured for use with the at least one other transaction associated with the token owner user.
  • 14. The one or more non-transitory computer-readable media of claim 12, the operations further comprising: receiving at least one third-party request of a second third-party entity to use the token; anddenying the at least one third-party request of the second third-party entity based on a determination that the token has not been configured with the second third-party entity as the auxiliary entity.
  • 15. The one or more non-transitory computer-readable media of claim 12, wherein granting the second third-party request to use the token comprises: granting the second third-party request based on (i) the determination that the sum of the first and second amounts would not cumulatively exceed the resource amount usage threshold of the token, and (ii) a determination that the second third-party request is received before a threshold date associated with the transaction.
  • 16. The one or more non-transitory computer-readable media of claim 12, wherein configuring the token for use by the third-party entity comprises: determining, for the resource amount usage threshold of the token, the resource amount based on input from the token owner user indicating a total amount of resources to be used by the third-party entity for the transaction.
  • 17. The one or more non-transitory computer-readable media of claim 12, the operations further comprising: receiving a second user request of the token owner user to use the token for the transaction; andgranting the second user request of the token owner user to use the token for the transaction.
  • 18. The one or more non-transitory computer-readable media of claim 12, wherein the token comprises a virtual card number, and wherein the token is configured with an overall transaction amount of the transaction as the resource amount usage threshold associated with the transaction.
  • 19. The one or more non-transitory computer-readable media of claim 12, wherein the token comprises a web token.
CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of U.S. patent application Ser. No. 17/735,827, filed May 3, 2022. The content of the foregoing application is incorporated herein in its entirety by reference.

US Referenced Citations (826)
Number Name Date Kind
4649479 Advani Mar 1987 A
4901312 Hui Feb 1990 A
5583868 Rashid Dec 1996 A
5602851 Terashita Feb 1997 A
5628023 Bryant May 1997 A
5732080 Ferguson Mar 1998 A
5745490 Ghufran Apr 1998 A
5802056 Ferguson Sep 1998 A
5802296 Morse Sep 1998 A
5870473 Boesch Feb 1999 A
6324583 Stevens Nov 2001 B1
6471207 Schlaifer Oct 2002 B1
6476830 Farmer Nov 2002 B1
6590890 Stolyar Jul 2003 B1
6667984 Chao Dec 2003 B1
6704312 Chang Mar 2004 B1
7068680 Kaltenmark Jun 2006 B1
7072354 Beathard Jul 2006 B1
7149736 Chkodrov Dec 2006 B2
7349406 Robins Mar 2008 B1
7447494 Law Nov 2008 B2
7512973 Chan Mar 2009 B1
7705853 Stauffer Apr 2010 B2
7921456 Chua Apr 2011 B2
7944834 Alesi May 2011 B2
7949116 Swanson May 2011 B2
7984500 Khanna Jul 2011 B1
8066561 Friedman Nov 2011 B1
8086585 Brashers Dec 2011 B1
8190916 Wang May 2012 B1
8219598 Appleton Jul 2012 B1
8261269 Garmark Sep 2012 B2
8316237 Felsher Nov 2012 B1
8341625 Ferris Dec 2012 B2
8533343 Beda, III Sep 2013 B1
8627424 O'Malley Jan 2014 B1
8677449 Beda, III Mar 2014 B1
8739264 Eddings May 2014 B1
8775245 Christie Jul 2014 B2
8793509 Nelson Jul 2014 B1
8800009 Beda, III Aug 2014 B1
8856289 Ansari Oct 2014 B2
8856894 Dean Oct 2014 B1
8990562 Jirka Mar 2015 B2
8990586 Sharma Mar 2015 B2
9033783 Ansari May 2015 B1
9092380 Menendez Jul 2015 B1
9146769 Shankar Sep 2015 B1
9172724 Reddy Oct 2015 B1
9191381 Popp Nov 2015 B1
9197711 Efstathopoulos Nov 2015 B1
9219724 Choudhary Dec 2015 B1
9356968 Dotan May 2016 B1
9391996 Chin Jul 2016 B1
9397990 Taly Jul 2016 B1
9413680 Kusters Aug 2016 B1
9466051 Roth Oct 2016 B1
9536065 Bouse Jan 2017 B2
9544137 Brandwine Jan 2017 B1
9563782 Brisebois Feb 2017 B1
9600844 Bondesen Mar 2017 B2
9787668 Marathe Oct 2017 B1
9842218 Brisebois Dec 2017 B1
9842220 Brisebois Dec 2017 B1
9853823 Krug Dec 2017 B2
9912642 Eidt Mar 2018 B1
9928839 Lester Mar 2018 B1
9935934 Orozco Apr 2018 B1
9948655 Gerweck Apr 2018 B1
9998453 Sharma Jun 2018 B1
10021077 Brown Jul 2018 B1
10084784 Brandwine Sep 2018 B1
10097663 Ferenczi Oct 2018 B1
10158646 Desai Dec 2018 B1
10176008 Aluvala Jan 2019 B2
10181986 Sugiyama Jan 2019 B2
10193880 Jiang Jan 2019 B1
10200359 Sokolov Feb 2019 B1
10200364 Ketharaju Feb 2019 B1
10210710 Lyons Feb 2019 B2
10230693 Dawson Mar 2019 B2
10237298 Nguyen Mar 2019 B1
10250603 Roth Apr 2019 B1
10275764 Nwokolo Apr 2019 B2
10366386 Prabhu Jul 2019 B2
10387870 Spencer, II Aug 2019 B2
10402216 Bell Sep 2019 B1
10440020 Bermudez Oct 2019 B1
10445727 Silverman Oct 2019 B1
10474836 Cieslak Nov 2019 B1
10616278 Johansson Apr 2020 B1
10666657 Threlkeld May 2020 B1
10673862 Threlkeld Jun 2020 B1
10685386 Waldron Jun 2020 B2
10686600 Vo Jun 2020 B1
10687705 Dirghangi Jun 2020 B2
10692138 Nguyen Jun 2020 B1
10706400 Puffer Jul 2020 B1
10715514 Threlkeld Jul 2020 B1
10735198 Tang Aug 2020 B1
10762496 Butler, IV Sep 2020 B2
10783516 Benkreira Sep 2020 B2
10783518 Pearce Sep 2020 B1
10791108 Austin Sep 2020 B2
10805327 Grilli Oct 2020 B1
10817345 Arrasjid Oct 2020 B2
10825015 Wurmfeld Nov 2020 B2
10826703 Shipley Nov 2020 B1
10873578 Rose Dec 2020 B1
10878411 Ko Dec 2020 B2
10897479 Chen Jan 2021 B1
10909582 Brandt Feb 2021 B1
10915891 Winklevoss Feb 2021 B1
10922672 Chitalia Feb 2021 B2
10951606 Shahidzadeh Mar 2021 B1
10958673 Chen Mar 2021 B1
10979403 Mutescu Apr 2021 B1
10985921 Varvarezis Apr 2021 B1
11030219 Holenstein Jun 2021 B1
11044257 Heuts Jun 2021 B1
11048809 Sun Jun 2021 B1
11080412 Moore Aug 2021 B1
11081219 Dods Aug 2021 B1
11087312 Ronca Aug 2021 B2
11113665 Rose Sep 2021 B1
11120438 Belshe Sep 2021 B1
11138599 Young Oct 2021 B1
11139955 So Oct 2021 B1
11164107 Craib Nov 2021 B1
11188887 Limaye Nov 2021 B1
11297050 Wasily Apr 2022 B2
11321110 Anderson May 2022 B1
11368461 Frederick Jun 2022 B2
11416926 Showalter Aug 2022 B1
11423135 Zhang Aug 2022 B1
11425148 Zawoad Aug 2022 B2
11425165 Zheng Aug 2022 B2
11449862 Kaja Sep 2022 B2
11481837 Brandt Oct 2022 B1
11501360 Hoag Nov 2022 B2
11522700 Auerbach Dec 2022 B1
11522703 Jain Dec 2022 B1
11528139 Smets Dec 2022 B2
11539507 Vijayvergia Dec 2022 B1
11595215 Madden Feb 2023 B1
11595372 Sharifi Mehr Feb 2023 B1
11595389 Madden Feb 2023 B1
11606210 Madden Mar 2023 B1
11616650 Panjwani Mar 2023 B1
11704431 Kraus Jul 2023 B2
11750386 Vo Sep 2023 B1
11804955 Blech Oct 2023 B1
11816672 Singh Nov 2023 B1
11836690 Stroke Dec 2023 B1
11849042 Verstraeten Dec 2023 B2
11863564 Podemsky Jan 2024 B1
11880821 Benkreira Jan 2024 B2
11881939 Sloane Jan 2024 B2
11883750 Tallarico Jan 2024 B2
11909860 So Feb 2024 B1
11972415 Panes Apr 2024 B1
12056761 Yang Aug 2024 B2
12113796 Ou Oct 2024 B2
12148014 Bini Nov 2024 B1
20020071413 Choi Jun 2002 A1
20020095479 Schmidt Jul 2002 A1
20020126692 Haartsen Sep 2002 A1
20020128976 O'Connor Sep 2002 A1
20030001882 Macer Jan 2003 A1
20030037237 Abgrall Feb 2003 A1
20030115453 Grawrock Jun 2003 A1
20030149880 Shamsaasef Aug 2003 A1
20030156588 Elbourne Aug 2003 A1
20030163711 Grawrock Aug 2003 A1
20030163787 Hay Aug 2003 A1
20030182242 Scott Sep 2003 A1
20030191964 Satyavolu Oct 2003 A1
20040120358 Unger Jun 2004 A1
20050085181 Tao Apr 2005 A1
20050119943 Fang Jun 2005 A1
20060021006 Rensin Jan 2006 A1
20060029073 Cervello Feb 2006 A1
20060064489 Hars Mar 2006 A1
20060098594 Ganesh May 2006 A1
20060178966 Jung Aug 2006 A1
20060178967 Jung Aug 2006 A1
20060200671 Ishigaki Sep 2006 A1
20060217186 Jorasch Sep 2006 A1
20060229976 Jung Oct 2006 A1
20060235803 Romney Oct 2006 A1
20060236093 Brok Oct 2006 A1
20070038759 Hanson Feb 2007 A1
20070073614 Jung Mar 2007 A1
20070078737 Jung Apr 2007 A1
20070106576 Jung May 2007 A1
20070112660 Jung May 2007 A1
20070115817 Gupta May 2007 A1
20070136185 Jung Jun 2007 A1
20070142032 Balsillie Jun 2007 A1
20070150986 Jung Jun 2007 A1
20070162750 Konig Jul 2007 A1
20070167151 Zinn Jul 2007 A1
20070168214 Jung Jul 2007 A1
20070198305 Jung Aug 2007 A1
20070199058 Baumgart Aug 2007 A1
20070203725 Jung Aug 2007 A1
20070203817 Jung Aug 2007 A1
20070268913 Denecheau Nov 2007 A1
20080002731 Tripathi Jan 2008 A1
20080046362 Easterly Feb 2008 A1
20080083019 Wang Apr 2008 A1
20080086759 Colson Apr 2008 A1
20080113770 Gelber May 2008 A1
20080133392 Jung Jun 2008 A1
20080200244 Rowe Aug 2008 A1
20080215434 Jung Sep 2008 A1
20090024809 Panther Jan 2009 A1
20090043604 Jung Feb 2009 A1
20090070412 D'Angelo Mar 2009 A1
20090117883 Coffing May 2009 A1
20090118001 Kelly May 2009 A1
20090119663 Mukherjee May 2009 A1
20090124307 Lu May 2009 A1
20090125412 Watson May 2009 A1
20090138677 Shattuck May 2009 A1
20090150386 Lichtblau Jun 2009 A1
20090170593 Pacey Jul 2009 A1
20090182673 Al-Herz Jul 2009 A1
20090222815 Dake Sep 2009 A1
20090254978 Rouskov Oct 2009 A1
20090280882 Saghatelyan Nov 2009 A1
20090300599 Piotrowski Dec 2009 A1
20100002880 Yoon Jan 2010 A1
20100057605 Robinson Mar 2010 A1
20100070376 Proud Mar 2010 A1
20100169269 Chandrasekaran Jul 2010 A1
20100196561 Kling Aug 2010 A1
20100210342 Pollack Aug 2010 A1
20100222139 Wang Sep 2010 A1
20100251353 Hodgkinson Sep 2010 A1
20100257232 Joffray Oct 2010 A1
20100274764 Boyd Oct 2010 A1
20100285869 Walker Nov 2010 A1
20100306673 Ben Natan Dec 2010 A1
20100318997 Li Dec 2010 A1
20100325297 Romney Dec 2010 A1
20110030046 Shemenski Feb 2011 A1
20110055585 Lee Mar 2011 A1
20110072039 Tayloe Mar 2011 A1
20110126272 Betzler May 2011 A1
20110131581 Auernhammer Jun 2011 A1
20110131627 Abendroth Jun 2011 A1
20110143835 Sizelove Jun 2011 A1
20110145592 Greiner Jun 2011 A1
20110153502 Jean-Claude Jun 2011 A1
20110166992 Dessert Jul 2011 A1
20110179468 Adams Jul 2011 A1
20110218868 Young Sep 2011 A1
20110244952 Schueller Oct 2011 A1
20110276485 Varga Nov 2011 A1
20110283365 Moritz Nov 2011 A1
20110307947 Kariv Dec 2011 A1
20120003364 Kling Jan 2012 A1
20120023211 Haddad Jan 2012 A1
20120032395 Levine Feb 2012 A1
20120089481 Iozzia Apr 2012 A1
20120117626 Yates May 2012 A1
20120123835 Chu May 2012 A1
20120151211 Kreiner Jun 2012 A1
20120178515 Adams Jul 2012 A1
20120183938 Hilton Jul 2012 A1
20120185593 Zhu Jul 2012 A1
20120191884 Brownlow Jul 2012 A1
20120196629 Movsesyan Aug 2012 A1
20120227095 Wood Sep 2012 A1
20120240212 Wood Sep 2012 A1
20120254943 Li Oct 2012 A1
20120266231 Spiers Oct 2012 A1
20120270661 Smith Oct 2012 A1
20120303516 Fellig Nov 2012 A1
20120311671 Wood Dec 2012 A1
20120311684 Paulsen Dec 2012 A1
20120324242 Kirsch Dec 2012 A1
20120330736 Beckner Dec 2012 A1
20120330830 Mason Dec 2012 A1
20130007465 Movassaghi Jan 2013 A1
20130029306 Pulyassary Jan 2013 A1
20130042115 Sweet Feb 2013 A1
20130047224 Radhakrishnan Feb 2013 A1
20130047259 Radhakrishnan Feb 2013 A1
20130054968 Gupta Feb 2013 A1
20130078949 Pecen Mar 2013 A1
20130086670 Vangpat Apr 2013 A1
20130117567 Chang May 2013 A1
20130125211 Cashman May 2013 A1
20130152171 Kindler Jun 2013 A1
20130159178 Colon Jun 2013 A1
20130173849 Balakrishnan Jul 2013 A1
20130226696 Cook Aug 2013 A1
20130290504 Quady Oct 2013 A1
20130318592 Grier, Sr. Nov 2013 A1
20130340052 Jakobsson Dec 2013 A1
20140012647 Hecht Jan 2014 A1
20140019997 Huang Jan 2014 A1
20140026193 Saxman Jan 2014 A1
20140033278 Nimashakavi Jan 2014 A1
20140033280 Nimashakavi Jan 2014 A1
20140040993 Lorenzo Feb 2014 A1
20140068746 Gonzalez Mar 2014 A1
20140074720 Al-Herz Mar 2014 A1
20140074721 Al-Herz Mar 2014 A1
20140075024 Koza Mar 2014 A1
20140089068 Yehezkel Mar 2014 A1
20140149285 De May 2014 A1
20140172811 Green Jun 2014 A1
20140215638 Nicolas Jul 2014 A1
20140237564 Dudziak Aug 2014 A1
20140244500 Elias Aug 2014 A1
20140245417 Hu Aug 2014 A1
20140256414 Marantelli Sep 2014 A1
20140258155 Suryanarayanan Sep 2014 A1
20140283120 Mao Sep 2014 A1
20140330721 Wang Nov 2014 A1
20140342817 Marantelli Nov 2014 A1
20140344339 Kim Nov 2014 A1
20140349692 Zhou Nov 2014 A1
20140358786 Van Heerden Dec 2014 A1
20140373099 Durbha Dec 2014 A1
20140373104 Gaddam Dec 2014 A1
20140373126 Hussain Dec 2014 A1
20150012986 Sun Jan 2015 A1
20150046922 Allen Feb 2015 A1
20150047007 Colnot Feb 2015 A1
20150066613 Zhou Mar 2015 A1
20150074785 Driscoll Mar 2015 A1
20150088753 Van Der Schueren Mar 2015 A1
20150089233 Roth Mar 2015 A1
20150089568 Sprague Mar 2015 A1
20150096004 Zhou Apr 2015 A1
20150100475 Cummings Apr 2015 A1
20150101026 Kraus Apr 2015 A1
20150106917 Kwok Apr 2015 A1
20150113026 Sharique Apr 2015 A1
20150127546 Saxena May 2015 A1
20150163215 Qin Jun 2015 A1
20150172283 Omnes Jun 2015 A1
20150188779 McCanne Jul 2015 A1
20150200948 Cairns Jul 2015 A1
20150212786 Tait Jul 2015 A1
20150213137 Lohman Jul 2015 A1
20150227732 Doctor Aug 2015 A1
20150237053 Duggana Aug 2015 A1
20150254652 Bondesen Sep 2015 A1
20150262161 McMullan Sep 2015 A1
20150271188 Call Sep 2015 A1
20150278548 Brands Oct 2015 A1
20150281216 Donohue Oct 2015 A1
20150288694 Liebl, III Oct 2015 A1
20150304291 Cook Oct 2015 A1
20150312111 Blanco Oct 2015 A1
20150312236 Ducker Oct 2015 A1
20150326578 Hsu Nov 2015 A1
20150332029 Coxe Nov 2015 A1
20150341295 Kato Nov 2015 A1
20150350188 Gilpin Dec 2015 A1
20150350214 Gilpin Dec 2015 A1
20150365403 Counterman Dec 2015 A1
20150370872 Raghavan Dec 2015 A1
20150373017 Oelke Dec 2015 A1
20150381621 Innes Dec 2015 A1
20160012427 Van Heerden Jan 2016 A1
20160072635 Van Zijst Mar 2016 A1
20160094540 Camenisch Mar 2016 A1
20160132214 Koushik May 2016 A1
20160134616 Koushik May 2016 A1
20160135073 Basilier May 2016 A1
20160140545 Flurscheim May 2016 A1
20160179855 Roman Jun 2016 A1
20160182493 Volini Jun 2016 A1
20160182527 Lietz Jun 2016 A1
20160197933 Lapidous Jul 2016 A1
20160205108 Si Jul 2016 A1
20160217459 Lindner Jul 2016 A1
20160219038 Stephenson Jul 2016 A1
20160224432 Junqueira Aug 2016 A1
20160255167 Green Sep 2016 A1
20160261594 Vishwanath Sep 2016 A1
20160269416 Camenisch Sep 2016 A1
20160283740 Roundtree Sep 2016 A1
20160308995 Youdale Oct 2016 A1
20160321665 Thomas Nov 2016 A1
20160359774 Beardow Dec 2016 A1
20160380992 Boodman Dec 2016 A1
20160381010 Bhandari Dec 2016 A1
20170005999 Choyi Jan 2017 A1
20170006433 Mark Jan 2017 A1
20170012980 Sanso Jan 2017 A1
20170053260 Zhou Feb 2017 A1
20170063772 Bapat Mar 2017 A1
20170063931 Seed Mar 2017 A1
20170064550 Sundaresan Mar 2017 A1
20170070483 Sammet Mar 2017 A1
20170070500 Hockey Mar 2017 A1
20170076262 Xing Mar 2017 A1
20170078304 Zhou Mar 2017 A1
20170093700 Gilley Mar 2017 A1
20170093867 Burns Mar 2017 A1
20170094524 Mazzarella Mar 2017 A1
20170099294 Roberts Apr 2017 A1
20170111338 Malatesha Apr 2017 A1
20170116588 Conant Apr 2017 A1
20170126685 Taylor May 2017 A1
20170140611 Marantelli May 2017 A1
20170148087 Vaysman May 2017 A1
20170169433 De Magalhaes Jun 2017 A1
20170221059 Sethi Aug 2017 A1
20170223005 Birgisson Aug 2017 A1
20170237487 Nyarko Aug 2017 A1
20170237744 Chae Aug 2017 A1
20170250991 Ma Aug 2017 A1
20170277774 Eigner Sep 2017 A1
20170278099 Curry Sep 2017 A1
20170288937 Zhang Oct 2017 A1
20170293899 Furche Oct 2017 A1
20170293912 Furche Oct 2017 A1
20170293914 Girish Oct 2017 A1
20170300897 Ferenczi Oct 2017 A1
20170316367 Candito Nov 2017 A1
20170316405 Lonni Nov 2017 A1
20170324719 Mason Nov 2017 A1
20170331828 Caldera Nov 2017 A1
20170331832 Lander Nov 2017 A1
20170364599 Ohanyerenwa Dec 2017 A1
20180033076 Roundtree Feb 2018 A1
20180034858 Gummaraju Feb 2018 A1
20180041518 Jacobs Feb 2018 A1
20180048631 Waltermann Feb 2018 A1
20180098102 Browder Apr 2018 A1
20180109539 Enoki Apr 2018 A1
20180109554 Reddy Apr 2018 A1
20180115538 Blake Apr 2018 A1
20180115652 Russell Apr 2018 A1
20180123882 Anderson May 2018 A1
20180124051 Wang May 2018 A1
20180139192 Pishinov May 2018 A1
20180139204 Votaw May 2018 A1
20180144153 Pead May 2018 A1
20180150892 Waldron May 2018 A1
20180150982 Lee May 2018 A1
20180152418 Tableman May 2018 A1
20180158156 Dintenfass Jun 2018 A1
20180158157 Dintenfass Jun 2018 A1
20180159838 Dintenfass Jun 2018 A1
20180165916 Marantelli Jun 2018 A1
20180181417 Nallapareddy Jun 2018 A1
20180183776 Chander Jun 2018 A1
20180183802 Choyi Jun 2018 A1
20180184288 De Lorenzo Jun 2018 A1
20180189078 Wadley Jul 2018 A1
20180189753 Konda Jul 2018 A1
20180191700 Kong Jul 2018 A1
20180191701 Kong Jul 2018 A1
20180191831 Wadley Jul 2018 A1
20180205742 Vinukonda Jul 2018 A1
20180210550 Tumey Jul 2018 A1
20180210749 Strachan Jul 2018 A1
20180218378 Kukade Aug 2018 A1
20180219846 Poschel Aug 2018 A1
20180219849 Jones Aug 2018 A1
20180224936 Tumey Aug 2018 A1
20180232756 Greene Aug 2018 A1
20180234181 Nyarko Aug 2018 A1
20180247654 Bhaya Aug 2018 A1
20180253727 Ortiz Sep 2018 A1
20180253979 Rey Sep 2018 A1
20180276947 LaDuca Sep 2018 A1
20180278624 Kuperman Sep 2018 A1
20180285871 Long Oct 2018 A1
20180288034 Edwards Oct 2018 A1
20180293553 Dembo Oct 2018 A1
20180309759 Leibmann Oct 2018 A1
20180316665 Caldera Nov 2018 A1
20180317287 Kling Nov 2018 A1
20180322473 Castinado Nov 2018 A1
20180332036 Mokhasi Nov 2018 A1
20180332141 Brown Nov 2018 A1
20180337925 Wallace Nov 2018 A1
20180349581 Ramalingam Dec 2018 A1
20180351944 Cho Dec 2018 A1
20180365672 Lee Dec 2018 A1
20180367526 Huang Dec 2018 A1
20190001222 Parisi Jan 2019 A1
20190005769 Escalante Jan 2019 A1
20190028512 Bailey Jan 2019 A1
20190034903 Arora Jan 2019 A1
20190036864 Reuss Jan 2019 A1
20190050276 Kim Feb 2019 A1
20190050551 Goldman-Kirst Feb 2019 A1
20190050933 Yoo Feb 2019 A1
20190052621 Sahraei Feb 2019 A1
20190052994 Dar Feb 2019 A1
20190057412 Bhattacharjee Feb 2019 A1
20190058712 Jones Feb 2019 A1
20190066214 Teixeira Feb 2019 A1
20190073666 Ortiz Mar 2019 A1
20190080075 Ekberg Mar 2019 A1
20190087893 Pellew Mar 2019 A1
20190089713 Leftwich Mar 2019 A1
20190095918 Stewart Mar 2019 A1
20190099661 LaDuca Apr 2019 A1
20190118034 Herranen Apr 2019 A1
20190122149 Caldera Apr 2019 A1
20190122209 Shah Apr 2019 A1
20190122220 Phillips Apr 2019 A1
20190122239 Yoon Apr 2019 A1
20190124161 Fink Apr 2019 A1
20190130401 Kim May 2019 A1
20190132317 Berezin May 2019 A1
20190139080 Roy May 2019 A1
20190158289 Drouin May 2019 A1
20190158469 Gonzalez May 2019 A1
20190158491 Burmester May 2019 A1
20190158498 Brouillette May 2019 A1
20190158500 Brouillette May 2019 A1
20190158506 Brouillette May 2019 A1
20190165945 Cleaver May 2019 A1
20190180563 Yi Jun 2019 A1
20190190912 de Boer Jun 2019 A1
20190199808 Gamache Jun 2019 A1
20190215342 Eftekhari Roozbehani Jul 2019 A1
20190222567 Caldera Jul 2019 A1
20190236594 Ehrlich-Quinn Aug 2019 A1
20190238317 Nazarian Aug 2019 A1
20190238467 Guan Aug 2019 A1
20190251241 Bykampadi Aug 2019 A1
20190253430 Gamache Aug 2019 A1
20190259025 Hilton Aug 2019 A1
20190260718 Buendgen Aug 2019 A1
20190278903 Polevoy Sep 2019 A1
20190280854 Wadhwa Sep 2019 A1
20190289002 Vegh Sep 2019 A1
20190306189 Torgerson Oct 2019 A1
20190311357 Madisetti Oct 2019 A1
20190312897 Wang Oct 2019 A1
20190318122 Hockey Oct 2019 A1
20190318343 Benkreira Oct 2019 A1
20190319808 Fallah Oct 2019 A1
20190319932 Kandregula Oct 2019 A1
20190319951 West, III Oct 2019 A1
20190325429 Huang Oct 2019 A1
20190325431 Mann Oct 2019 A1
20190327218 Altenhofen Oct 2019 A1
20190332691 Beadles Oct 2019 A1
20190333142 Thomas Oct 2019 A1
20190334718 Li Oct 2019 A1
20190334943 Arvanites Oct 2019 A1
20190340679 Girish Nov 2019 A1
20190354606 Snow Nov 2019 A1
20190362340 Strong Nov 2019 A1
20190362826 Viskovich Nov 2019 A1
20190364035 Smolny Nov 2019 A1
20190377871 Park Dec 2019 A1
20190377903 Fagg Dec 2019 A1
20190380034 Montemurro Dec 2019 A1
20190385156 Liu Dec 2019 A1
20190385159 Beatty Dec 2019 A1
20190391980 Mundar Dec 2019 A1
20190392028 Ryan Dec 2019 A1
20190392411 Jain Dec 2019 A1
20190392443 Piparsaniya Dec 2019 A1
20190394040 Modi Dec 2019 A1
20190394204 Bansal Dec 2019 A1
20200005350 Gruen Jan 2020 A1
20200044827 Snow Feb 2020 A1
20200051060 Vityaz Feb 2020 A1
20200051070 Yoo Feb 2020 A1
20200053089 Singh Feb 2020 A1
20200065783 Fernandes Feb 2020 A1
20200067709 Brown Feb 2020 A1
20200067902 Valecha Feb 2020 A1
20200076601 Tabrizi Mar 2020 A1
20200076813 Felice-Steele Mar 2020 A1
20200076906 Zhou Mar 2020 A1
20200089848 Abdelaziz Mar 2020 A1
20200090135 Malcangio Mar 2020 A1
20200092285 Graham Mar 2020 A1
20200093403 De La Fuente Sanchez Mar 2020 A1
20200097991 Pistilli Mar 2020 A1
20200104467 Lesser Apr 2020 A1
20200104473 Yu Apr 2020 A1
20200104489 Park Apr 2020 A1
20200110890 Woo Apr 2020 A1
20200111064 Spangenberg Apr 2020 A1
20200120083 Kaladgi Apr 2020 A1
20200133718 Koehler Apr 2020 A1
20200134229 Ranger Apr 2020 A1
20200134586 Wu Apr 2020 A1
20200135326 Averbach Apr 2020 A1
20200142936 Kaplan May 2020 A1
20200143362 D K May 2020 A1
20200151724 Edwards May 2020 A1
20200159788 Spangenberg May 2020 A1
20200160465 Spangenberg May 2020 A1
20200167293 Pandya May 2020 A1
20200167765 Singh May 2020 A1
20200187018 Hoffberg Jun 2020 A1
20200195671 Engan Jun 2020 A1
20200201294 Nelson Jun 2020 A1
20200201679 Wentz Jun 2020 A1
20200202997 Hadad Jun 2020 A1
20200210405 Kain Jul 2020 A1
20200210978 Brown Jul 2020 A1
20200210997 Sarin Jul 2020 A1
20200211002 Steinberg Jul 2020 A1
20200218797 Lucic Jul 2020 A1
20200220875 Harguindeguy Jul 2020 A1
20200226576 McMahon Jul 2020 A1
20200234300 Vukich Jul 2020 A1
20200241923 Clow, II Jul 2020 A1
20200241929 Arrasjid Jul 2020 A1
20200250672 Rule Aug 2020 A1
20200252389 Cao Aug 2020 A1
20200252400 Pike Aug 2020 A1
20200258061 Beadles Aug 2020 A1
20200267153 Kang Aug 2020 A1
20200302086 Post Sep 2020 A1
20200320211 Moore Oct 2020 A1
20200320524 Bhasin Oct 2020 A1
20200320526 Yoo Oct 2020 A1
20200327629 Spangenberg Oct 2020 A1
20200327775 Larimer Oct 2020 A1
20200329062 Beauchesne Oct 2020 A1
20200334773 Spangenberg Oct 2020 A1
20200342439 Lau Oct 2020 A1
20200349641 Fidanza Nov 2020 A1
20200351093 Madhuram Nov 2020 A1
20200351266 Cannon, Jr. Nov 2020 A1
20200353366 Titus Nov 2020 A1
20200356897 Diggle Nov 2020 A1
20200358615 Smolny Nov 2020 A1
20200364354 Schwartz Nov 2020 A1
20200374286 Agarwal Nov 2020 A1
20200379977 Saket Dec 2020 A1
20200380498 Benkreira Dec 2020 A1
20200382301 Saket Dec 2020 A1
20200382510 Dunjic Dec 2020 A1
20200389317 Dunjic Dec 2020 A1
20200389552 Trim Dec 2020 A1
20200394721 Gonzalez Dec 2020 A1
20200403992 Huffman Dec 2020 A1
20210019763 Helles Jan 2021 A1
20210027885 Averbach Jan 2021 A1
20210035090 Iannaccone Feb 2021 A1
20210036738 Bronstein Feb 2021 A1
20210036854 Dunjic Feb 2021 A1
20210036890 Mishra Feb 2021 A1
20210042742 McHugh Feb 2021 A1
20210052981 Yi Feb 2021 A1
20210056184 Modani Feb 2021 A1
20210067518 Sloane Mar 2021 A1
20210075616 Mawdsley Mar 2021 A1
20210081947 Hockey Mar 2021 A1
20210084032 Ding Mar 2021 A1
20210086084 Yi Mar 2021 A1
20210097198 Blaikie, III Apr 2021 A1
20210099297 Mane Apr 2021 A1
20210099449 Frederick Apr 2021 A1
20210105274 Bender Apr 2021 A1
20210119767 Fletcher Apr 2021 A1
20210119794 Shpurov Apr 2021 A1
20210135844 Adibi May 2021 A1
20210135846 Adibi May 2021 A1
20210135876 Adibi May 2021 A1
20210144138 Kishimoto May 2021 A1
20210173916 Ortiz Jun 2021 A1
20210174355 Gupta Jun 2021 A1
20210176247 Smith Jun 2021 A1
20210176340 Rose Jun 2021 A1
20210182915 Blaikie, III Jun 2021 A1
20210184852 Feinberg Jun 2021 A1
20210185048 Bulgakov Jun 2021 A1
20210194691 Mars Jun 2021 A1
20210194709 Yadav Jun 2021 A1
20210194871 Batchu Jun 2021 A1
20210218710 Fallah Jul 2021 A1
20210220064 Kottenstette Jul 2021 A1
20210232700 Sahib Jul 2021 A1
20210234674 Soroker Jul 2021 A1
20210234694 Soroker Jul 2021 A1
20210234695 Soroker Jul 2021 A1
20210240814 Sholtis Aug 2021 A1
20210243155 Anderson Aug 2021 A1
20210248214 Goldston Aug 2021 A1
20210250355 Galdo Aug 2021 A1
20210256576 Chew Aug 2021 A1
20210258276 Hua Aug 2021 A1
20210264444 Chen et al. Aug 2021 A1
20210274234 Hardy Sep 2021 A1
20210279361 Apsingekar Sep 2021 A1
20210286861 Churchill Sep 2021 A1
20210288951 Rose Sep 2021 A1
20210312026 Rose Oct 2021 A1
20210312440 Badal-Badalian Oct 2021 A1
20210319047 Hancock Oct 2021 A1
20210319429 Yantis Oct 2021 A1
20210320923 Xu Oct 2021 A1
20210328811 Engan Oct 2021 A1
20210328982 Praszczalek Oct 2021 A1
20210344660 Benkreira Nov 2021 A1
20210349743 Panchomarthi Nov 2021 A1
20210350021 Wang Nov 2021 A1
20210350359 Silverman Nov 2021 A1
20210350805 Huang Nov 2021 A1
20210352134 Bjontegard Nov 2021 A1
20210385085 Wang Dec 2021 A1
20210390170 Olden Dec 2021 A1
20210390196 Lavine Dec 2021 A1
20210392136 Modi Dec 2021 A1
20210409400 Palanisamy Dec 2021 A1
20210409405 Salajegheh Dec 2021 A1
20210409409 Palanisamy Dec 2021 A1
20220007884 Kling Jan 2022 A1
20220019681 Yarabolu Jan 2022 A1
20220038430 Fagan Feb 2022 A1
20220052985 Walters Feb 2022 A1
20220058617 Tibrewala Feb 2022 A1
20220067010 Owen Mar 2022 A1
20220067703 Sarin Mar 2022 A1
20220067704 Yoo Mar 2022 A1
20220067735 Tinnon Mar 2022 A1
20220067984 Choi Mar 2022 A1
20220086133 Killoran, Jr. Mar 2022 A1
20220094694 Sheppard Mar 2022 A1
20220103541 Sethi Mar 2022 A1
20220115012 Huang Apr 2022 A1
20220116398 Rose Apr 2022 A1
20220123944 Wang Apr 2022 A1
20220131844 Sherlock Apr 2022 A1
20220137600 Ramos Peñuela May 2022 A1
20220139566 Gardina May 2022 A1
20220141215 Kwok May 2022 A1
20220159056 Rose May 2022 A1
20220166780 Wang May 2022 A1
20220172199 Dill Jun 2022 A1
20220173891 Kim Jun 2022 A1
20220173893 Basu Jun 2022 A1
20220174066 Rose Jun 2022 A1
20220174117 Momchilov Jun 2022 A1
20220187964 Jensen Jun 2022 A1
20220188818 Roche Jun 2022 A1
20220188925 Blaikie, III Jun 2022 A1
20220191193 Hamilton Jun 2022 A1
20220198394 Chandra Jun 2022 A1
20220207164 Liu Jun 2022 A1
20220207524 Geusz Jun 2022 A1
20220215382 Chen Jul 2022 A1
20220224536 Zhang Jul 2022 A1
20220224688 Sholtis Jul 2022 A1
20220230171 Zhang Jul 2022 A1
20220230174 Khare Jul 2022 A1
20220231834 Das Jul 2022 A1
20220232010 Zhang Jul 2022 A1
20220237609 Rule Jul 2022 A1
20220239484 Farrell Jul 2022 A1
20220239662 Conkle Jul 2022 A1
20220245262 Khedr Aug 2022 A1
20220245608 Burchetta Aug 2022 A1
20220245696 Davidson Aug 2022 A1
20220247564 Mattsson Aug 2022 A1
20220263886 Rose Aug 2022 A1
20220272095 Joseph Aug 2022 A1
20220286846 Arkko Sep 2022 A1
20220292469 An Sep 2022 A1
20220303116 Manuel-Devadoss Sep 2022 A1
20220309387 Rodriguez Sep 2022 A1
20220311597 Goel Sep 2022 A1
20220321346 Ajmera Oct 2022 A1
20220321356 Wang Oct 2022 A1
20220327436 Nidell Oct 2022 A1
20220343331 Shannon, III Oct 2022 A1
20220345426 Demmer Oct 2022 A1
20220345474 Zilbershtein Oct 2022 A1
20220350910 Strombeck Nov 2022 A1
20220375304 Collett Nov 2022 A1
20220376926 Wang Nov 2022 A1
20220417241 Zilbershtein Dec 2022 A1
20230014916 Dubeau Jan 2023 A1
20230018767 Singh Jan 2023 A1
20230032863 Bolser Feb 2023 A1
20230034384 Mao Feb 2023 A1
20230039085 Weller Feb 2023 A1
20230050222 Wang Feb 2023 A1
20230060782 Wang Mar 2023 A1
20230077692 Onoro-Rubio Mar 2023 A1
20230082699 Voldsund Mar 2023 A1
20230097407 Modi Mar 2023 A1
20230102161 Dey Mar 2023 A1
20230102169 Ma Mar 2023 A1
20230106334 Singh Apr 2023 A1
20230109544 Fletcher Apr 2023 A1
20230119691 Kurian Apr 2023 A1
20230121420 Jain Apr 2023 A1
20230126588 Siegmund Apr 2023 A1
20230132485 Darshan May 2023 A1
20230139078 Kiencke May 2023 A1
20230171253 Liu Jun 2023 A1
20230185929 Halstead Jun 2023 A1
20230188347 Sarin Jun 2023 A1
20230214792 Lee Jul 2023 A1
20230222488 Campbell Jul 2023 A1
20230230067 Upadhye Jul 2023 A1
20230239150 Cheng Jul 2023 A1
20230261869 Russell, III Aug 2023 A1
20230284013 Schmidt Sep 2023 A1
20230316241 Wright Oct 2023 A1
20230318831 Arasu Oct 2023 A1
20230319030 Young Oct 2023 A1
20230327875 Tsai Oct 2023 A1
20230334444 Chan Oct 2023 A1
20230336364 Sloane Oct 2023 A1
20230336557 Frato Oct 2023 A1
20230344828 Sloane Oct 2023 A1
20230344829 Patel Oct 2023 A1
20230360040 Childe Nov 2023 A1
20230370266 Kondo Nov 2023 A1
20240184613 Markus Jun 2024 A1
Foreign Referenced Citations (2)
Number Date Country
10-2021-0141639 Nov 2021 KR
2022010978 Jan 2022 WO
Non-Patent Literature Citations (8)
Entry
Tysowski “Oauth Standard for User Authorization of Cloud Services,” Encylopedia of Cloud Computing, John Wiley & Sons, Ltd, pp. 406-416 (Year: 2016).
Naik et al “An Analysis of Open Standard Identity Protocols in Cloud Computing Security Paradigm,” IEEE Computer Society, pp. 428-431 (Year: 2016).
Sendor et al Platform-Level Support for Authorization in Cloud Services with OAuth 2, 2014 IEEE International Conference on Cloud Engineering, IEEE Computer Society, pp. 458-465 (Year: 2014).
Fotiou et al “Access Control Delegation for the Cloud,” 2014 IEEE Infocom Workshop on Cross-Cloud Systems, pp. 13-18 (Year: 2014).
Gomi “Data and Access Management Using Access Tokens for Delegating Authority to Persons and Software,” SECRYPT 2011-International Conference on Security and Cryptography, pp. 457-463 (Year: 2011).
Gan et al “Token-Based Access Control,” IEEE Access, pp. 54189-54199 (Year: 2020).
Gomi “Access Control Model and Design for Delegation using Authorization Tokens, ” 2011 IEEE International Conference on Privacy, Security and Trust and IEEE International Conference on Social Computing, IEEE Computer Society, pp. 1239-1242 (Year: 2011).
International Search Report and Written Opinion issued in corresponding International Application No. PCT/US2023/020857 on Aug. 23, 2023 (11 pages).
Related Publications (1)
Number Date Country
20230362167 A1 Nov 2023 US
Continuations (1)
Number Date Country
Parent 17735827 May 2022 US
Child 18322535 US