# US 11,442,965 B2 · Processing techniques for database transaction requests with operations defined by different ORM libraries

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,965 B2
- Document ID: US11442965B2
- Status: Granted
- Kind: B2
- Application number: 16/804,407
- Filed: 2020-02-28
- Published: 2021-09-02
- Granted: 2022-09-13
- Earliest claimed: 2020-02-28
- Assignees: Paypal, Inc.
- Applicants: PayPal, Inc.
- Inventors: Rajasudharsan Adhikesavan; Jaykumar Patel; Nikhil Sharma; Alwin Joseph
- Web page: https://patentgrep.com/patent/US11442965B2

## CPC

- G06F 16/288: {Entity relationship models}
- G06F 16/289: {Object oriented databases}
- G06F 9/466: {Transaction processing}
- G06F 16/212: {with details for data modelling support}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are disclosed relating to processing database transactions that include application operations defined by different object relational mapping (ORM) libraries. A transaction router module executing on a computer system receives, from an application, a request for a first database transaction, where the first database transaction includes first and second application operations. The transaction router module then translates the first application operation to one or more first database operations using a first ORM library and the second application operation to one or more second database operations using a second ORM library. Then, the transaction router module determines one or more database connections for the one or more first database operations and the one or more second database operations. Such techniques may advantageously allow applications to switch between using different persistence frameworks and message broker frameworks without substantial adjustments to application code.

## Claims

### Claim 1

A method, comprising:
receiving, from an application by a transaction router module executing on a computer system, a request for a first database transaction, wherein the first database transaction includes first and second application operations;
translating, by the transaction router module:
the first application operation specified in a first programming language to one or more first database operations using a first object relational mapping (ORM) library; and
the second application operation specified in a second, different programming language to one or more second database operations using a second ORM library; and
determining, by the transaction router module, one or more database connections for the one or more first database operations and the one or more second database operations.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
accessing, by the transaction router module, mapping information that specifies mappings between data sources and transaction manager modules in a set of transaction manager modules included in the transaction router module; and
selecting, by the transaction router module, a transaction manager module to process the first database transaction based on a data source of the first database transaction and the mapping information.

### Claim 3 (depends on 2)

The method of claim 2, wherein the selected transaction manager module accesses different data sources for the first and second database operations using database connections corresponding to the different data sources.

### Claim 4 (depends on 2)

The method of claim 2, wherein prior to selecting a transaction manager module to process the first database transaction, the method further comprises:
receiving, by the transaction router module a configuration file that specifies one or more data sources accessed by the application;
generating, by the transaction router module based on the one or more data sources specified in the configuration file, the set of transaction manager modules and the mapping information; and
storing, by the transaction router module, a local list specifying a map of data source names to transaction manager modules included in the set of transaction manager modules.

### Claim 5 (depends on 2)

The method of claim 2, wherein a first data source specified in the first database transaction is organized according to a first database schema, and wherein a second data source specified in the first database transaction is organized according to a second database schema.

### Claim 6 (depends on 2)

The method of claim 2, wherein a first data source specified in the first database transaction is a first database and wherein a second data source specified in the first database transaction is a second, different database.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
processing, by the transaction router module using different threads, multiple requests for different database transactions that access different data sources, wherein the processing includes generating multiple transaction objects for the first database transaction.

### Claim 8 (depends on 7)

The method of claim 7, wherein the processing further includes:
accessing, by the transaction router module, different data sources for respective transaction objects initiated for the first database transaction.

### Claim 9 (depends on 7)

The method of claim 7, wherein the multiple requests for different database transactions are generated using different data access layer (DAL) application programming interfaces (APIs) that include different corresponding ORM libraries.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving, by the transaction router module, transaction requests from first and second applications using different data access layer (DAL) application programming interfaces (APIs);
determining, by the transaction router module for the first and second applications, whether a first list of transaction manager modules is available to the applications; and
accessing, by the transaction router module based on the determining, one of the first list of transaction manager modules and a second list of transaction manager modules.

### Claim 11

A non-transitory computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising:
receiving, from an application, a request for a first database transaction, wherein the first database transaction includes first and second application operations;
translating:
the first application operation specified in a first programming language to one or more first database operations using a first object relational mapping (ORM) library; and
the second application operation specified in a second, different programming language to one or more second database operations using a second ORM library; and
determining one or more database connections for the one or more first database operations and the one or more second database operations.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the operations further comprise:
accessing mapping information that specifies mappings between data sources and transaction manager modules in a set of transaction manager modules; and
selecting a transaction manager module to process the first database transaction based on a data source of the first database transaction and the mapping information.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the selected transaction manager module accesses different data sources for the first and second database operations using database connections corresponding to the different data sources.

### Claim 14 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein prior to selecting a transaction manager module to process the first database transaction the operations further comprise:
receiving a configuration file that specifies one or more data sources accessed by the application;
generating, based on the one or more data sources specified in the configuration file, the set of transaction manager modules and the mapping information; and
storing a local list specifying a map of data source names to transaction manager modules included in the set of transaction manager modules.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the operations further comprise:
processing, using different threads, multiple requests for different database transactions that access different data sources, wherein the processing includes generating multiple transaction objects for the first database transaction.

### Claim 16

A method, comprising:
receiving, from an application by a transaction router module executing on a computer system, a request for a first database transaction, wherein the first database transaction includes first and second application operations;
translating, by the transaction router module:
the first application operation specified in a first programming language to one or more first database operations using a first object relational mapping (ORM) library; and
the second application operation specified in a second, different programming language to one or more second database operations using a second ORM library;
determining, by the transaction router module, one or more database connections for the one or more first database operations and the one or more second database operations; and
accessing, by the transaction router module based on the determined database connections:
a first data source for the one or more first database operations; and
a second data source for the one or more second database operations.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
accessing, by the transaction router module, mapping information that specifies mappings between data sources and transaction manager modules in a set of transaction manager modules included in the transaction router module; and
selecting, by the transaction router module, a transaction manager module to process the first database transaction based on a data source of the first database transaction and the mapping information.

### Claim 18 (depends on 16)

The method of claim 16, further comprising:
processing, by the transaction router module using different threads, multiple requests for different database transactions that access different data sources, wherein the processing includes generating multiple transaction objects for the first database transaction.

### Claim 19 (depends on 16)

The method of claim 16, wherein the request for the first database transaction is generated using a data access layer (DAL) application programming interface (API), and wherein a configuration file of the DAL API specifies one or more database schemas.

### Claim 20 (depends on 16)

The method of claim 16, wherein the first ORM library is a database abstraction layer (DBAL) library, and wherein the second ORM library is a hibernate library.
