IP Library › Granted Patent US 12,204,955
Granted Patent B2
US 12,204,955 · App. 18/162,939 · Granted Jan 21, 2025

Multi-cloud infrastructure-database adaptor

Inventors: Stanislav Kondratiev (Seattle, WA); Luke Francis Kearney (Seattle, WA); John Reinart (Redwood Shores, CA)
Assignee: Oracle International Corporation
G06F9/541G06F9/5072G06F9/5077G06F9/547H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,204,955
App. No.
18/162,939
Granted
Jan 21, 2025
Kind
B2
Abstract

Techniques are described for providing, in a first cloud infrastructure (FCI), an adaptor associated with a service provided by the FCI. The adaptor enables the service to be requested by one or more users associated with one or more accounts in a second cloud infrastructure (SCI), where the SCI is different than the FCI. The adaptor receives a first request from a first user associated with a first account in the SCI to create a resource in the FCI. The adaptor executes a workflow to provision the resource using the service, where the workflow includes processing comprising retrieving a resource-principal that is associated with the resource and transmitting a second request to the service provided by the FCI. The second request includes the resource-principal and corresponds to creation of the resource.

Claims (59)

1. A method comprising:

providing, in a first cloud infrastructure, a first adaptor associated with a service provided by the first cloud infrastructure, the first adaptor enabling the service to be requested by one or more users associated with one or more accounts in a second cloud infrastructure, wherein the second cloud infrastructure is different than the first cloud infrastructure;

receiving, by the first adaptor, a first request from a first user associated with a first account in the second cloud infrastructure to create a resource in a second account of the user in the first cloud infrastructure; and

executing, by the first adaptor, a workflow to provision the resource using the service, wherein the workflow includes processing comprising:

retrieving a resource-principal that is associated with the resource;

transmitting a second request to the service provided by the first cloud infrastructure, the second request requesting creation of the resource, wherein the second request includes the resource-principal; and

creating, by a second adaptor in the first cloud infrastructure, a network link that communicatively couples the first account of the first user in the second cloud infrastructure to the second account of the first user in the first cloud infrastructure.

2. The method of claim 1 , further comprising:

obtaining identification information of the second account of the first user in the first cloud infrastructure; and

sending the identification information in the second request.

3. The method of claim 1 , further comprising:

creating a data object in a key-value store associated with the first adaptor, the data object configured to store mapping information of a first identifier of the first account of the first user in the second cloud infrastructure to a resource identifier of the resource.

4. The method of claim 3 , wherein the workflow is further configured to update, in response to the service provisioning the resource, the data object with the resource identifier of the resource.

5. The method of claim 1 , wherein the workflow is further configured for:

provisioning secondary resources associated with the first request, the secondary resources including: provisioning an observability resource that enables metric information of the resource created in the first cloud infrastructure to be transferred to the first account of the first user in the second cloud infrastructure.

6. The method of claim 3 , further comprising:

receiving, by the first adaptor, a third request requesting information related to the resource created in the first cloud infrastructure;

extracting from the data object stored in the key-value store, the resource identifier of the resource based on the third request; and

retrieving, based on the resource identifier, information related to the resource from the service.

7. The method of claim 6 , wherein information related to the resource includes:

a location of the resource,

a size of the resource,

a status of the resource,

a version of the resource, and

a processor count associated with the resource.

8. The method of claim 1 , wherein the first request includes at least a resource group name and a subscription identifier of the first user with respect to the second cloud infrastructure, the first request serving as a first identifier of the first user in the second cloud infrastructure.

9. The method of claim 1 , wherein the first adaptor receives the first request from the first user of the second cloud infrastructure via a multi-cloud console, wherein the multi-cloud console generates the first request.

10. The method of claim 1 , wherein the first cloud infrastructure is different than the second cloud infrastructure, and the resource is a database.

11. The method of claim 10 , wherein the database is one of: an Exa-database, a shared autonomous database, a dedicated autonomous database, or a virtual machine database.

12. One or more computer readable non-transitory media storing computer-executable instructions that, when executed by one or more processors, cause:

providing, in a first cloud infrastructure, a first adaptor associated with a service provided by the first cloud infrastructure, the first adaptor enabling the service to be requested by one or more users associated with one or more accounts in a second cloud infrastructure, wherein the second cloud infrastructure is different than the first cloud infrastructure;

receiving, by the first adaptor, a first request from a first user associated with a first account in the second cloud infrastructure to create a resource in a second account of the user in the first cloud infrastructure; and

executing, by the first adaptor, a workflow to provision the resource using the service, wherein the workflow includes processing comprising:

retrieving a resource-principal that is associated with the resource;

transmitting a second request to the service provided by the first cloud infrastructure, the second request requesting creation of the resource, wherein the second request includes the resource-principal; and

creating, by a second adaptor in the first cloud infrastructure, a network link that communicatively couples the first account of the first user in the second cloud infrastructure to the second account of the first user in the first cloud infrastructure.

13. The one or more computer readable non-transitory media storing computer-executable instructions of claim 12 , further comprising instructions that, when executed by one or more processors, cause:

obtaining identification information of the second account of the first user in the first cloud infrastructure; and

sending the identification information in the second request.

14. The one or more computer readable non-transitory media storing computer-executable instructions of claim 12 , further comprising instructions that, when executed by one or more processors, cause:

creating a data object in a key-value store associated with the first adaptor, the data object configured to store mapping information of a first identifier of the first account of the first user in the second cloud infrastructure to a resource identifier of the resource.

15. The one or more computer readable non-transitory media storing computer-executable instructions of claim 14 , wherein the workflow is further configured to update, in response to the service provisioning the resource, the data object with the resource identifier of the resource.

16. The one or more computer readable non-transitory media storing computer-executable instructions of claim 14 , further comprising instructions that, when executed by one or more processors, cause:

receiving, by the first adaptor, a third request requesting information related to the resource created in the first cloud infrastructure;

extracting from the data object stored in the key-value store, the resource identifier of the resource; and

retrieving, based on the resource identifier, information related to the resource from the service.

17. The one or more computer readable non-transitory media storing computer-executable instructions of claim 12 , wherein the workflow is further configured for:

provisioning secondary resources associated with the first request, the secondary resources including: provisioning an observability resource that enables metric information of the resource created in the first cloud infrastructure to be transferred to the first account of the first user in the second cloud infrastructure.

18. The one or more computer readable non-transitory media storing computer-executable instructions of claim 12 , wherein the first request includes at least a resource group name and a subscription identifier of the first user with respect to the second cloud infrastructure, the first request serving as a first identifier of the first user in the second cloud infrastructure.

19. The one or more computer readable non-transitory media storing computer-executable instructions of claim 12 , wherein the first adaptor receives the first request from the first user of the second cloud infrastructure via a multi-cloud console, wherein the multi-cloud console generates the first request.

20. A computing device comprising:

one or more processors; and

a memory including instructions that, when executed with the one or more processors, cause the computing device to, at least:

provide, in a first cloud infrastructure, a first adaptor associated with a service provided by the first cloud infrastructure, the first adaptor enabling the service to be requested by one or more users associated with one or more accounts in a second cloud infrastructure, wherein the second cloud infrastructure is different than the first cloud infrastructure;

receive, by the first adaptor, a first request from a first user associated with a first account in the second cloud infrastructure to create a resource in a second account of the user in the first cloud infrastructure; and

execute, by the first adaptor, a workflow to provision the resource using the service, wherein the workflow includes processing comprising:

retrieve a resource-principal that is associated with the resource;

transmit a second request to the service provided by the first cloud infrastructure, the second request requesting creation of the resource, wherein the second request includes the resource-principal; and

creating, by a second adaptor in the first cloud infrastructure, a network link that communicatively couples the first account of the first user in the second cloud infrastructure to the second account of the first user in the first cloud infrastructure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: KONDRATIEV, STANISLAV; KEARNEY, LUKE FRANCIS; REINART, JOHN ANDREW
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 063420/0694 →
Continuity (9)
Provisional Application 63388925 · Jul 13, 2022
Provisional Application 63357541 · Jun 30, 2022
Provisional Application 63339297 · May 6, 2022
Provisional Application 63336811 · Apr 29, 2022
Provisional Application 63333965 · Apr 22, 2022
Provisional Application 63321614 · Mar 18, 2022
Provisional Application 63306918 · Feb 4, 2022
Provisional Application 63306007 · Feb 2, 2022
Related Publication 20230247088A1 · Aug 3, 2023
References Cited (153)
US 9699114B1 · Hintermeister et al. · 2017 [cited by applicant]
US 10097372B2 · Bhattacharya et al. · 2018 [cited by applicant]
US 10142160B1 · Adams et al. · 2018 [cited by applicant]
US 10355989B1 · Panchal et al. · 2019 [cited by applicant]
US 10382401B1 · Lee et al. · 2019 [cited by applicant]
US 10680831B2 · Abraham · 2020 [cited by applicant]
US 10965497B1 · Tregenza Dancer · 2021 [cited by applicant]
US 10992576B1 · Panchal et al. · 2021 [cited by applicant]
US 11010191B1 · Hornbeck · 2021 [cited by applicant]
US 11057350B2 · Janakiraman et al. · 2021 [cited by applicant]
US 11082487B1 · Jain et al. · 2021 [cited by applicant]
US 11102074B2 · Hooda et al. · 2021 [cited by applicant]
US 11169974B1 · Brunzema et al. · 2021 [cited by applicant]
US 11218421B1 · Khan et al. · 2022 [cited by applicant]
US 11388227B1 · Sun et al. · 2022 [cited by applicant]
US 11411771B1 · Dawani et al. · 2022 [cited by applicant]
US 11412051B1 · Chiganmi et al. · 2022 [cited by applicant]
US 11552930B2 · Iqbal et al. · 2023 [cited by applicant]
US 11658890B1 · Cherkas · 2023 [cited by applicant]
US 11695697B2 · Hira · 2023 [cited by applicant]
US 11734044B2 · Berry et al. · 2023 [cited by applicant]
US 11979277B2 · Choi et al. · 2024 [cited by applicant]
US 12101222B2 · Choi et al. · 2024 [cited by applicant]
US 12149380B2 · Choi et al. · 2024 [cited by applicant]
US 20040024899A1 · Sturrock et al. · 2004 [cited by applicant]
US 20060236382A1 · Hinton et al. · 2006 [cited by applicant]
US 20130185413A1 · Beaty et al. · 2013 [cited by applicant]
US 20130238785A1 · Hawk et al. · 2013 [cited by applicant]
US 20140059226A1 · Messerli et al. · 2014 [cited by applicant]
US 20140075565A1 · Srinivasan et al. · 2014 [cited by applicant]
US 20140108474A1 · David et al. · 2014 [cited by applicant]
US 20140164942A1 · Lemarquand et al. · 2014 [cited by applicant]
US 20140280738A1 · Kolker et al. · 2014 [cited by applicant]
US 20150052525A1 · Raghu · 2015 [cited by applicant]
US 20150281067A1 · Wu · 2015 [cited by applicant]
US 20150326467A1 · Fullbright et al. · 2015 [cited by applicant]
US 20160088092A1 · Cardona-Gonzalez et al. · 2016 [cited by applicant]
US 20160105393A1 · Thakkar et al. · 2016 [cited by applicant]
US 20160337473A1 · Rao · 2016 [cited by applicant]
US 20170063674A1 · Maskalik et al. · 2017 [cited by applicant]
US 20170097841A1 · Chang et al. · 2017 [cited by applicant]
US 20170134237A1 · Yang · 2017 [cited by examiner]
US 20170155639A1 · Hu et al. · 2017 [cited by applicant]
US 20170214550A1 · Kumar et al. · 2017 [cited by applicant]
US 20170244598A1 · Crouse · 2017 [cited by applicant]
US 20170339176A1 · Backer et al. · 2017 [cited by applicant]
US 20180062920A1 · Srinivasan et al. · 2018 [cited by applicant]
US 20180063193A1 · Chandrashekhar et al. · 2018 [cited by applicant]
US 20180069787A1 · Hill et al. · 2018 [cited by applicant]
US 20180084010A1 · Joseph · 2018 [cited by examiner]
US 20180343300A1 · Halter et al. · 2018 [cited by applicant]
US 20190034367A1 · Kakaiya et al. · 2019 [cited by applicant]
US 20190068403A1 · Lee et al. · 2019 [cited by applicant]
US 20190386831A1 · Jamkhedkar et al. · 2019 [cited by applicant]
US 20200008250A1 · Wang et al. · 2020 [cited by applicant]
US 20200059492A1 · Janakiraman et al. · 2020 [cited by applicant]
US 20200067733A1 · Hira et al. · 2020 [cited by applicant]
US 20200081606A1 · Mo et al. · 2020 [cited by applicant]
US 20200153736A1 · Liebherr et al. · 2020 [cited by applicant]
US 20200235990A1 · Janakiraman et al. · 2020 [cited by applicant]
US 20200249999A1 · Golway et al. · 2020 [cited by applicant]
US 20200314006A1 · Mackie et al. · 2020 [cited by applicant]
US 20200382471A1 · Janakiraman et al. · 2020 [cited by applicant]
US 20210011825A1 · Aggarwal et al. · 2021 [cited by applicant]
US 20210019194A1 · Bahl et al. · 2021 [cited by applicant]
US 20210027291A1 · Ranganathan et al. · 2021 [cited by applicant]
US 20210064347A1 · Junior · 2021 [cited by examiner]
US 20210165871A1 · Jensen · 2021 [cited by examiner]
US 20210203550A1 · Thakkar et al. · 2021 [cited by applicant]
US 20210281581A1 · Atighetchi et al. · 2021 [cited by applicant]
US 20210326161A1 · Son · 2021 [cited by examiner]
US 20210382912A1 · Horowitz et al. · 2021 [cited by applicant]
US 20220038544A1 · Grinstein et al. · 2022 [cited by applicant]
US 20220131827A1 · Gao · 2022 [cited by applicant]
US 20220210068A1 · Brar et al. · 2022 [cited by applicant]
US 20220215111A1 · Ekins · 2022 [cited by applicant]
US 20220263791A1 · Brar et al. · 2022 [cited by applicant]
US 20220350632A1 · Shaikh et al. · 2022 [cited by applicant]
US 20220382590A1 · Hashimoto et al. · 2022 [cited by applicant]
US 20230104368A1 · Miriyala et al. · 2023 [cited by applicant]
US 20230111266A1 · Augustin et al. · 2023 [cited by applicant]
US 20230164224A1 · Adogla et al. · 2023 [cited by applicant]
US 20230231912A1 · Vohra et al. · 2023 [cited by applicant]
US 20230239301A1 · Ivanov · 2023 [cited by examiner]
US 20230291667A1 · Sivakumar et al. · 2023 [cited by applicant]
US 20240080269A1 · Kreger-Stickles et al. · 2024 [cited by applicant]
US 20240097901A1 · Lee · 2024 [cited by examiner]
WO 2014039772A1 · 2014 [cited by applicant]
WO 2014039918A1 · 2014 [cited by applicant]
WO 2018213350A1 · 2018 [cited by applicant]
WO 2020013738A1 · 2020 [cited by applicant]
WO WO2023015574A1 · 2023 [cited by examiner]
Mishra , et al., “AWS Cloudwatch Tutorial”, Available Online at:https://web.archive.org/web/20211019093341/https://mindmajix.com/aws-cloudwatch-tutorial, Oct. 7, 2021, 16 pages. [cited by applicant]
PCT/US2023/012085 , “International Search Report and Written Opinion”, May 12, 2023, 14 pages. [cited by applicant]
Sitaram , et al., “Keystone Federated Security”, 8th International Conference for Internet Technology and Secured Transactions (ICITST—2013), Infonomics Society, Dec. 9, 2013, pp. 659-664. [cited by applicant]
U.S. Appl. No. 18/104,569, Corrected Notice of Allowability, mailed on Nov. 9, 2023, 2 pages. [cited by applicant]
U.S. Appl. No. 18/104,569, Notice of Allowance, mailed on Oct. 30, 2023, 15 pages. [cited by applicant]
U.S. Appl. No. 18/162,924, Non-Final Office Action, mailed on Nov. 9, 2023, 9 pages. [cited by applicant]
“Learn About Connecting Oracle Cloud with Microsoft Azure”, Oracle, 2021, pp. 1-4. [cited by applicant]
Alhamazani , et al., “Cross-Layer Multi-Cloud Real-Time Application QoS Monitoring and Benchmaking as-a-Service Framework”, IEEE Transactions on Cloud Computing, IEEE Computer Society, vol. 7, No. 1, Jan. 1, 2019, pp. 4… [cited by applicant]
Arif , “How to Setup the Interconnect Between Oracle Cloud Infrastructure and Microsoft Azure”, Available Online at: https://medium.com/@j.jamalarif/how-to-setup-the-interconnect-between-oracle-cloud-infrastructure-and-… [cited by applicant]
Arif , “How to Setup the Interconnect Between Oracle Cloud Infrastructure and Microsoft Azure”, Available Online at: https://medium.com/@j.jamalarif/how-to-setup-the-interconnect-between-oracle-cloud-infrastructure-and-… [cited by applicant]
Chandrashekar , “Oracle and Microsoft Interconnect Clouds to Accelerate Enterprise Cloud Adoption”, Available Online at: https://blogs.oracle.com/cloud-infrastructure/post/oracle-and-microsoft-interconnect-clouds-to-acc… [cited by applicant]
PCT/US2023/012075 , “International Search Report and Written Opinion”, May 12, 2023, 12 pages. [cited by applicant]
PCT/US2023/012079 , “International Search Report and Written Opinion”, May 17, 2023, 11 pages. [cited by applicant]
PCT/US2023/012080 , “International Search Report and the Written Opinion”, Apr. 20, 2023, 12 pages. [cited by applicant]
PCT/US2023/012084 , “International Search Report and Written Opinion”, Apr. 25, 2023, 11 pages. [cited by applicant]
PCT/US2023/061713 , “International Search Report and Written Opinion”, Apr. 20, 2023, 11 pages. [cited by applicant]
PCT/US2023/061715 , “International Search Report and Written Opinion”, May 12, 2023, 11 pages. [cited by applicant]
PCT/US2023/061718 , “International Search Report and the Written Opinion”, Apr. 20, 2023, 13 pages. [cited by applicant]
PCT/US2023/061719 , “International Search Report and Written Opinion”, Apr. 20, 2023, 13 pages. [cited by applicant]
PCT/US2023/061721 , “International Search Report and Written Opinion”, May 10, 2023, 14 pages. [cited by applicant]
PCT/US2023/061723 , “International Search Report and Written Opinion”, May 12, 2023, 11 pages. [cited by applicant]
Rao , “Building Multi-Cloud Apps on Microsoft Azure and Oracle Cloud Infrastructure”, Available Online at: https://medium.com/oracledevs/from-azure-to-autonomous-an-enterprise-multi-cloud-journey-an-enterprise-multi-clo… [cited by applicant]
U.S. Appl. No. 18/104,563, Notice of Allowance mailed on Dec. 22, 2023, 7 pages. [cited by applicant]
U.S. Appl. No. 18/104,569, Corrected Notice of Allowability mailed on Dec. 14, 2023, 2 pages. [cited by applicant]
U.S. Appl. No. 18/104,563 , “Final Office Action”, Oct. 5, 2023, 10 pages. [cited by applicant]
U.S. Appl. No. 18/104,563 , “Non Final Office Action”, Jul. 28, 2023, 9 pages. [cited by applicant]
U.S. Appl. No. 18/104,563, Corrected Notice of Allowability mailed on Mar. 27, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 18/162,889, Non-Final Office Action mailed on Mar. 28, 2024, 15 pages. [cited by applicant]
International Application No. PCT/US2023/076771, International Search Report and Written Opinion mailed on Feb. 14, 2024, 13 pages. [cited by applicant]
International Application No. PCT/US2023/076773, International Search Report and Written Opinion mailed on Feb. 26, 2024, 13 pages. [cited by applicant]
International Application No. PCT/US2023/076777, International Search Report and Written Opinion mailed on Feb. 6, 2024, 13 pages. [cited by applicant]
U.S. Appl. No. 18/104,569 , “Notice of Allowance”, May 8, 2024, 16 pages. [cited by applicant]
U.S. Appl. No. 18/162,889 , “Notice of Allowance”, Jul. 8, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 18/162,924 , “Final Office Action”, Jun. 5, 2024, 12 pages. [cited by applicant]
U.S. Appl. No. 18/486,474 , “Non-Final Office Action”, Jun. 27, 2024, 17 pages. [cited by applicant]
PCT/US2023/076774 , “International Preliminary Report on Patentability”, Feb. 8, 2024, 12 pages. [cited by applicant]
PCT/US2023/076778 , “International Search Report and Written Opinion”, Feb. 7, 2024, 12 pages. [cited by applicant]
Vinay , et al., “Building Multi-cloud Apps on 1-20 a Microsoft Azure and Oracle Cloud Infrastructure”, Available at : https://medium.com/oracledevs/from-azure-to-autonomous-an-enterprise-multi-cloud-j ourney-an-enterpri… [cited by applicant]
International Application No. PCT/US2023/076775, International Search Report and Written Opinion mailed on Feb. 7, 2024, 10 pages. [cited by applicant]
U.S. Appl. No. 17/738,988 , “Notice of Allowance”, Apr. 28, 2023, 7 pages. [cited by applicant]
U.S. Appl. No. 18/104,563 , “Corrected Notice of Allowability”, Feb. 12, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 18/104,569 , “Corrected Notice of Allowability”, Feb. 9, 2024, 2 pages. [cited by applicant]
PCT/US2023/076779 , “International Search Report and Written Opinion”, Jan. 3, 2024, 13 pages. [cited by applicant]
U.S. Appl. No. 18/104,569, Corrected Notice of Allowability mailed on Aug. 14, 2024, 2 pages. [cited by applicant]
U.S. Appl. No. 18/104,577, Non-Final Office Action mailed on Sep. 17, 2024, 20 pages. [cited by applicant]
U.S. Appl. No. 18/162,889, Corrected Notice of Allowability mailed on Aug. 5, 2024, 2 pages. [cited by applicant]
U.S. Appl. No. 18/162,924, Advisory Action mailed on Aug. 8, 2024, 4 pages. [cited by applicant]
U.S. Appl. No. 18/162,924, Notice of Allowance mailed on Sep. 13, 2024, 5 pages. [cited by applicant]
U.S. Appl. No. 18/423,065, Non-Final Office Action mailed on Aug. 22, 2024, 19 pages. [cited by applicant]
International Application No. PCT/US2023/012075, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 10 pages. [cited by applicant]
International Application No. PCT/US2023/012079, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 9 pages. [cited by applicant]
International Application No. PCT/US2023/012080, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 10 pages. [cited by applicant]
International Application No. PCT/US2023/012084, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 9 pages. [cited by applicant]
International Application No. PCT/US2023/012085, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 10 pages. [cited by applicant]
International Application No. PCT/US2023/061713, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 9 pages. [cited by applicant]
International Application No. PCT/US2023/061715, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 9 pages. [cited by applicant]
International Application No. PCT/US2023/061718, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 11 pages. [cited by applicant]
International Application No. PCT/US2023/061719, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 11 pages. [cited by applicant]
International Application No. PCT/US2023/061721, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 11 pages. [cited by applicant]
International Application No. PCT/US2023/061723, International Preliminary Report on Patentability mailed on Aug. 15, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 18/162,947 , “Non-Final Office Action”, Nov. 22, 2024, 9 pages. [cited by applicant]
Cited By (7)
US 12,301,556 US 12,341,629 US 12,381,867 US 12,438,865 US 12,592,917 US 12,592,931 US 12,726,381