Federated service live data integration using a self-describing data model
In one embodiment, a computing device includes a computer-implemented system configured to generate a logical model item type in a self-describing data model implemented by the computer-implemented system, wherein the logical model item type defines a schema of an external object model implemented by a third-party computer-implemented system executed by a third-party computing device, the logical model item type comprises a logical model type (LMT) item type representing data of the third-party computer-implemented system. The computer-implemented system is configured to generate a mapping item type in the self-describing data model, wherein the mapping item type defines a mapping between an item type of the external object model and the LMT item type. The computer-implemented system is configured to use the mapping to enable data communication between the computer-implemented system and the third-party computer implemented system.
1 . A computing device comprising:
a computer-implemented system executed by the computing device, wherein the computer-implemented system is configured to:
generate a logical model item type in a self-describing data model implemented by the computer-implemented system, wherein:
the self-describing data model comprises a first data format;
the logical model item type defines a schema of an external object model implemented by a third-party computer-implemented system executed by a third-party computing device;
the external object model comprises a second data format different than the first data format;
the logical model item type comprises a logical model type (LMT) item type representing data of the third-party computer-implemented system;
generate a mapping item type in the self-describing data model, wherein the mapping item type defines a mapping between an item type of the external object model and the LMT item type;
receive, from a client computing device, a request for data pertaining to the LMT item type;
generate, based on the mapping and connection information pertaining to the third-party computer-implemented system, a second request for the data;
transmit, using the connection information, the second request to the third-party computer-implemented system;
receive, from the third-party computer-implemented system, a response including the data, wherein the computer-implemented system does not persist the data at the computing device;
transmit the data to the client computing device; and
execute a federated system event hooks module configured to receive a payload of information pertaining to one or more events from the third-party computer-implemented system, wherein, based one or more types of the one or more events identified in the payload, the federated system event hooks module transmits the one or more events to one or more corresponding event handlers.
2 . The computing device of claim 1 , wherein the computer-implemented system is further to generate a federated system item type in the self-describing data model, wherein the federated system item type defines information pertaining to the third-party computer-implemented system, and the information comprises an identity of the third-party computer-implemented system, an authentication protocol of the third-party computer-implemented system, and the connection information.
3 . The computing device of claim 2 , wherein the computer-implemented system is further configured to:
execute an adapter to obtain the authentication protocol and the connection information from the federated system item type, and
generate the second request based on the authentication protocol and the connection information.
4 . The computing device of claim 1 , wherein, when the request is received, the computer-implemented system is further to:
load local items associated with the LMT item type referenced in the request,
when the response is received, merge the local data and the data into merged data, and
transmit the merged data to the client computing device.
5 . The computing device of claim 4 , wherein the computer-implemented system does not persist the data at the computing device, and the data is presented in a user interface of the client computing device.
6 . The computing device of claim 5 , wherein the computer-implemented system is further to:
receive, from the client computing device, an override request comprising a modification to the data;
use the mapping to transform the modification to the data to create a message having a format compatible with the third-party computer-implemented system, wherein the modification to the data is not persisted by the computer-implemented system; and
transmit the message to the third-party computer-implemented system such that the data is updated with the modification at the third-party computer-implemented system.
7 . The computing device of claim 1 , wherein the mapping between the item type of the external object model and the LMT item type is generated using a graphical element-based user interface presented at the client computing device.
8 . The computing device of claim 1 , wherein an operation item type in the self-describing data model is configured to:
deserialize a data object associated with the external object model, wherein the data object includes the item type, is included in the request, and the item type is deserialized into a normalized data object, and
use the mapping to map the item type included in the normalized data object to LMT item type in the self-describing data model.
9 . The computing device of claim 1 , wherein the one or more events pertain to data object creation, data object update, data object deletion, data lifecycle change, or some combination thereof.
10 . A computer-implemented method comprising:
generating a logical model item type in a self-describing data model implemented by a computer-implemented system, wherein:
the self-describing data model comprises a first data format;
the logical model item type defines a schema of an external object model implemented by a third-party computer-implemented system executed by a third-party computing device;
the external object model comprises a second data format different than the first data format;
the logical model item type comprises a logical model type (LMT) item type representing data of the third-party computer-implemented system;
generating a mapping item type in the self-describing data model, wherein the mapping item type defines a mapping between an item type of the external object model and the LMT item type;
receiving, from a client computing device, a request for data pertaining to the LMT item type;
generating, based on the mapping and connection information pertaining to the third-party computer-implemented system, a second request for the data;
transmitting, using the connection information, the second request to the third-party computer-implemented system;
receiving, from the third-party computer-implemented system, a response including the data;
transmitting the data to the client computing device; and
executing a federated system event hooks module configured to receive a payload of information pertaining to one or more events from the third-party computer-implemented system, wherein, based one or more types of the one or more events identified in the payload, the federated system event hooks module transmits the one or more events to one or more corresponding event handlers.
11 . The computer-implemented method of claim 10 , further comprising generating a federated system item type in the self-describing data model, wherein the federated system item type defines information pertaining to the computer-implemented system, and the information comprises an identity of the computer-implemented system, an authentication protocol of the computer-implemented system, and the connection information.
12 . The computer-implemented method of claim 11 , further comprising:
executing an adapter to obtain the authentication protocol and the connection information from the federated system item type, and
generating the second request based on the authentication protocol and the connection information.
13 . The computer-implemented method of claim 10 , wherein, when the request is received, the method further comprises:
loading local items associated with the LMT item type referenced in the request,
when the response is received, merging the local data and the data into merged data, and
transmitting the merged data to the client computing device.
14 . The computer-implemented method of claim 13 , wherein the computer-implemented system does not persist the data at the computing device, and the data is presented in a user interface of the client computing device.
15 . The computer-implemented method of claim 14 , further comprising:
receiving, from the client computing device, an override request comprising a modification to the data;
using the mapping to transform the modification to the data to create a message having a format compatible with the third-party computer-implemented system, wherein the modification to the data is not persisted at the computing device; and
transmitting the message to the third-party computer-implemented system.
16 . The computer-implemented method of claim 10 , wherein the mapping between the item type of the external object model and the LMT item type is generated using a graphical element-based user interface presented at the client computing device.
17 . The computer-implemented method of claim 10 , further comprising:
deserializing, using an operation item type in the self-describing data model, a data object associated with the external object model, wherein the data object includes the item type, is included in the request, and the item type is deserialized into a normalized data object, and
using the mapping to map the item type included in the normalized data object to LMT item type in the self-describing data model.
18 . One or more tangible, non-transitory computer-readable media comprising one or more memory devices storing instructions and at least one processor is configured to execute the one or more instructions stored in the one or more memory devices, wherein the execution causes the at least one processor to:
generate a logical model item type in a self-describing data model implemented by a computer-implemented system, wherein:
the self-describing data model comprises a first data format;
the logical model item type defines a schema of an external object model implemented by a third-party computer-implemented system executed by a third-party computing device;
the external object model comprises a second format different than the first data format;
the logical model item type comprises a logical model type (LMT) item type representing data of the third-party computer-implemented system;
generate a mapping item type in the self-describing data model, wherein the mapping item type defines a mapping between an item type of the external object model and the LMT item type;
receive, from a client computing device, a request for data pertaining to the LMT item type;
generate, based on the mapping and connection information pertaining to the third-party computer-implemented system, a second request for the data;
transmit, using the connection information, the second request to the third-party computer-implemented system;
receive, from the third-party computer-implemented system, a response including the data;
transmit the data to the client computing device; and
execute a federated system event hooks module configured to receive a payload of information pertaining to one or more events from the third-party computer-implemented system, wherein, based one or more types of the one or more events identified in the payload, the federated system event hooks module transmits the one or more events to one or more corresponding event handlers.