IP Library Granted Patent US 10,761,811
Granted Patent B2
US 10,761,811 · App. 16/010,025 · Granted Sep 1, 2020

Systems and methods for managing a database back end as a service

Inventors: Eliot Horowitz (New York, NY); Michael Patrick O'Brien (New York, NY); Eric Robert Daniels (New York, NY)
Assignee: MongoDB, Inc.
G06F8/31G06F8/40G06F9/45558G06F16/2452G06F16/252G06F21/629G06F21/6218G06F21/6227H04L63/102G06F2009/45575G06F2221/2141H04L63/08
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 10,761,811
App. No.
16/010,025
Granted
Sep 1, 2020
Kind
B2
Abstract

Systems and methods for managing a database back end as a service are described. In some aspects, the described systems and methods provide for a cloud-based resource for servicing a request for data from an application to a remote database and/or a service. In some aspects, the described systems and methods provide for a cloud-based application client for requesting data from a remote database and/or a service.

Claims (29)

1. A cloud-based application client for requesting data from a remote database and/or a service, comprising:

a processor configured to:

initialize, from a cloud-based application, a communication link to a cloud-based resource in communication with a remote database and/or a service;

transmit, to the cloud-based resource, a request for data from the remote database and/or the service, wherein:

a declarative statement from the request is parsed to determine one or more parameters for one or more rules including a first rule and a second rule, wherein the declarative statement includes code for executing the request, the code including a read or write operation and a user identification,

the first rule is applied to determine whether the cloud-based application is allowed to make the request based on whether a user role associated with the user identification is authorized to request execution of the read or write operation, and

subsequent to receiving one or more results from the remote database and/or the service at the cloud-based resource, the second rule is applied at the cloud-based resource to determine whether the cloud-based application is allowed to receive the one or more results from the remote database and/or the service based on whether the one or more results are locked from being accessed by the cloud-based application; and

receive the one or more results from the remote database and/or the service responsive to the request and the one or more rules applied to determine whether the cloud-based application is allowed to make the request and receive the one or more results from the remote database and/or the service.

2. The cloud-based application client of claim 1 , wherein the request comprises the one or more parameters as part of a raw expression for the declarative statement, and wherein the raw expression for the declarative statement from the request is translated into a general match expression.

3. The cloud-based application client of claim 2 , wherein translating the raw expression for the declarative statement from the request into the general match expression comprises interpolating the raw expression from the request to replace one or more placeholders in the raw expression with corresponding values.

4. The cloud-based application client of claim 3 , wherein translating the raw expression for the declarative statement from the request into the general match expression further comprises converting the interpolated expression into the general match expression.

5. The cloud-based application client of claim 4 , wherein translating the raw expression for the declarative statement from the request into the general match expression further comprises evaluating the general match expression against a value.

6. The cloud-based application client of claim 1 , wherein receiving the one or more results from the remote database and/or the service responsive to request comprises:

receiving a portion of the one or more results from the remote database responsive to a database request based on the request; and

receiving a remaining portion of the one or more results from the service responsive to the service request based on the portion of the one or more results from the remote database.

7. A method for requesting data from a remote database and/or a service, comprising:

initializing, from a cloud-based application, a communication link to a cloud-based resource in communication with a remote database and/or a service;

transmitting, to the cloud-based resource, a request for data from the remote database and/or the service, wherein:

a declarative statement from the request is parsed to determine one or more parameters for one or more rules including a first rule and a second rule, wherein the declarative statement includes code for executing the request, the code including a read or write operation and a user identification,

the first rule is applied to determine whether the cloud-based application is allowed to make the request based on whether a user role associated with the user identification is authorized to request execution of the read or write operation, and

subsequent to receiving one or more results from the remote database and/or the service at the cloud-based resource, the second rule is applied at the cloud-based resource to determine whether the cloud-based application is allowed to receive the one or more results from the remote database and/or the service based on whether the one or more results are locked from being accessed by the cloud-based application; and

receiving the one or more results from the remote database and/or the service responsive to the request and the one or more rules applied to determine whether the cloud-based application is allowed to make the request and receive the one or more results from the remote database and/or the service.

8. The method of claim 7 , wherein the request comprises the one or more parameters as part of a raw expression for the declarative statement, and wherein the raw expression for the declarative statement from the request is translated into a general match expression.

9. The method of claim 8 , wherein translating the raw expression for the declarative statement from the request into the general match expression comprises interpolating the raw expression from the request to replace one or more placeholders in the raw expression with corresponding values.

10. The method of claim 9 , wherein translating the raw expression for the declarative statement from the request into the general match expression further comprises converting the interpolated expression into the general match expression.

11. The method of claim 10 , wherein translating the raw expression for the declarative statement from the request into the general match expression further comprises evaluating the general match expression against a value.

12. The method of claim 7 , wherein receiving the one or more results from the remote database and/or the service responsive to request comprises:

receiving a portion of the one or more results from the remote database responsive to a database request based on the request; and

receiving a remaining portion of the one or more results from the service responsive to the service request based on the portion of the one or more results from the remote database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2020
From: HOROWITZ, ELIOT; O'BRIEN, MICHAEL PATRICK; DANIELS, ERIC ROBERT
To: MONGODB, INC.
Reel/Frame 051477/0017 →
Continuity (2)
Provisional Application 62521303 · Jun 16, 2017
Related Publication 20180364988A1 · Dec 20, 2018