Synchronizing information model changes between hierarchical systems of smart factories
System and method for synchronizing information model changes between hierarchical systems of a smart factory are disclosed. A model generator instantiates objects for an aggregated information model for each of a plurality of subsystems in the smart factory based on an OPC UA standardized model. A synchronization engine maintains a global timestamp variable for a last successful synchronization performed by a parent OPC UA server for syncing to a second aggregated information model instance stored in a lower level OPC UA server. Model nodes are annotated with a node-wise timestamp in response to a modification to the node. All nodes subject to modification are pushed to a priority queue as a serialized node set format having annotation extensions that include synchronization-relevant data. The first and second aggregated information model are synchronized by updating nodes with the synchronization-relevant data.
1 . A method for synchronizing information model changes between hierarchical systems of smart factories, comprising:
maintaining a global timestamp variable for a last successful synchronization performed by a parent Open Platform Communications United Architecture (OPC UA) server, the synchronization being between a first aggregated information model instance stored in the parent OPC UA server and a second aggregated information model instance stored in a lower level OPC UA server;
for each node in the second aggregated information model, annotating the node with a node-wise timestamp in response to a modification to the node, wherein the modification includes one of a node addition, a node update, or a node deletion;
pushing all nodes subject to modification in the second aggregated information model to a priority queue as a serialized node set format having annotation extensions that include synchronization-relevant data;
synchronizing the first aggregated information model with the second aggregated information model by updating the nodes with the synchronization-relevant data; and sharing namespace array information related to the node ID.
2 . The method of claim 1 , further comprising:
updating the global timestamp variable for the last successful synchronization in response to the synchronization; and
identifying a node subject to modification in the second aggregated information model in response to determining a later timestamp value for the node-wise timestamp compared to the value of the global timestamp variable.
3 . The method of claim 1 , wherein the synchronization-relevant data includes at least one of:
an indication of whether the node participates in synchronization;
any restrictions for the parent OPC UA server, including adjusted permissions;
scope of synchronization levels; or
a timestamp of the last modification or synchronization.
4 . The method of claim 1 , wherein the synchronization is triggered by the modification of one or more nodes in the aggregated information model at the lower level OPC UA server.
5 . The method of claim 1 , wherein the synchronization is triggered by an established or re-established connection between the lower level OPC UA server and the parent OPC UA server.
6 . A method for synchronizing information model changes between hierarchical systems of smart factories, comprising:
maintaining a node-wise timestamp variable syncAck for a time of acknowledgment of a synchronization performed by a parent Open Platform Communications United Architecture (OPC UA) server, the synchronization being between a first aggregated information model instance stored in the parent OPC UA server and a second aggregated information model instance stored in a lower level OPC UA server, the synchronization related to a node subject to modification;
annotating the node with a node-wise timestamp in response to a modification to the node, wherein the modification includes one of a node addition, a node update, or a node deletion;
pushing the node subject to modification in the second aggregated information model to a queue as a serialized node set format having annotation extensions that include synchronization-relevant data;
synchronizing the first aggregated information model with the second aggregated information model by updating the nodes with the synchronization-relevant data; and sharing namespace array information related to the node ID.
7 . The method of claim 6 , further comprising:
receiving, at the lower level OPC UA server from the parent OPC UA server, an acknowledgment of synchronization of the first aggregated information model with respect to a modified node;
updating the timestamp variable syncAck with time of the acknowledgment; and
identifying the node subject to modification in the second aggregated information model in response to determining a later timestamp value for the node-wise timestamp compared to the value of the node-wise timestamp variable a time of acknowledgment of a synchronization.
8 . The method of claim 6 , wherein the synchronization-relevant data includes at least one of:
an indication of whether the node participates in synchronization;
any restrictions for a parent OPC UA server, including adjusted permissions;
scope of synchronization levels; or
a timestamp of the last modification or synchronization.
9 . The method of claim 6 , wherein the synchronization is triggered by the modification of one or more nodes in the aggregated information model at the lower level OPC UA server.
10 . The method of claim 6 , wherein the synchronization is triggered by an established or re-established connection between the lower level OPC UA server and the parent OPC UA server.
11 . A system for synchronizing information model changes between hierarchical systems of a smart factory, comprising:
a processor; and
a memory having modules with instructions stored thereon executable by the processor, the modules comprising:
a model generator configured to instantiate objects for an aggregated information model for each of a plurality of subsystems in the smart factory, the aggregated information model in accordance with objects defined by an Open Platform Communications United Architecture (OPC UA) standardized model;
a synchronization engine configured to:
maintain a global timestamp variable for a last successful synchronization performed by a parent OPC UA server, the synchronization being between a first aggregated information model instance stored in the parent OPC UA server and a second aggregated information model instance stored in a lower level OPC UA server;
for each node in the second aggregated information model, annotating the node with a node-wise timestamp in response to a modification to the node, wherein the modification includes one of a node addition, a node update, or a node deletion;
push all nodes subject to modification in the second aggregated information model to a priority queue as a serialized node set format having annotation extensions that include synchronization-relevant data;
synchronize the first aggregated information model with the second aggregated information model by updating the nodes with the synchronization-relevant data.
12 . The system of claim 11 , wherein the synchronization engine is further configured to:
update the global timestamp variable for the last successful synchronization in response to the synchronization; and
identify a node subject to modification in the second aggregated information model in response to determining a later timestamp value for the node-wise timestamp compared to the value of the global timestamp variable.
13 . The system of claim 11 , wherein the synchronization-relevant data includes at least one of:
an indication of whether the node participates in synchronization;
any restrictions for the parent OPC UA server, including adjusted permissions;
scope of synchronization levels; or
a timestamp of the last modification or synchronization.