DYNAMIC STRUCTURED DATA COMMUNICATIONS
A method of dynamic structured data communication includes registering a structure configured for data communication between applications. The structure includes a structure name and a mapping between data elements and attributes related to the data elements. The structure is registered such that it is accessible to a second application. The method includes receiving encoded data from a first application. The encoded data includes values for the data elements encoded according to the structure and an indication of the structure name. The method includes resolving the encoded data to identify the structure name. Based on the structure name, the method includes accessing the structure and decoding the encoded data according to the accessed structure. The decoding includes generation of a first value that corresponds to a first data element of the encoded data and generated to conform to a first attribute mapped to the first data element in the accessed structure.
1 . A method of dynamic structured data communication between a first application and a second application, the method comprising:
registering a structure, wherein the structure is defined for data communication between a first application and a second application, the structure includes a structure name and a mapping between data elements and attributes related to the data elements, and the structure is registered such that the structure is accessible to the second application;
receiving, at the second application, encoded data from the first application, wherein the encoded data includes values for the data elements encoded according to the structure and the encoded data includes an indication of the structure name;
resolving the encoded data to identify the structure name;
based on the structure name, accessing the registered structure having the structure name; and
decoding the encoded data according to the accessed structure, wherein the decoding includes generation of a first value that corresponds to a first data element of the encoded data, and the first value is generated such that the first value is formatted according to a first attribute that is mapped to the first data element in the accessed structure.
2 . The method of claim 1 , further comprising:
receiving from the first application an additional structure, wherein the additional structure includes an additional structure name and an additional mapping between the data elements and the attributes related to the data elements;
registering the additional structure such that the additional structure is accessible to the second application;
receiving additional data from the first application, the additional data that is encoded according to the additional structure and the additional data includes an indication of the additional structure name;
reviewing the received additional data to identify the additional structure name;
based on the additional structure name, accessing the additional structure from a plurality of registered structures that includes both the additional structure and the structure; and
decoding the additional data according to the accessed additional structure.
3 . The method of claim 1 , wherein:
one of the attributes of the structure includes datatypes of the data elements;
the structure includes an identifier for each of the data elements;
the data encoded according to the structure associates the data elements with the identifiers such that an order of the data does not affect the decoding; and
the data is formatted according to JavaScript Object Notation (JSON).
4 . The method of claim 1 , wherein:
the structure is registered at a handler engine;
the accessing the structure includes searching the handler engine for the structure name at the handler engine; and responsive to the structure name not being registered at the handler engine, rejecting the encoded data; and
the decoding the encoded data is performed responsive to the structure name being registered at the handler engine.
5 . The method of claim 1 , wherein:
the structure further includes a structure version associated with the first application or the second application; and
the encoded data includes a version indicator that is representative of a version of the encoded data.
6 . The method of claim 5 , further comprising:
further resolving the encoded data to identify the version indicator;
determining whether the version indicated by the version indicator is either the version of the registered structure or an earlier version; and
rejecting the encoded data responsive to the version being a later version than the version of the registered structure,
wherein:
the decoding the encoded data is performed responsive to the version indicated the version indicator is either the version of the registered structure or an earlier version; and
the resolving the encoded data is based on internal metadata.
7 . The method of claim 5 , wherein:
the encoded data is communicated in an envelope format in which the structure name and the version indicator are not visible to a user and values of the encoded data are visible to the user; and
the structure version is based on a compile time of the structure.
8 . The method of claim 1 , further comprising receiving from the first application an additional structure, wherein:
the additional structure includes an additional structure name and a modified mapping; and
the modified mapping includes the mapping of the structure except for a change to a first attribute related to a first data element of the data elements.
9 . The method of claim 1 , wherein:
the data elements include a username, a password, and a role name; and
the attributes related to the data elements include a datatype of each of the username, the password, and the role name.
10 . The method of claim 1 , wherein the first application is different from the second application.
11 . The method of claim 1 , wherein:
the first application is installed at a first computing device;
the second application is installed at a second computing device;
the first computing device is a management device; and
the second computing device is a device managed by the management device.
12 . A non-transitory computer-readable medium having encoded therein programming code executable by one or more processors to perform or control performance of operations of dynamic structured data communication between a first application and a second application, the operations comprising:
registering a structure, wherein the structure is defined for data communication between a first application and a second application, the structure includes a structure name and a mapping between data elements and attributes related to the data elements, and the structure is registered such that the structure is accessible to the second application;
receiving, at the second application, encoded data from the first application, wherein the encoded data includes values for the data elements encoded according to the structure and the encoded data includes an indication of the structure name;
resolving the encoded data to identify the structure name;
based on the structure name, accessing the registered structure having the structure name; and
decoding the encoded data according to the accessed structure, wherein the decoding includes generation of a first value that corresponds to a first data element of the encoded data, and the first value is generated such that the first value is formatted according to a first attribute that is mapped to the first data element in the accessed structure.
13 . The non-transitory computer-readable medium of claim 12 , wherein the operations further comprise:
receiving from the first application an additional structure, wherein the additional structure includes an additional structure name and an additional mapping between the data elements and the attributes related to the data elements;
registering the additional structure such that the additional structure is accessible to the second application;
receiving additional data from the first application, the additional data that is encoded according to the additional structure and the additional data includes an indication of the additional structure name;
reviewing the received additional data to identify the additional structure name;
based on the additional structure name, accessing the additional structure from a plurality of registered structures that includes both the additional structure and the structure; and
decoding the additional data according to the accessed additional structure.
14 . The non-transitory computer-readable medium of claim 12 , wherein:
one of the attributes of the structure includes datatypes of the data elements;
the structure includes an identifier for each of the data elements;
the data encoded according to the structure associates the data elements with the identifiers such that an order of the data does not affect the decoding; and
the data is formatted according to JavaScript Object Notation (JSON).
15 . The non-transitory computer-readable medium of claim 12 , wherein:
the structure is registered at a handler engine;
the accessing the structure includes searching the handler engine for the structure name at the handler engine; and responsive to the structure name not being registered at the handler engine, rejecting the encoded data; and
the decoding the encoded data is performed responsive to the structure name being registered at the handler engine.
16 . The non-transitory computer-readable medium of claim 12 , wherein:
the structure further includes a structure version associated with the first application or the second application; and
the encoded data includes a version indicator that is representative of a version of the encoded data.
17 . The non-transitory computer-readable medium of claim 16 , wherein:
the operations further comprise:
further resolving the encoded data to identify the version indicator;
determining whether the version indicated by the version indicator is either the version of the registered structure or an earlier version; and
rejecting the encoded data responsive to the version being a later version than the version of the registered structure;
the decoding the encoded data is performed responsive to the version indicated the version indicator is either the version of the registered structure or an earlier version; and
the resolving the encoded data is based on internal metadata.
18 . The non-transitory computer-readable medium of claim 16 , wherein:
the encoded data is communicated in an envelope format in which the structure name and the version indicator are not visible to a user and values of the encoded data are visible to the user; and
the structure version is based on a compile time of the structure.
19 . The non-transitory computer-readable medium of claim 12 , wherein:
the operations further comprise receiving from the first application an additional structure,
the additional structure includes an additional structure name and a modified mapping; and
the modified mapping includes the mapping of the structure except for a change to a first attribute related to a first data element of the data elements.
20 . The non-transitory computer-readable medium of claim 12 , wherein:
the data elements include a username, a password, and a role name; and
the attributes related to the data elements include a datatype of each of the username, the password, and the role name.