Dynamic database mapping
First Claim
1. A method for generating a mapping between a first data model and a second data model, the method being implemented by one or more data processors forming part of at least one computing device and comprising:
- sending, by a server, in response to a request from at least one client device, a request for metadata to a data producer providing data using the second data model, the data producer being remote from the client device, the server in communication with and remote from the data producer and the client device;
receiving, by the server, the metadata of the second data model and a service document from the data producer, the metadata comprising a description of feeds, types, properties, and relationships and the service document comprising lists of top-level feeds and addresses of the feeds;
parsing and analyzing, by the server, the metadata of the second data model into an in-memory database to determine a structure of the second data model;
based on the parsing and analysis of the metadata, creating, by the server and at the server, system tables, the system tables including a first set of tables for storing data from the data producer using the first data model, a second set of tables including information about the metadata of the second data model, and a third set of tables including a mapping between the metadata of the second data model and the first set of tables in the first data model;
populating the first set of tables with data received from the data producer;
sending the system tables to the client device; and
enabling, by the server, access to the system tables to the at least one client device;
wherein the first data model and the second data model are physical data models having different physical structures,wherein a protocol used to communicate between the data producer and the server is different from the protocol used to communicate between the server and the at least one client device,wherein containment properties in the second data model are mapped to containment tables in the first data model, containment tables include one column for each primary key of corresponding entity types,wherein the data producer is an information resource that comprises a semantic layer,wherein the mapping includes;
an entity set and type of the second data model mapping to an entity table in the first data model; and
properties of the entity type mapping to different columns in the table,wherein the properties of the entity type mapping to the different columns in the table includes;
each primitive property mapping to a different column; and
keys of the entity mapping to a column in the table including entity ID hashes generated based on the entity set and key properties of the entity,wherein the client device is operable to request an update to the data stored on the client device, the request including a delta link indicating when the data stored in the client device was requested from the data producer,wherein the server is operable to receive the request for the update from the client device, to request data from the data producer using the delta link, to transform data received from the data producer into the first data model, and to send transformed data to the client device, andwherein the server stores data in an in-memory data structure, data is transferred from the server using server driven paging in which each interim page includes a link to a next page, and a final page in a data transfer includes the delta link for obtaining changes to the data.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for providing mapping between a first data model and a second data model may include sending a request for metadata to a data producer providing data using the second data model. The metadata may be received from the data producer and analyzed to determine a structure of the second data model. System tables may be created based on the analysis of the metadata. The system tables may include data tables to store data from the data producer and to provide the mapping between the metadata of the second data model and the data tables in the first data model. Requests may be made to the data producer for data to be retrieved and populated in the data tables using the first data model.
-
Citations
15 Claims
-
1. A method for generating a mapping between a first data model and a second data model, the method being implemented by one or more data processors forming part of at least one computing device and comprising:
-
sending, by a server, in response to a request from at least one client device, a request for metadata to a data producer providing data using the second data model, the data producer being remote from the client device, the server in communication with and remote from the data producer and the client device; receiving, by the server, the metadata of the second data model and a service document from the data producer, the metadata comprising a description of feeds, types, properties, and relationships and the service document comprising lists of top-level feeds and addresses of the feeds; parsing and analyzing, by the server, the metadata of the second data model into an in-memory database to determine a structure of the second data model; based on the parsing and analysis of the metadata, creating, by the server and at the server, system tables, the system tables including a first set of tables for storing data from the data producer using the first data model, a second set of tables including information about the metadata of the second data model, and a third set of tables including a mapping between the metadata of the second data model and the first set of tables in the first data model; populating the first set of tables with data received from the data producer; sending the system tables to the client device; and enabling, by the server, access to the system tables to the at least one client device; wherein the first data model and the second data model are physical data models having different physical structures, wherein a protocol used to communicate between the data producer and the server is different from the protocol used to communicate between the server and the at least one client device, wherein containment properties in the second data model are mapped to containment tables in the first data model, containment tables include one column for each primary key of corresponding entity types, wherein the data producer is an information resource that comprises a semantic layer, wherein the mapping includes;
an entity set and type of the second data model mapping to an entity table in the first data model; and
properties of the entity type mapping to different columns in the table,wherein the properties of the entity type mapping to the different columns in the table includes;
each primitive property mapping to a different column; and
keys of the entity mapping to a column in the table including entity ID hashes generated based on the entity set and key properties of the entity,wherein the client device is operable to request an update to the data stored on the client device, the request including a delta link indicating when the data stored in the client device was requested from the data producer, wherein the server is operable to receive the request for the update from the client device, to request data from the data producer using the delta link, to transform data received from the data producer into the first data model, and to send transformed data to the client device, and wherein the server stores data in an in-memory data structure, data is transferred from the server using server driven paging in which each interim page includes a link to a next page, and a final page in a data transfer includes the delta link for obtaining changes to the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system, comprising:
-
a data producer storing data; a client device remote from the data producer executing an application using data stored in the client device based on a first data model, the data stored in the client device being data received from the data producer; and a server in communication with and remote from the data producer and the client device, the server operable to; receive requests from the client device to receive data from the data producer, the data producer providing data using a second data model; in response to the client device request for data, request metadata and a service document from the data producer, the metadata comprising a description of feeds, types, properties, and relationships and the service document comprising lists of top-level feeds and addresses of the feeds; parse and analyze the metadata into an in-memory database to determine a structure of the second data model; create system tables based on the parsing and analysis, the system tables including data tables using the first data model to store the data from the data producer, metadata tables to store the metadata from the data producer and mapping tables providing a mapping between the metadata of the second data model and the data tables in the first data model; request data from the data producer in a defining request table received from the client device; populate data tables with the received data; and send the system tables to the client device, wherein the first data model and the second data model are physical data models having different physical structures, wherein a protocol used to communicate between the data producer and the server is different from the protocol used to communicate between the server and the client device, and wherein containment properties in the second data model are mapped to containment tables in the first data model, containment tables include one column for each primary key of corresponding entity types, wherein the mapping includes;
an entity set and type of the second data model mapping to an entity table in the first data model; and
properties of the entity type mapping to different columns in the table, andwherein the properties of the entity type mapping to the different columns in the table includes;
each primitive property mapping to a different column; and
keys of the entity mapping to a column in the table including entity ID hashes generated based on the entity set and key properties of the entity,wherein the client device is operable to request an update to the data stored on the client device, the request including a delta link indicating when the data stored in the client device was requested from the data producer, wherein the server is operable to receive the request for the update from the client device, to request data from the data producer using the delta link, to transform data received from the data producer into the first data model, and to send transformed data to the client device, and wherein the server stores data in an in-memory data structure, data is transferred from the server using server driven paging in which each interim page includes a link to a next page, and a final page in a data transfer includes the delta link for obtaining changes to the data. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium containing program instructions, wherein execution of the program instructions by one or more processors of a computer system causes one or more processors to perform operations comprising:
-
sending, by a server, a request for metadata, in response to a request from a client device, to a data producer providing data using a second data model, which is different from a first data model used to store data by the client device, the server in communication with and remote from the data producer and the client device; receiving, by the server, the metadata of the second data model and a service document from the data producer, the metadata comprising a description of feeds, types, properties, and relationships and the service document comprising lists of top-level feeds and addresses of the feeds; parsing and analyzing, by the server, the metadata of the second data model into an in-memory database to determine a structure of the second data model; creating, by the server, system tables based on the parsing and analysis, the system tables including data tables using the first data model to store the data from the data producer, metadata tables to store the metadata from the data producer and mapping tables providing a mapping between the metadata of the second data model and the data tables in the first data model; requesting the data from the data producer for the data tables in a defining request table received from the client device; populating the data tables with the data received from the data producer; sending the system tables to the client device, and wherein the first data model and the second data model are physical data models having different physical structures, wherein a protocol used to communicate between the data producer and a server is different from the protocol used to communicate between the server and the client device, wherein containment properties in the second data model are mapped to containment tables in the first data model, containment tables include one column for each primary key of corresponding entity types, wherein the mapping includes;
an entity set and type of the second data model mapping to an entity table in the first data model; and
properties of the entity type mapping to different columns in the table, andwherein the properties of the entity type mapping to the different columns in the table includes;
each primitive property mapping to a different column; and
keys of the entity mapping to a column in the table including entity ID hashes generated based on the entity set and key properties of the entity,wherein the client device is operable to request an update to the data stored on the client device, the request including a delta link indicating when the data stored in the client device was requested from the data producer, wherein the server is operable to receive the request for the update from the client device, to request data from the data producer using the delta link, to transform data received from the data producer into the first data model, and to send transformed data to the client device, and wherein the server stores data in an in-memory data structure, data is transferred from the server using server driven paging in which each interim page includes a link to a next page, and a final page in a data transfer includes the delta link for obtaining changes to the data.
-
Specification