IP Library › Granted Patent US 10,268,742
Granted Patent B2
US 10,268,742 · App. 15/217,948 · Granted Apr 23, 2019

View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform

Inventors: Atul Adya (Redmond, WA); Sergey Melnik (Kirkland, WA); Zlatko Michailov (Redmond, WA); Colin Joseph Meek (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F17/30575G06F17/30294G06F17/30595G06F17/30607
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,268,742
App. No.
15/217,948
Granted
Apr 23, 2019
Kind
B2
Abstract

Application data is synchronized with a database where changes to object data maintained by an application is expressed according to an application schema. Changes to the object data are identified as corresponding to an entity schema. Changes to views of database tables are applied by translation rules to the set of changed entities. The database tables conforming to a database schema are thereafter updated.

Claims (35)

1. A method for synchronizing collections of data, comprising:

receiving at a computing device information indicative of changes to object data maintained by an application, wherein the information indicative of the changes is expressed according to an application schema, wherein the application schema enables the application to change the object data without converting the object data to a database format;

identifying by the computing device one or more changed entities corresponding to the changes to the object data, wherein the one or more changed entities correspond to an entity schema, wherein the entity schema defines an entity type that abstracts out a fragmentation of a plurality of database tables;

producing instructions by the computing device for modifying one or more database tables conforming to a database schema, the instructions based at least in part on identifying a set of changed views by applying one or more translation rules to the set of changed entities; and

sending by the computing device the instructions to a database conforming to the database schema.

2. The method as recited in claim 1 wherein sending instructions to a database comprises processing a database query specifying at least one view operator.

3. The method as recited in claim 1 wherein producing instructions for modifying the one or more database tables comprises converting instructions based on identifying a set of changed views into a database query language.

4. The method as recited in claim 1 wherein identifying one or more changed entities corresponding to the changes to the object data is based at least in part on an entity data model.

5. The method as recited in claim 1 wherein identifying one or more changed entities corresponding to the changes to the object data comprises generating a dependency graph based on the set of changed entities, wherein a node of the dependency graph represents an operation on a table of the relational database of a set of operations, and an edge in the dependency graph indicates that there is a dependency between two nodes connected by the edge.

6. The method as recited in claim 1 wherein sending the instructions to a database conforming to the database schema comprises submitting a set of operations to a relational database based on a dependency order.

7. The method as recited in claim 1 wherein the object data is pushed to the computing device by the application.

8. A system comprising:

a processor; and

a storage device coupled to the processor, the storage device comprising computer-readable instructions that upon execution by the processor at least:

process received information indicative of changes to object data maintained by an application, wherein the information indicative of the changes is expressed according to an application schema, wherein the application schema enables the application to change the object data without converting the object data to a database format;

identify one or more changed entities corresponding to the changes to the object data, wherein the one or more changed entities correspond to an entity schema, wherein the entity schema defines an entity type that abstracts out a fragmentation of a plurality of database tables;

produce instructions for modifying one or more database tables conforming to a database schema, the instructions based at least in part on identifying a set of changed views by applying one or more translation rules to the set of changed entities;

process the instructions for communication to a database conforming to the database schema.

9. The system as recited in claim 8 wherein the computer-readable instructions that upon execution by the processor at least send instructions to a database comprises computer-readable instructions that upon execution by the processor at least process a database query specifying at least one view operator.

10. The system as recited in claim 8 wherein the computer-readable instructions that upon execution by the processor at least produce instructions for modifying the one or more database tables comprises computer-readable instructions that upon execution by the processor at least convert instructions based on identifying a set of changed views into a database query language.

11. The system as recited in claim 8 wherein the computer-readable instructions that upon execution by the processor at least identify one or more changed entities corresponding to the changes to the object data is based at least in part on an entity data model.

12. The method as recited in claim 1 wherein the computer-readable instructions that upon execution by the processor at least identify one or more changed entities corresponding to the changes to the object data comprises computer-readable instructions that upon execution by the processor at least generate a dependency graph based on the set of changed entities, wherein a node of the dependency graph represents an operation on a table of the relational database of a set of operations, and an edge in the dependency graph indicates that there is a dependency between two nodes connected by the edge.

13. The system as recited in claim 1 wherein the application data is pushed to the computing device by the application.

14. The system as recited in of claim 1 , wherein the object data is extracted from a client cache operatively coupled to a server associated with a relational database.

15. A system comprising:

a computing device that upon execution of a plurality of computer-readable instructions is configured to at least:

process received information indicative of changes to object data maintained by an application, wherein the information indicative of the changes is expressed according to an application schema, wherein the application schema enables the application to change the object data without converting the object data to a database format;

identify one or more changed entities corresponding to the changes to the object data, wherein the one or more changed entities correspond to an entity schema, wherein the entity schema defines an entity type that abstracts out a fragmentation of a plurality of database tables;

produce instructions for modifying one or more database tables conforming to a database schema, the instructions based at least in part on identifying a set of changed views by applying one or more translation rules to the set of changed entities;

process the instructions for persisting changes to a database conforming to the database schema.

16. The system as recited in claim 15 wherein the computer-readable instructions that upon execution configure the computing device at least to send instructions to a database comprises computer-readable instructions that upon execution by the processor at least process a database query specifying at least one view operator.

17. The system as recited in claim 15 wherein the computer-readable instructions that upon execution configure the computing device at least to produce instructions for modifying the one or more database tables comprises computer-readable instructions that upon execution by the processor at least convert, instructions based on identifying a set of changed views into a database query language.

18. The system as recited in claim 15 wherein the application data is pushed to the computing device by the application.

19. The system of claim 15 , wherein the computing device comprises a service callable by multiple consumers via a common application programming interface.

20. The method of claim 15 , wherein the computer-readable instructions that upon execution configure the computing device at least to generate a mapping that maps a relationship between the application and the database.

Continuity (2)
Continuation 11725195 · Mar 16, 2007
Related Publication 20170039260A1 · Feb 9, 2017
Cited By (4)
US 12,314,157 US 12,327,092 US 12,353,368 US 12,481,636